loadmaster-probe 0.3.0

loadmaster: Tool-call and structured-output conformance probe, eval runner
Documentation
id: schema.enum_pattern
description: enum and pattern constraints. The output satisfies both.
steps:
  - body:
      messages:
        - { role: user, content: "Account ABC-1234 is currently active. Return its code and status as JSON." }
      response_format:
        type: json_schema
        json_schema:
          name: account
          strict: true
          schema:
            type: object
            additionalProperties: false
            required: [code, status]
            properties:
              code: { type: string, pattern: "^[A-Z]{3}-[0-9]{4}$", examples: ["ABC-1234"] }
              status: { type: string, enum: [active, suspended, closed] }
pass:
  all:
    - { status: 200 }
    - path: "$.choices[0].message.content"
      parse: true
      schema:
        type: object
        required: [code, status]
        properties:
          code: { type: string, pattern: "^[A-Z]{3}-[0-9]{4}$" }
          status: { enum: [active, suspended, closed] }
fail:
  - class: schema_rejected
    if: { status_class: 4 }
  - class: schema_dropped_silent
    if: { path: "$.choices[0].message.content", json: false }
  - class: enum_ignored
    if:
      not: { path: "$.choices[0].message.content", parse: true, schema: { properties: { status: { enum: [active, suspended, closed] } } } }
  - class: pattern_ignored
    if:
      not: { path: "$.choices[0].message.content", parse: true, schema: { properties: { code: { pattern: "^[A-Z]{3}-[0-9]{4}$" } } } }