builtin-plugins
README.md
dotbotPanelPreview
Draws this world's DotBot panel code in the editor as an extra dock tab,
DotBot preview, over a fake plugin with made-up example data, so a change
to dotbot.plugin/ can be seen before it is published.
The editor's real DotBot tab is drawn from the engine's built-in library, not
from this world, so an edit here does not appear in it. This module loads the
world's own dotbot.plugin/panel.editorPanel source, points its relative
requires at the world's own view, transcript, workflows and service
modules, and gives it a fake plugin built on the world's real Source and
Service.
Use
From the engine's shell, with this world open in an editor:
luau --lang luau 'require("/source/dotbotPanelPreview.module").open()'
Run open() again after an edit. It reads the panel source fresh, redraws the
tab and restarts the loop. close() takes the tab down and stops the loop.
| Function | Does |
|---|---|
open() | Opens (or reopens) the preview tab in the right dock and starts the streaming loop. Returns the tab id. |
close() | Closes the tab and stops the loop. |
What it shows
- A stored conversation of two finished turns: thinking, tool calls (one of them failed), and answers with markdown and a table.
- Five agents: two working, one waiting, two done.
- A context reading of 99K of a 1.05M window, compacting at 919K, and usage figures for the last turn and the conversation.
- A turn streaming on a loop, about 20 seconds a round: the person's message, thinking, three tool calls, an answer and its usage line. Each round asks something different, so the transcript reads like a conversation.
Nothing here reaches a real plugin, account or network. Sending, stopping and switching accounts in the preview go to the fake plugin, which does nothing with them.
Limits
- The preview's tab id is its own (
dotbotpreview), so its widgets never share ids with the real DotBot tab; both can be open at once. - The fake plugin answers the reads the panel makes today. A panel change that reads something new from the plugin needs that read added here.