{
  "$schema": "https://lmos.eclipse.org/schemas/meta-protocol/v1",
  "protocolVersion": "1.0",
  "name": "Ghost Eclipse LMOS Configuration",
  "description": "Transport-agnostic meta-protocol configuration for Ghost — enables seamless protocol switching (HTTP, MQTT, WebSocket, IPC) without changing application logic. Part of the Eclipse Foundation Language Model Operating System initiative.",
  "agent": {
    "id": "ghost-ai-personal-intelligence",
    "name": "Ghost",
    "lmosVersion": "1.0"
  },
  "channels": [
    {
      "id": "local_ipc",
      "transport": "in_process",
      "description": "In-process communication for iOS/Android native integration",
      "config": {
        "swift_observable": true,
        "kotlin_stateflow": true,
        "c_abi": true
      },
      "priority": 1,
      "capabilities": ["sync", "async", "streaming"],
      "latencyBudget": "10ms"
    },
    {
      "id": "local_socket",
      "transport": "unix_socket",
      "description": "Unix domain socket for inter-process communication",
      "config": {
        "path": "/tmp/ghost-agent.sock",
        "maxConnections": 5,
        "bufferSize": 65536
      },
      "priority": 2,
      "capabilities": ["async", "streaming"],
      "latencyBudget": "50ms"
    },
    {
      "id": "local_ws",
      "transport": "websocket",
      "description": "WebSocket for browser/web client integration",
      "config": {
        "host": "127.0.0.1",
        "port": 8765,
        "path": "/ghost/ws",
        "compression": true,
        "heartbeat": 30
      },
      "priority": 3,
      "capabilities": ["async", "streaming", "bidirectional"],
      "latencyBudget": "100ms"
    },
    {
      "id": "local_http",
      "transport": "http",
      "description": "REST API for simple request/response patterns",
      "config": {
        "host": "127.0.0.1",
        "port": 8766,
        "basePath": "/api/v1",
        "cors": false
      },
      "priority": 4,
      "capabilities": ["sync", "sse"],
      "latencyBudget": "200ms"
    },
    {
      "id": "ble_mesh",
      "transport": "bluetooth_le",
      "description": "BLE for nearby device agent communication",
      "config": {
        "serviceUUID": "GHOST-AI01-0000-0000-000000000001",
        "mtu": 512,
        "encryption": true
      },
      "priority": 5,
      "capabilities": ["async"],
      "latencyBudget": "500ms"
    },
    {
      "id": "mqtt_iot",
      "transport": "mqtt",
      "description": "MQTT for IoT agent mesh and smart home integration",
      "config": {
        "broker": "mqtt://localhost:1883",
        "topicPrefix": "ghost/agent/",
        "qos": 1,
        "retained": false
      },
      "priority": 6,
      "capabilities": ["async", "pub_sub"],
      "latencyBudget": "1000ms"
    }
  ],
  "protocolAdapter": {
    "description": "Ghost's LMOS adapter translates between protocols transparently. Application logic sends/receives abstract messages — the adapter handles serialization, transport selection, and failover.",
    "messageFormat": {
      "envelope": {
        "id": "uuid",
        "timestamp": "iso8601",
        "source": "agent_id",
        "target": "agent_id | broadcast",
        "protocol": "mcp | a2a | ag-ui | agora | custom",
        "payload": "object"
      }
    },
    "failover": {
      "enabled": true,
      "strategy": "priority_cascade",
      "maxRetries": 3,
      "backoff": "exponential",
      "description": "If primary transport fails, cascade to next priority transport automatically"
    },
    "monitoring": {
      "metricsEnabled": true,
      "metrics": [
        "messages_sent", "messages_received", "bytes_transferred",
        "latency_p50", "latency_p95", "errors", "failovers"
      ]
    }
  },
  "security": {
    "encryption": {
      "inTransit": "TLS-1.3",
      "atRest": "AES-256-GCM",
      "keyExchange": "X25519"
    },
    "authentication": {
      "local": "none",
      "remote": "mTLS",
      "agentVerification": "Ed25519"
    }
  }
}
