diff --git a/CLIENT-ONBOARDING-RUNBOOK.md b/CLIENT-ONBOARDING-RUNBOOK.md index 7a1048a..79cb681 100644 --- a/CLIENT-ONBOARDING-RUNBOOK.md +++ b/CLIENT-ONBOARDING-RUNBOOK.md @@ -107,6 +107,22 @@ If Instagram linking is not available, operator can complete the verification us 7. Meta sends security confirmation: *"Did you just move your profiles into the same Meta Account?"*. 8. Once confirmed in Accounts Center, simply navigate back or reload `https://muse.ai/` inside the NetVM node. The `/access` lockout drops immediately, and the node enters active chat (*"Hey! I'm your personal agent..."*). +### Phase 4.2: Automated CDP Meta Linking Bot +When an edge-gate is detected or when linking a fresh client profile: +1. Trigger the automated CDP driver: + ```bash + sudo ip netns exec warp- python3 /home/super/Projects/NetVM/bin/meta-acct.py link-instagram + ``` +2. The bot: + - Navigates headless Chromium to `https://accountscenter.meta.com/manage/`. + - Locates and clicks **Add profiles and devices**. + - Selects the Instagram cross-app linking flow. + - Automatically navigates to the `frl_web_settings` FXCAL OAuth grant. +3. Once completed or after submitting Instagram credentials, re-query the account state: + ```bash + super cred meta-audit --node + ``` + --- ### Phase 5: Vitality & Status Monitoring diff --git a/NODES.md b/NODES.md index 4651ec2..6151f36 100644 --- a/NODES.md +++ b/NODES.md @@ -11,6 +11,6 @@ Unified naming: node == agent == profile == API account. - 2026-10-03: Renamed smoke->muse, phone-test->pip for unified naming. Profiles preserved, sessions persisted (muse). WireGuard identities renamed. | 646 | warp-646 | 104.28.195.181 | 9430 | active | 646 (phone_otp, first Meta Account option) | -| opm | warp-opm | 104.28.195.181 | 9440 | active | opm (yourfriendnico@proton.me, email_otp, Nico Parada) | -| def | warp-def | 104.28.195.181 | 9450 | inactive | (unassigned) | -| dev | warp-dev | 104.28.195.181 | 9460 | inactive | (unassigned) | +| opm | warp-opm | 104.28.195.181 | 9440 | active | opm (artglobal.cc@gmail.com, email_otp, Nico Parada) | +| def | warp-def | 104.28.195.181 | 9450 | active | def (defnotabotnet@gmail.com, email_otp, IG paradahub) | +| dev | warp-dev | 104.28.195.181 | 9460 | active | dev (paradaproduced@gmail.com, email_otp, IG veryraremeta) | diff --git a/bridge/mappings.json b/bridge/mappings.json index 5b4cd10..bf4f2de 100644 --- a/bridge/mappings.json +++ b/bridge/mappings.json @@ -27,16 +27,63 @@ "linked_at": "2026-10-03T19:19:30.565219+00:00", "linked_by": "operator", "purpose": "646 P2P outbox to muse", - "status": "active" + "status": "active", + "peer_bridge_id": "br-20261005002039" }, { - "bridge_id": "br-20261003191930", + "bridge_id": "br-20261005002039", "frontdoor_channel": "#ops", "muse_side_chat_id": "6db43088-b87d-43a3-ae2a-157acebcfa21", "agent": "muse", "linked_at": "2026-10-03T19:19:30.606558+00:00", "linked_by": "operator", "purpose": "muse P2P inbox from 646", + "status": "active", + "peer_bridge_id": "br-20261003191930", + "note": "P2P pair with br-20261003191930 (646 outbox); ID de-duplicated 2026-10-05" + }, + { + "bridge_id": "br-20261005002228-646", + "frontdoor_channel": "#ops", + "muse_side_chat_id": "1dfb3199-2f99-446c-83e3-848ae2da0a12", + "agent": "646", + "linked_at": "2026-10-05T00:22:28.036368+00:00", + "linked_by": "operator-646", + "purpose": "main-loop prompt sidechat for 646", + "sidechat_name": "646 tasks", + "status": "active" + }, + { + "bridge_id": "br-20261005002228-opm", + "frontdoor_channel": "#ops", + "muse_side_chat_id": "5f18476d-8994-49e7-a9e0-4838732363fe", + "agent": "opm", + "linked_at": "2026-10-05T00:22:28.036368+00:00", + "linked_by": "operator-646", + "purpose": "main-loop prompt sidechat for opm", + "sidechat_name": "main-loop brain", + "status": "active" + }, + { + "bridge_id": "br-20261005002228-pip", + "frontdoor_channel": "#ops", + "muse_side_chat_id": "5f33b1ab-a310-4cbb-9ccc-bb7bcd3d1b34", + "agent": "pip", + "linked_at": "2026-10-05T00:22:28.036368+00:00", + "linked_by": "operator-646", + "purpose": "main-loop prompt sidechat for pip", + "sidechat_name": "pip tasks", + "status": "active" + }, + { + "bridge_id": "br-20261005002228-muse", + "frontdoor_channel": "#ops", + "muse_side_chat_id": "414cc0fc-4c46-4cb4-9fa6-07f06912384a", + "agent": "muse", + "linked_at": "2026-10-05T00:22:28.036368+00:00", + "linked_by": "operator-646", + "purpose": "main-loop prompt sidechat for muse", + "sidechat_name": "muse tasks", "status": "active" } ] \ No newline at end of file diff --git a/docs/BOX-API-DESIGN-DMS.md b/docs/BOX-API-DESIGN-DMS.md index 500ef7d..f3656d0 100644 --- a/docs/BOX-API-DESIGN-DMS.md +++ b/docs/BOX-API-DESIGN-DMS.md @@ -1,5 +1,7 @@ # BOX-API-DESIGN-DMS.md: DM and Message Endpoint Design +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Status:** Design v0.1 (design only — no implementation). **Owner:** operator-main. Sanctioned by the human 2026-10-04. **Companion:** `BOX-API-SPEC.md` (timer/job API), `DM-SPEC.md` (DM trust model), diff --git a/docs/BOX-API-DESIGN-THREADS.md b/docs/BOX-API-DESIGN-THREADS.md index eed267a..29cd434 100644 --- a/docs/BOX-API-DESIGN-THREADS.md +++ b/docs/BOX-API-DESIGN-THREADS.md @@ -1,5 +1,7 @@ # Box API: Per-Agent Thread Oversight — Contract Draft +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Status: **draft 2026-10-04** — for the UI/UX agents. Not implemented, not deployed. Companion docs: `BOX-API-DESIGN-DMS.md`, `BOX-UI-DESIGN.md`, `BOX-API-DESIGN-TIMERS.md`. diff --git a/docs/BOX-API-DESIGN-TIMERS.md b/docs/BOX-API-DESIGN-TIMERS.md index 2586f27..2d08fc2 100644 --- a/docs/BOX-API-DESIGN-TIMERS.md +++ b/docs/BOX-API-DESIGN-TIMERS.md @@ -1,5 +1,7 @@ # BOX-API-DESIGN-TIMERS.md: Timer & Job Endpoint Design +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Status:** Design only. No implementation. **Owner:** operator-main. Sanctioned direction from human 2026-10-04. **Supersedes:** the endpoint sketches in `BOX-API-SPEC.md` §§ "Endpoints" diff --git a/docs/BOX-API-SPEC.md b/docs/BOX-API-SPEC.md index 7622509..3dc6c55 100644 --- a/docs/BOX-API-SPEC.md +++ b/docs/BOX-API-SPEC.md @@ -1,5 +1,7 @@ # BOX-API-SPEC.md: Agentic Timer Management Interface +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Overview The box page (`https://box.muse-dev.online/`) provides an agentic interface diff --git a/docs/BOX-UI-DESIGN.md b/docs/BOX-UI-DESIGN.md index d918500..c601c6c 100644 --- a/docs/BOX-UI-DESIGN.md +++ b/docs/BOX-UI-DESIGN.md @@ -1,5 +1,7 @@ # BOX-UI-DESIGN.md: Box Console UI/UX Design +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Overview The box console (`https://box.muse-dev.online/`) is the operator interface for diff --git a/docs/BOX-WEB-SURFACE-GUIDE.md b/docs/BOX-WEB-SURFACE-GUIDE.md index ccfd8a8..ed67c28 100644 --- a/docs/BOX-WEB-SURFACE-GUIDE.md +++ b/docs/BOX-WEB-SURFACE-GUIDE.md @@ -1,5 +1,7 @@ # Box Web Surface & Orchestration Architecture +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + This guide describes the architecture connecting the **4 autonomous browser agents** (`muse`, `pip`, `646`, `opm`) across `bl` (`100.123.153.75`) and the public Web UI surfaces hosted on the Google Cloud VM (`34.139.37.135` / `box.muse-dev.online`). --- diff --git a/docs/BRIDGE_SPEC.md b/docs/BRIDGE_SPEC.md index 795d4da..1243c5b 100644 --- a/docs/BRIDGE_SPEC.md +++ b/docs/BRIDGE_SPEC.md @@ -1,5 +1,7 @@ # Bridge Spec: Front-Door ↔ muse.ai Side Conversations +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Overview Metadata bridge (not message relay) linking front-door chat channels (muse-dev.online) to muse.ai side conversations. Operators manage via @@ -96,11 +98,19 @@ bridge remove ## Implementation Status -- [ ] `bin/bridge.py` CLI +- [x] `bin/bridge.py` CLI (exists at `bin/bridge.py`) - [ ] `sidechat tag` command in muse-chat-api.py - [ ] `sidechat bridge` query command -- [ ] `bridge/mappings.json` schema -- [ ] Documentation +- [x] `bridge/mappings.json` schema (live, 8 mappings as of 2026-10-05) +- [x] Documentation (this spec) + +### P3 reconciliation (2026-10-05, operator-646) +- Bridge IDs enforced unique per spec (`bridge_id: string (unique)`); duplicate + `br-20261003191930` de-duplicated, P2P pair linked via `peer_bridge_id`. +- Main-loop prompt sidechats for all four agents (646, opm, pip, muse) registered + as bridge mappings, so the registry drives the main-loop `prompt_sidechat` map. +- `peer_bridge_id` (optional): links two ends of a P2P bridge pair. Additive, + does not break the v0.1 data model. ## Notes diff --git a/docs/CHROMEBOX-RUNBOOK.md b/docs/CHROMEBOX-RUNBOOK.md index 054a435..7f057e8 100644 --- a/docs/CHROMEBOX-RUNBOOK.md +++ b/docs/CHROMEBOX-RUNBOOK.md @@ -1,5 +1,7 @@ # Chromebox Runbook +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Operator's guide to the Chromebox/NetVM browser fleet on `bl` (100.123.153.75). Written 2026-10-04. If you're reading this at 2am, start at [Quick Triage](#quick-triage). diff --git a/docs/DIGEST-PROTOCOL.md b/docs/DIGEST-PROTOCOL.md index 969a8bf..2b829d6 100644 --- a/docs/DIGEST-PROTOCOL.md +++ b/docs/DIGEST-PROTOCOL.md @@ -1,5 +1,7 @@ # Digest Protocol Runbook +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + How the main loop sends digests and how agents close them. **Status:** spec (2026-10-04). Implemented in `self_main_loop.py` + `response-harvester.py`; @@ -129,7 +131,7 @@ message previews from 5 to 3 to fit it: ``` [main-loop] [JOB ml-646-20261004-213000] 3 new in 646 main chat — reply needed: - human: [?] -Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id] +Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id]. Report back here. Box dispatches the next step; do not DM the next agent directly. ``` The footer is the primary contract. This doc is the reference. @@ -142,7 +144,7 @@ The footer is the primary contract. This doc is the reference. [from:opm] [id:a6579a8d] [main-loop] [JOB ml-646-20261004-213000] 3 new in 646 main chat — reply needed: - human: should we archive the stale pipe-7d2896 thread? [?] - opm: propose yes, it's superseded by the brain channel [?] -Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id] +Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id]. Report back here. Box dispatches the next step; do not DM the next agent directly. # 646 picks it up @@ -209,5 +211,27 @@ the existing `followups.json`. --- +## 11. Recursive workflow discipline (box -> agent -> box) + +Success = `box -> agent -> box -> agent -> box` (recursive). The failure mode is +`box -> agent : agent` — work handed agent-to-agent in chat threads, with nothing +ever returning to box. The tooling (`box job result|status|next|chain`) makes the +recursive path the easy path; this section makes it the default: + +- **Reply in-thread.** Post `[RESULT ] ` back in the digest thread + (this thread). The harvester watches it; `box job result ` records it + into `job-log.jsonl`. +- **Box chains the next step.** A `[RESULT]` on a chained job fires + `trigger_chain_next()` (or `box job next` to dry-run, `box job chain` to wire); + box dispatches the next step to the next agent. The agent never needs to know + who goes next. +- **Never DM the next agent directly.** Handing work off in a chat thread + bypasses box orchestration: no followup record, no chain state, no + `job status` visibility. If you catch yourself composing a DM to hand off + work, stop and post the `[RESULT]` instead — box routes onward. +- **The footer says it.** Every ACTIONABLE digest now closes with: + *"Report back here. Box dispatches the next step; do not DM the next agent + directly."* — the contract is in-band, not tribal knowledge. + *Companion docs: `DM-SPEC.md` (DM format), `THREAD-BOOKKEEPING.md` (pin/archive), `WARP-EGRESS-FIX.md` (partition handling).* diff --git a/docs/DM-HTTPS-DESIGN-646.md b/docs/DM-HTTPS-DESIGN-646.md index cf7e31c..08290a3 100644 --- a/docs/DM-HTTPS-DESIGN-646.md +++ b/docs/DM-HTTPS-DESIGN-646.md @@ -1,5 +1,7 @@ # DM over HTTPS: System Design +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Date:** 2026-10-04 **Author:** operator-646 (design agent) **Status:** Design only — no implementation diff --git a/docs/DM-OVER-HTTPS-DESIGN.md b/docs/DM-OVER-HTTPS-DESIGN.md index cf7e31c..08290a3 100644 --- a/docs/DM-OVER-HTTPS-DESIGN.md +++ b/docs/DM-OVER-HTTPS-DESIGN.md @@ -1,5 +1,7 @@ # DM over HTTPS: System Design +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Date:** 2026-10-04 **Author:** operator-646 (design agent) **Status:** Design only — no implementation diff --git a/docs/DM-SPEC.md b/docs/DM-SPEC.md index 6ee0263..6f9ebf2 100644 --- a/docs/DM-SPEC.md +++ b/docs/DM-SPEC.md @@ -1,5 +1,7 @@ # DM Spec: Work Orders + Server-Side DM Logging + Box Visibility +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Companion spec This is the **logging/tracking layer**. The message layer — what DMs diff --git a/docs/DM_SPEC.md b/docs/DM_SPEC.md index f514c7d..854dc55 100644 --- a/docs/DM_SPEC.md +++ b/docs/DM_SPEC.md @@ -1,5 +1,7 @@ # DM Spec — Direct Messaging as the Agent Control Plane +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Status:** DRAFT for discussion, 2026-10-03. **Context:** `dm.py` on bl injects text into another agent's Muse chat (main or side chat) via headless Chromium over CDP. This spec defines what DMs *mean* — the semantics, trust model, and safety rules — so the mechanism can grow into fleet-wide agent automation without becoming a confused-deputy nightmare. diff --git a/docs/DOM-APPROVALS-SPEC.md b/docs/DOM-APPROVALS-SPEC.md index ee5b285..33b169f 100644 --- a/docs/DOM-APPROVALS-SPEC.md +++ b/docs/DOM-APPROVALS-SPEC.md @@ -1,5 +1,7 @@ # DOM Headless Approvals Spec (muse.ai automation) +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Overview When headless automation (`muse-chat-api.py` via CDP) drives a muse.ai session, the browser may surface permission/confirmation dialogs that block diff --git a/docs/DOM-APPROVALS.md b/docs/DOM-APPROVALS.md index fa0506e..28b514d 100644 --- a/docs/DOM-APPROVALS.md +++ b/docs/DOM-APPROVALS.md @@ -1,5 +1,7 @@ # DOM: Approval & Permission Dialogs +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Companion to `DOM-APPROVALS-SPEC.md` (behavioral contract: detection → classification → handling → exit codes). This doc is the **DOM surface reference**: what the dialogs look like in the tree, which selectors find diff --git a/docs/DOM-CHAT-PANEL.md b/docs/DOM-CHAT-PANEL.md index 7ba9aa5..5e1d527 100644 --- a/docs/DOM-CHAT-PANEL.md +++ b/docs/DOM-CHAT-PANEL.md @@ -1,5 +1,7 @@ # muse.ai Chat Panel & Sidechat DOM Reference +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + > Originally captured live via CDP on `opm` browser (warp-opm netns, CDP 9440). > **Re-verified 2026-10-04** via CDP `Runtime.evaluate` on three nodes: > `opm` (warp-opm, CDP 9440), `muse` (warp-muse, CDP 9410), `pip` (warp-pip, CDP 9420). diff --git a/docs/DOM-EDGE-STATES.md b/docs/DOM-EDGE-STATES.md index 1ea027a..34a4d27 100644 --- a/docs/DOM-EDGE-STATES.md +++ b/docs/DOM-EDGE-STATES.md @@ -1,5 +1,7 @@ # muse.ai Edge States DOM Reference +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + > Captured live via CDP on `opm` browser (warp-opm netns, CDP 9440) on 2026-10-04. > Re-verified 2026-10-04 across `muse` (9410), `pip` (9420), `opm` (9440) — > see §10. No alerts, toasts, approval dialogs, or offline markers on any node. diff --git a/docs/DOM-INDEX.md b/docs/DOM-INDEX.md index 435be73..b209c88 100644 --- a/docs/DOM-INDEX.md +++ b/docs/DOM-INDEX.md @@ -1,5 +1,7 @@ # muse.ai DOM Index — Master Reference +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + > **Entry point for all muse.ai DOM automation work.** > Read this first. It indexes every `data-testid`, every key selector, every > automation recipe, and flags known contradictions between the detailed docs. diff --git a/docs/DOM-MESSAGE-ACTIONS.md b/docs/DOM-MESSAGE-ACTIONS.md index 7d74a37..19df241 100644 --- a/docs/DOM-MESSAGE-ACTIONS.md +++ b/docs/DOM-MESSAGE-ACTIONS.md @@ -1,5 +1,7 @@ # DOM Reference: Message Actions & Thread Interactions +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Inspected live via CDP on the opm browser (warp-opm netns, CDP 9440), 2026-10-04. Covers main chat (`https://muse.ai/`) and sidechat threads (`/thread/`). Read-mostly probes; the only state-changing probes were opening/closing the diff --git a/docs/DOM-MESSAGES.md b/docs/DOM-MESSAGES.md index 17f5301..79fdf0e 100644 --- a/docs/DOM-MESSAGES.md +++ b/docs/DOM-MESSAGES.md @@ -1,5 +1,7 @@ # muse.ai Message DOM Map +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Reference for automation against the muse.ai chat UI. Captured live via CDP on the `opm` headless browser (viewport 780×493), 2026-10-04 ~03:45 UTC. Verified states: main chat (`https://muse.ai/`) and empty new thread diff --git a/docs/DOM-NOTIFICATIONS.md b/docs/DOM-NOTIFICATIONS.md index 57aa00b..388666d 100644 --- a/docs/DOM-NOTIFICATIONS.md +++ b/docs/DOM-NOTIFICATIONS.md @@ -1,5 +1,7 @@ # DOM reference: notifications & activity (muse.ai) +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Inspected live via CDP on the opm browser (warp-opm netns, port 9440), 2026-10-04. Re-verified 2026-10-04 across all three fleet nodes (muse 9410, pip 9420, opm 9440). diff --git a/docs/DOM-PAGE-STRUCTURE.md b/docs/DOM-PAGE-STRUCTURE.md index d4b8451..f3cf622 100644 --- a/docs/DOM-PAGE-STRUCTURE.md +++ b/docs/DOM-PAGE-STRUCTURE.md @@ -1,5 +1,7 @@ # muse.ai DOM Page Structure Reference +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Generated:** 2026-10-04 via live CDP inspection (opm browser, warp-opm netns, CDP 9440) **Purpose:** Reference for future automation development. All selectors verified against live DOM. diff --git a/docs/DOM-SEARCH.md b/docs/DOM-SEARCH.md index 621bc82..215cc2d 100644 --- a/docs/DOM-SEARCH.md +++ b/docs/DOM-SEARCH.md @@ -1,5 +1,7 @@ # DOM Reference: Search (`docs/DOM-SEARCH.md`) +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Muse.ai global search (quick-search / command palette). Inspected live on bl via CDP against the opm browser (warp-opm netns, CDP 127.0.0.1:9440) on 2026-10-04. All selectors verified against the live DOM. diff --git a/docs/DOM-SETTINGS.md b/docs/DOM-SETTINGS.md index 4f26521..ba56619 100644 --- a/docs/DOM-SETTINGS.md +++ b/docs/DOM-SETTINGS.md @@ -1,5 +1,7 @@ # DOM Reference: Settings, Profile & Dock Rail +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Inspected live via CDP on the opm browser (warp-opm netns, CDP 9440), 2026-10-04. Re-verified 2026-10-04 across all three fleet nodes (muse 9410, pip 9420, opm 9440). Structure only — no credential, token, or personal values are recorded here. diff --git a/docs/FLEET-HANDOFF.md b/docs/FLEET-HANDOFF.md index f2667c6..9fbda67 100644 --- a/docs/FLEET-HANDOFF.md +++ b/docs/FLEET-HANDOFF.md @@ -1,4 +1,6 @@ # Fleet Autonomous Development Handoff Charter + +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. **Effective Timestamp**: 2026-10-04T23:41:00Z **Authority**: Off-Board Super **Scope**: Full autonomous development, orchestration, and continuous operation handover to Fleet Operators (`646`, `pip`, `opm`, `muse`). diff --git a/docs/HYBRID-GATEWAY-ADAPTATION.md b/docs/HYBRID-GATEWAY-ADAPTATION.md index 1e4023c..a143636 100644 --- a/docs/HYBRID-GATEWAY-ADAPTATION.md +++ b/docs/HYBRID-GATEWAY-ADAPTATION.md @@ -1,5 +1,7 @@ # Hybrid Headless Gateway & Chromebox Architecture: `muse-cli` Adaptation +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Overview NetVM previously automated agent interaction (thread reading, message sends, job execution) solely via headless Chromebox containers over Chrome DevTools Protocol (CDP) and DOM manipulation. diff --git a/docs/IDENTITY-VARIANCE.md b/docs/IDENTITY-VARIANCE.md index 9d6490f..694bfae 100644 --- a/docs/IDENTITY-VARIANCE.md +++ b/docs/IDENTITY-VARIANCE.md @@ -1,5 +1,7 @@ # Identity Variance Testing +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Why All NetVM nodes currently egress from a single Cloudflare IP (`104.28.195.181`), diff --git a/docs/JOB-SPEC.md b/docs/JOB-SPEC.md index 7aff65f..37d70b6 100644 --- a/docs/JOB-SPEC.md +++ b/docs/JOB-SPEC.md @@ -1,5 +1,7 @@ # JOB-SPEC.md: Hosted Job Scheduler and Distributor +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Overview A hosted system on bl that processes and distributes jobs to agents via DM. diff --git a/docs/LOOP-MANAGEMENT.md b/docs/LOOP-MANAGEMENT.md index fef267b..b25bed7 100644 --- a/docs/LOOP-MANAGEMENT.md +++ b/docs/LOOP-MANAGEMENT.md @@ -1,5 +1,7 @@ # NetVM Intrinsic Loop Management — Operational Runbook & Architecture Specification +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## 1. Executive Overview NetVM coordinates an autonomous agent mesh (`muse`, `pip`, `646`, `opm`, `super`) communicating via inter-agent direct messages (DMs), scheduled jobs, and live browser sidechats. **Intrinsic Loops** represent communication cycles requiring closure (e.g. follow-ups, results, acknowledgements). diff --git a/docs/META-ACCOUNTS-API.md b/docs/META-ACCOUNTS-API.md index c10b313..bfab036 100644 --- a/docs/META-ACCOUNTS-API.md +++ b/docs/META-ACCOUNTS-API.md @@ -1,5 +1,7 @@ # Meta Accounts Center API +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Status:** active (2026-10-03) **Motivation:** the phone number used in the muse.ai OTP pilot is linked to a Facebook account with its own credentials. Meta account management must be a diff --git a/docs/PHONE-OTP.md b/docs/PHONE-OTP.md index cdb9e7e..ab15c05 100644 --- a/docs/PHONE-OTP.md +++ b/docs/PHONE-OTP.md @@ -1,5 +1,7 @@ # Phone-OTP Login Flow +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Status:** proven on bl (2026-10-03) Alternative to the email-OTP path for muse.ai login; same form, same OTP mechanics, different delivery channel (SMS instead of email). diff --git a/docs/RATE-LIMIT-POLICY.md b/docs/RATE-LIMIT-POLICY.md index 13b2cd2..41d808c 100644 --- a/docs/RATE-LIMIT-POLICY.md +++ b/docs/RATE-LIMIT-POLICY.md @@ -1,5 +1,7 @@ # Per-Node Rate Limit Policy (2026-10-04) +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Why All 4 fleet nodes (muse, pip, 646, opm) egress from a single Cloudflare IP diff --git a/docs/SIDECHAT-POLICY-TRIAGE.md b/docs/SIDECHAT-POLICY-TRIAGE.md index f770b8b..b70c800 100644 --- a/docs/SIDECHAT-POLICY-TRIAGE.md +++ b/docs/SIDECHAT-POLICY-TRIAGE.md @@ -1,5 +1,7 @@ # Sidechat-Only Policy — Failure Triage Runbook +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Policy:** DMs go to side chats by default. Main chat requires explicit opt-in (`--allow-main-chat` / job JSON `"allow_main_chat": true`). Anything that lands in main without opt-in is either intentional-by-design (final nudges, escalations) diff --git a/docs/SIDECHAT-RELIABILITY.md b/docs/SIDECHAT-RELIABILITY.md index 0a802d6..0ac1970 100644 --- a/docs/SIDECHAT-RELIABILITY.md +++ b/docs/SIDECHAT-RELIABILITY.md @@ -1,5 +1,7 @@ # Sidechat Reliability Runbook +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Fleet sidechat DMs are the fleet's nervous system. On 2026-10-04 they were measured at ~1/3 navigation success. This runbook is the single place that explains how the machinery works, how each known failure looks in the logs, diff --git a/docs/SIDECHAT_SPEC.md b/docs/SIDECHAT_SPEC.md index 65df395..0293b0e 100644 --- a/docs/SIDECHAT_SPEC.md +++ b/docs/SIDECHAT_SPEC.md @@ -1,5 +1,7 @@ # Side Chat Spec (muse.ai) +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## Overview Side chats are isolated conversation contexts within a muse.ai agent. Each side chat maps to an organizational unit (channel, thread, task) diff --git a/docs/THREAD-BOOKKEEPING.md b/docs/THREAD-BOOKKEEPING.md index 69c12f4..ace8881 100644 --- a/docs/THREAD-BOOKKEEPING.md +++ b/docs/THREAD-BOOKKEEPING.md @@ -1,5 +1,7 @@ # Thread Bookkeeping with Pin & Archive +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Status:** runbook (2026-10-04) **Applies to:** muse.ai side-chat threads used by the fleet DM system diff --git a/docs/TIMER-STAGGER.md b/docs/TIMER-STAGGER.md index b4ec95b..5b328c1 100644 --- a/docs/TIMER-STAGGER.md +++ b/docs/TIMER-STAGGER.md @@ -1,5 +1,7 @@ # Timer Stagger — Fleet Polling De-correlation +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + **Date:** 2026-10-04 ~21:50 UTC **Why:** All 4 NetVM nodes egress via the same Warp IP (104.28.195.181). Synchronized timers = 4x correlated traffic bursts from one IP = correlated rate-limit risk. diff --git a/docs/TOKEN_POLICY.md b/docs/TOKEN_POLICY.md index 63967fd..333a27b 100644 --- a/docs/TOKEN_POLICY.md +++ b/docs/TOKEN_POLICY.md @@ -1,5 +1,7 @@ # Exec-constrained token policy +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Tokens for the bl exec endpoint (`bin/exec-constrained.py`) are infrastructure secrets. This policy binds every operator and agent in the fleet. diff --git a/docs/UUID-ROTATION.md b/docs/UUID-ROTATION.md index 181f488..35d98f5 100644 --- a/docs/UUID-ROTATION.md +++ b/docs/UUID-ROTATION.md @@ -1,5 +1,7 @@ # Thread-UUID rotation: measurement & mapping hygiene proposal +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Date: 2026-10-04. Source: `dm-log.jsonl` (window 2026-10-03 21:36Z → 2026-10-04 19:46Z, ~22h, 3318 lines — the log does not cover a full 7 days; rates below are extrapolated from this window and should be re-measured on a longer one). diff --git a/docs/WARP-EGRESS-FIX.md b/docs/WARP-EGRESS-FIX.md index 9b53427..9d9d4bf 100644 --- a/docs/WARP-EGRESS-FIX.md +++ b/docs/WARP-EGRESS-FIX.md @@ -1,5 +1,7 @@ # WARP Egress Fix — Distinct Egress IPs per NetVM Node +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + Date: 2026-10-04 Status: DESIGN (not yet implemented) Author: operator-main diff --git a/docs/dm-cross-operator-runbook.md b/docs/dm-cross-operator-runbook.md index 308c8e8..51fa89a 100644 --- a/docs/dm-cross-operator-runbook.md +++ b/docs/dm-cross-operator-runbook.md @@ -1,5 +1,7 @@ # dm.py Cross-Operator DMs — Operator Runbook +> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers. + ## The `--to` Flag Send messages between operators (opm, 646, pip, muse) using the recipient's