Repository navigation
Conversation
Hand-written recipes now run with no model: - core: executeRecipe (lint → render → one batch → verify), exit codes, the replay-session policy (tyto-rx with Tyto's own agent-browser config and a domain allowlist; tyto-rx-auth with saved logins only for approved auth recipes), launch-error retry, 15 s deadline, 6 s action timeout. New ports: BrowserRunner, RecipeStore, SessionLock, with fakes. Recipes gain `domains` for CDN hosts the page loads from. - @tyto/agent-browser: spawns the CLI with an argv array, sends batch steps as JSON on stdin, strips lifecycle noise, kills on abort. - @tyto/store: recipe files (validated on save and load, 0600, atomic), an O_EXCL session lock that reclaims dead holders, and the replay config/policy files. - @tyto/cli: `tyto run`, `tyto test`, `tyto recipes [show|rm]`; bin runs the TypeScript sources directly. Verified live with a hand-written GitHub recipe through the user's Edge: correct Latest tags for three repos (including Node, where an older LTS release is listed first), a safe miss for a missing repo, and exit 64 for a bad param. Opt-in live tests cover hit-then-miss and a fast failure on a missing element. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Stacked on #6. Spec sentences are in
docs/IMPLEMENTATION.md§4 Slice 3, updated in this PR to match what was built. Hand-written recipes now replay with no model.What
Core
executeRecipe: lint → render → one agent-browser batch → verify.tyto-rxruns with Tyto's own agent-browser config viaAGENT_BROWSER_CONFIG. agent-browser's source (flags.rsload_config) confirms that config replaces the user's entirely, so saved logins never load. It also runs with--allowed-domains.tyto-rx-authuses--restore mainand runs only approvedauthrecipes.BrowserRunner,RecipeStore,SessionLock, with fakes.domains: CDN hosts the page may load from, added to the allowlist.@tyto/agent-browser@tyto/storeO_EXCLsession lock that reclaims locks whose holder process has died.ensureReplayFileswrites the replay config (onlyexecutablePathcopied from your config) and the policy{default: allow, deny: [download, upload]}.@tyto/clityto run,tyto test(regression cases),tyto recipes [--json | show | rm].bin/tyto.mjsruns the TypeScript sources directly. New packages useerasableSyntaxOnlyso that stays possible.Tests
npm run check: 8 files, 73 tests, typecheck clean, gitleaks clean.The adapter tests use a stand-in executable, so there's no browser or network.
npm run test:live(opt-in, real agent-browser, loopback page): 2 passed. A recipe hits, then misses after the page changes; a missing element fails in under 7 s.Manual end to end, with a hand-written GitHub recipe, through the user's Edge:
vercel-labs/agent-browserv0.38.1✅nodejs/nodev26.10.0✅ (an older LTS release is listed first; the recipe follows the Latest badge)denoland/denov2.9.7✅--n twotyto testRuns took 1.4–2.1 s each, including a live GitHub page load.
🤖 Generated with Claude Code