create_lesson_exercises
ChatGPTCRITICAL: Use this tool for the actual questions/exercises for a lesson section, including when the app asks for the next section. App messages may be short; read the app/model context for target language, level, enabled skills, and per-skill count. NEVER output exercises in chat text. NEVER ask the user to type answers in chat. This tool stores the section and renders the lesson UI.
delete_session
ChatGPTDeletes one or more private LingoStar learning tracks only when the user explicitly asks for deletion. Use deleteAll for requests such as 'delete all language sessions'. Use targetLanguage for requests such as 'delete my Japanese track'. Never suggest a web dashboard for deletion.
get_lingostar_state
ChatGPTReturns the user's latest private LingoStar state. Use this before answering progress, settings, details, or management questions; present learning tracks as a Markdown table in chat.
grade_section_answers
ChatGPTEvaluates the user's answers for all exercises in the section simultaneously. App messages may be short; read the app/model context for the answer payload. Call this tool to save scores and feedback instead of printing raw answer lists in chat.
manage_learning_session
ChatGPTUse this when the learner starts, resumes, creates, or updates a language learning track. When initialSection is provided, this tool stores the practice set and renders the lesson widget immediately. If initialSection is omitted, call create_lesson_exercises or open_lingostar_lesson before telling the learner to solve exercises. NEVER output lesson content in chat text. NEVER ask the user to type answers in chat; the user submits answers through the UI.
open_lingostar_app
ChatGPTRender the LingoStar widget using the best available view. Use this for first-start onboarding, learning-track selection, or continuing the active practice set. Settings, progress details, and deletion should be handled conversationally with data tools.
open_lingostar_lesson
ChatGPTRender the active LingoStar lesson section in fullscreen-friendly mode. Use this after create_lesson_exercises or when the user wants to continue solving the current section. If no active section exists, first call create_lesson_exercises.
open_lingostar_session_select
ChatGPTRender the learning-track selector as a compact card list. Use this when the user has multiple saved tracks or when a new conversation needs explicit selection. Do not use it for settings, detailed progress, or exercise solving.
search_lingostar_help
ChatGPTSearches the static LingoStar help markdown loaded by the server. Use this for help, usage, audio, learning-track, practice-set, settings, or troubleshooting questions before rendering any UI.
select_learning_session
ChatGPTSets the active LingoStar learning track after the user explicitly chooses it in the widget or conversation. If an unfinished practice set exists, render the lesson. If no practice set exists, call create_lesson_exercises in the same assistant turn instead of rendering a progress page.
store_goal_judgment
ChatGPTRecords GPT's rigorous judgment on whether the learner has achieved the active language goal. Use international speaking/language standards such as CEFR or the explicitly named exam/certification standard. The server only marks the goal complete when this judgment is positive AND the learner has completed at least the configured minimum number of sections since the previous goal completion.
store_level_judgment
ChatGPTRecords GPT's judgment on whether a level is complete. If isComplete is true, the level's status is set to 'completed'.
submit_feedback
ChatGPTStores product feedback from the LingoStar widget. Use this for UI errors, broken audio, confusing exercises, or feature requests. Each entry receives a server-side sequence number for admin review.
synthesize_speech
ChatGPTSynthesizes listening audio using server-side OpenAI TTS when OPENAI_API_KEY is configured. Returns a data URL for playback only.
transcribe_audio
ChatGPTTranscribes speech audio using server-side OpenAI STT when OPENAI_API_KEY is configured. Returns the transcript only — no grading or evaluation.
update_lingostar_settings
ChatGPTUse this when the learner conversationally asks to change settings, such as speaking on/off, per-area question counts, pass score, audio speed, display language, progress notes, weak-point notes, target language, native language, interests, or avoided topics. This is a data tool; do not render a settings widget. New exercise settings apply to the next practice set unless a current practice set is already open.