030a6bc793
The previous demo harness called the backend Python API directly, which didn't match what a user typing `./cli.py start <agent>` would actually see. The recording now goes through the real CLI surface: - claude-bottle.demo.json + scripts/demo-setup.sh stage a demo manifest (one bottle, FAKE_TOKEN env, one unreachable git upstream) alongside a dummy SSH identity at ~/.cache/claude-bottle-demo/. - docs/demo.tape types `./cli.py start demo`, answers the y/N preflight, and runs four bash probes via claude's `!` prefix (curl x3 + git push), so the recording shows real preflight output and real probe results. - scripts/demo.sh wraps setup -> cli.py -> teardown for human use; scripts/demo-record.sh does the same around `vhs docs/demo.tape`. - .gitignore picks up claude-bottle.json so a user's local manifest doesn't get tracked alongside .example / .demo siblings. scripts/demo_harness.py is removed -- its behavior is fully replaced by the cli.py + `!` flow. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
26 lines
484 B
JSON
26 lines
484 B
JSON
{
|
|
"bottles": {
|
|
"demo": {
|
|
"env": {
|
|
"FAKE_TOKEN": "ghp_aB3cD4eF5gH6iJ7kL8mN9oP0qR1sT2uV3wX4yZ"
|
|
},
|
|
"git": [
|
|
{
|
|
"Name": "foo",
|
|
"Upstream": "ssh://git@upstream.invalid/path.git",
|
|
"IdentityFile": "~/.cache/claude-bottle-demo/fake-key",
|
|
"KnownHostKey": "ssh-ed25519 AAAAEXAMPLE"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
|
|
"agents": {
|
|
"demo": {
|
|
"bottle": "demo",
|
|
"skills": [],
|
|
"prompt": ""
|
|
}
|
|
}
|
|
}
|