{
  "oke": "1.0",
  "app": "skyport",
  "flows": {
    "bookings.create": {
      "idempotency": {
        "mode": "auto",
        "ttl": "24h"
      },
      "trigger": {
        "http": {
          "method": "POST",
          "path": "/bookings"
        }
      },
      "gates": ["member", "booking:create", "rate:sliding-window-counter:300/1m"],
      "in": "…",
      "out": "…",
      "errors": ["FlightFull"],
      "effects": {
        "reads": ["sql:bookings"],
        "writes": ["sql:bookings"],
        "emits": ["order-placed", "seat-feed"],
        "secrets": []
      },
      "source": "src/flows/bookings/index.ts:24",
      "slo": {
        "availability": "99.9%",
        "latency": {
          "p99": "200ms"
        }
      },
      "plane": "user"
    },
    "bookings.getBooking": {
      "idempotency": {
        "mode": "off",
        "ttl": "24h"
      },
      "effects": {
        "reads": ["sql:bookings"]
      },
      "source": "src/flows/bookings/index.ts:50"
    },
    "bookings.mine": {
      "idempotency": {
        "mode": "off",
        "ttl": "24h"
      },
      "trigger": {
        "http": {
          "method": "GET",
          "path": "/bookings"
        }
      },
      "gates": ["member"],
      "effects": {
        "reads": ["sql:bookings"]
      },
      "source": "src/flows/bookings/index.ts:40",
      "cacheKeys": "computed:sql:bookings/userId"
    },
    "bookings.refundBooking": {
      "idempotency": {
        "mode": "auto",
        "ttl": "24h"
      },
      "effects": {
        "reads": ["sql:bookings"],
        "writes": ["sql:bookings"]
      },
      "source": "src/flows/bookings/index.ts:54"
    },
    "payments.chargeBooking": {
      "idempotency": {
        "mode": "off",
        "ttl": "24h"
      },
      "effects": {
        "secrets": ["STRIPE_KEY"]
      },
      "source": "src/flows/payments/index.ts:4",
      "durable": true,
      "steps": ["create-intent", "confirm"]
    },
    "support.createTicket": {
      "idempotency": {
        "mode": "auto",
        "ttl": "24h"
      },
      "trigger": {
        "http": {
          "method": "POST",
          "path": "/tickets"
        }
      },
      "gates": ["member"],
      "effects": {
        "writes": ["sql:tickets"],
        "asks": ["ticket-triage@3"]
      },
      "source": "src/flows/support/index.ts:9",
      "nondeterministic": true,
      "cost": {
        "estimatePerCall": 0.011,
        "budget": 0.02
      },
      "pii": "masked"
    }
  },
  "signals": {
    "order-placed": {
      "delivery": "once",
      "retries": 5,
      "deadLetter": true
    },
    "seat-feed": {
      "delivery": "live"
    }
  },
  "stores": {
    "db": {
      "facet": "sql"
    }
  },
  "gates": {
    "book": {
      "kind": "all",
      "members": ["member", "booking:create", "rate:sliding-window-counter:300/1m"]
    },
    "booking:create": {
      "kind": "policy",
      "roles": ["booking:create"]
    },
    "fair": {
      "kind": "rate",
      "strategy": "sliding-window-counter",
      "max": 300,
      "per": "1m",
      "keyBy": "user"
    },
    "member": {
      "kind": "policy",
      "roles": ["member"]
    }
  },
  "vault": {
    "STRIPE_KEY": {
      "description": "Payments gateway key",
      "rotate": "90d"
    }
  },
  "channels": {
    "booking-confirmed": {
      "medium": "email",
      "locales": ["en", "ar"]
    }
  },
  "ai": {
    "models": {
      "smart": {
        "provider": "anthropic",
        "tier": "opus"
      }
    },
    "prompts": {
      "ticket-triage": {
        "version": 3,
        "evals": "./evals/triage.jsonl",
        "budget": {
          "maxCostPerCall": 0.02
        }
      }
    },
    "agents": {
      "support": {
        "tools": ["bookings.getBooking", "bookings.refundBooking"],
        "maxSteps": 6
      }
    }
  },
  "journeys": {
    "book-a-flight": {
      "slo": {
        "availability": "99.5%"
      },
      "composes": "99.6%",
      "flows": ["bookings.create", "payments.chargeBooking"]
    }
  },
  "drivers": {
    "prod": ["postgres", "redis", "s3", "smtp", "vault", "anthropic", "pgvector"]
  },
  "tenancy": {
    "isolation": "row"
  },
  "i18n": {
    "locales": ["en", "ar"],
    "default": "ar",
    "dir": {
      "ar": "rtl"
    }
  },
  "topology": "monolith",
  "images": {
    "store.sql": "pgvector/pgvector:pg17",
    "store.kv": "valkey/valkey:8-alpine"
  }
}
