SPB Git

spb/wp42_uqo

Public
5.7 KB · 50 lines markdown
1# Phase 0 — Discovery report (2026-11-02, evening ET)23Everything below was measured live during the session; nothing is copied from historical inventories.45## 0.1 Controller host (laptop)6- macOS 27.0 (Darwin 27.0.0), Claude Code **2.1.316** at `/opt/homebrew/bin/claude`, Python 3 available, LaTeX (latexmk) used by earlier working papers.7- The controller launches, monitors, collects and evaluates; it never runs a worker itself.89## 0.2 Executor nodes (live survey, `ssh` + `sysctl` + `claude --version`)10| Node | macOS | Cores / RAM | Free disk | Claude Code | Python | uv | LibreOffice | GUI session |11|---|---|---|---|---|---|---|---|---|12| M3U96a | 26.6 | 28 / 96 GB | 238 GB | 2.1.314 (npm global) | 3.14.5 | yes | installed in Phase 0 (brew cask) | console user logged in; System Events answers; Finder/TextEdit time out |13| M3U96b | 26.4 | 28 / 96 GB | 380 GB | 2.1.314 | 3.14.4 | yes | 26.2.3 | console user logged in; **all Apple Events time out** |14| M4M64a | 26.5.1 | 16 / 64 GB | 540 GB | 2.1.314 | 3.14.4 | yes | 26.2.3 | console user logged in; System Events answers; TextEdit times out |15| M4M64b | 26.5.1 | 16 / 64 GB | 54 GB | 2.1.314 | 3.14.4 | installed in Phase 0 | installed in Phase 0 | console user logged in; **all Apple Events time out** |1617Other LAN nodes reachable (M2U64, M4M64c, M5M36, M4BP48, M4BP36, M2M32c, M1M32, m4mm, m4mn, m6ma, m6mb, m5ma) do **not** have Claude Code installed; M4M36, M2M32, M2M32b, m4mc, m4ma did not answer SSH within 6 s. The pilot therefore uses the four Claude-equipped nodes (4 × 2.1.314, one version, pinned by recording `claude_code_version` in every result event).1819## 0.3 Model access and marginal cost (headless `claude --bare -p`, one trivial turn, API key from the WP29 study, stored only in `~/Desktop/Cluster/secrets/wp42/.env` and `<node>:~/wp42/.env`, mode 600, never in the repository)20| Model id | Answered | Cost of one trivial turn (USD) |21|---|---|---|22| claude-haiku-5-5 | yes | 0.000203 |23| claude-sonnet-5-5 | yes | 0.00406 |24| claude-opus-5-5 | yes | 0.00812 |25| claude-fable-5-1 | yes | 0.0203 |2627Cost is read from the `result.total_cost_usd` field of the stream-json output (the same field WP29 used); no price table is assumed.2829## 0.4 Claude Code interface facts verified for the orchestrator (2.1.316 `--help`, and live probes)30- `--bare -p <prompt> --output-format stream-json --verbose` streams `system`, `assistant`, `user`, `result` events; `--bare` requires `ANTHROPIC_API_KEY` and skips hooks, settings and the user's CLAUDE.md (so the cluster instructions never leak into a worker).31- `--tools A,B,…` restricts the tool set: a worker launched with `--tools Read,Write,Edit,Glob,Grep` has **no shell** (probe: the model reports only Edit/Read and cannot run `echo hi`).32- `--disallowedTools "Bash(osascript:*)"` denies a command family inside Bash (probe: `osascript -e 'return 42'` was denied, `echo plain-ok` ran).33- `--max-budget-usd`, `--max-turns`, `--session-id`, `--resume`, `--model`, `--effort`, `--append-system-prompt-file`, `--permission-prompts none`, `--no-chrome`, `--disable-slash-commands`, `--json-schema` exist. No `Agent`/`Task` tool is given to workers, which prevents recursive spawning; the launcher additionally refuses to start when `WP42_DEPTH` is already set.3435## 0.5 AppleScript / GUI automation (measured, not assumed)36- Over SSH, `osascript` reaches **System Events** on M3U96a and M4M64a (process list, frontmost app) but **not** on M3U96b/M4M64b (AppleEvent timeout −1712); **Finder and TextEdit time out on all four nodes** (the request is blocked by the Automation consent prompt on the console, which nobody can answer; this is the macOS TCC behaviour for non-console processes).37- Consequence for the design: treatment **A2 "macOS agent"** is implemented as *shell + the macOS automation layer that works headlessly* — `osascript` (AppleScript language, `do shell script`, System Events on the two nodes that answer), and the native macOS document utilities (`textutil`, `sips`, `mdls/mdfind`, `qlmanage`, `cupsfilter`). Control of GUI applications (TextEdit, Numbers, Pages) is **not available** and is recorded as an infrastructure limitation. GUI-dependent runs are pinned to M3U96a/M4M64a (`requires: system_events`).38- Playwright **headless Chromium** (Chrome Headless Shell 156) launches on all four nodes from the project venv → treatment A3's browser is a real browser engine driving the synthetic enterprise portal (local HTTP, loopback only).39- LibreOffice 26.2 headless is available for document conversion and spreadsheet recalculation (A3/A4 office adapter).4041## 0.6 Network and security42- Nodes reach the Anthropic API directly; SSH inter-node over Tailscale is blocked by ACL, so the controller uses the LAN aliases. Workers are told that external communication is forbidden; the orchestrator gives them no credentials other than the API key in the process environment, and the synthetic portal listens on 127.0.0.1 only.43- Workspaces are per run: `<node>:~/wp42/runs/<run_id>/` (fresh copy of the public bundle, deleted artefacts of previous runs never visible). Hidden oracles live only on the laptop in `~/wp42-oracles/` (outside the repository, outside every node).4445## 0.7 Maximum safe concurrency (pilot)46WP29 ran 2 concurrent sessions per node without incident at ~115 s per run. WP42 runs are longer (office documents, portal); the pilot uses **3 concurrent sessions per node (12 in total)**, with a per-run wall limit of 1,800 s and a spending cap of 4 USD per session, both enforced by the launcher.4748## 0.8 Feasibility verdict49Feasible for the agent arms A0–A4. The human arms H0/H1 require recruited participants, consent and an ethics approval that do not exist at the time of writing: they are **designed and documented (protocol/ethics) but not executed**, and no human data is imputed.50
Files · main
Menu

Theme