Resolve a vague part request
resolve_requestEntry point for a vague natural-language repair need you will answer, e.g. "my T490 battery is dying". Use search_parts instead for keyword/exploratory browsing without committing to one clarifying question. Use get_part instead for an exact OEM part number. Use get_model_parts instead when you already have a model slug. A part number in query returns status resolved with that part and next = get_part_fits (type ignored). Otherwise type, if given, overrides any type word in query; else the type word is used; the rest must name one model. resolved: the model, candidate_count, first 10 candidates (compact), and next = get_model_parts with model and type (asks which part if type is missing). needs_clarification: ONE clarifying_question to ask instead of guessing (5G vs Wi-Fi, Intel vs AMD, generation, touch), up to 40 candidate models, next = retry with the chosen slug. not_found has fit_status no_documented_fit (no document, not incompatibility); did_you_mean offers a spelling fix to retry, never auto-applied.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"query": "<query>"
},
"name": "resolve_request"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional part type, case-insensitive, as listed by get_coverage, e.g. "Battery", "Screen", "Keyboard", "Power Adapter", "SSD", "Memory". Overrides a type word in query; omit it to use the type word, or to be asked which part. | |
| query | Yes | Required. The user's words (max 200 characters): a model plus part, or an OEM part number with or without dashes, e.g. "T490 battery", "surface pro 11 screen", "L40094001", "01FR025". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| mode | No | ||
| next | No | ||
| part | No | ||
| match | No | ||
| model | No | ||
| query | Yes | ||
| status | Yes | ||
| license | No | ||
| message | No | ||
| outcome | No | Always present. One field to branch on for every tool: found | no_documented_fit (identified, but no OEM-documented fit; never means incompatible) | needs_clarification (ask the user; see clarifying_question/candidates) | not_found (nothing LPF covers matches). Full contract: /api/states | |
| part_type | No | ||
| terms_url | No | ||
| brand_note | No | ||
| candidates | No | ||
| fit_status | No | no_documented_fit: there is no fit or no result: LPF has no OEM document for it. Never means incompatible. not_asserted: a did-you-mean suggestion; no fit claim is made. | |
| attribution | No | ||
| request_url | No | ||
| suggestions | No | ||
| absence_note | No | ||
| data_revision | No | ||
| confidence_doc | No | ||
| candidate_count | No | ||
| clarifying_question | No |