intentic
Create your workspace
The workspace

Chores

What every repository currently measures, and what has been done about it

On this page(3 sections)

Maintenance evidence: read the measurements, ask for one to be retaken, record what somebody concluded. There is deliberately no "run this chore" route, because a chore run is an ordinary conversation and so already has its own working copy, record and cost.

GET/choresWhat maintenance the repos are asking for

Every repo's standing evidence in one read: what the last measurement found and how old it is, the cheap signals that are always current, and what has already been decided about each.

What you send

Nothing. Call it as it is.

What comes back

FieldType
reposEvery repository's standing evidenceobject[]
repoWhich repositorystring
probesThe expensive measurements, served from a…object[]
idWhich measurement this is"outdated" | "audit" | "knip" | "jscpd" … (6)
stateWhether the tool ran and reported,…"ok" | "unavailable" | "failed"
ranAtWhen it last finished, in milliseconds,…number
tookMsHow long it tookinteger
factsWhat it found, including finding nothing,…object
id"outdated"
packagesobject[]
reasonWhy it broke, quoted from the…string
signalsThe cheap facts, worked out fresh…object
packagesEach package in the repository, as…object[]
dirWhere the package livesstring
nameWhat it declares itself asstring
enginesWhich runtime versions it says it…object
dependenciesWhat it depends onstring[]
devDependenciesWhat it needs only to buildstring[]
documentedWhether it has a README, which…boolean
shapeWhat the repository is made of,…object
docsThe repository's own architecture documents, when…string[]
dockerfilesContainer definitions in itstring[]
ciPipeline definitions in itstring[]
lockfileWhether dependencies are pinned to exact…boolean
packageManifestWhether it is a JavaScript project…boolean
depsEvery dependency name declared anywhere in…string[]
hotspotsFiles that change often and are…object[]
pathstring
commitsnumber
addsnumber
delsnumber
complexitynumber
scorenumber
latestMsnumber
keyModulesThe parts the rest of the…object[]
pathstring
exportsnumber
totalsThe repository in numbersobject
filesFiles countednumber
symbolsNamed things they exportnumber
complexityBranch points added upnumber
hotspotsHow many files qualify as hotspots…number
indexedWhether the index these rankings came…boolean
ledgerWhat has already been done about…object[]
repoWhich repositorystring
choreWhich chorestring
ranAtWhen it ran, in millisecondsnumber
runIdThe conversation that ran it, so…string
outcomeWhat it concluded: it did something,…"acted" | "reported" | "clean"
digestA fingerprint of the evidence standing…string
snoozedUntilNot until then, in millisecondsnumber
runningWhat is being measured right now…object[]
repoWhich repositorystring
idWhich measurement"outdated" | "audit" | "knip" | "jscpd" … (6)
askedAtWhen it was asked for, in…number
startedAtWhen it actually begannumber
nodeThe runtime version this sandbox is…string
Try itanswered in this tab
curl
curl "$SANDBOX/chores" \
  -H "x-intentic-control: $INTENTIC_TOKEN"
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.chores.list();
POST/chores/probeMeasure one repo again now

Re-runs a single check without waiting for it to go stale. Answers immediately: the work happens in the background and the result turns up in the next read, because some of these sweeps outlive any sane request.

What you send

FieldTypeWhere
reporequiredWhich repositorystringbody
idrequiredWhich measurement to retake, ahead of…"outdated" | "audit" | "knip" | "jscpd" … (6)body

What comes back

FieldType
okAlways truetrue
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/chores/probe" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"repo":"root","id":"outdated"}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.chores.probe({
  "repo": "root",
  "id": "outdated"
});
POST/chores/ledgerRecord a verdict, or snooze one

Writes what somebody concluded about one repo's chore, replacing the previous verdict. A chore has one current answer, not a growing pile of times it was fine.

What you send

FieldTypeWhere
reporequiredWhich repositorystringbody
chorerequiredWhich chorestringbody
ranAtrequiredWhen it ran, in millisecondsnumberbody
runIdrequiredThe conversation that ran it, so…stringbody
outcomerequiredWhat it concluded: it did something,…"acted" | "reported" | "clean"body
digestrequiredA fingerprint of the evidence standing…stringbody
snoozedUntilNot until then, in millisecondsnumberbody

What comes back

FieldType
okAlways truetrue
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/chores/ledger" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"repo":"root","chore":"…","ranAt":1,"runId":"run_8c2f41d9","outcome":"acted","digest":"…","snoozedUntil":1}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.chores.record({
  "repo": "root",
  "chore": "",
  "ranAt": 1,
  "runId": "run_8c2f41d9",
  "outcome": "acted",
  "digest": "",
  "snoozedUntil": 1
});

Type to search every page, in the docs and the API reference.