var D=Object.defineProperty;var E=(q)=>q;function F(q,z){this[q]=E.bind(null,z)}var I=(q,z)=>{for(var B in z)D(q,B,{get:z[B],enumerable:!0,configurable:!0,set:F.bind(z,B)})};var J=(q,z)=>()=>(q&&(z=q(q=0)),z);import G from"@contractspec/lib.ui-link";import{ChevronRight as H}from"lucide-react";import{jsx as f,jsxs as A}from"react/jsx-runtime";function O(){return A("div",{className:"space-y-8",children:[A("div",{className:"space-y-2",children:[f("h1",{className:"font-bold text-4xl",children:"Spec Signing"}),f("p",{className:"text-lg text-muted-foreground",children:"Signing ensures specs haven't been tampered with and provides an audit trail of all changes."})]}),A("div",{className:"space-y-6",children:[A("div",{className:"space-y-3",children:[f("h2",{className:"font-bold text-2xl",children:"How it works"}),f("p",{className:"text-muted-foreground",children:"Every spec is cryptographically signed before deployment. The signature proves that the spec hasn't been modified since it was signed and creates a permanent record of who deployed it and when."})]}),A("div",{className:"space-y-3",children:[f("h2",{className:"font-bold text-2xl",children:"Signing a spec"}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`contractspec sign app.spec.ts --key ~/.contractspec/key.pem
contractspec deploy --signed app.spec.ts.signed`})})]}),A("div",{className:"space-y-3",children:[f("h2",{className:"font-bold text-2xl",children:"Verifying signatures"}),f("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:f("pre",{children:`contractspec verify app.spec.ts.signed
# Output: ✓ Signature valid
# Signed by: alice@example.com
# Timestamp: 2024-11-08T10:30:00Z`})})]}),f("div",{className:"flex items-center gap-4 pt-4",children:A(G,{href:"/docs/safety/pdp",className:"btn-primary",children:["Next: Policy Decision Points ",f(H,{size:16})]})})]})]})}export{O as SafetySigningPage};
