# Agent fleet config — single source of truth for bootstrap.sh and save_scrollback.sh
#
# Each agent gets its own tmux window. The bootstrap script:
#   1. cd's into `cwd`
#   2. launches `claude --dangerously-skip-permissions`
#   3. sends an onboarding prompt that tells the agent to read its ROLE.md,
#      shared/GUIDELINES.md, shared/REPORT_FORMAT.md, and (if present) its
#      latest scrollback log to recover prior context.
#
# Service windows do NOT run claude — they run long-running processes
# (Flask dashboard, cloudflared tunnel, etc.).

session: agents

agents:
  manager:
    description: Orchestrator — coordinates agents, manages infrastructure
    cwd: /data/cameron/agents_stuff
    role_file: agents/manager/ROLE.md

  project_highlevel:
    description: High-level project strategy, scoping, and scientific discussion
    cwd: /data/cameron/para
    role_file: agents/project_highlevel/ROLE.md

  life_manager:
    description: Personal advisor and life knowledge base manager
    cwd: /data/cameron/life
    role_file: agents/life_manager/ROLE.md

  backbones:
    description: OOD object position and viewpoint generalization experiments
    cwd: /data/cameron/para
    role_file: agents/backbones/ROLE.md

  vid_model:
    description: Video model backbone training and lightweight PARA wrapper
    cwd: /data/cameron/para
    role_file: agents/vid_model/ROLE.md

  droid:
    description: Downloading and preparing DROID for large-scale pretraining
    cwd: /data/cameron/para
    role_file: agents/droid/ROLE.md

  panda:
    description: Franka Panda real robot experiments (remote via SSH)
    cwd: /data/cameron/para
    role_file: agents/panda/ROLE.md

  567_project:
    description: 567 course project — augmentation and viewpoint robustness
    cwd: /data/cameron/567_augmentation_viewpoint_project
    role_file: agents/567_project/ROLE.md

  paper_writer:
    description: LaTeX paper writing and formatting
    cwd: /data/cameron/para
    role_file: agents/paper_writer/ROLE.md

  figure_maker:
    description: Generating publication-quality visualizations and figures
    cwd: /data/cameron/para
    role_file: agents/figure_maker/ROLE.md

  data_visualizer:
    description: Dataset viewer and data visualization tools
    cwd: /data/cameron/para
    role_file: agents/data_visualizer/ROLE.md

  website_builder:
    description: Building the PARA project website
    cwd: /data/cameron/para
    role_file: agents/website_builder/ROLE.md

  mobile_chat:
    description: Mobile chat assistant with iframe viewer
    cwd: /data/cameron/para
    role_file: agents/mobile_chat/ROLE.md

  mac:
    description: Mac-side robotics work — MuJoCo/URDF, dataset collection, local inference (operates on Mac via SSHFS mount + ssh exec)
    cwd: /home/cameronsmith
    role_file: agents/mac/ROLE.md

  yams:
    description: TRI workstation specialist — YAM robot, DGX compute, on-site data pipeline (via school→mac→TRI ssh chain). Replaces panda.
    cwd: /data/cameron
    role_file: agents/yams/ROLE.md

  our_wandb:
    description: Builds a file-system-driven mock wandb viewer over disk-cached run dirs. Reads images / config / summary / loss curves with smoothing; groups runs by model name.
    cwd: /data/cameron/agents_stuff
    role_file: agents/our_wandb/ROLE.md

  glasses:
    description: Builds a developer-mode app for Cameron's Even Realities G2 smart glasses — turns the glasses into a wearable hub for the agent fleet (read status, talk to agents, send updates).
    cwd: /data/cameron/agents_stuff
    role_file: agents/glasses/ROLE.md

  voice_interface:
    description: Voice-driven brain for the Even G2 glasses — receives Whisper-transcribed prompts, dispatches via send-keys/capture-pane across the fleet, returns short human-readable replies sized for the glasses display.
    cwd: /data/cameron/agents_stuff
    role_file: agents/voice_interface/ROLE.md

  persian:
    description: Builds and maintains Cameron's web-based Persian tutor at omidlab.net/persian (Flask app on :5001 reverse-proxied via serve.py, Claude tutor + ElevenLabs TTS). Owns the prompt, voice, and feature roadmap (vocab/SRS, glasses integration, proactive mode).
    cwd: /data/cameron/agents_stuff
    role_file: agents/persian/ROLE.md

  cad:
    description: Collaborative robot design + STL iteration — modular custom 6-DOF robots in Blender + MuJoCo, with describe→generate→Blender-edit→re-integrate→simulate loop. Near-term goals are remaking Cameron's existing robot modularly with wrist camera + a better UMI-style data-collection rig.
    cwd: /data/cameron/agents_stuff
    role_file: agents/cad/ROLE.md

  yam_sim:
    description: YAM simulation specialist — MuJoCo, sim training, sim-side fiducial exoskeleton, sim2real analysis, sim-derived datasets. Forked from `yams` 2026-07-02 via JSONL clone; owns simulation while yams keeps real-robot side.
    cwd: /data/cameron
    role_file: agents/yam_sim/ROLE.md

  yam_calib:
    description: YAM calibration + data-recording specialist — real calibration (wrist-cam, scene-cam, arm-zero, hand-eye), real-side fiducial exoskeleton (PnP, physical setup), data recording infra (record.py, ZED, CAN, storage schema). Forked from `yams` 2026-07-02 via JSONL clone.
    cwd: /data/cameron
    role_file: agents/yam_calib/ROLE.md

  sufi_lectures:
    description: Sufi-lecture archiver + transcriber — download from YouTube/other sources, run Persian/mixed ASR (Whisper), build durable searchable archive; hands off phrases to persian for SRS ingest. Forked from `life_manager` 2026-07-06 via JSONL clone.
    cwd: /data/cameron/life
    role_file: agents/sufi_lectures/ROLE.md

  financials:
    description: Cameron's financial analysis + tracking — spending patterns, budget, income, savings, investments, subscription audits, monthly/annual reviews, financial-decision analysis. Forked from `life_manager` 2026-07-06 via JSONL clone.
    cwd: /data/cameron/life
    role_file: agents/financials/ROLE.md

  yams_any4d:
    description: Any4D video-model finetuner on YAM data — clones TRI-ML/Any4D, preps YAM recordings into the Any4D format, runs finetune on Puget, evaluates. Forked from `yams` 2026-07-08 via JSONL clone.
    cwd: /data/cameron
    role_file: agents/yams_any4d/ROLE.md

  feetech_calib:
    description: Feetech STS3215 (and related SM/STS models) servo calibration — zero offset, direction, range, gains, ID assignment, baud/comm, register reads, diagnostics. Complements `cad` which owns mechanical/URDF. Forked from `cad` 2026-07-11 via JSONL clone.
    cwd: /data/cameron/agents_stuff
    role_file: agents/feetech_calib/ROLE.md

  smithbot_training:
    description: Applies the yam-para v4 training + model + viz + eval stack to Cameron's smith300 6-DOF arm. Data recording, dataset layout, training runs, viz, eval, deploy — all for smith300. Coordinates with cad (URDF) + feetech_calib (calibration). Forked from `yams` 2026-07-14 via JSONL clone.
    cwd: /data/cameron
    role_file: agents/smithbot_training/ROLE.md

# Service windows — long-running processes, no claude.
# The single `dashboard` window runs the existing Flask serve.py which
# exposes all three websites Cameron mentioned (project_site, mobile_chat
# UI, agents dashboard) on different routes of omidlab.net. Split into
# multiple windows later if needed.
services:
  srv_persian:
    description: Persian-tutor Flask app — runs app.py from /data/cameron/life/projects/persian on localhost:5001, reverse-proxied to omidlab.net/persian via serve.py
    cwd: /data/cameron/life/projects/persian
    command_hint: |
      ./.venv/bin/python app.py 2>&1 | tee app.log

  dashboard:
    description: Flask dashboard + cloudflared tunnel — serves omidlab.net
    cwd: /data/cameron/para/.agents/reports
    # bootstrap.sh prints this command in the window — run manually so
    # secrets aren't auto-injected. See README for details.
    command_hint: |
      source /data/cameron/agents_stuff/.env
      python serve.py --port 8090 &
      while true; do
        cloudflared tunnel --url http://localhost:8090 run para-dashboard
        echo 'Tunnel died, restarting in 3s...'
        sleep 3
      done
