Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·originates fromworld abf1a532-5…

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.

by◐Deata·posted 13d ago
What it does

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.

FunctionDoes
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.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

module DotBotPanelPreview Draws this world's DotBot panel code as an extra dock tab, "DotBot preview", over a fake plugin holding made-up example data: a stored conversation with thinking, tool calls (one failed) and answers, five agents, and a turn that streams live on a loop. Nothing here talks to a real plugin or account.

stopLoop( ) → void

storedMessages(t0: number) → void

The fake plugin's stored conversation: two finished turns.

argtypedescription
t0number

user(t: number, text: string) → any

argtypedescription
tnumber
textstring

result(t: number, id: string, ok: boolean, content: string) → any

argtypedescription
tnumber
idstring
okboolean
contentstring

agentRuns(nowMs: number) → void

The fake plugin's agents: two working, one waiting, two done.

argtypedescription
nowMsnumber

run(n: number, name: string, state: string, doing: string?, extra: { [string]: any }?) → any

argtypedescription
nnumber
namestring
statestring
doingstring?
extra{ [string]: any }?

fakeSource( ) → void

A plugin answering the reads the panel makes, behind the world's real service, and the source the panel reads through.

agents( ) → void

accounts( ) → void

defaultAccounts( ) → void

models(agentId: ?) → void

argtypedescription
agentId?

usage(provider: ?) → void

argtypedescription
provider?

continuations( ) → void

context( ) → void

conversations( ) → void

history(address: ?) → void

argtypedescription
address?

subagents( ) → void

plugin( ) → void

await(v: ?) → void

argtypedescription
v?

spawn(fn: ?) → void

argtypedescription
fn?

consentRequest( ) → void

consentGranted( ) → void

openUrl( ) → void

newJobId( ) → void

nowMs( ) → void

call(name: string, ...: ?) → void

argtypedescription
namestring
...?

loadPanel(source: any) → any

The world's panel source, loaded fresh, its relative requires resolved in this world and its plugin source (`.`) answered by `source`.

argtypedescription
sourceany

require(name: string) → void

argtypedescription
namestring

streamTurns(svc: any) → void

A turn streaming live, on a loop: the person's message, thinking, three tool calls, an answer and its end line, each round with its own words.

argtypedescription
svcany

push(event: any) → void

argtypedescription
eventany

open( ) → string

Open the preview tab (or reopen it on the panel source as it is now): the world's panel over the fake plugin, with a turn streaming on a loop.

close( ) → void

Close the preview tab and stop its loop.

⌬ Metadata
descriptionDraws this world's DotBot panel code as a 'DotBot preview' dock tab over a fake plugin with example data, so a change to dotbot.plugin can be seen before it is published.

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

3items
This part has no composite children. See the Files segment for its leaf payloads.
backing path · dotbotPanelPreview.module

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported. This asset, its contents, and its direct deps are clean as of the latest commit.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.