builtin-plugins
README.md
dotbot
DotBot, the agent in Zero's editor: the component that runs a person's own Claude or ChatGPT plan (or OrigoZero credits) from inside Zero, and the DotBot panel in the editor's right dock that talks to it. This world is where the plugin's published copy lives; the engine's built-in library pins a version of it.
What is here
| Part | What it is |
|---|---|
plugin.wasm | The DotBot component (wasm32-wasip2), built in the DotBot repo from crates/dbot-zero-plugin. |
plugin.yaml | The plugin's grants: its scope, the hosts it may reach, its private storage. |
surface.module | The plugin's Luau surface, what require("@builtin::plugins.dotbot") resolves to. |
source.module | What the panel reads: agents, accounts, conversations, history, turns, agents a turn started. |
service.module | The trusted service between the panel and the component: calls, the event ring, jobs. |
panel.editorPanel | The DotBot panel itself: toolbar, transcript, agents, composer, settings. |
view.module | What the panel says and how it looks (palette()), apart from how it is drawn. |
transcript.module | The transcript and the agents section, drawn as virtual rows. |
workflows.module | The Workflows view. |
Each module's own README says what it does in detail.
Seeing a panel change
The editor draws its DotBot tab from the built-in library, not from this world, so an edit to the panel here does not show in the real tab. Open the world's own panel code over a fake plugin with example data instead:
luau --lang luau 'require("/source/dotbotPanelPreview.module").open()'
It opens a DotBot preview tab beside the real one. Run it again after
each edit. dotbotPanelPreview.module/README.md says what it shows.
Shipping a change
Work on a branch of this world and open a pull request into main. How a
merged change reaches the engine (publishing plugin.wasm, and the engine's
pin of this world) is written down in the DotBot repo, in
docs/zero-plugin.md.