progress_check

Declare the items your deliverable needs and read back, off this session's ledger, which of them the world has already answered, which it has refused, and which nothing has reached yet. Each declared item names the tools that would serve it and, optionally, strings its arguments must contain, such as a code and a payer. An item is established when an answered receipt from one of its tools carries every one of those strings as a whole value among its arguments; refused when the only receipts from its tools are refusals; missing otherwise. The verdict is arithmetic over the ledger and your declared list, nothing more: `deliver` when every item is established; `deliver_partial` when none is missing and some were refused, so the refused items belong in your deliverable's refusals with their rules; `continue` when items are missing and few calls have gone by since one last landed; `change_route` when items are missing and `drift_threshold` or more calls have gone by since anything declared was established, which is the moment to re-plan with `frontier` naming the missing items rather than to keep calling; `cannot_settle` when every item was refused. Each declared item is ONE STRING of two or three fields separated by `|`: the item's name, then the tools that would serve it separated by commas, then, if you want the match to be about particular arguments, the strings its arguments must carry, separated by commas. Whitespace around the separators is ignored. One item reads `uhc_rtm_rates | rate_comparison, rate_position | 98977, unitedhealthcare`; leave the third field off and any answered receipt from one of the tools establishes the item, marked degraded. A colon works as the separator too, and a field written `key=value` is read as its value. An item that names no tool is read as missing, because no receipt can establish it: declare the tool that would serve it, or carry it as a refusal with the receipt the world gave when you asked. This writes nothing and issues no receipt. It infers no intent: a declared list you got wrong produces a wrong verdict, and that is yours to fix, not the ledger's. Call it after every few data calls and before `deliver`.

Use this form for new arguments. Follow concrete links for known values. Fetch-only readers may be unable to submit new URLs.

Exact input contract

{
  "additionalProperties": false,
  "properties": {
    "declared": {
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "type": "array"
    },
    "drift_threshold": {
      "minimum": 1,
      "type": "integer"
    },
    "since": {
      "description": "A receipt id; only receipts issued after it count.",
      "type": "string"
    }
  },
  "required": [
    "declared"
  ],
  "type": "object"
}

Ready links