mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-11 22:53:00 +00:00
commit
1095f26d79
2 changed files with 262 additions and 0 deletions
11
graph.fabro
Normal file
11
graph.fabro
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
digraph Sleeper {
|
||||
graph [goal="Sleep long enough for a human to practice interrupts and steering"]
|
||||
rankdir=LR
|
||||
|
||||
start [shape=Mdiamond, label="Start"]
|
||||
exit [shape=Msquare, label="Exit"]
|
||||
|
||||
nap [label="Nap", timeout="360s", prompt="Run exactly one shell command using the Bash tool: `sleep 300`, with the tool `timeout_ms` parameter set to 310000 or higher. Wait for it to return. Do not run any other commands, do not read or edit any files, do not check the environment first. After `sleep 300` returns, reply with the single word 'done' and stop."]
|
||||
|
||||
start -> nap -> exit
|
||||
}
|
||||
251
run.json
Normal file
251
run.json
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
{
|
||||
"title": "Sleep long enough for a human to practice interrupts and steering",
|
||||
"spec": {
|
||||
"run_id": "01KS7QBHW1AQ9BRTMA1NXPKK1A",
|
||||
"settings": {
|
||||
"project": {
|
||||
"name": null,
|
||||
"description": null,
|
||||
"metadata": {}
|
||||
},
|
||||
"workflow": {
|
||||
"name": null,
|
||||
"description": null,
|
||||
"graph": "workflow.fabro",
|
||||
"metadata": {}
|
||||
},
|
||||
"run": {
|
||||
"goal": {
|
||||
"type": "inline",
|
||||
"value": "Sleep long enough for a human to practice interrupts and steering"
|
||||
},
|
||||
"working_dir": null,
|
||||
"metadata": {},
|
||||
"inputs": {},
|
||||
"model": {
|
||||
"provider": "anthropic",
|
||||
"name": "claude-sonnet-4-6",
|
||||
"fallbacks": [],
|
||||
"controls": {
|
||||
"reasoning_effort": null,
|
||||
"speed": null
|
||||
}
|
||||
},
|
||||
"git": {
|
||||
"author": null
|
||||
},
|
||||
"prepare": {
|
||||
"commands": [],
|
||||
"timeout_ms": 300000
|
||||
},
|
||||
"execution": {
|
||||
"mode": "normal",
|
||||
"approval": "auto"
|
||||
},
|
||||
"checkpoint": {
|
||||
"exclude_globs": []
|
||||
},
|
||||
"clone": {
|
||||
"enabled": true
|
||||
},
|
||||
"run_branch": {
|
||||
"enabled": true,
|
||||
"push": true
|
||||
},
|
||||
"meta_branch": {
|
||||
"enabled": true,
|
||||
"push": true
|
||||
},
|
||||
"sandbox": {
|
||||
"provider": "daytona",
|
||||
"preserve": false,
|
||||
"stop_on_terminal": true,
|
||||
"devcontainer": false,
|
||||
"env": {},
|
||||
"docker": {
|
||||
"image": "buildpack-deps:noble",
|
||||
"network_mode": null,
|
||||
"memory_limit": 4000000000,
|
||||
"cpu_quota": 200000,
|
||||
"env_vars": {}
|
||||
},
|
||||
"daytona": {
|
||||
"auto_stop_interval": 30,
|
||||
"labels": {
|
||||
"repo": "fabro-sh/fabro"
|
||||
},
|
||||
"volumes": [],
|
||||
"snapshot": {
|
||||
"name": "fabro-v11",
|
||||
"cpu": 8,
|
||||
"memory_gb": 16,
|
||||
"disk_gb": 20,
|
||||
"dockerfile": {
|
||||
"type": "inline",
|
||||
"value": "FROM ubuntu:24.04\n\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n curl git ca-certificates build-essential pkg-config libssl-dev unzip python3 \\\n xvfb xfce4 xfce4-terminal x11vnc novnc dbus-x11 \\\n libx11-6 libxrandr2 libxext6 libxrender1 libxfixes3 libxss1 libxtst6 libxi6 \\\n && rm -rf /var/lib/apt/lists/*\n\n# Install real Chromium (not the snap stub) via xtradeb PPA\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n software-properties-common curl gnupg \\\n && add-apt-repository -y ppa:xtradeb/apps \\\n && apt-get update \\\n && apt-get install -y --no-install-recommends chromium \\\n && rm -rf /var/lib/apt/lists/*\n\n# Wrapper: Chromium needs --no-sandbox when running as root in a container,\n# and --disable-dev-shm-usage avoids crashes from small /dev/shm\nRUN printf '#!/bin/bash\\nexec /usr/bin/chromium --no-sandbox --disable-dev-shm-usage \"$@\"\\n' \\\n > /usr/local/bin/chromium-wrapper \\\n && chmod +x /usr/local/bin/chromium-wrapper\n\n# Make the wrapper the default in the system .desktop file and via alternatives\nRUN sed -i 's|^Exec=.*|Exec=/usr/local/bin/chromium-wrapper %U|' \\\n /usr/share/applications/chromium.desktop \\\n && update-alternatives --install /usr/bin/x-www-browser x-www-browser \\\n /usr/local/bin/chromium-wrapper 100\n\n# Tell XFCE's exo-open that Chromium is the WebBrowser helper (system-wide)\nRUN mkdir -p /etc/xdg/xfce4 /usr/share/xfce4/helpers \\\n && printf 'WebBrowser=custom-WebBrowser\\n' > /etc/xdg/xfce4/helpers.rc \\\n && printf '[Desktop Entry]\\n\\\nVersion=1.0\\n\\\nType=X-XFCE-Helper\\n\\\nName=Chromium\\n\\\nIcon=chromium\\n\\\nX-XFCE-Category=WebBrowser\\n\\\nX-XFCE-CommandsWithParameter=/usr/local/bin/chromium-wrapper \"%%s\"\\n\\\nX-XFCE-Commands=/usr/local/bin/chromium-wrapper\\n' \\\n > /usr/share/xfce4/helpers/custom-WebBrowser.desktop\n\n# GitHub CLI\nRUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \\\n | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \\\n && echo \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main\" \\\n | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \\\n && apt-get update && apt-get install -y --no-install-recommends gh \\\n && rm -rf /var/lib/apt/lists/*\n\n# Rust\nRUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\nENV PATH=\"/root/.cargo/bin:${PATH}\"\nRUN rustup toolchain install nightly-2026-04-14 --profile minimal --component clippy,rustfmt\nRUN cargo install cargo-nextest --locked\nENV CARGO_INCREMENTAL=0\n\n# Bun\nRUN curl -fsSL https://bun.sh/install | bash\nENV PATH=\"/root/.bun/bin:${PATH}\"\n\nWORKDIR /root\n"
|
||||
}
|
||||
},
|
||||
"network": null
|
||||
}
|
||||
},
|
||||
"notifications": {},
|
||||
"interviews": {
|
||||
"provider": null,
|
||||
"slack": null
|
||||
},
|
||||
"agent": {
|
||||
"permissions": null,
|
||||
"mcps": {}
|
||||
},
|
||||
"hooks": [],
|
||||
"scm": {
|
||||
"provider": null,
|
||||
"owner": null,
|
||||
"repository": null,
|
||||
"github": null
|
||||
},
|
||||
"pull_request": {
|
||||
"enabled": true,
|
||||
"draft": false,
|
||||
"auto_merge": false,
|
||||
"merge_strategy": "squash"
|
||||
},
|
||||
"artifacts": {
|
||||
"include": []
|
||||
},
|
||||
"integrations": {
|
||||
"github": {
|
||||
"permissions": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"graph": {
|
||||
"name": "Sleeper",
|
||||
"nodes": {
|
||||
"start": {
|
||||
"id": "start",
|
||||
"attrs": {
|
||||
"label": {
|
||||
"String": "Start"
|
||||
},
|
||||
"shape": {
|
||||
"String": "Mdiamond"
|
||||
}
|
||||
}
|
||||
},
|
||||
"nap": {
|
||||
"id": "nap",
|
||||
"attrs": {
|
||||
"timeout": {
|
||||
"Duration": {
|
||||
"secs": 360,
|
||||
"nanos": 0
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"String": "Nap"
|
||||
},
|
||||
"prompt": {
|
||||
"String": "Run exactly one shell command using the Bash tool: `sleep 300`, with the tool `timeout_ms` parameter set to 310000 or higher. Wait for it to return. Do not run any other commands, do not read or edit any files, do not check the environment first. After `sleep 300` returns, reply with the single word 'done' and stop."
|
||||
}
|
||||
}
|
||||
},
|
||||
"exit": {
|
||||
"id": "exit",
|
||||
"attrs": {
|
||||
"shape": {
|
||||
"String": "Msquare"
|
||||
},
|
||||
"label": {
|
||||
"String": "Exit"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"edges": [
|
||||
{
|
||||
"from": "start",
|
||||
"to": "nap",
|
||||
"attrs": {}
|
||||
},
|
||||
{
|
||||
"from": "nap",
|
||||
"to": "exit",
|
||||
"attrs": {}
|
||||
}
|
||||
],
|
||||
"attrs": {
|
||||
"rankdir": {
|
||||
"String": "LR"
|
||||
},
|
||||
"goal": {
|
||||
"String": "Sleep long enough for a human to practice interrupts and steering"
|
||||
}
|
||||
}
|
||||
},
|
||||
"graph_source": "digraph Sleeper {\n graph [goal=\"Sleep long enough for a human to practice interrupts and steering\"]\n rankdir=LR\n\n start [shape=Mdiamond, label=\"Start\"]\n exit [shape=Msquare, label=\"Exit\"]\n\n nap [label=\"Nap\", timeout=\"360s\", prompt=\"Run exactly one shell command using the Bash tool: `sleep 300`, with the tool `timeout_ms` parameter set to 310000 or higher. Wait for it to return. Do not run any other commands, do not read or edit any files, do not check the environment first. After `sleep 300` returns, reply with the single word 'done' and stop.\"]\n\n start -> nap -> exit\n}\n",
|
||||
"workflow_slug": "sleeper",
|
||||
"source_directory": "/Users/bhelmkamp/p/fabro-sh/fabro",
|
||||
"provenance": {
|
||||
"server": {
|
||||
"version": "0.240.0-nightly.1"
|
||||
},
|
||||
"client": {
|
||||
"user_agent": "fabro-cli/0.240.0-nightly.1",
|
||||
"name": "fabro-cli",
|
||||
"version": "0.240.0-nightly.1"
|
||||
},
|
||||
"subject": {
|
||||
"kind": "user",
|
||||
"identity": {
|
||||
"issuer": "https://github.com",
|
||||
"subject": "19"
|
||||
},
|
||||
"login": "brynary",
|
||||
"auth_method": "github"
|
||||
}
|
||||
},
|
||||
"manifest_blob": "765b0be82cdbdaef5b568c0763439de656e2fea7a95f2d4837af2d0dbd7ea785",
|
||||
"definition_blob": "1703db62ba0bfac54a6228d09ea4090d09d00e04aa1589828e1480f9d00a1a09",
|
||||
"git": {
|
||||
"origin_url": "https://github.com/fabro-sh/fabro",
|
||||
"branch": "main",
|
||||
"sha": "f5ec711a2c5960e9e6b291ec14360bec8a9dba9e",
|
||||
"dirty": "dirty",
|
||||
"push_outcome": {
|
||||
"type": "not_attempted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"web_url": "http://127.0.0.1:32276/runs/01KS7QBHW1AQ9BRTMA1NXPKK1A",
|
||||
"start": null,
|
||||
"status": {
|
||||
"kind": "starting"
|
||||
},
|
||||
"status_updated_at": "2026-05-22T11:32:59.499748Z",
|
||||
"last_event_at": "2026-05-22T11:33:16.092313Z",
|
||||
"pending_control": null,
|
||||
"checkpoints": [],
|
||||
"conclusion": null,
|
||||
"sandbox": {
|
||||
"provider": "daytona",
|
||||
"image": "buildpack-deps:noble",
|
||||
"snapshot": "fabro-v11",
|
||||
"runtime": {
|
||||
"id": "fabro-01KS7QBHW1AQ9BRTMA1NXPKK1A",
|
||||
"working_directory": "/home/daytona/workspace/fabro",
|
||||
"repo_cloned": true,
|
||||
"clone_origin_url": "https://github.com/fabro-sh/fabro",
|
||||
"clone_branch": "main",
|
||||
"workspace_root": "/home/daytona/workspace",
|
||||
"repos_root": "/home/daytona/repos",
|
||||
"primary_repo_path": "/home/daytona/repos/fabro-sh/fabro",
|
||||
"primary_repo_link": "/home/daytona/workspace/fabro"
|
||||
}
|
||||
},
|
||||
"pull_request": null,
|
||||
"superseded_by": null,
|
||||
"pending_interviews": {},
|
||||
"stages": {}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue