Log inGet started
Package

dotbot.plugin

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

PartWhat it is
plugin.wasmThe DotBot component (wasm32-wasip2), built in the DotBot repo from crates/dbot-zero-plugin.
plugin.yamlThe plugin's grants: its scope, the hosts it may reach, its private storage.
surface.moduleThe plugin's Luau surface, what require("@builtin::plugins.dotbot") resolves to.
source.moduleWhat the panel reads: agents, accounts, conversations, history, turns, agents a turn started.
service.moduleThe trusted service between the panel and the component: calls, the event ring, jobs.
panel.editorPanelThe DotBot panel itself: toolbar, transcript, agents, composer, settings.
view.moduleWhat the panel says and how it looks (palette()), apart from how it is drawn.
transcript.moduleThe transcript and the agents section, drawn as virtual rows.
workflows.moduleThe 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.