Tomacco

Docs Operation reference job operations

job operations#

7 operations. Generated from assets/operations.json; all areas.

On this page (7)

job.list#

Jobs

List durable jobs including status and artifacts, newest first. Filter by state, by the operation that started the job (a prefix such as project. or android.sdk_install; jobs from before this was recorded have none), by project directory and by creation time. For the next page pass the id of the last job as before.

Annotations: read-only, idempotent, open world.

ArgumentTypeRequiredDefaultDetails
limitinteger301 to 200
statearray of stringitems one of queued, running, succeeded, failed, cancelled, timed_out; at least 1 item; Only jobs in one of these states
operationstringnon-empty, up to 128 characters; Only jobs started by an operation whose name starts with this
projectstringnon-empty; Absolute directory: only jobs that lock it or run in it or below it
sincenumberat least 0; Only jobs created at or after this time, in seconds since 1970
beforestringA job ID: only jobs created before it, for the next page
tomaccoctl call job.list

job.get#

Job status

Get plan, status, exit code and SHA-256 artifact metadata.

Annotations: read-only, idempotent, open world.

ArgumentTypeRequiredDefaultDetails
job_idstringyes
tomaccoctl call job.get '{"job_id":"<job_id>"}'

job.logs#

Live logs

Read incremental log bytes; pass next_offset on the next call.

Annotations: read-only, idempotent, open world.

ArgumentTypeRequiredDefaultDetails
job_idstringyes
offsetinteger00 to 1099511627776
limitinteger655361 to 1048576
tomaccoctl call job.logs '{"job_id":"<job_id>"}'

job.wait#

Wait for job

Wait up to 60 seconds for a job; running is a valid nonterminal result.

Annotations: read-only, idempotent, open world.

ArgumentTypeRequiredDefaultDetails
job_idstringyes
secondsinteger300 to 60
tomaccoctl call job.wait '{"job_id":"<job_id>"}'

job.events#

Job timeline

A job's state changes (queued, running and how it ended, with exit code and error), phase changes (such as waiting, queued, building, ready) with their reason, retries and cancellation requests, each with a time in seconds since 1970, in order. Pass next_after as after to read only newer events. Jobs from before events were recorded get their creation and end from the job record, marked synthesized.

Annotations: read-only, idempotent, open world.

ArgumentTypeRequiredDefaultDetails
job_idstringyes
afterinteger0at least 0; Return only events with a larger id
limitinteger2001 to 1000
tomaccoctl call job.events '{"job_id":"<job_id>"}'

job.cancel#

Cancel job

Cancel a job and terminate its child process group.

Annotations: destructive, idempotent, open world.

ArgumentTypeRequiredDefaultDetails
job_idstringyes
tomaccoctl call job.cancel '{"job_id":"<job_id>"}'

job.send#

Send a command to a job

Send reload (Hot Reload), restart (Hot Restart) or quit to a running Flutter session; reload or restart to a React Native or Expo debug run from project.run, which asks its Metro server on port 8081 to reload the app through Metro's /reload endpoint and returns Metro's HTTP status; or stop to a running recording (android.record, ios.virtual.record): it ends early and keeps the video recorded so far.

Annotations: writes, not idempotent, open world.

ArgumentTypeRequiredDefaultDetails
job_idstringyes
commandstring"reload"one of reload, restart, quit, stop
tomaccoctl call job.send '{"job_id":"<job_id>"}'

View this page as Markdown on GitHub