complete_focus_session
ChatGPTSummarize a completed or ended StepCue focus session. Use only the provided session counts, task label, and focus minutes. Do not request saved history, analytics, or conversation history. Return a short completion summary and one small next-session suggestion. Do not create dashboards, streaks, rankings, long coaching text, or content that completes the user task.
complete_focus_session
ChatGPTSummarize a completed or ended StepCue focus session. Use only the provided session counts, task label, and focus minutes. Do not request saved history, analytics, or conversation history. Return a short completion summary and one small next-session suggestion. Do not create dashboards, streaks, rankings, long coaching text, or content that completes the user task.
create_focus_session
ChatGPTCreate or open the StepCue task-start app. Use this when the user wants to start, plan, or open a focused study/work timer from a task list or a short task description. If the latest user message has a task and a time, create a session immediately. If it has a task but no time, ask only: "How much time do you want to give this? For example: 20 minutes, 45 minutes, 2 hours, or say you choose." If it has time but no concrete task, ask what the user wants to work on. Pass latestUserMessage only as the exact latest user message. Do not include assistant messages, previous user messages, summaries, raw chat history, or any extra context. Do not reuse an earlier task for a fresh generic request like "I want a 5 hour study session" unless the latest message clearly says same, that, these, previous, continue, or is a direct answer to the app asking for duration. When the user explicitly continues prior tasks, set reusePreviousTaskContext=true. Otherwise omit prior task context. If the user says "you choose", "I do not know", "pick for me", or still does not provide a time after being asked once, choose a sensible duration and set letAiDecideDuration=true. If the user says they do not know where to start, feels overwhelmed, or dumps several big tasks without a clear time, choose one best first task. Do not create a 2-hour plan for everything. When letAiDecideDuration=true and the user gave multiple big tasks without a specific time, choose the best first focus session instead of creating a full schedule. Pick one priority task, prefer 25-45 minutes, and leave the other tasks for later. Only split multiple big tasks across blocks when the user provided a clear total time. If the task quantity is unrealistic for the time, make a progress session. Do not promise completion; prioritize best-fit, highest-impact, or first useful progress. Respect explicit constraints: use requested durations up to 120 minutes, cap longer active sessions to the first 120 minutes, honor no breaks, break length, and break interval requests. Default breaks should be light. Do not add breaks under 60 minutes unless the user asks. For 60-120 minute sessions, use at most one break unless the user explicitly asked for a break interval. When building timerBlocks, split multiple tasks into a few concrete focus/break blocks. Keep focus blocks at 90 minutes or less, break blocks at 30 minutes or less, and make durations add up to durationMinutes. Keep instructions short, practical, and task-specific. The widget shows one block at a time, so every block title and instruction must stand alone. Do not write, solve, draft, send, or complete homework, essays, emails, applications, code, or other task content unless the user explicitly asks for that separate help. Do not write a separate numbered plan, schedule, or task instructions in chat after calling this tool. The widget is the plan. After a successful session creation, reply with one short sentence only. Do not use this tool for severe distress, self-harm, medical emergencies, or unsafe requests such as using pills to stay awake. Respond safely in chat instead. After a successful session creation, keep the assistant response brief, such as "I started a focus session for this."
create_focus_session
ChatGPTCreate or open the StepCue task-start app. Use this when the user wants to start, plan, or open a focused study/work timer from a task list or a short task description. If the latest user message has a task and a time, create a session immediately. If it has a task but no time, ask only: "How much time do you want to give this? For example: 20 minutes, 45 minutes, 2 hours, or say you choose." If it has time but no concrete task, ask what the user wants to work on. Pass latestUserMessage only as the exact latest user message. Do not include assistant messages, previous user messages, summaries, raw chat history, or any extra context. Do not reuse an earlier task for a fresh generic request like "I want a 5 hour study session" unless the latest message clearly says same, that, these, previous, continue, or is a direct answer to the app asking for duration. When the user explicitly continues prior tasks, set reusePreviousTaskContext=true. Otherwise omit prior task context. If the user says "you choose", "I do not know", "pick for me", or still does not provide a time after being asked once, choose a sensible duration and set letAiDecideDuration=true. If the user says they do not know where to start, feels overwhelmed, or dumps several big tasks without a clear time, choose one best first task. Do not create a 2-hour plan for everything. When letAiDecideDuration=true and the user gave multiple big tasks without a specific time, choose the best first focus session instead of creating a full schedule. Pick one priority task, prefer 25-45 minutes, and leave the other tasks for later. Only split multiple big tasks across blocks when the user provided a clear total time. If the task quantity is unrealistic for the time, make a progress session. Do not promise completion; prioritize best-fit, highest-impact, or first useful progress. Respect explicit constraints: use requested durations up to 120 minutes, cap longer active sessions to the first 120 minutes, honor no breaks, break length, and break interval requests. Default breaks should be light. Do not add breaks under 60 minutes unless the user asks. For 60-120 minute sessions, use at most one break unless the user explicitly asked for a break interval. When building timerBlocks, split multiple tasks into a few concrete focus/break blocks. Keep focus blocks at 90 minutes or less, break blocks at 30 minutes or less, and make durations add up to durationMinutes. Keep instructions short, practical, and task-specific. The widget shows one block at a time, so every block title and instruction must stand alone. Do not write, solve, draft, send, or complete homework, essays, emails, applications, code, or other task content unless the user explicitly asks for that separate help. Do not write a separate numbered plan, schedule, or task instructions in chat after calling this tool. The widget is the plan. After a successful session creation, reply with one short sentence only. Do not use this tool for severe distress, self-harm, medical emergencies, or unsafe requests such as using pills to stay awake. Respond safely in chat instead. After a successful session creation, keep the assistant response brief, such as "I started a focus session for this."
handle_distraction
ChatGPTCreate a short reset action when the user says they got distracted or the widget requests a distraction reset. Use only the current step title, current step instruction, and distraction count. Do not request or pass full conversation history. Return one practical physical reset and one concrete resume action for the current block. Keep the copy short, calm, and non-judgmental. Do not re-plan the session or add general productivity advice.
handle_distraction
ChatGPTCreate a short reset action when the user says they got distracted or the widget requests a distraction reset. Use only the current step title, current step instruction, and distraction count. Do not request or pass full conversation history. Return one practical physical reset and one concrete resume action for the current block. Keep the copy short, calm, and non-judgmental. Do not re-plan the session or add general productivity advice.
recover_step
ChatGPTCreate a smaller recovery action for the current focus block when the user says they are stuck or the widget requests recovery. Use only the current step title, current step instruction, optional reason, and attempt count. Do not request or pass full conversation history. Return one short action that lowers the scope or difficulty so the student can restart the current block. Do not solve homework, write essays, draft emails, write code, give final answers, or add motivational paragraphs. If attemptCount shows repeated recovery, make the action smaller instead of re-planning the whole session.
recover_step
ChatGPTCreate a smaller recovery action for the current focus block when the user says they are stuck or the widget requests recovery. Use only the current step title, current step instruction, optional reason, and attempt count. Do not request or pass full conversation history. Return one short action that lowers the scope or difficulty so the student can restart the current block. Do not solve homework, write essays, draft emails, write code, give final answers, or add motivational paragraphs. If attemptCount shows repeated recovery, make the action smaller instead of re-planning the whole session.