{"ok":true,"site":{"host":"your-last-coach.vercel.app","url":"https://your-last-coach.vercel.app/#today","type":"live","desc":"A shared Training Plan workspace for an Athlete and Coach Agent.","tools":[{"name":"get_coaching_briefing","kind":"answer","impl":"imperative","description":"Start here for the bounded Coaching Briefing and structured interaction contract for this workspace.","title":"Get coaching briefing","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_training_plan","kind":"answer","impl":"imperative","description":"Retrieve the relevant date range from the current planVersion; use returned Planned Workout IDs in later calls and proposals.","title":"Get training plan","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"from":{"type":"string","format":"date","description":"First Planned Workout date to include, YYYY-MM-DD."},"to":{"type":"string","format":"date","description":"Last Planned Workout date to include, YYYY-MM-DD."}},"required":["from","to"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_workout_context","kind":"answer","impl":"imperative","description":"Inspect the prescription, result, and feedback for one returned Planned Workout ID before explaining what happened.","title":"Get workout context","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"workoutId":{"type":"string","minLength":1,"description":"Stable Planned Workout ID returned by get_training_plan."}},"required":["workoutId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"record_athlete_feedback","kind":"act","impl":"imperative","description":"Record the current Athlete message when it reports new workout experience; preserve the raw words and only explicitly stated structured fields before proposing related changes. The result includes evidenceRef; reuse that value verbatim in a later adaptation proposal. Reusing the same requestId returns the original feedback without recording twice.","title":"Record athlete feedback","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"description":"Stable idempotency key for this feedback report."},"relatedWorkoutId":{"type":"string","minLength":1,"description":"Stable Planned Workout ID returned by get_training_plan."},"rawText":{"type":"string","minLength":1,"description":"The Athlete’s natural-language statement, unchanged."},"reported":{"type":"object","properties":{"sessionRpe":{"type":"number","minimum":0,"maximum":10},"legFeel":{"type":"string","minLength":1},"painReported":{"type":"boolean"},"stoppedReason":{"type":"string","minLength":1}},"additionalProperties":false}},"required":["requestId","relatedWorkoutId","rawText"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_workout_adaptation_review","kind":"act","impl":"imperative","description":"Submit evidence-grounded rationale and exactly two ranked, structurally different options; open the on-page review; never apply a plan directly; the call returns immediately.","title":"Open workout adaptation review","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"reviewId":{"type":"string","minLength":1},"sourceWorkoutId":{"type":"string","minLength":1},"expectedPlanVersion":{"type":"integer","minimum":1},"evidenceRefs":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1}},"rationale":{"type":"object","properties":{"summary":{"type":"string","minLength":1},"counterEvidence":{"type":"string","minLength":1},"confidence":{"type":"string","enum":["low","moderate","high"]},"limitations":{"type":"array","minItems":1,"items":{"type":"string","minLength":1}}},"required":["summary","counterEvidence","confidence","limitations"],"additionalProperties":false},"recommended":{"$ref":"#/$defs/adaptationOption"},"alternative":{"$ref":"#/$defs/adaptationOption"}},"required":["reviewId","sourceWorkoutId","expectedPlanVersion","evidenceRefs","rationale","recommended","alternative"],"additionalProperties":false,"$defs":{"prescription":{"type":"object","properties":{"blocks":{"type":"array","minItems":1,"items":{"type":"object"}}},"required":["blocks"],"additionalProperties":false},"workoutChange":{"oneOf":[{"type":"object","properties":{"kind":{"const":"create"},"workout":{"type":"object"}},"required":["kind","workout"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"update"},"workoutId":{"type":"string","minLength":1},"changes":{"type":"object","properties":{"date":{"type":"string","format":"date"},"title":{"type":"string","minLength":1},"purpose":{"type":"string","minLength":1},"distanceKm":{"type":"number","exclusiveMinimum":0},"prescription":{"$ref":"#/$defs/prescription"}},"minProperties":1,"additionalProperties":false}},"required":["kind","workoutId","changes"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"delete"},"workoutId":{"type":"string","minLength":1}},"required":["kind","workoutId"],"additionalProperties":false}]},"adaptationOption":{"type":"object","properties":{"optionId":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"summary":{"type":"string","minLength":1},"tradeoff":{"type":"string","minLength":1},"workoutChanges":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/workoutChange"}}},"required":["optionId","label","summary","tradeoff","workoutChanges"],"additionalProperties":false}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"read_workout_adaptation_decision","kind":"answer","impl":"imperative","description":"Use the same reviewId after opening; poll only as needed until approved, declined, discuss_further, or cancelled; return the Athlete-controlled terminal outcome.","title":"Read workout adaptation decision","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"reviewId":{"type":"string","minLength":1}},"required":["reviewId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","favicon":"/favicons/your-last-coach.vercel.app.svg","apiSurface":"spec","toolCount":6}}