aura-labs.ai

AURA JSON Schemas

JSON Schema definitions for all AURA protocol messages and data structures.

Usage

These schemas can be used for:

Schema Categories

Scout Schemas (/scout)

Messages sent by Scout agents.

Schema Description
intent.json Intent registration payload
inquiry.json Discovery inquiry
negotiation-request.json Start negotiation
transaction-request.json Complete transaction

Beacon Schemas (/beacon)

Messages sent by Beacon agents.

Schema Description
proposition.json Product/service offering
inquiry-response.json Response to Scout inquiry
negotiation-offer.json Pricing offer
transaction-confirmation.json Transaction confirmed

Transaction Schemas (/transactions)

Transaction and fulfillment structures.

Schema Description
payment.json Payment details
fulfillment.json Delivery information
refund.json Refund request

Shared Schemas (/shared)

Common structures used across messages.

Schema Description
identity.json Identity structure
preferences.json User preferences
behavioral-data.json Behavioral context
price-range.json Price range structure

Validation Example

JavaScript

import Ajv from 'ajv';
import intentSchema from './scout/intent.json';

const ajv = new Ajv();
const validate = ajv.compile(intentSchema);

const intent = {
  category: 'electronics',
  description: 'wireless headphones',
  constraints: {
    priceRange: { min: 100, max: 300 }
  }
};

if (validate(intent)) {
  console.log('Valid intent');
} else {
  console.log('Validation errors:', validate.errors);
}

Python

import jsonschema
import json

with open('schemas/scout/intent.json') as f:
    schema = json.load(f)

intent = {
    "category": "electronics",
    "description": "wireless headphones",
    "constraints": {
        "priceRange": {"min": 100, "max": 300}
    }
}

jsonschema.validate(intent, schema)

Schema Versioning

Schemas follow semantic versioning:

Current version: 1.0.0

Contributing

When modifying schemas:

  1. Update the schema file
  2. Update this README if needed
  3. Run validation tests
  4. Update CHANGELOG

See Also