Repository navigation
feat(examples): add a live streaming durable Pi agent demo - #102
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The durable Pi example now has a browser frontend that displays actual provider text while a task runs, shows confirmed tool effects and checkpoints, and restores saved results after reload or worker replacement. This PR also qualifies the installed package and adds opt-in real-provider recovery tests.
Behavior
Run
After the README build steps, launch from the repository root:
CELLAR_PI_HOST="$CARGO_TARGET_DIR/debug/cellar-pi-agent-example" \ node --env-file=/path/to/openai.env examples/pi-agent/demo/launch.mjsOpen http://127.0.0.1:4317. The default is OpenAI gpt-4.1-mini with real provider charges;
CELLAR_PI_PROVIDER=fixtureis the explicitly labeled no-credentials alternative. The README documents ports, persistent data, streaming semantics, recovery and repeatable live tests.Validation
Locally on macOS arm64, Node 24.13.1 and Rust 1.98.1:
Live tests are opt-in; CI's model fixture does not make paid requests. No credentials, generated screenshots, reports or binaries are committed. This remains a bounded local development demo: previews are ephemeral, interrupted uncheckpointed provider requests may repeat, and arbitrary external tools require their own downstream idempotency/reconciliation. Production authentication, multi-host preview routing and production fleet fault qualification are outside this example.