var r=Object.defineProperty;var s=(t)=>t;function l(t,i){this[t]=s.bind(null,i)}var c=(t,i)=>{for(var n in i)r(t,n,{get:i[n],enumerable:!0,configurable:!0,set:l.bind(i,n)})};var p=(t,i)=>()=>(t&&(i=t(t=0)),i);import o from"@contractspec/lib.ui-link";import{jsx as e,jsxs as a}from"react/jsx-runtime";var d=[{title:"Models and voice",items:[{title:"OpenAI",href:"/docs/integrations/openai"},{title:"Mistral",href:"/docs/integrations/mistral"},{title:"ElevenLabs",href:"/docs/integrations/elevenlabs"}]},{title:"Messaging and product operations",items:[{title:"GitHub",href:"/docs/integrations/github"},{title:"Slack",href:"/docs/integrations/slack"},{title:"Twilio",href:"/docs/integrations/twilio"},{title:"Postmark",href:"/docs/integrations/postmark"}]},{title:"Data, storage, and retrieval",items:[{title:"Qdrant",href:"/docs/integrations/qdrant"},{title:"S3 storage",href:"/docs/integrations/s3"},{title:"Gmail",href:"/docs/integrations/gmail"},{title:"Google Calendar",href:"/docs/integrations/google-calendar"}]},{title:"Payments and external workflows",items:[{title:"Stripe",href:"/docs/integrations/stripe"},{title:"Powens",href:"/docs/integrations/powens"},{title:"Circuit breakers",href:"/docs/integrations/circuit-breakers"},{title:"Health routing",href:"/docs/integrations/health-routing"}]}];function h(){return a("div",{className:"space-y-10",children:[a("div",{className:"space-y-3",children:[e("p",{className:"editorial-kicker",children:"Integrations"}),e("h1",{className:"font-serif text-4xl tracking-[-0.04em] md:text-5xl",children:"Integrations stay explicit: spec what a provider offers, then bind it per tenant and per app."}),e("p",{className:"max-w-3xl text-lg text-muted-foreground leading-8",children:"The integration model keeps provider behavior out of ad hoc glue code. Define the capability contract first, configure the provider connection explicitly, then bind the integration into app workflows and runtime surfaces with clear ownership."})]}),a("div",{className:"editorial-proof-strip",children:[a("div",{className:"editorial-stat",children:[e("span",{className:"editorial-label",children:"Binding model"}),e("span",{className:"editorial-stat-value",children:"Integration spec → tenant connection → app binding"})]}),e("p",{className:"max-w-2xl text-muted-foreground text-sm leading-7",children:"That separation is what makes reuse, tenant isolation, and provider swaps practical without rewriting every surface."})]}),e("section",{className:"editorial-panel space-y-5",children:a("div",{className:"space-y-2",children:[e("h2",{className:"font-serif text-3xl tracking-[-0.03em]",children:"Start with the model, then pick a provider"}),a("div",{className:"grid gap-4 md:grid-cols-2",children:[a(o,{href:"/docs/integrations/spec-model",className:"docs-footer-link",children:[e("h3",{className:"font-semibold text-lg",children:"Integration spec model"}),e("p",{className:"text-muted-foreground text-sm leading-7",children:"Define what the provider offers, what configuration it needs, and how the runtime should treat it."})]}),a(o,{href:"/docs/architecture/integration-binding",className:"docs-footer-link",children:[e("h3",{className:"font-semibold text-lg",children:"Integration binding"}),e("p",{className:"text-muted-foreground text-sm leading-7",children:"Understand how tenant connections get mapped into concrete app surfaces and workflows."})]})]})]})}),e("div",{className:"grid gap-5 md:grid-cols-2",children:d.map((t)=>a("section",{className:"editorial-panel space-y-4",children:[e("h2",{className:"font-serif text-2xl tracking-[-0.03em]",children:t.title}),e("div",{className:"space-y-3",children:t.items.map((i)=>e(o,{href:i.href,className:"docs-chip-link",children:i.title},i.href))})]},t.title))})]})}export{h as IntegrationsOverviewPage};
