make_plan
Make a training plan
Use this when someone asks for a strength, gym, weightlifting or muscle-building program or workout plan, at a gym or at home. Builds all 26 weeks from Almost Fire's plan engine, the one the app uses: the split for their days, each session's exercises with sets, reps, rest and effort, a lighter week to end each block, and gentler swaps for anything they protect. No account needed. Ask how many days they can train first; fill the rest from what they've said and leave the others null. Do not use for running or race plans, sport-specific conditioning, diet plans or injury rehab.
输入参数goalsplitstyleprotectequipmentloveLiftsskipLiftsdaysPerWeek必填sessionMinutesbuildPriorities
save_plan
Save the plan to Almost Fire
Use this when the person wants to keep, save or start a plan make_plan made, or presses Save on its card. Saves the plan to their Almost Fire account, free: the first time it asks them to sign in, which makes their account. Send the answers make_plan used, so the saved plan is the one they saw. The card then opens their plan page in Almost Fire, where their first week starts. emailWeekly true also emails them each week's sessions on Monday mornings, until they start in the app. Do not use before make_plan has shown them a plan, or to change the plan of someone who already trains in Almost Fire.
输入参数goalsplitstyleprotectequipmentloveLiftsskipLiftsdaysPerWeek必填emailWeeklyidempotencyKeysessionMinutesbuildPriorities
show_exercise
Show an exercise
Use this when someone asks how to do an exercise, which muscles it works, or what to do instead. Shows it on the body map with its equipment, its cues and swaps that train the same thing. No account needed. Do not use to diagnose pain or to give rehab exercises.
输入参数exercise必填
Use this when the person asks what's on today or how today's session is going, and before logging a set. Reads today's session (or the next one) in their Almost Fire account with every exercise, its target and the sets logged, this week's sessions and training volume, and their food and weight so far today. Do not use for another day's session; use get_schedule and get_session.
无需输入参数。
get_schedule
Sessions in a range
Use this when the person asks what's coming up this week or next, or what they did on other days. Lists their sessions between two ISO times (from, to), each with its id, day, time and status. Do not use for today's session; use get_today.
输入参数to必填from必填
Use this when you need one session in full, by its id from get_today or get_schedule. Reads its exercises (slots) with each target, the exercises each slot allows, and the sets logged. Do not use to list sessions; use get_schedule.
输入参数sessionId必填
Use this when the person tells you a set they did. Give the session and slot from get_today or get_session, and the load and reps they said. Never invent a number. loadUnit kg or lb as they said it (label for a machine's own numbers); rir only if they say it. setNumber null logs the next set. Comes back with an Undo. Do not use to correct a set already logged; use edit_set.
输入参数rirload必填reps必填slot必填loadUnitsessionId必填setNumberidempotencyKey必填
Use this when the person corrects a set they already logged. Give its setId from get_today or get_session and only the values they change; null keeps the rest. Comes back with an Undo. Do not use to log a new set; use log_set.
输入参数rirloadrepssetId必填loadUnitidempotencyKey必填
Use this when the person asks to remove a set they logged by mistake. Give its setId. Comes back with an Undo. Do not use to change a set's numbers; use edit_set.
输入参数setId必填idempotencyKey必填
list_alternatives
Swaps for an exercise
Use this when the person wants a different exercise in a session (a busy machine, a sore joint, missing kit). Lists the swaps that train the same movement in that slot and week, best first, by sessionId and slot. Nothing changes; swap with swap_exercise. Do not use to explain how an exercise is done; use show_exercise.
输入参数slot必填sessionId必填
swap_exercise
Swap an exercise
Use this when the person asks to swap the exercise in a session. Give the sessionId and slot, and the exerciseKey they chose, or a same-movement one from list_alternatives when they leave it to you. The new exercise brings its own rules, and loads never carry over between exercises. untilWeek null swaps that session only; a week keeps the swap for that day through that program week. Comes back with an Undo. Do not use to move a session; use move_session.
输入参数slot必填sessionId必填untilWeekexerciseKey必填idempotencyKey必填
update_session
Start or finish a session
Use this when the person starts, finishes or skips a session, or says how it felt. status IN_PROGRESS starts it, DONE finishes it and SKIPPED skips it; feeling is 1 to 5; notes and gym as they say. Null leaves a field as it is. Comes back with an Undo. Do not use to move a session to another day; use move_session.
输入参数gymnotesstatusfeelingsessionId必填idempotencyKey必填
move_session
Move a session
Use this when the person asks to move a session to another day or time. Give its sessionId and the new start and end as ISO times. Comes back with an Undo. Do not use to skip a session; use update_session.
输入参数end必填start必填sessionId必填idempotencyKey必填
Use this when the person tells you about cardio they did: a run, a ride, the rower, a walk. Record cardio the person did, with the numbers they give: minutes always; distance, heart rate, level, incline, energy and intervals only when given. Never invent them. effort is a talk test: easy (could hold a conversation), steady (short sentences), hard (a few words). Give sessionId to count it in that session (it fills the session's planned cardio when it is the same exercise), or null for cardio on its own. Null startedAt is just finished. Cardio counts as minutes, never kilograms. Applied immediately with Undo. Do not use for a lifting set; use log_set.
输入参数kcalleveleffortinclineminutes必填intervalssessionIdstartedAtdistanceKmexerciseKey必填avgHeartRatemaxHeartRate另有 1 个
Use this when the person says how they feel before or after training, or tells you about pain or swelling. Record the person’s reported readiness and symptoms. symptoms.pec is pain anywhere (sharp means sharp pain or pulling) and symptoms.knee is swelling anywhere, whatever the body part. After a session they may also report feel, strength, effort (1–10 for the whole session), more (sets they could have added), areas and soreness (muscle, joint, sharp, swelling); also set pec or knee from soreness as the phone does: joint is knee ache, sharp is pec sharp, swelling is knee swollen, muscle leaves both clear. A morning check-in has no session: readiness is how they feel today (1 Flat, 2 Meh, 3 Okay, 4 Good, 5 On fire), morning is true, and behind lists what they say is behind it (sleep, work, sore, stress, family, sick, travel); log their weight with log_weight. How they feel the morning after a session is next (clear or worse) on that session’s check-in. Never infer medical clearance. Do not use to diagnose pain or to log their weight; use log_weight for weight.
输入参数notesymptoms必填readinesssessionIdidempotencyKey必填
Use this when the person tells you their weight. Give the weight and unit, and when (null is now). Targets follow the smoothed trend, never one reading. Comes back with an Undo. Do not use to set a weight goal.
输入参数unitweight必填measuredAtidempotencyKey必填
open_camera
Open the Almost Fire camera
Use this when the person wants to log a meal from a photo but hasn't attached one, or the app can't hand you their photo. Opens the Almost Fire camera in the chat: they take or choose a photo there, Stoke reads each food with its grams and calories, and Log saves it. Do not use when they've attached a photo; use read_meal_photo.
输入参数note
read_meal_photo
Read a meal photo
Use this when the person attaches a photo of food they ate or will eat. Reads it as the Almost Fire camera does: a plate or bowl comes back as each food with its grams, calories, macros and how sure the read is; a packet as its label per 100 g; a pot on a kitchen scale as its grams. Nothing is logged: read it back, take their corrections, then call log_foods with its logItems (or they tap Log on the card). Do not use for a photo that isn't food, or to judge anyone's body.
输入参数notephoto必填
read_meal_photo_upload
Read the camera's photo
The Almost Fire camera card's photo, read as read_meal_photo reads one. Only the card calls it.
输入参数noteimage必填mimeType必填
search_foods
Find their foods
Use this when the person tells you a food they ate without a photo, before log_foods. Find the person's own foods before anything else, by name or by kind: the words they used ("protein powder", "milk", "my usual bread"), not a brand you guess. mine is their saved foods that fit, each with an id, macros per 100 g, their usual grams (lastGrams), match (name: its name holds the words; kind: it is that kind of food, so "protein powder" finds their whey; word: only the last of their words, the one that says what it is, fits, so it is a different food of that sort, never theirs unless they say so) and lastEatenAt. When none fits by name, recent lists the saved foods they logged lately: read it too, because their food is often named by brand (a protein powder called Impact Lean Whey, a milk called Light Start). list is at most three plain foods from the food list, each with a foodKey; logging one saves it as a new food of theirs. Use their own food (mine or recent) when it is the same thing, or the kind of food they named (their milk for "milk", their whey for "protein powder"); a food that only sounds alike or shares a word is not it (corn flour is not corn, dark soy sauce is not dark chocolate). "My most recent" or "my usual" means the one they ate latest. Use list, an estimate or create_food only when none of theirs is it, and say it's new. Search before estimating, and log what it finds by grams. A recipe has recipe set: its foods and their grams, serves, cookedGrams and gramsLeft, what's left of the pot. Do not use to read a photo; use read_meal_photo.
输入参数query必填
Use this when the person has agreed what they ate and wants it logged. One entry per food: from a photo read (read_meal_photo's logItems, with their corrections), a saved food or recipe by id and grams (from search_foods), or an estimate with a name, serving, quantity and its numbers per serving. eatenAt null is now. Comes back with an Undo. Do not use before they've agreed the foods and amounts, or for a meal they're only planning.
输入参数items必填eatenAtidempotencyKey必填
delete_food_entry
Remove a food
Use this when the person asks to remove a food they logged by mistake. Give its entry id from get_nutrition. Comes back with an Undo. Do not use for a food they still ate; log the right amount instead.
输入参数entryId必填idempotencyKey必填
get_nutrition
Food for a day
Use this when the person asks what they've eaten or how their calories and protein are going, and before removing a logged food. Reads a day's food (date null is today): every entry with its id, the totals against the day's targets, their usual foods and saved recipes, and the weight trend. Do not use to log food; use log_foods.
输入参数date
show_progress_chart
Show a progress graph
Use this when the person asks to see their progress on a graph. Draws one of their Progress graphs from their records: lift_max or lift_volume per session for one exercise (key), weekly_volume, body_weight (90 days), cardio_distance, cardio_pace or cardio_heart_rate, daily_kcal or daily_protein (30 days). Training volume is the number that matters most. Do not use for sleep or heart-rate numbers, which stay in the Almost Fire app.
输入参数keynotemetric必填
Use this when the person asks how they're progressing, in numbers. Reads their Progress page: training volume by week, bests, each lift's estimated max and trend, sessions done, bodyweight and cardio, as the app shows them. Do not use for a graph; use show_progress_chart.
无需输入参数。
get_weekly_review
The Sunday review
Use this when the person asks how their week went or what changes next week. Reads the Sunday review of a program week (null is the latest): sessions, volume, new bests, the pace, each change Stoke made to next week with its reason, and what was kept and why. Those changes follow fixed rules: explain each from its reason, never invent another. Do not use for today's session; use get_today.
输入参数week
undo_review_change
Keep next week as planned
Use this when the person doesn't want one of the changes the Sunday review made to next week. Give the change's index from get_weekly_review. Next week goes back to the program's target for that change. Do not use for a change they made themselves; use undo.
输入参数week必填index必填idempotencyKey必填
Use this when the person wants to take back a change made here (a logged set, meal, weigh-in or any other) while its Undo is open. Give the undo.id the change came back with. Do not use for a change they made in the Almost Fire app itself.
输入参数undoId必填idempotencyKey必填