get_projects
Lists the projects Frapea knows on this machine: id, name, lastOpenedAt, and for a project stored in a folder on disk its folder (the directory's name — files you write into its media/ subfolder join the pool by themselves). Call first to find the projectId every other tool needs. A project the browser has no permission for will surface PERMISSION_REQUIRED when used — relay the returned instruction to the user, then retry.
ALSO RETURNS providers — Pexels (stock video/photos), Freesound (music, ambience, SFX) and ElevenLabs (voiceover), each 'connected' | 'checking' | 'missing' | 'invalid'. These are the user's OWN API keys and they cannot be set from here.
When any is missing, providersAdvice is present and carries the exact thing to say. SAY IT ONCE, in your first visible reply of the session, and then get on with the work you can do — the user cannot see tool calls, so silence here reads as the editor simply not being able to fetch b-roll or narrate a script. When everything is connected there is no providersAdvice and you say NOTHING about it: telling someone to connect what they already connected is nagging.
SAY IT AGAIN ONLY WHEN IT IS SOMETHING NEW. The rule is one general nudge at the start, and after that only a CONCRETE consequence for the piece in hand — "I can cut what you shot, but with Pexels connected I'd cover the gaps at 0:14 and 0:37 instead of holding on a static frame" is new information and worth saying once before you build; "remember you have no Pexels key" is nagging. Never as a reminder, never twice for the same reason.
SEPARATELY: when a CALL actually fails with PERMISSION_REQUIRED, always relay that error — it is a thing that just went wrong, not a repeat of the nudge, and swallowing it makes a failed fetch look like a choice you made.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The session token `connect` returned. Pass it on every call — it says which browser to drive. |