A configurable web control surface for agent-assisted projects and operations. The current interface is a desktop-first proof of concept for operations, network, and engineering work, designed to grow from a synthetic demonstration into a framework backed by authenticated agent and infrastructure adapters.
The console is a general operations environment, not a build or scaffold generator. Software creation can later be attached as one Engineering workload, alongside diagnostics, automation, maintenance, incident response, and infrastructure work, without redefining the console's product identity.
The current project is backed by an honest, deterministic local simulator. It does not execute arbitrary shell commands, connect to remote hosts, or call an AI service.
npm install
npm run dev -- --host 127.0.0.1 --port 4173 --strictPortOpen http://localhost:4173/.
npm run build
node --test --test-isolation=none tests\console-bus.test.mjs
npm run test:sitesThe production build is emitted under dist/client, with the Sites-ready worker and metadata under dist/server and dist/.openai.
- Safe, lazy-loaded xterm command surface with
help,status,systems,session <ops|network|engineering>, andclearcommands. - Assisted-operations conversation surface with deterministic local responses and service-ready callbacks.
- Session launcher for Operations, Network, and Engineering contexts, including staged initialization and a visible operation queue.
- Responsive, persistent panel layout with explicit move/resize mode, reset, and panel focus expansion.
- Visibility-aware Canvas telemetry, connection globe, and a 144-lamp signal matrix driven by values rather than decorative randomness; hidden instruments pause and each surface has a modest frame cap.
- Runtime event stream and a feed-contract drawer showing which data sockets are currently bound.
- Keyboard shortcuts:
Ctrl+Kopens New Session;Ctrl+Ltoggles layout editing;Esccloses overlays or focused panels.
The stable public surface lives under src/data/:
contracts.jsdefines the topic names, payload schemas, validation, cadence, and examples.consoleBus.jsprovides immutable sourced envelopes, subscriptions, snapshots, and replay.localSimulator.jsis the explicitly synthetic development adapter and can be removed without changing panel code.index.jsexports the public data API.
Available topics:
terminal.output
terminal.command
copilot.message
telemetry.samples
runtime.events
signal.states
network.connections
operation.state
session.context
A live WebSocket, SSE, SSH gateway, infrastructure controller, or AI adapter should publish the same validated payloads with a truthful source value. Panels subscribe by topic rather than by visual position. A future Engineering adapter may expose software-development or build automation through these same boundaries, but that is a workload integration rather than the purpose of the console itself.
- Change visual identity in
src/tokens.css; color, type, spacing, and state tokens are centralized there. - Change the generic demonstration locations and network nodes in
src/config.js. A settings surface can replace this file-backed configuration later. - Add or rearrange instruments in
src/App.jsxand the responsive layout maps near the top of that file. - Reuse panel chrome from
src/components/Panel.jsx. - Reuse the command surfaces from
src/components/CommandPanels.jsx. - Reuse data-driven visuals from
src/components/visuals/. - Replace
createLocalSimulator()with one or more live adapters when backend contracts are ready.
The terminal is intentionally a local interpreter, not a system shell. Its prototype command vocabulary is help, status, systems, session, and clear. Do not connect browser input directly to child_process, SSH, or a privileged agent. Put authenticated execution behind a scoped server-side gateway with explicit host allowlists, audit events, session expiry, and per-command authorization.
This repository is an interface POC. Authentication, tenant configuration, durable audit history, billing, and live execution adapters are intentionally outside the current prototype boundary.

