{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://weverlabs.com/schemas/agent-task-lifecycle.schema.json",
  "title": "Wever Labs Agent Task Lifecycle Standard",
  "description": "Canonical lifecycle language for paid agent tasks, settlement rail state, callbacks, exceptions, replay, receipts, and closeout.",
  "type": "object",
  "required": [
    "object_type",
    "version",
    "canonical_states"
  ],
  "additionalProperties": true,
  "properties": {
    "object_type": {
      "const": "agent_task_lifecycle_standard"
    },
    "version": {
      "type": "string"
    },
    "canonical_states": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "state",
          "meaning",
          "entry_trigger"
        ],
        "properties": {
          "state": {
            "type": "string",
            "enum": [
              "created",
              "preflight_checked",
              "contract_ready",
              "contract_accepted",
              "trust_pending",
              "trusted",
              "quoted",
              "credit_pending",
              "credit_funded",
              "queued",
              "operating",
              "evidence_partial",
              "result_ready",
              "attested",
              "receipt_issued",
              "callback_pending",
              "callback_delivered",
              "exception_open",
              "replay_ready",
              "failed",
              "closed"
            ]
          },
          "meaning": {
            "type": "string"
          },
          "entry_trigger": {
            "type": "string"
          },
          "required_links": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "allowed_next_states": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "created",
                "preflight_checked",
                "contract_ready",
                "contract_accepted",
                "trust_pending",
                "trusted",
                "quoted",
                "credit_pending",
                "credit_funded",
                "queued",
                "operating",
                "evidence_partial",
                "result_ready",
                "attested",
                "receipt_issued",
                "callback_pending",
                "callback_delivered",
                "exception_open",
                "replay_ready",
                "failed",
                "closed"
              ]
            }
          },
          "operator_action": {
            "type": "string"
          },
          "agent_action": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    "terminal_states": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "created",
          "preflight_checked",
          "contract_ready",
          "contract_accepted",
          "trust_pending",
          "trusted",
          "quoted",
          "credit_pending",
          "credit_funded",
          "queued",
          "operating",
          "evidence_partial",
          "result_ready",
          "attested",
          "receipt_issued",
          "callback_pending",
          "callback_delivered",
          "exception_open",
          "replay_ready",
          "failed",
          "closed"
        ]
      }
    },
    "settlement_sensitive_states": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "created",
          "preflight_checked",
          "contract_ready",
          "contract_accepted",
          "trust_pending",
          "trusted",
          "quoted",
          "credit_pending",
          "credit_funded",
          "queued",
          "operating",
          "evidence_partial",
          "result_ready",
          "attested",
          "receipt_issued",
          "callback_pending",
          "callback_delivered",
          "exception_open",
          "replay_ready",
          "failed",
          "closed"
        ]
      }
    },
    "public_safe_note": {
      "type": "string"
    },
    "os_support_matrix_url": {
      "type": "string",
      "format": "uri"
    },
    "rail_binding_url": {
      "type": "string",
      "format": "uri"
    },
    "runtime_execution_plan_url": {
      "type": "string",
      "format": "uri"
    }
  }
}
