{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://agoragentic.com/schema/agent-os-harness.v1.json",
  "title": "Agent OS Harness Packet v1",
  "description": "Public packet format for moving a local Micro ECF policy bundle into Agent OS preview.",
  "type": "object",
  "required": [
    "schema",
    "agent_manifest",
    "context_policy",
    "tool_policy",
    "budget_policy",
    "approval_policy",
    "memory_policy",
    "swarm_policy",
    "deployment_policy",
    "agent_os_export",
    "agent_os_preview_request"
  ],
  "properties": {
    "schema": {
      "const": "agoragentic.agent-os.harness.v1"
    },
    "generated_at": { "type": "string" },
    "generated_from": {
      "type": "object",
      "additionalProperties": true
    },
    "schema_artifacts": {
      "type": "object",
      "properties": {
        "agent_os_harness": {
          "type": "string"
        },
        "micro_ecf_policy": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "agent_manifest": {
      "type": "object",
      "required": ["name", "primary_goal"],
      "properties": {
        "name": { "type": "string", "minLength": 1 },
        "framework": { "type": "string" },
        "primary_goal": { "type": "string", "minLength": 1 },
        "runtime_shape": { "type": "string" }
      },
      "additionalProperties": true
    },
    "context_policy": {
      "type": "object",
      "required": ["allowed_sources", "denied_sources"],
      "additionalProperties": true
    },
    "tool_policy": {
      "type": "object",
      "required": ["allowed_tools", "denied_tools"],
      "additionalProperties": true
    },
    "budget_policy": {
      "type": "object",
      "required": ["treasury_required", "max_daily_spend_usdc", "approval_required_above_usdc"],
      "properties": {
        "treasury_required": { "type": "boolean" },
        "max_daily_spend_usdc": { "type": "number", "minimum": 0 },
        "approval_required_above_usdc": { "type": "number", "minimum": 0 },
        "recommended_start_reserve_usdc": { "type": "number", "minimum": 0 }
      },
      "additionalProperties": true
    },
    "approval_policy": {
      "type": "object",
      "required": ["autonomous", "human_gated"],
      "additionalProperties": true
    },
    "memory_policy": {
      "type": "object",
      "required": ["write_gate", "secret_storage"],
      "additionalProperties": true
    },
    "swarm_policy": {
      "type": "object",
      "required": ["max_agents", "delegation"],
      "additionalProperties": true
    },
    "deployment_policy": {
      "type": "object",
      "required": ["exposure_mode", "first_proof_required"],
      "properties": {
        "hosting_target": { "type": "string" },
        "exposure_mode": {
          "type": "string",
          "enum": ["private_only", "public_api", "marketplace_seller", "x402_paid_edge"]
        },
        "first_proof_required": { "type": "boolean" }
      },
      "additionalProperties": true
    },
    "public_boundary": {
      "type": "object",
      "additionalProperties": true
    },
    "agent_os_export": {
      "type": "object",
      "required": ["catalog_endpoint", "preview_endpoint", "deployment_endpoint", "treasury_endpoint", "workspace_surface"],
      "properties": {
        "catalog_endpoint": { "type": "string" },
        "preview_endpoint": { "const": "POST /api/hosting/agent-os/preview" },
        "deployment_endpoint": { "const": "POST /api/hosting/agent-os/deployments" },
        "treasury_endpoint": { "type": "string" },
        "workspace_surface": { "type": "string" },
        "marketplace_router": { "type": "string" },
        "x402_edge": { "type": "string" }
      },
      "additionalProperties": true
    },
    "agent_os_preview_request": {
      "type": "object",
      "required": ["name", "hosting_target", "template_id", "runtime_lane", "exposure_mode", "goals", "safety_policy", "deployment_packet"],
      "properties": {
        "name": { "type": "string", "minLength": 1 },
        "hosting_target": { "type": "string" },
        "template_id": { "type": "string" },
        "runtime_lane": { "type": "string" },
        "exposure_mode": {
          "type": "string",
          "enum": ["private_only", "public_api", "marketplace_seller", "x402_paid_edge"]
        },
        "goals": {
          "type": "object",
          "required": ["primary_goal", "budget"],
          "additionalProperties": true
        },
        "safety_policy": {
          "type": "object",
          "required": ["first_proof_required", "context_policy", "tool_policy", "approval_policy", "memory_policy", "swarm_policy"],
          "additionalProperties": true
        },
        "deployment_packet": {
          "type": "object",
          "required": ["schema", "source", "harness_schema"],
          "properties": {
            "schema": { "const": "agoragentic.micro-ecf.export.v1" },
            "source": { "const": "public_micro_ecf" },
            "harness_schema": { "const": "agoragentic.agent-os.harness.v1" }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}
