Skip to content
Jonathan D.A. Jewell edited this page Mar 28, 2026 · 1 revision

PanLL Guides

Creating a New Panel

  1. Add a panel ID to src/model/PanelSwitcherModel.res
  2. Add metadata to src/modules/PanelRegistry.res (name, icon, category)
  3. Create the panel module in src/modules/panels/
  4. Register in the Panel Switcher
  5. Run just test to verify

Panel Categories

Kind Purpose Examples
ai AI/ML panels LLM Coding, Agent Coordination
bridge Cross-panel integrations Typing Bridge, Protocol Bridge
builder Build and test tools Build Dashboard, Release Manager
database Data management VeriSimDB, QuandleDB
directive Governance Contractile Manager, K9 Manager
loader Repository loading RepoLoader, Farm
meta System panels Help, Observatory
network Networking Aerie, Traffic Conditioner
scanner Analysis tools Hypatia, panic-attack
terminal Terminal/scripting Valence Shell, Script Gist
viewer Visualization Wiring Inspector, TangleViz

Connecting to BoJ Server

PanLL panels can call BoJ cartridges for tool access:

// In your panel's update function
let handleToolCall = (cartridgeName, method, params) => {
  PanelBus.emit(BojRequest(cartridgeName, method, params))
}

Working with VeriSimDB

The database panel connects to VeriSimDB for cross-modal data:

// Query via VQL-UT
let query = "FIND octads WHERE type = 'scan' AND severity = 'critical'"
DatabaseModule.executeQuery(~instance="hypatia", ~query)

Debugging Panels

just doctor              # Check panel health
just test                # Run all panel tests
deno task dev            # Dev server with hot reload

Use the Wiring Inspector panel to visualize panel dependencies and lifecycle state.

Promoting CRG Grades

To promote a panel from Draft to Completable (D → C):

  1. Ensure core functionality works end-to-end
  2. Add integration tests
  3. Wire CI pipeline
  4. Update CRG grade in panel metadata
  5. Run just test — all must pass

Clone this wiki locally