Files

174 lines
6.8 KiB
JSON
Raw Permalink Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Assistive Surfaces for box.muse-dev.online",
"version": "1.0.0",
"host": "box.muse-dev.online",
"origin_vm": "34.139.37.135",
"compute_host": "bl (100.123.153.75)",
"auth": {
"pin": "3128",
"cookie_name": "ops_session",
"login_endpoint": "/api/ops/login",
"agent_header": "Authorization: Bearer <operator-token>",
"signature_mechanism": "SSH-keygen -Y sign via Tailnet identity"
},
"views": {
"dashboard": {
"name": "Fleet Pulse",
"tab_id": "dashboard",
"dom_tab_selector": ".tab-btn[data-tab=\"dashboard\"]",
"dom_pane_selector": "#tab-dashboard",
"key_elements": {
"grid": "#fleet-grid",
"pulse_indicator": "#fleet-pulse",
"node_card": ".node-card",
"node_badge": ".node-badge",
"active_page_title": ".page-title-preview"
},
"api_endpoints": [
{
"method": "GET",
"path": "/api/box/fleet",
"description": "Real-time CDP latency, node status, current page titles, and queue depths across all nodes.",
"curl_example": "curl -sk https://box.muse-dev.online/api/box/fleet"
}
],
"assistive_recipe": "To check fleet health, read /api/box/fleet or inspect #fleet-grid node cards. Green indicator denotes CDP responsive <100ms."
},
"dms": {
"name": "DMs & Work Orders",
"tab_id": "dms",
"dom_tab_selector": ".tab-btn[data-tab=\"dms\"]",
"dom_pane_selector": "#tab-dms",
"key_elements": {
"table": "#dms-table",
"tbody": "#dms-tbody",
"search_input": "#filter-search",
"agent_filter_chips": ".filter-agent-chip",
"kind_filter_chips": ".filter-kind-chip",
"count_badge": "#dms-count-badge"
},
"api_endpoints": [
{
"method": "GET",
"path": "/api/box/dm/log?limit=50",
"description": "Chronological stream of Work Orders, Acks, Results, and inter-operator DMs.",
"curl_example": "curl -sk -b 'ops_session=...' https://box.muse-dev.online/api/box/dm/log?limit=30"
},
{
"method": "POST",
"path": "/api/box/dm/send",
"description": "Dispatch a signed DM or Work Order to a recipient or sidechat target.",
"curl_example": "curl -sk -X POST https://box.muse-dev.online/api/box/dm/send -d '{\"agent\":\"646\",\"to\":\"pip\",\"target\":\"646-pip\",\"message\":\"[WO:...] ...\"}'"
}
],
"assistive_recipe": "Filter by data-agent attribute to isolate node traffic. Search box filters dynamically by text."
},
"jobs": {
"name": "Timers & Jobs",
"tab_id": "jobs",
"dom_tab_selector": ".tab-btn[data-tab=\"jobs\"]",
"dom_pane_selector": "#tab-jobs",
"key_elements": {
"table": "#jobs-table",
"tbody": "#jobs-tbody",
"trigger_button": ".btn-trigger",
"active_badge": ".badge-active",
"unit_name": ".timer-unit-name"
},
"api_endpoints": [
{
"method": "GET",
"path": "/api/box/timers",
"description": "List all active systemd user timer schedules, next run, and last results.",
"curl_example": "curl -sk https://box.muse-dev.online/api/box/timers"
},
{
"method": "POST",
"path": "/api/box/jobs/{name}/trigger",
"description": "Asynchronous hot-trigger calling box-ctl.py job-trigger. Returns 202 Accepted immediately.",
"curl_example": "curl -sk -X POST https://box.muse-dev.online/api/box/jobs/box-http-health/trigger"
}
],
"assistive_recipe": "Clicking ▶ Run invokes hot-trigger without blocking the browser. Button displays Triggering... then Sent."
},
"loops": {
"name": "Loop & Strategy Matrix",
"tab_id": "loops",
"dom_tab_selector": ".tab-btn[data-tab=\"loops\"]",
"dom_pane_selector": "#tab-loops",
"key_elements": {
"health_badge": "#loop-health-badge",
"loops_grid": "#loops-grid",
"strategy_table": "#strat-table",
"vars_table": "#vars-table",
"edit_modal": "#modal-edit-var",
"count_badge": "#loops-count-badge"
},
"api_endpoints": [
{
"method": "GET",
"path": "/api/box/loop/health",
"description": "Fleet loop health ratio (answered+closed vs landed) with health verdicts.",
"curl_example": "curl -sk https://box.muse-dev.online/api/box/loop/health"
},
{
"method": "GET",
"path": "/api/box/loop/status",
"description": "Active open loops, deadlines, and current nudge counters.",
"curl_example": "curl -sk https://box.muse-dev.online/api/box/loop/status"
},
{
"method": "GET",
"path": "/api/box/loop/vars",
"description": "Runtime control variables schema, values, and units.",
"curl_example": "curl -sk https://box.muse-dev.online/api/box/loop/vars"
},
{
"method": "POST",
"path": "/api/box/loop/vars",
"description": "Mutate runtime variable without restarting daemons.",
"curl_example": "curl -sk -X POST https://box.muse-dev.online/api/box/loop/vars -d '{\"name\":\"max_nudge_count\",\"value\":3}'"
}
],
"assistive_recipe": "Use loop health ratio to evaluate fleet velocity. Overdue loops can be nudged directly via box loop nudge."
},
"approvals": {
"name": "Agent Approval Surfaces",
"tab_id": "approvals",
"dom_tab_selector": null,
"dom_pane_selector": ".approval-dialog-container",
"key_elements": {
"dialog": "[data-testid=\"approval-dialog\"]",
"allow_btn": "[data-testid=\"approval-allow\"]",
"deny_btn": "[data-testid=\"approval-deny\"]",
"ip_field": ".approval-requested-ip",
"action_desc": ".approval-description"
},
"api_endpoints": [
{
"method": "GET",
"path": "/api/approvals",
"description": "Query pending approvals across all browser nodes.",
"curl_example": "curl -sk https://box.muse-dev.online/api/approvals"
}
],
"assistive_recipe": "If browser agent is blocked on modal, inspect via 'box approvals check' and approve with 'box approvals allow <node>'."
},
"telemetry_curl": {
"name": "View as curl Drawer",
"tab_id": null,
"dom_tab_selector": "#curl-toggle-btn",
"dom_pane_selector": "#curl-drawer",
"key_elements": {
"toggle_btn": "#curl-toggle-btn",
"drawer": "#curl-drawer",
"display_code": "#curl-display",
"copy_btn": "#curl-copy-btn"
},
"api_endpoints": [],
"assistive_recipe": "Toggles an off-canvas drawer exposing exact curl invocation for the currently active tab and action."
}
}
}