☰ Contents
AISA v2.0 / Technical documentation / execution-obligations.schema.json

execution-obligations.schema.json

JSON · 345 lines · 7,732 bytes · wiki path 10 Architecture/contracts/execution-obligations.schema.json · download the raw file · cited from Agent Runtime · Case journeys — testing the architecture with real work · Case protocol — requests, records, prompts and results · Contracts · Data Model — `SRD_SUPPORT`

Same folder: Connectors.Abstractions.cs · configuration-change.schema.json · configuration-input.schema.json · connector-capability.schema.json · eval-set.schema.json · ledger-record.schema.json · message-envelope.schema.json · model-turn.schema.json · module-manifest.schema.json · openapi.yaml · realtime-events.schema.json · runtime-state.schema.json · validate_case_journeys.py · validate_contracts.py · validate_runtime_contracts.py · write-shape.schema.json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://aisa.ablera.com/contracts/execution-obligations.schema.json",
  "title": "Execution obligations — draft case paper v1",
  "x-status": "draft",
  "description": "Authoritative plan, effect and assertion join projected as a PAPERS artefact. References must resolve in the authenticated case and match the approved immutable plan revision. Fixture validation is not live proof.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "case_id",
    "origin_request_key",
    "plan_revision",
    "approved_plan_ref",
    "objective",
    "scope",
    "steps",
    "assertions",
    "case_state",
    "delivery_ref",
    "acceptance_ref",
    "post_result"
  ],
  "properties": {
    "schema_version": {
      "const": 1
    },
    "case_id": {
      "type": "string",
      "minLength": 1
    },
    "origin_request_key": {
      "type": "string",
      "minLength": 1
    },
    "plan_revision": {
      "type": "integer",
      "minimum": 1
    },
    "approved_plan_ref": {
      "type": "string",
      "minLength": 1
    },
    "objective": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "statement",
        "outcome_type"
      ],
      "properties": {
        "statement": {
          "type": "string",
          "minLength": 1
        },
        "outcome_type": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "scope": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "revision",
        "inventory_ref",
        "members",
        "required_assertions"
      ],
      "properties": {
        "revision": {
          "type": "integer",
          "minimum": 1
        },
        "inventory_ref": {
          "type": "string",
          "minLength": 1
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "uniqueItems": true,
          "minItems": 1
        },
        "required_assertions": {
          "type": "object",
          "minProperties": 1,
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true,
            "minItems": 1
          }
        }
      }
    },
    "steps": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "actor_profile",
          "kind",
          "depends_on",
          "required",
          "state",
          "assertion_ids",
          "evidence_refs"
        ],
        "properties": {
          "restoration_required": { "type": "boolean" },
          "id": {
            "type": "string",
            "minLength": 1
          },
          "actor_profile": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "enum": [
              "read",
              "effect",
              "external",
              "handover"
            ]
          },
          "depends_on": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "required": {
            "type": "boolean"
          },
          "state": {
            "enum": [
              "planned",
              "waiting",
              "reported",
              "verified",
              "failed",
              "waived"
            ]
          },
          "assertion_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true,
            "minItems": 1
          },
          "evidence_refs": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          },
          "call_ref": {
            "type": [
              "string",
              "null"
            ]
          },
          "grant_ref": {
            "type": [
              "string",
              "null"
            ]
          },
          "effect_state": {
            "enum": [
              "not_started",
              "not_applied",
              "partial",
              "applied",
              "unknown"
            ]
          },
          "external": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "actor_ref",
              "request_ref",
              "requested_at",
              "response_ref"
            ],
            "properties": {
              "actor_ref": {
                "type": "string",
                "minLength": 1
              },
              "request_ref": {
                "type": "string",
                "minLength": 1
              },
              "requested_at": {
                "type": "string",
                "format": "date-time"
              },
              "response_ref": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "restores_step": {
            "type": "string",
            "minLength": 1
          },
          "due_at": {
            "type": "string",
            "format": "date-time"
          },
          "successor_case_ref": {
            "type": "string",
            "minLength": 1
          },
          "waiver_ref": {
            "type": "string",
            "minLength": 1
          }
        }
      }
    },
    "assertions": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "member",
          "check_ref",
          "scope_revision",
          "verdict",
          "evidence_ref"
        ],
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "member": {
            "type": "string",
            "minLength": 1
          },
          "check_ref": {
            "type": "string",
            "minLength": 1
          },
          "scope_revision": {
            "type": "integer",
            "minimum": 1
          },
          "verdict": {
            "enum": [
              "pass",
              "fail",
              "unknown"
            ]
          },
          "evidence_ref": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "case_state": {
      "enum": [
        "opened",
        "running",
        "parked",
        "at_gate",
        "held",
        "resolved",
        "closed",
        "cancelled"
      ]
    },
    "delivery_ref": {
      "type": [
        "string",
        "null"
      ]
    },
    "acceptance_ref": {
      "type": [
        "string",
        "null"
      ]
    },
    "post_result": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "task_ref",
        "result_revision",
        "state"
      ],
      "properties": {
        "task_ref": {
          "type": [
            "string",
            "null"
          ]
        },
        "result_revision": {
          "type": "integer",
          "minimum": 1
        },
        "state": {
          "enum": [
            "not_queued",
            "queued",
            "complete"
          ]
        }
      }
    }
  }
}