Accept Evaluate API

The Evaluate API from Accept — 1 operation(s) for evaluate.

OpenAPI Specification

accept-evaluate-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: MIDAS Agents Evaluate API
  version: 1.1.0-rc.1
  description: 'Authority governance engine for autonomous decisions. Every evaluation produces exactly one outcome and one tamper-evident audit envelope.

    '
servers:
- url: http://localhost:8080
  description: Local development
security:
- BearerAuth: []
tags:
- name: Evaluate
paths:
  /v1/evaluate:
    post:
      operationId: evaluate
      summary: Evaluate a decision request
      description: 'Evaluates whether an agent is within authority to perform an action on a governed decision surface. Produces exactly one outcome and one tamper-evident audit envelope. Idempotent by request_id within a source.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvaluateRequest'
      responses:
        '200':
          description: Evaluation complete
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvaluateResponse'
        '400':
          description: Invalid request (missing required fields, invalid confidence value, etc.)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthenticated (auth.mode=required and no valid token provided)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Insufficient role (requires platform.operator or platform.admin)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Evaluate
components:
  schemas:
    Consequence:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - monetary
          - risk_rating
        amount:
          type: number
          description: Monetary amount. Required when type=monetary.
        currency:
          type: string
          description: ISO 4217 currency code. Required when type=monetary.
        risk_rating:
          type: string
          enum:
          - low
          - medium
          - high
          - critical
          description: Risk rating value. Required when type=risk_rating.
    EvaluateRequest:
      type: object
      required:
      - surface_id
      - agent_id
      - confidence
      properties:
        surface_id:
          type: string
          description: ID of the governed decision surface.
        agent_id:
          type: string
          description: ID of the acting agent.
        confidence:
          type: number
          format: float
          minimum: 0
          maximum: 1
          description: Agent's confidence in the decision (0.0–1.0).
        consequence:
          $ref: '#/components/schemas/Consequence'
        context:
          type: object
          additionalProperties: true
          description: Key-value pairs satisfying the surface's required context keys.
        request_id:
          type: string
          description: Caller-supplied idempotency key. Auto-generated if omitted.
        request_source:
          type: string
          description: Logical source system identifier. Defaults to "api".
        process_id:
          type: string
          description: 'Process ID for evaluation. Required in enforced structural mode;

            optional in permissive mode (the default).


            MIDAS validates that the process exists, that the surface exists

            (latest version), and that the surface belongs to this process.

            The request fails with 400 if any validation fails.

            '
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: string
    EvaluateResponse:
      type: object
      required:
      - outcome
      - reason
      - audit_status
      properties:
        outcome:
          type: string
          enum:
          - accept
          - escalate
          - reject
          - request_clarification
        reason:
          type: string
          description: Typed reason code (e.g. WITHIN_AUTHORITY, CONFIDENCE_BELOW_THRESHOLD).
        envelope_id:
          type: string
          description: ID of the persisted governance envelope. Omitted on simulation.
        explanation:
          type: string
          description: Human-readable explanation of the outcome.
        policy_mode:
          type: string
          description: Active policy evaluator mode (e.g. noop).
        policy_reference:
          type: string
          description: Policy bundle reference used during evaluation.
        policy_skipped:
          type: boolean
          description: True when no policy was attached to the profile.
        simulated:
          type: boolean
          description: True when the result was produced by the non-persistent simulate path.
        audit_status:
          type: string
          enum:
          - recorded
          description: 'Mandatory audit-record marker on successful /v1/evaluate responses (D27i-c chunk 3). Constrained to the single value "recorded" in F1 — the governed evaluate path always persists a tamper-evident audit envelope. Failure responses do not carry this field. The Explorer success path emits "explorer_recorded" but is not part of the v1 public contract; OpenAPI coverage of /explorer is a future tranche.

            '
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Static bearer token. Configured via MIDAS_AUTH_TOKENS or midas.yaml auth.tokens. Not required when auth.mode=open (development only).

        '