Add a Studio tool
Create a new Studio tool in better-vault: a definition, a server prompt and output schema, an options dialog and a viewer, registered on client and server.
A Studio tool is one folder under studio/tools/<id>/, with four parts and a registration.
Definition
definition.ts: the tool's id, icon, tint, option schema and defaults, output schema and download formats.
Server
server.ts: the prompt and the output schema the model must follow. The /api/studio route validates every result against it.
Dialog and viewer
dialog.tsx is the options form; viewer.tsx shows an output in the Studio tab.
Register it
Add the tool to the client and server registries (studio/client.ts, studio/definitions.ts) and add its strings under studio in locales/en/studio.json.
Local tools
A tool made in the browser, like the Whiteboard, gives its definition.ts a local: { blank } and has no server.ts or dialog. Its viewer receives onDataChange to save edits. Mark its client immersive to give the viewer the whole tab.
Local tools save through the same data functions as everything else, so they work in the desktop app unchanged.
Architecture
How better-vault is built, the decisions behind it and where the code lives, for people and AI coding agents who want to contribute to the web or desktop app.
Add a provider
Add a new AI provider to better-vault: list it in the model catalog, then give it a model factory, an optional web-search tool and a way to list models.