{"capabilities":[{"name":"get_capabilities","title":"List capabilities","description":"Read the public action catalog, including permissions and result meanings.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"effect":"read","scope":"public","actorKinds":["public","buyer","agent","staff"],"requiresOwner":false,"prerequisites":[],"outputMeaning":"Metadata only; discovery grants no permission.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"search_vehicles","title":"Search vehicles","description":"Search currently indexed inventory. Source age and unknown details remain explicit.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":500},"near":{"type":"string","minLength":1,"maxLength":100},"make":{"type":"string","minLength":1,"maxLength":80},"model":{"type":"string","minLength":1,"maxLength":100},"maxPrice":{"type":"number","minimum":0,"maximum":10000000},"maxMileage":{"type":"integer","minimum":0,"maximum":2000000},"minYear":{"type":"integer","minimum":1886,"maximum":2100},"dealer":{"type":"string","minLength":1,"maxLength":200},"limit":{"type":"integer","minimum":1,"maximum":20}},"required":[],"additionalProperties":false},"effect":"read","scope":"public","actorKinds":["public","buyer","agent","staff"],"requiresOwner":false,"prerequisites":[],"outputMeaning":"Inventory matches, not a reservation or fresh physical verification.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_vehicle","title":"Get vehicle evidence","description":"Retrieve a specific vehicle dossier and its known and unknown evidence.","inputSchema":{"type":"object","properties":{"vehicleKey":{"type":"string","minLength":1,"maxLength":300}},"required":["vehicleKey"],"additionalProperties":false},"effect":"read","scope":"public","actorKinds":["public","buyer","agent","staff"],"requiresOwner":false,"prerequisites":[],"outputMeaning":"Sourced vehicle facts with timestamps and verification limits.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"compare_vehicles","title":"Compare vehicles","description":"Compare two to four exact vehicle keys against explicit constraints.","inputSchema":{"type":"object","properties":{"vehicleKeys":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"minItems":2,"maxItems":4,"uniqueItems":true},"constraints":{"type":"object","properties":{"maxBudgetCents":{"type":"integer","minimum":0,"maximum":1000000000},"maxMileage":{"type":"integer","minimum":0,"maximum":2000000},"minYear":{"type":"integer","minimum":1886,"maximum":2100},"requiredEvidence":{"type":"array","items":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"minItems":0,"maxItems":10,"uniqueItems":true}},"required":[],"additionalProperties":false}},"required":["vehicleKeys"],"additionalProperties":false},"effect":"read","scope":"public","actorKinds":["public","buyer","agent","staff"],"requiresOwner":false,"prerequisites":[],"outputMeaning":"Evidence-based comparison; missing facts stay unknown.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"estimate_purchase","title":"Estimate purchase cost","description":"Calculate a nonbinding estimate using explicit fees, tax and payment assumptions.","inputSchema":{"type":"object","properties":{"vehicleKey":{"type":"string","minLength":1,"maxLength":300},"taxRateBps":{"type":"integer","minimum":0,"maximum":10000},"registrationFeeCents":{"type":"integer","minimum":0,"maximum":1000000000},"transportFeeCents":{"type":"integer","minimum":0,"maximum":1000000000},"downPaymentCents":{"type":"integer","minimum":0,"maximum":1000000000},"tradeAllowanceCents":{"type":"integer","minimum":0,"maximum":1000000000},"tradePayoffCents":{"type":"integer","minimum":0,"maximum":1000000000}},"required":["vehicleKey"],"additionalProperties":false},"effect":"read","scope":"public","actorKinds":["public","buyer","agent","staff"],"requiresOwner":false,"prerequisites":[],"outputMeaning":"Nonbinding estimate and basis hash, not a dealer quote or credit decision.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"plan_purchase","title":"Plan the next buying steps","description":"Identify missing evidence and next steps for one to four vehicles.","inputSchema":{"type":"object","properties":{"vehicleKeys":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"minItems":1,"maxItems":4,"uniqueItems":true},"constraints":{"type":"object","properties":{"maxBudgetCents":{"type":"integer","minimum":0,"maximum":1000000000},"maxMileage":{"type":"integer","minimum":0,"maximum":2000000},"minYear":{"type":"integer","minimum":1886,"maximum":2100},"requiredEvidence":{"type":"array","items":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"minItems":0,"maxItems":10,"uniqueItems":true}},"required":[],"additionalProperties":false}},"required":["vehicleKeys"],"additionalProperties":false},"effect":"read","scope":"public","actorKinds":["public","buyer","agent","staff"],"requiresOwner":false,"prerequisites":[],"outputMeaning":"An evidence-based plan; no tasks or reservations are created.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"open_case","title":"Open a buying case","description":"Create nonbinding coordination after the buyer consents. No external message is sent.","inputSchema":{"type":"object","properties":{"vehicleKey":{"type":"string","minLength":1,"maxLength":300},"intent":{"type":"string","minLength":1,"maxLength":1000},"constraints":{"type":"object","properties":{"maxBudgetCents":{"type":"integer","minimum":0,"maximum":1000000000},"maxMileage":{"type":"integer","minimum":0,"maximum":2000000},"minYear":{"type":"integer","minimum":1886,"maximum":2100},"requiredEvidence":{"type":"array","items":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"minItems":0,"maxItems":10,"uniqueItems":true}},"required":[],"additionalProperties":false},"consent":{"type":"boolean","const":true},"leadId":{"type":"string","minLength":1,"maxLength":200}},"required":["vehicleKey","intent","consent"],"additionalProperties":false},"effect":"write","scope":"cases:write","actorKinds":["public","buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Dealer accepts buyer cases","Buyer consent","Idempotency key"],"outputMeaning":"Case and case-scoped credential. Store the credential securely; never put it in a URL.","retryBehavior":"Anonymous callers must generate a cryptographically random UUIDv4 idempotencyKey and keep it as a sensitive case-recovery secret. Retry only with the same key and identical input."},{"name":"get_case","title":"Read buying case","description":"Read the case, dependencies and next work allowed to the authenticated actor.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200}},"required":["caseId"],"additionalProperties":false},"effect":"read","scope":"cases:read","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Case or dealer authority"],"outputMeaning":"Current durable case state, not a completed purchase.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_inquiry_attention","title":"Find inquiries needing review","description":"Scan canonical inquiry commitments and physical requests for changed, cancelled or unavailable sources. Follow nextAfterCustomerId even when a page has no review items. Read get_inquiry_context for each customer before interpreting or acting. This overview contains no call or message content.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"afterCustomerId":{"type":"string","minLength":1,"maxLength":200},"limit":{"type":"integer","minimum":1,"maximum":100}},"required":["expectedDealerId"],"additionalProperties":false},"effect":"read","scope":"inquiries:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current inquiry, case, task and evidence read authority"],"outputMeaning":"Bounded derived review destinations and explicit scan coverage. No task, draft, permission to act, contact or outcome is created.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_inquiry_context","title":"Read the inquiry conversation","description":"Read the original contact request, canonical chat, SMS and email, meaningful linked-call dependencies, current attributed interpretation and assigned CRM work. Call metadata needs current calls:read; private evidence separately needs calls:content:read. Quoteable messages include textHash for exact passage selection; responseEpisode explains which commitment can handle the reviewed response or why new follow-up is needed.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","customerId"],"additionalProperties":false},"effect":"read","scope":"inquiries:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Inquiry, case, task and evidence read authority","Current dealership ownership"],"outputMeaning":"Bounded source quotes, current interpretation, explicit ambiguity and save basis. Reading creates no work, reopens no completed commitment and sends no message.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"interpret_inquiry","title":"Record the current inquiry","description":"Record an agent or staff interpretation against the current complete conversation. Select up to six whole messages or disjoint exact passages totaling at most 2,000 UTF16 units including two-newline separators. Passage start/end are zero-based UTF16 offsets (end exclusive); textHash must match the full displayed message. Read the entire message before interpreting a passage. Changed linked calls require explicit reviewedCalls. With calls:read and calls:content:read, privately review exact retained call evidence and deliberately record callQuestion as an attributed operational interpretation, not a customer quote. Uncertain or unavailable context requires a newer canonical customer message or explicitly reviewed newer call. Long histories expose bounded metadata but retain the complete source digest; explicit callRecovery binds that full cohort to newer customer instructions and never claims omitted calls were individually reviewed.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"version":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["active","cancelled","needs_clarification"]},"reason":{"type":"string","minLength":1,"maxLength":1000},"sourceRefs":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"messageId":{"type":"string","minLength":1,"maxLength":200}},"required":["messageId"],"additionalProperties":false},{"type":"object","properties":{"messageId":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"integer","minimum":0,"maximum":15999},"end":{"type":"integer","minimum":1,"maximum":16000},"textHash":{"type":"string","minLength":64,"maxLength":64,"pattern":"^[a-f0-9]{64}$"}},"required":["messageId","start","end","textHash"],"additionalProperties":false}]},"minItems":0,"maxItems":6,"uniqueItems":true},"callQuestion":{"type":"string","minLength":1,"maxLength":2000},"callRecovery":{"type":"object","properties":{"cohortHash":{"type":"string","minLength":64,"maxLength":64},"source":{"type":"string","enum":["canonical_message","reviewed_call"]},"sourceId":{"type":"string","minLength":1,"maxLength":100}},"required":["cohortHash","source","sourceId"],"additionalProperties":false},"reviewedCalls":{"type":"array","items":{"type":"object","properties":{"callId":{"type":"string","minLength":1,"maxLength":200},"callSourceDigest":{"type":"string","minLength":32,"maxLength":64},"sourceHash":{"type":"string","minLength":64,"maxLength":64},"segments":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":4999},"textHash":{"type":"string","minLength":64,"maxLength":64}},"required":["index","textHash"],"additionalProperties":false},"minItems":0,"maxItems":6,"uniqueItems":true},"summaryHash":{"type":"string","minLength":64,"maxLength":64},"disposition":{"type":"string","enum":["reviewed","unavailable","relinked"]},"attribution":{"type":"string","enum":["reported_customer","uncertain"]}},"required":["callId","callSourceDigest","disposition","attribution"],"additionalProperties":false},"minItems":0,"maxItems":50,"uniqueItems":true}},"required":["expectedDealerId","customerId","basisHash","version","status","reason","sourceRefs"],"additionalProperties":false},"effect":"write","scope":"inquiries:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Inquiry read/write and case/task/evidence read authority","Current complete source and exact quoted references","Stable idempotency key"],"outputMeaning":"Versioned attributed interpretation and receipt. Later source changes invalidate its use. This is a judgment, not verified shopper intent or a customer message.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"start_inquiry_commitment","title":"Assign the initial inquiry follow-up","description":"Create or recover the existing canonical initial CRM commitment for the current inquiry, with responsible staff, a deadline and completion guidance.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"version":{"type":"integer","minimum":0,"maximum":9007199254740991},"assigneeId":{"type":"string","minLength":1,"maxLength":200},"dueAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"},"title":{"type":"string","minLength":1,"maxLength":160},"completionCriteria":{"type":"string","minLength":1,"maxLength":3000}},"required":["expectedDealerId","customerId","basisHash","version","assigneeId","dueAt","title","completionCriteria"],"additionalProperties":false},"effect":"write","scope":"inquiries:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Inquiry read/write, task write and case/task/evidence read authority","Current actionable inquiry and active dealership assignee","Explicit UTC deadline and stable idempotency key"],"outputMeaning":"One assigned canonical CRM task and an exact receipt. Existing commitments are preserved; no physical action, contact, visit or sale is asserted.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_inquiry_withdrawal_context","title":"Review inquiry work withdrawal","description":"Review the exact current cancelled inquiry and the disposition of its canonical commitment and shared physical requests.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","customerId"],"additionalProperties":false},"effect":"read","scope":"inquiries:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Inquiry, case, task and evidence read authority","Current dealership and canonical inquiry linkage"],"outputMeaning":"Current source-bound withdrawal plan; reading creates no work or outcome.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"withdraw_inquiry_work","title":"Withdraw cancelled inquiry work","description":"Retire the current cancelled inquiry's proven internal request while preserving shared work, evidence and terminal history.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"version":{"type":"integer","minimum":0,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":1000}},"required":["expectedDealerId","customerId","basisHash","version","reason"],"additionalProperties":false},"effect":"write","scope":"inquiries:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Inquiry, case and task write plus inquiry/case/task/evidence read authority","Current journal-backed cancelled interpretation and exact withdrawal basis","Stable idempotency key and reason"],"outputMeaning":"Attributed internal withdrawal and exact receipt; no sale, loss, contact or physical completion is reported.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_inquiry_evidence_plan","title":"Plan evidence for an owned inquiry","description":"Read the current source-bound inquiry and the smallest supported staff checks under its canonical assigned commitment, including a later response's explicit follow-up. Unfinished work can continue; completed commitments remain history.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","customerId"],"additionalProperties":false},"effect":"read","scope":"inquiries:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Inquiry, case, task and evidence read authority","Current unambiguous question and open assigned commitment"],"outputMeaning":"Current source-bound plan and reusable work; no task, message or outcome is created.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"prepare_inquiry_evidence","title":"Request inquiry evidence","description":"Connect selected checks from the current inquiry plan to existing physical tasks and one canonical case.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"selections":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"instructions":{"type":"string","minLength":0,"maxLength":1000}},"required":["kind"],"additionalProperties":false},"minItems":1,"maxItems":6,"uniqueItems":true}},"required":["expectedDealerId","customerId","basisHash","selections"],"additionalProperties":false},"effect":"write","scope":"inquiries:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Inquiry read/write and case/task/evidence authority","Current plan and assigned commitment","Idempotency key"],"outputMeaning":"Requested or reused staff work with canonical inquiry and commitment links. No staff claim, customer message or sale is asserted.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_case_history","title":"Read retained case history","description":"Page through retained case records under the same case and evidence authority as current records.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"after":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100}},"required":["caseId"],"additionalProperties":false},"effect":"read","scope":"cases:read","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Case or dealer authority"],"outputMeaning":"Authorized retained records; accepted evidence only for buyers, and task/evidence scopes enforced for agents.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"request_task","title":"Request human evidence","description":"Request bounded physical work for this case's vehicle.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"instructions":{"type":"string","minLength":1,"maxLength":1000},"dueAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"}},"required":["caseId","kind"],"additionalProperties":false},"effect":"write","scope":"cases:write","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Case authority","Idempotency key"],"outputMeaning":"Pending or reusable task. A request is not proof the work happened.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"propose_visit","title":"Propose a visit","description":"Record a proposed time for the case. Dealer confirmation is a separate action.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"startsAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"}},"required":["caseId","startsAt"],"additionalProperties":false},"effect":"write","scope":"cases:write","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Case authority","Idempotency key"],"outputMeaning":"Unconfirmed visit proposal; no external notification.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"propose_offer","title":"Propose a nonbinding offer","description":"Record an offer against an explicit current estimate basis.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"amountCents":{"type":"integer","minimum":0,"maximum":1000000000},"basisHash":{"type":"string","minLength":1,"maxLength":128},"estimateInput":{"type":"object","properties":{"taxRateBps":{"type":"integer","minimum":0,"maximum":10000},"registrationFeeCents":{"type":"integer","minimum":0,"maximum":1000000000},"transportFeeCents":{"type":"integer","minimum":0,"maximum":1000000000},"downPaymentCents":{"type":"integer","minimum":0,"maximum":1000000000},"tradeAllowanceCents":{"type":"integer","minimum":0,"maximum":1000000000},"tradePayoffCents":{"type":"integer","minimum":0,"maximum":1000000000}},"required":[],"additionalProperties":false}},"required":["caseId","amountCents","basisHash"],"additionalProperties":false},"effect":"write","scope":"cases:write","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Current estimate basis","Case authority","Idempotency key"],"outputMeaning":"Nonbinding proposal only; no charge, acceptance or legal signature.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_finance_handoff","title":"Get secure finance handoff","description":"Retrieve the existing secure finance intake route without exposing finance-vault data.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200}},"required":["caseId"],"additionalProperties":false},"effect":"read","scope":"cases:read","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Case authority"],"outputMeaning":"A handoff link, not a finance application, bureau request or lender decision.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_receipt","title":"Read action receipt","description":"Read a receipt within the actor's case or dealer authority.","inputSchema":{"type":"object","properties":{"receiptId":{"type":"string","minLength":1,"maxLength":200}},"required":["receiptId"],"additionalProperties":false},"effect":"read","scope":"cases:read","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Receipt authority"],"outputMeaning":"Recorded execution result and provenance.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"list_events","title":"Resume from events","description":"Poll durable events after a monotonic cursor. Use the returned cursor on the next request.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"after":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100}},"required":[],"additionalProperties":false},"effect":"read","scope":"cases:read","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Case or dealer authority"],"outputMeaning":"Authorized events for resuming work; not MCP streaming or A2A.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"prepare_case_reply","title":"Prepare internal evidence reply","description":"Prepare an internal draft from selected reviewed observations; no customer message or model call.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"caseId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"sources":{"type":"array","items":{"type":"object","properties":{"taskId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"evidenceIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"minItems":0,"maxItems":5,"uniqueItems":true}},"required":["taskId","version","evidenceIds"],"additionalProperties":false},"minItems":1,"maxItems":5,"uniqueItems":true},"question":{"type":"string","minLength":1,"maxLength":2000}},"required":["expectedDealerId","caseId","version","sources"],"additionalProperties":false},"effect":"write","scope":"cases:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Case, task and evidence read authority","Original versions and explicit canonical question for inquiry-bound cases","Reviewed images for photo-backed observations","Idempotency key"],"outputMeaning":"Internal source-bound draft with current usability; not a sent reply or mechanical certification.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_case_reply","title":"Read internal evidence reply","description":"Revalidate a retained internal reply against its original reviewed sources.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"proposalId":{"type":"string","minLength":1,"maxLength":200}},"required":["caseId","proposalId"],"additionalProperties":false},"effect":"read","scope":"cases:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Case, task and evidence read authority"],"outputMeaning":"Historical draft plus current usable state; no customer delivery.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_reply_delivery_context","title":"Review customer email reply","description":"Review the original inquiry's exact verified answer, consenting recipient, sender and reply history before authorizing email delivery.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"caseId":{"type":"string","minLength":1,"maxLength":200},"proposalId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","caseId","proposalId"],"additionalProperties":false},"effect":"read","scope":"replies:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Explicit reply and inquiry/case/task/evidence read authority"],"outputMeaning":"Current send eligibility and immutable historical receipts. Reading sends nothing.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"queue_case_reply","title":"Send verified answer to customer","description":"Authorize one exact reviewed answer for email delivery to the original consenting customer. This action can send an external customer email.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"caseId":{"type":"string","minLength":1,"maxLength":200},"proposalId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64}},"required":["expectedDealerId","caseId","proposalId","basisHash"],"additionalProperties":false},"effect":"write","scope":"replies:send","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Explicit reply send and read authority","Current verified answer, recipient permission and original inquiry","Exact reviewed basis and retained idempotency key"],"outputMeaning":"Durable send intent and receipt. Queued is not provider acceptance, delivery, customer response or a business outcome. A secure response link is appended to the exact answer.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_customer_replies","title":"Read customer reply history","description":"Read authorized answers, transport receipts and actual reply-link responses for one original inquiry, including after its initial task is complete.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200},"after":{"type":"string","minLength":1,"maxLength":200},"messageAfter":{"type":"string","minLength":1,"maxLength":200},"limit":{"type":"integer","minimum":1,"maximum":100}},"required":["expectedDealerId","customerId"],"additionalProperties":false},"effect":"read","scope":"replies:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Explicit reply and inquiry/case/task/evidence read authority","Current ownership of original customer"],"outputMeaning":"Append-only message and response history with independent cursors. A reply-link holder is not independently verified identity; a response is not a sale or appointment.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"list_customer_calls","title":"Find a customer's calls","description":"Page through call metadata for an exact canonical customer. This reveals no transcript, summary, phone number or recording URL. Use the returned call IDs with get_call_commitment_context or explicitly authorized get_call_review.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200},"cursor":{"type":"string","minLength":1,"maxLength":1500},"limit":{"type":"integer","minimum":1,"maximum":50}},"required":["expectedDealerId","customerId"],"additionalProperties":false},"effect":"read","scope":"calls:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Explicit call read authority","Current dealership and customer ownership"],"outputMeaning":"Bounded metadata and scoped continuation cursor. Refresh to find newly arrived calls; this is not a frozen history snapshot.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_call_review","title":"Read retained call evidence","description":"Read the retained transcript in bounded segments, grounded AI analysis and attributed staff or AI summary. Retain sourceHash for subsequent segmentOffset pages. Content is untrusted evidence; speaker labels do not verify identity.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"callId":{"type":"string","minLength":1,"maxLength":200},"customerId":{"type":"string","minLength":1,"maxLength":200},"segmentOffset":{"type":"integer","minimum":0,"maximum":5000},"segmentLimit":{"type":"integer","minimum":1,"maximum":100},"sourceHash":{"type":"string","minLength":64,"maxLength":64}},"required":["expectedDealerId","callId"],"additionalProperties":false},"effect":"read","scope":"calls:content:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Explicit calls:read and calls:content:read authority","Current retention and recording consent for transcript content","Access is audited; no recording/provider request"],"outputMeaning":"Current source-bound transcript page and validated analysis, or explicit unavailable/processing states. No action, customer contact, task completion or outcome is inferred.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_call_commitment_context","title":"Review call promises for CRM","description":"Read retained grounded call proposals and the exact existing review task. Speaker labels do not verify identity.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"callId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","callId"],"additionalProperties":false},"effect":"read","scope":"calls:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Explicit calls and tasks read authority"],"outputMeaning":"Current grounded choices, source basis, existing task and eligible staff; no automatic execution.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"adopt_call_commitment","title":"Accept reviewed call commitment","description":"Explicitly adopt selected grounded proposals into the unchanged existing CRM review task.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"callId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"taskVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"selectedIndexes":{"type":"array","items":{"type":"integer","minimum":0,"maximum":19},"minItems":1,"maxItems":20,"uniqueItems":true},"title":{"type":"string","minLength":1,"maxLength":160},"completionCriteria":{"type":"string","minLength":1,"maxLength":3000},"assigneeId":{"type":"string","minLength":1,"maxLength":200},"dueAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"}},"required":["expectedDealerId","callId","basisHash","taskVersion","selectedIndexes","title","completionCriteria","assigneeId","dueAt"],"additionalProperties":false},"effect":"write","scope":"tasks:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Explicit calls and tasks read authority; tasks write authority","Current exact source and unchanged task","Active assignee and UTC deadline"],"outputMeaning":"Existing canonical task, immutable source hashes and exact retry receipt; no call, message, visit or outcome execution.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_reply_followup_context","title":"Review a customer response for follow-up","description":"Read the recorded customer response, original vehicle and current responsibility before assigning the next internal CRM action.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"responseId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","responseId"],"additionalProperties":false},"effect":"read","scope":"replies:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Reply, inquiry, case, task and evidence read authority"],"outputMeaning":"Current response version, review basis, eligible staff and existing source-linked task. A completed original commitment remains historical lineage.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"create_reply_followup","title":"Assign customer response follow-up","description":"Create or recover one assigned classic CRM task from the reviewed customer response, with an explicit deadline and completion guidance.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"responseId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"assigneeId":{"type":"string","minLength":1,"maxLength":200},"dueAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"},"title":{"type":"string","minLength":1,"maxLength":160},"completionCriteria":{"type":"string","minLength":1,"maxLength":3000}},"required":["expectedDealerId","responseId","basisHash","assigneeId","dueAt","title","completionCriteria"],"additionalProperties":false},"effect":"write","scope":"tasks:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Reply, inquiry, case, task and evidence read authority","Task write authority","Reviewed response basis and active dealership assignee","Explicit UTC deadline and retained idempotency key"],"outputMeaning":"One source-linked CRM task and exact command receipt. Existing work is reused without overwriting it. No customer contact, appointment, sale or automatic completion of the original task.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"withdraw_evidence","title":"Withdraw accepted observation","description":"Withdraw an accepted task observation with a reason and invalidate dependent internal replies.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"taskId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":1000}},"required":["expectedDealerId","taskId","version","reason"],"additionalProperties":false},"effect":"write","scope":"evidence:review","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Existing review authority","Current accepted task version","Idempotency key"],"outputMeaning":"Returned work and retained original evidence; dependent replies become unusable.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_evidence","title":"Read authorized evidence","description":"Retrieve an evidence artifact within the actor's scope.","inputSchema":{"type":"object","properties":{"evidenceId":{"type":"string","minLength":1,"maxLength":200}},"required":["evidenceId"],"additionalProperties":false},"effect":"read","scope":"evidence:read","actorKinds":["buyer","agent","staff"],"requiresOwner":false,"prerequisites":["Evidence authority"],"outputMeaning":"Staff-supplied evidence with provenance; not independent mechanical certification.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_retention","title":"Preview completed-work retention","description":"Read a bounded maintenance preview without changing work.","inputSchema":{"type":"object","properties":{"olderThanDays":{"type":"integer","minimum":1,"maximum":3650}},"required":[],"additionalProperties":false},"effect":"read","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session"],"outputMeaning":"Counts of eligible archived records; active work and fresh evidence remain hot.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_archive","title":"Read retained operator records","description":"Page through this dealer's immutable archive. Export each page locally if needed.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["cases","tasks","evidence","visits","quotes","offers","receipts","events","missions","runs","agentKeys"]},"after":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100}},"required":[],"additionalProperties":false},"effect":"read","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session"],"outputMeaning":"Retained historical records with credentials and replay hashes excluded.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_workspace","title":"Read dealer workspace","description":"Read the authorized dealer's case and human-work queue.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"effect":"read","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session"],"outputMeaning":"Current work queue for one dealer.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_operating_brief","title":"Read dealership operating brief","description":"Read real inventory, lead progress, source coverage, durable missions and connector boundaries without lead contact details.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"effect":"read","scope":"operations:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Dealer operations authority"],"outputMeaning":"Sourced operational exceptions. Recorded outcomes are not proof of contact delivery, arrival, funding or incremental profit.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"simulate_operations","title":"Simulate dealer procedures","description":"Preview internal mission changes against current source data and optional bounded policy settings.","inputSchema":{"type":"object","properties":{"policy":{"type":"object","properties":{"scheduled":{"type":"boolean"},"leadResponseMinutes":{"type":"integer","minimum":1,"maximum":1440},"leadFollowthroughHours":{"type":"integer","minimum":1,"maximum":720},"feedFreshHours":{"type":"integer","minimum":1,"maximum":720},"requiredEvidence":{"type":"array","items":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"minItems":1,"maxItems":10,"uniqueItems":true},"maxNewMissions":{"type":"integer","minimum":1,"maximum":50}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false},"effect":"read","scope":"operations:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Dealer operations authority"],"outputMeaning":"A current-data plan with a basis hash; no records or external actions are changed.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"run_operations","title":"Reconcile internal dealer missions","description":"Apply a current simulation, creating or resolving internal missions from canonical source evidence.","inputSchema":{"type":"object","properties":{"basisHash":{"type":"string","minLength":1,"maxLength":128}},"required":["basisHash"],"additionalProperties":false},"effect":"write","scope":"operations:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current simulation basis","Idempotency key"],"outputMeaning":"Internal work and source-backed resolution only. No messages, paid model runs, spending or physical work.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"claim_mission","title":"Take responsibility for a mission","description":"Assign an unowned mission to this authenticated staff member or agent.","inputSchema":{"type":"object","properties":{"missionId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["missionId","version"],"additionalProperties":false},"effect":"write","scope":"operations:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current mission version","Idempotency key"],"outputMeaning":"Operational ownership; this is not a physical staff attestation.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"release_mission","title":"Release mission ownership","description":"The assigned operator or account owner releases work for reassignment.","inputSchema":{"type":"object","properties":{"missionId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":1000}},"required":["missionId","version","reason"],"additionalProperties":false},"effect":"write","scope":"operations:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Mission owner or account owner","Current version","Idempotency key"],"outputMeaning":"Mission remains open and can be claimed by another operator.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"block_mission","title":"Record a mission blocker","description":"Record why assigned work cannot proceed; blockers do not count as success.","inputSchema":{"type":"object","properties":{"missionId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":1000}},"required":["missionId","version","reason"],"additionalProperties":false},"effect":"write","scope":"operations:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Mission owner or account owner","Current version","Idempotency key"],"outputMeaning":"A visible unresolved exception with the recorded reason.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"defer_mission","title":"Defer an assigned mission","description":"Defer internal attention to a bounded future time and retain the reason.","inputSchema":{"type":"object","properties":{"missionId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"until":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"},"reason":{"type":"string","minLength":1,"maxLength":1000}},"required":["missionId","version","until","reason"],"additionalProperties":false},"effect":"write","scope":"operations:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Mission owner or account owner","Current version","Idempotency key"],"outputMeaning":"Work remains unresolved and resumes on the first reconciliation after the specified time.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"start_readiness","title":"Start vehicle readiness","description":"Create required evidence work for a vehicle in the authenticated dealer's inventory.","inputSchema":{"type":"object","properties":{"vehicleKey":{"type":"string","minLength":1,"maxLength":300},"requiredEvidence":{"type":"array","items":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"minItems":0,"maxItems":10,"uniqueItems":true}},"required":["vehicleKey"],"additionalProperties":false},"effect":"write","scope":"tasks:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Dealer vehicle authority","Idempotency key"],"outputMeaning":"Readiness work created or reused; no claim that inspections are complete.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_deal_attention","title":"Read deal attention","description":"Read elapsed delivery targets and source changes on existing deal commitments.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId"],"additionalProperties":false},"effect":"read","scope":"stock:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock and task read authority","Manager overview for staff"],"outputMeaning":"Bounded read-only deal Attention with explicit coverage and source destinations. No task, verification, funding or delivery is inferred or created.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_deal_followup_context","title":"Review deal follow-up","description":"Review an exact stock-linked deal and stock, canonical customer, current sources and existing task.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"dealId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","stockId","dealId"],"additionalProperties":false},"effect":"read","scope":"stock:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock and task read authority","Exact same-dealer and same-stock records"],"outputMeaning":"Reviewed source context and task history. Deal status is worksheet metadata, not title verification, funding or delivery.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"create_deal_followup","title":"Assign deal follow-up","description":"Create or recover one assigned classic task from an explicitly reviewed deal and stock.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"dealId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"assigneeId":{"type":"string","minLength":1,"maxLength":200},"dueAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"},"title":{"type":"string","minLength":1,"maxLength":160},"completionCriteria":{"type":"string","minLength":1,"maxLength":3000}},"required":["expectedDealerId","stockId","dealId","basisHash","assigneeId","dueAt","title","completionCriteria"],"additionalProperties":false},"effect":"write","scope":"tasks:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock/task read and task write authority","Explicit assignee and UTC deadline","Reviewed source basis and idempotency key"],"outputMeaning":"One existing classic task and receipt. Existing work is recovered unchanged; no customer contact, funding or delivery occurs.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"review_deal_followup","title":"Re-review deal follow-up","description":"Explicitly review changed source records and current task details; reopening closed or archived work requires an explicit choice.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"dealId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"taskId":{"type":"string","minLength":1,"maxLength":200},"taskVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"assigneeId":{"type":["string","null"],"minLength":1,"maxLength":200},"dueAt":{"type":["string","null"],"minLength":1,"maxLength":40,"format":"date-time"},"title":{"type":"string","minLength":1,"maxLength":160},"completionCriteria":{"type":"string","minLength":0,"maxLength":3000},"reason":{"type":"string","minLength":1,"maxLength":1000},"reopen":{"type":"boolean"}},"required":["expectedDealerId","stockId","dealId","basisHash","taskId","taskVersion","assigneeId","dueAt","title","completionCriteria","reason","reopen"],"additionalProperties":false},"effect":"write","scope":"tasks:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock/task read and task write authority","Exact current task version and reviewed source basis","Explicit reason, assignment, deadline and reopen choice","Idempotency key"],"outputMeaning":"Appended source review and versioned task. Closed work stays closed unless explicitly reopened; task completion remains a staff report.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_document_attention","title":"Read document attention","description":"Read overdue unowned title checklists and source changes on existing document commitments.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId"],"additionalProperties":false},"effect":"read","scope":"stock:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock and task read authority","Manager overview for staff"],"outputMeaning":"Bounded read-only document Attention with explicit coverage and source destinations. No task, verification, funding or delivery is inferred or created.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"list_document_followup_sources","title":"Find document follow-up sources","description":"List exact same-stock linked deal and document pairs for current source review, without customer contact values or worksheet details.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"cursor":{"type":"string","minLength":1,"maxLength":400},"limit":{"type":"integer","minimum":1,"maximum":50}},"required":["expectedDealerId"],"additionalProperties":false},"effect":"read","scope":"stock:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock and task read authority","Use returned keyset cursor for subsequent pages"],"outputMeaning":"Bounded source IDs, labels, worksheet statuses and deadlines with customerLinked. Pairs may be completed or unavailable; get_document_followup_context decides current eligibility. No task is created.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"get_document_followup_context","title":"Review document follow-up","description":"Review an exact stock-linked deal and document, canonical customer, current sources and existing task.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"dealId":{"type":"string","minLength":1,"maxLength":200},"documentId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","stockId","dealId","documentId"],"additionalProperties":false},"effect":"read","scope":"stock:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock and task read authority","Exact same-dealer and same-stock records"],"outputMeaning":"Reviewed source context and task history. Document status is worksheet metadata, not title verification, funding or delivery.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"create_document_followup","title":"Assign document follow-up","description":"Create or recover one assigned classic task from an explicitly reviewed deal and document.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"dealId":{"type":"string","minLength":1,"maxLength":200},"documentId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"assigneeId":{"type":"string","minLength":1,"maxLength":200},"dueAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"},"title":{"type":"string","minLength":1,"maxLength":160},"completionCriteria":{"type":"string","minLength":1,"maxLength":3000}},"required":["expectedDealerId","stockId","dealId","documentId","basisHash","assigneeId","dueAt","title","completionCriteria"],"additionalProperties":false},"effect":"write","scope":"tasks:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock/task read and task write authority","Explicit assignee and UTC deadline","Reviewed source basis and idempotency key"],"outputMeaning":"One existing classic task and receipt. Existing work is recovered unchanged; no customer contact, funding or delivery occurs.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"review_document_followup","title":"Re-review document follow-up","description":"Explicitly review changed source records and current task details; reopening closed or archived work requires an explicit choice.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"dealId":{"type":"string","minLength":1,"maxLength":200},"documentId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"taskId":{"type":"string","minLength":1,"maxLength":200},"taskVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"assigneeId":{"type":["string","null"],"minLength":1,"maxLength":200},"dueAt":{"type":["string","null"],"minLength":1,"maxLength":40,"format":"date-time"},"title":{"type":"string","minLength":1,"maxLength":160},"completionCriteria":{"type":"string","minLength":0,"maxLength":3000},"reason":{"type":"string","minLength":1,"maxLength":1000},"reopen":{"type":"boolean"}},"required":["expectedDealerId","stockId","dealId","documentId","basisHash","taskId","taskVersion","assigneeId","dueAt","title","completionCriteria","reason","reopen"],"additionalProperties":false},"effect":"write","scope":"tasks:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock/task read and task write authority","Exact current task version and reviewed source basis","Explicit reason, assignment, deadline and reopen choice","Idempotency key"],"outputMeaning":"Appended source review and versioned task. Closed work stays closed unless explicitly reopened; task completion remains a staff report.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_stock_cost_context","title":"Read private stock costs","description":"Review one stockbook vehicle's linked expenses, recon, deal cost basis and source references without publishing private stock.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200}},"required":["expectedDealerId","stockId"],"additionalProperties":false},"effect":"read","scope":"stock:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current dealership stock authority"],"outputMeaning":"Recorded cost subtotal, explicit unknowns and source versions. Worksheet amounts, payment records and physical readiness are distinct.","retryBehavior":"Safe to retry; returned facts can change."},{"name":"save_stock_record","title":"Save a record linked to stock","description":"Save an exact stock-linked recon job, expense, deal or document record with reviewed source versions and an immutable command receipt.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"collection":{"type":"string","enum":["recon","expenses","deals","documents"]},"id":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":0,"maximum":9007199254740991},"data":{"type":"object","properties":{"title":{"type":"string","minLength":0,"maxLength":160},"vehicle":{"type":"string","minLength":0,"maxLength":200},"category":{"type":"string","minLength":0,"maxLength":160},"status":{"type":"string","minLength":0,"maxLength":160},"priority":{"type":"string","minLength":0,"maxLength":160},"vendor":{"type":"string","minLength":0,"maxLength":160},"assignee":{"type":"string","minLength":0,"maxLength":160},"estimatedCost":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"actualCost":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"dueDate":{"type":"string","minLength":0,"maxLength":160},"completedDate":{"type":"string","minLength":0,"maxLength":160},"notes":{"type":"string","minLength":0,"maxLength":3000},"amount":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"expenseDate":{"type":"string","minLength":0,"maxLength":160},"paymentMethod":{"type":"string","minLength":0,"maxLength":160},"reference":{"type":"string","minLength":0,"maxLength":160},"contact":{"type":"string","minLength":0,"maxLength":160},"paymentType":{"type":"string","minLength":0,"maxLength":160},"salePrice":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"vehicleCost":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"discount":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"tradeAllowance":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"tradePayoff":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"downPayment":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"tax":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"docFee":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"registration":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"otherFees":{"type":["number","string"],"minimum":0,"maximum":100000000,"maxLength":40},"apr":{"type":["number","string"],"minimum":0,"maximum":100,"maxLength":40},"termMonths":{"type":["number","string"],"minimum":1,"maximum":120,"maxLength":40},"lender":{"type":"string","minLength":0,"maxLength":160},"deliveryDate":{"type":"string","minLength":0,"maxLength":160},"dealNumber":{"type":"string","minLength":0,"maxLength":160},"receivedDate":{"type":"string","minLength":0,"maxLength":160},"storageLocation":{"type":"string","minLength":0,"maxLength":300}},"required":[],"additionalProperties":false},"costKind":{"type":"string","enum":["acquisition","reconditioning","transport","other"]},"confirmAmount":{"type":"boolean"},"useCostBasis":{"type":"boolean"}},"required":["expectedDealerId","stockId","basisHash","collection","id","version","data"],"additionalProperties":false},"effect":"write","scope":"stock:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock read/write authority","Reviewed stock basis and exact record version","Explicit amount confirmation for expenses","Idempotency key"],"outputMeaning":"One canonical classic record, exact stock link and receipt. Confirmed expenses contribute once; later cost changes can make a deal estimate stale. No payment, funding or delivery occurs.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"adopt_stock_cost","title":"Adopt an acquisition or recon cost","description":"Explicitly adopt a reviewed acquisition or recon amount into one canonical expense, or attach its existing matching invoice.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"basisHash":{"type":"string","minLength":64,"maxLength":64},"sourceCollection":{"type":"string","enum":["vehicles","recon"]},"sourceId":{"type":"string","minLength":1,"maxLength":200},"sourceVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"amountCents":{"type":"integer","minimum":0,"maximum":10000000000},"title":{"type":"string","minLength":1,"maxLength":160},"vendor":{"type":"string","minLength":0,"maxLength":160},"reference":{"type":"string","minLength":0,"maxLength":160},"paymentStatus":{"type":"string","enum":["Pending","Recorded paid"]},"existingExpenseId":{"type":"string","minLength":1,"maxLength":200},"existingExpenseVersion":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["expectedDealerId","stockId","basisHash","sourceCollection","sourceId","sourceVersion","amountCents","title","vendor","reference","paymentStatus"],"additionalProperties":false},"effect":"write","scope":"stock:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current stock read/write authority","Reviewed exact source and deliberate amount, including zero","No duplicate adoption or conflicting invoice","Idempotency key"],"outputMeaning":"A retained expense and source attribution, reused across retries. Acquisition and recon references do not contribute a second time; recorded paid does not prove settlement.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"start_stock_readiness","title":"Start private stock readiness","description":"Request existing staff evidence checks for an acquired stockbook vehicle before it has a public listing.","inputSchema":{"type":"object","properties":{"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"stockId":{"type":"string","minLength":1,"maxLength":200},"stockVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"requiredEvidence":{"type":"array","items":{"type":"string","enum":["availability_check","photo","condition_check","odometer_check","keys_check","tire_check","title_check","recon","document_check","delivery_check"]},"minItems":1,"maxItems":10,"uniqueItems":true}},"required":["expectedDealerId","stockId","stockVersion","requiredEvidence"],"additionalProperties":false},"effect":"write","scope":"stock:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Current private stock and case/task/evidence authority","Exact stock source version","Idempotency key"],"outputMeaning":"Private readiness case and existing physical tasks, created or reused. Accepted observations mean required checks were reviewed; they do not publish inventory or establish sale, funding or delivery.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"claim_task","title":"Claim physical work","description":"An authenticated staff member takes responsibility for a task.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["taskId","version"],"additionalProperties":false},"effect":"write","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session","Current task version","Idempotency key"],"outputMeaning":"Staff assignment; agent credentials cannot impersonate physical staff.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"release_task","title":"Release physical work","description":"The assigned staff member or actual dealer owner releases an unfinished physical task with a reason.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":1000,"pattern":"\\S"}},"required":["taskId","version","reason"],"additionalProperties":false},"effect":"write","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Assigned staff or actual dealer owner","Current task version","Reason","Idempotency key"],"outputMeaning":"Unassigns unfinished work; unavailable vehicles stay cancelled. Previous evidence remains history and cannot satisfy a new submission round.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"submit_task","title":"Submit staff observation","description":"Submit observations and evidence from an authenticated staff member.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"summary":{"type":"string","minLength":1,"maxLength":2000},"facts":{"type":"object","properties":{"availability":{"type":"string","enum":["available","unavailable","unknown"]},"odometerMiles":{"type":"integer","minimum":0,"maximum":2000000},"keyCount":{"type":"integer","minimum":0,"maximum":9},"tireTread32nds":{"type":"integer","minimum":0,"maximum":32},"warningLights":{"type":"boolean"},"titleStatus":{"type":"string","enum":["unknown","in_hand","lien","absent"]}},"required":[],"additionalProperties":false},"evidenceIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"minItems":0,"maxItems":5,"uniqueItems":true},"actualCostCents":{"type":"integer","minimum":0,"maximum":1000000000}},"required":["taskId","version","summary"],"additionalProperties":false},"effect":"write","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session","Current task version","Idempotency key"],"outputMeaning":"Staff attestation pending review; recorded costs do not spend money.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"review_task","title":"Review submitted evidence","description":"Accept or return a submission, or explicitly re-review an accepted observation without changing its capture time; an AI review remains labeled as such. Supplying expectedDealerId opts into recoverable accepted-only re-review.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"decision":{"type":"string","enum":["accept","return"]},"reason":{"type":"string","minLength":1,"maxLength":1000},"expectedDealerId":{"type":"string","minLength":1,"maxLength":200}},"required":["taskId","version","decision","reason"],"additionalProperties":false},"effect":"write","scope":"evidence:review","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Review authority","Current task version","Idempotency key"],"outputMeaning":"Review result and resumed case dependencies; not independent certification.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"upload_evidence","title":"Upload evidence image","description":"Attach a bounded JPEG, PNG or WebP image to an authorized staff task. Recoverable uploads include expectedDealerId, version and submissionRound together to preserve the original claim.","inputSchema":{"type":"object","properties":{"taskId":{"type":"string","minLength":1,"maxLength":200},"expectedDealerId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"submissionRound":{"type":"string","minLength":1,"maxLength":200},"mimeType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"dataBase64":{"type":"string","minLength":1,"maxLength":700000,"pattern":"^[A-Za-z0-9+/]+={0,2}$"},"caption":{"type":"string","minLength":1,"maxLength":300},"observedAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"}},"required":["taskId","mimeType","dataBase64","caption"],"additionalProperties":false},"effect":"write","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session","Validated image bytes","Idempotency key"],"outputMeaning":"Stored image and staff provenance; media bytes must pass service validation.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"confirm_visit","title":"Confirm proposed visit","description":"Confirm readiness and a proposed time after conflict and vehicle checks.","inputSchema":{"type":"object","properties":{"visitId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"ready":{"type":"boolean","const":true}},"required":["visitId","version","ready"],"additionalProperties":false},"effect":"write","scope":"visits:write","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session","Current visit version","Available vehicle and time","Idempotency key"],"outputMeaning":"Dealer-confirmed visit; does not imply buyer arrival or send a message.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"respond_visit","title":"Respond to a confirmed visit","description":"The authenticated buying-case credential holder acknowledges or declines the dealer-confirmed time. Dealer accounts cannot stand in for that holder.","inputSchema":{"type":"object","properties":{"visitId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"decision":{"type":"string","enum":["acknowledge","decline"]}},"required":["visitId","version","decision"],"additionalProperties":false},"effect":"write","scope":"cases:write","actorKinds":["buyer"],"requiresOwner":false,"prerequisites":["Credential for this buying case","Current visit version","Confirmed future visit","Idempotency key"],"outputMeaning":"Case-credential-holder response, not verified buyer identity, message delivery or attendance. Declining cancels this visit.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"record_visit_attendance","title":"Record observed visit attendance","description":"An authenticated staff member records an actual arrival or an elapsed appointment no-show. A later arrival can supersede a recorded no-show while retaining that observation.","inputSchema":{"type":"object","properties":{"visitId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"status":{"type":"string","enum":["arrived","no_show"]},"observedAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"}},"required":["visitId","version","status","observedAt"],"additionalProperties":false},"effect":"write","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session","Current visit version","Confirmed visit and open case","Past observation within the appointment window","Idempotency key"],"outputMeaning":"Staff-reported attendance with observation and recording times. No independent verification, message delivery, purchase or funding is implied.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"record_quote","title":"Record dealer quote","description":"Record a revisioned quote with explicit known and unknown charges.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"priceCents":{"type":"integer","minimum":0,"maximum":1000000000},"documentFeeCents":{"type":"integer","minimum":0,"maximum":1000000000},"registrationFeeCents":{"type":"integer","minimum":0,"maximum":1000000000},"transportFeeCents":{"type":"integer","minimum":0,"maximum":1000000000},"taxRateBps":{"type":"integer","minimum":0,"maximum":10000},"otherFees":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":100},"amountCents":{"type":"integer","minimum":0,"maximum":1000000000}},"required":["label","amountCents"],"additionalProperties":false},"minItems":0,"maxItems":20,"uniqueItems":true},"feesComplete":{"type":"boolean"},"expiresAt":{"type":"string","minLength":1,"maxLength":40,"format":"date-time"}},"required":["caseId","priceCents","documentFeeCents","feesComplete"],"additionalProperties":false},"effect":"write","scope":"quotes:write","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Quote authority","Idempotency key"],"outputMeaning":"Dealer quote record and expiry; no binding acceptance, finance approval or payment.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"restore_vehicle","title":"Restore dealer vehicle availability","description":"Staff explicitly restores a dealer-recorded sold vehicle that still exists in the live inventory feed, recording a reason.","inputSchema":{"type":"object","properties":{"vehicleKey":{"type":"string","minLength":1,"maxLength":300},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":1000}},"required":["vehicleKey","version","reason"],"additionalProperties":false},"effect":"write","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session","Current vehicle operation version","Exact vehicle in live dealer inventory","Idempotency key"],"outputMeaning":"Clears the dealer-recorded sold status. Does not independently verify availability, reopen a closed buying case, or alter a completed sale.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"record_outcome","title":"Record dealer-reported outcome","description":"Record a contacted, appointment, sold or lost outcome with the current case version.","inputSchema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1,"maxLength":200},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"outcome":{"type":"string","enum":["contacted","appointment","sold","lost"]},"note":{"type":"string","minLength":1,"maxLength":1000}},"required":["caseId","version","outcome","note"],"additionalProperties":false},"effect":"write","scope":"staff","actorKinds":["staff"],"requiresOwner":false,"prerequisites":["Staff session","Current case version","Idempotency key"],"outputMeaning":"Dealer-reported outcome, not independent proof of delivery or financial settlement.","retryBehavior":"Reuse the same idempotencyKey with the identical input after an uncertain response. Changed input requires a new key."},{"name":"get_policy","title":"Read dealer policy","description":"Read the authenticated dealer's configured coordination policy.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"effect":"read","scope":"tasks:read","actorKinds":["agent","staff"],"requiresOwner":false,"prerequisites":["Authenticated dealer authority"],"outputMeaning":"Configured policy and version.","retryBehavior":"Safe to retry; returned facts can change."}],"protocol":"dealer-operator-v1","execution":"Durable, permission-checked actions for external agents. Dealers may separately enable a recurring evidence coordinator with bounded actions and explicit model usage limits."}