{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=rajkaria/budget-left@0.1.1","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/rajkaria/budget-left@0.1.1","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/rajkaria/budget-left@0.1.1","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/rajkaria/budget-left@0.1.1 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"You set a number you are willing to spend on agents today. This tells you how much of it is gone, how fast you are burning it, and whether you are going to hit the cap before the day ends. Today's spend is priced from the transcripts the agents already write, by tail, the same way \u0060last-turn\u0060 does it, so it is cheap enough to check between tasks. The burn rate is measured from your first turn of the day rather than from midnight, because an hour you were not working is not an hour you were spending. The crossing time is only ever printed when the crossing happens today: \"about 16:40\" for a moment eighteen days away would read as this afternoon and mean nothing, so instead it says the cap is not today's problem at this rate. A day with nothing billed says so, rather than dividing by zero and inventing a rate. - Reads: \u0060*.jsonl\u0060 transcripts under \u0060claude_dir\u0060 and \u0060codex_dir\u0060, tails only, up to three directories deep. Only files touched in the last two days are opened at all. - Never reads: \u0060~/.claude.json\u0060, \u0060~/","distribution":{"digest":"sha256:547a4b5f538c7253dacbf1750e7f8040e1fb315dc22876dd9cbf9ea2a5607c21","mediaType":"application/vnd.modiqo.rote-flow","size":81272,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/rajkaria/budget-left@0.1.1","inputPolicy":{"omittedValues":"inspect_full_parameters_before_collecting_values_or_consent","optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/rajkaria/budget-left@0.1.1","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/rajkaria/budget-left@0.1.1.json"},"name":"budget-left","owner":{"kind":"user","slug":"rajkaria"},"parameters":[{"default":"10","description":"What you are willing to spend on agents today, in dollars. The burn rate is measured against it.","example":"15","input":{"allowCustom":true,"choices":[],"label":"Daily budget"},"name":"daily_budget","required":false,"type":"string"},{"default":"~/.claude/projects","description":"Where Claude Code keeps its session transcripts. Only the tail of the newest file is read.","example":"~/.claude/projects","input":{"allowCustom":true,"choices":[],"label":"Claude dir"},"name":"claude_dir","required":false,"type":"string"},{"default":"~/.codex/sessions","description":"Where Codex keeps its session transcripts. Only the tail of the newest file is read.","example":"~/.codex/sessions","input":{"allowCustom":true,"choices":[],"label":"Codex dir"},"name":"codex_dir","required":false,"type":"string"},{"default":"","description":"Empty uses the price table bundled with the Play. Point it at your own JSON to price with different rates.","example":"~/prices.json","input":{"allowCustom":true,"choices":[],"label":"Rates path"},"name":"rates_path","required":false,"type":"string"},{"default":"","description":"Empty uses the machine's zone. A day boundary is a place, not a fact: this decides when today starts.","example":"Asia/Kolkata","input":{"allowCustom":true,"choices":[],"label":"Tz"},"name":"tz","required":false,"type":"string"},{"default":"false","description":"true runs the whole Play against bundled synthetic input, so a first run needs nothing configured and touches nothing of yours.","example":"false","input":{"allowCustom":true,"choices":[],"label":"Demo"},"name":"demo","required":false,"type":"string"},{"default":"","description":"Empty reads the real clock. An ISO-8601 instant makes the run reproducible, which is how the tests and the demo produce the same bytes on every machine.","example":"2026-09-05T14:22:03Z","input":{"allowCustom":true,"choices":[],"label":"Now"},"name":"now","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/rajkaria/budget-left@0.1.1 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters","whenValuesOmitted":"Run step 1 before collecting inputs or showing defaults; omittedFields are unknown values, not absent defaults or exhaustive choices."},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/rajkaria/budget-left@0.1.1","headlessCommandTemplate":"rote play run https://play.modiqo.ai/rajkaria/budget-left@0.1.1 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.80.0"},"publishedAt":"2026-09-05T17:50:14.774745+00:00","reference":"rajkaria/budget-left@0.1.1","requested":"rajkaria/budget-left","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"hostToolRequirements":[{"command":"python3","required":true,"versionRequirement":null}],"localTools":["python3"],"roteCli":{"minimumVersion":"0.91.0"},"sessions":false},"resolution":"latest","schema":"rote.play.v1","stats":{"downloads":1,"installs":0},"steps":{"count":1,"names":["report"]},"title":"budget-left","type":"play","version":"0.1.1","visibility":"public"}