1import{E as N,d as V,y as A,a as n,p,s as l,b as i,u as r,h as D,e,A as I,f as u,t,n as x,c as d,g as b,w as F,m as M,F as y,r as T,b2 as W,aT as j,aX as G,aU as Y,aV as H,aW as X,k as L,D as k,j as P,i as J,b3 as Q}from"./app-DouIK4r8.js";import{E as f}from"./ExternalProviderController-BSMplxsc.js";import{_ as h}from"./index-SCwJZ_Z_.js";import{_ as K}from"./PageHeader.vue_vue_type_script_setup_true_lang-DVCyWnBa.js";import{C as $,_ as Z}from"./AppLayout.vue_vue_type_style_index_0_lang-CGvUlogM.js";import{A as ee}from"./eye-CHvNKZw4.js";import{F as te}from"./file-text-DDzXMVCK.js";import{P as se}from"./pencil-C3OLJ3zn.js";import{T as re}from"./triangle-alert-C7aEZBJ0.js";import{C as S}from"./check-BuZ2S_3d.js";import{C as oe}from"./circle-check-BSgs2Xtw.js";import{S as ne}from"./send-BU0809GR.js";import{P as ie}from"./pause-HdglcrSk.js";import{P as ae}from"./play-Fe6uC8_a.js";import{T as de}from"./trash-2-D9cweTBK.js";import"./useTierCapabilities-UFQqr9Nu.js";import"./DropdownMenuLabel.vue_vue_type_script_setup_true_lang-DkMkKG9a.js";import"./ProgramController-Ir7-xBr9.js";import"./DropdownMenuTrigger.vue_vue_type_script_setup_true_lang-C3gH7QOF.js";import"./useTypeahead-OFqFi-MQ.js";import"./PopperContent-cfY_sM_X.js";import"./useDirection-DnNzzwaO.js";import"./RovingFocusGroup-D_iuxA5l.js";import"./Collection-BQkqQ1fZ.js";import"./DropdownMenuSeparator.vue_vue_type_script_setup_true_lang-B22Ghtr2.js";import"./chevron-down-BNsrGZ4n.js";import"./search-DzPgIFhf.js";import"./bot-CFZH6gBK.js";import"./sparkles-LgDQ73HJ.js";import"./book-open-CyCz0YQX.js";import"./useFocusTrap-Dj5hQpDJ.js";import"./target-BcAbSk1E.js";import"./compass-DScxZlRx.js";import"./users-Cs9MnXhM.js";import"./FlashAnnouncer.vue_vue_type_script_setup_true_lang-8_kpUUf8.js";import"./FlashBanner.vue_vue_type_script_setup_true_lang-DXUsmsje.js";import"./SkipToContentLink.vue_vue_type_script_setup_true_lang-D3NQ9KMC.js";import"./markdown-CY_oho3I.js";import"./useAgentThread-Dct_Uh4e.js";import"./rotate-ccw-DtbmICL9.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const le=N("CircleXIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const ce=N("RotateCwIcon",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),me={class:"mx-auto max-w-4xl px-6 py-10 md:px-12"},ue={class:"mt-2 flex items-center gap-1.5"},pe={class:"font-body text-sm text-brand-subtle"},be={key:0,class:"mt-8 rounded-lg border border-brand-warning/40 bg-brand-warning/5 p-5"},he={class:"flex items-start gap-3"},ve={class:"flex-1"},_e={class:"font-mono text-sm tracking-[0.15em] text-brand-ink uppercase"},fe={class:"mt-1 font-body text-sm text-brand-muted"},xe={class:"mt-4"},ke={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},ge={class:"mt-2 flex items-center gap-2"},we={class:"flex-1 rounded-md border border-brand-line bg-brand-white px-3 py-2 font-mono text-sm break-all text-brand-ink"},ye={class:"mt-8 grid gap-x-8 gap-y-6 rounded-lg border border-brand-line bg-brand-white p-6 sm:grid-cols-2 md:p-8"},$e={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},Se={class:"mt-1 font-mono text-sm break-all text-brand-ink"},Re={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},Ce={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},Ie={class:"mt-1 font-body text-base text-brand-ink"},Te={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},Le={class:"mt-1 font-body text-base text-brand-ink"},Pe={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},Ne={class:"mt-8 rounded-lg border border-brand-line bg-brand-white p-6 md:p-8"},qe={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},Ee={class:"mt-1 max-w-xl font-body text-sm text-brand-muted"},ze={class:"flex items-start gap-3"},Ue={class:"font-body text-sm"},Oe={class:"text-brand-ink"},Be={key:0},Ve={key:1},Ae={key:0,class:"mt-0.5 text-brand-muted"},De={key:1,class:"mt-0.5 font-mono text-xs text-brand-faint"},Fe={key:0,class:"mt-4 border-t border-brand-line/60 pt-4"},Me={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},We={class:"mt-0.5 font-body text-sm text-brand-muted"},je={class:"mt-2 flex items-center gap-2"},Ge={class:"flex-1 rounded-md border border-brand-line bg-brand-white px-3 py-2 font-mono text-sm break-all text-brand-ink"},Ye={class:"min-w-64 flex-1"},He={for:"issue-user",class:"block font-body text-sm text-brand-muted"},Xe={value:"",disabled:""},Je=["value"],Qe={key:0,class:"mt-1 font-body text-sm text-brand-negative"},Ke={key:1,class:"mt-2 font-body text-sm text-brand-faint"},Ze={class:"mt-8 rounded-lg border border-brand-line bg-brand-white p-6 md:p-8"},et={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},tt={class:"mt-4 grid grid-cols-2 gap-x-8 gap-y-4 sm:grid-cols-4"},st={class:"font-serif text-2xl text-brand-ink tabular-nums"},rt={class:"mt-1 font-body text-sm text-brand-subtle"},ot={class:"font-serif text-2xl text-brand-ink tabular-nums"},nt={class:"mt-1 font-body text-sm text-brand-subtle"},it={class:"font-serif text-2xl text-brand-ink tabular-nums"},at={class:"mt-1 font-body text-sm text-brand-subtle"},dt={class:"mt-1 font-body text-sm text-brand-subtle"},lt={class:"mt-8 rounded-lg border border-brand-line bg-brand-white p-6 md:p-8"},ct={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},mt={key:0,class:"mt-2 font-body text-sm text-brand-faint"},ut={key:1,class:"mt-4 divide-y divide-brand-line border-y border-brand-line"},pt={class:"min-w-0 flex-1"},bt={class:"font-body text-base text-brand-ink"},ht={class:"mt-0.5 font-body text-sm text-brand-faint"},vt={class:"shrink-0 text-right"},_t={key:0,class:"font-body text-sm text-brand-positive"},ft={key:1,class:"font-body text-sm text-brand-warning"},xt={key:2,class:"font-body text-sm text-brand-muted"},kt={key:3,class:"font-body text-sm text-brand-faint"},gt={key:4,class:"mt-0.5 font-body text-sm text-brand-faint"},wt={class:"mt-8 rounded-lg border border-brand-line bg-brand-white p-6 md:p-8"},yt={class:"font-mono text-sm tracking-[0.15em] text-brand-subtle uppercase"},$t={class:"mt-4 flex flex-wrap items-center gap-3"},St={class:"relative mt-2"},Rt={class:"max-h-96 overflow-y-auto rounded-lg border border-brand-line bg-brand-tint/40 px-4 py-3 font-mono text-sm leading-relaxed whitespace-pre-wrap text-brand-ink"},Ct={key:0,class:"mt-2 font-body text-sm text-brand-warning"},hs=V({__name:"Show",props:{provider:{},secrets:{},teamMembers:{},issuanceResult:{},issuances:{},stats:{}},setup(o){const m=o,{confirm:R}=Q(),v=A({user_id:""}),q=()=>{v.post(f.issue(m.provider.id).url,{preserveScroll:!0,onSuccess:()=>v.reset()})},_=L(null),g=async(s,c)=>{await navigator.clipboard.writeText(s),_.value=c,setTimeout(()=>{_.value===c&&(_.value=null)},2e3)},E=()=>{k.post(f.pause(m.provider.id).url)},z=()=>{k.post(f.resume(m.provider.id).url)},U=async()=>{await R({title:P("admin_external-providers.show.confirm_rotate"),variant:"destructive"})&&k.post(f.rotate(m.provider.id).url)},O=async()=>{await R({title:P("admin_external-providers.show.confirm_delete",{name:m.provider.name}),variant:"destructive"})&&k.delete(f.destroy(m.provider.id).url)},B=s=>({active:"bg-brand-positive",paused:"bg-brand-warning",failing:"bg-brand-negative"})[s]||"bg-brand-faint",w=L(!1),C=J(()=>{const s=m.secrets?.signing_secret?m.secrets.signing_secret:"<paste-your-signing-secret-here>",c=m.provider.webhook_url?` 2## Webhook (server-to-server notification) 3 4When Invisible issues an experience, it sends a signed POST to your webhook URL: 5 6 ${m.provider.webhook_url} 7 8The POST body is JSON: 9 10 { 11 "issuance_id": "uuid", 12 "user_token": "opaque-string", 13 "callback_url": "https://invisible.test/api/external/callback/...", 14 "context": { ... } 15 } 16 17You MUST verify the HMAC-SHA256 signature before trusting this payload. 18Store the callback_url â you'll POST results back to it when the experience completes. 19`:` 20## Webhook 21 22No webhook URL is configured. The user will arrive at your redirect URL with 23query parameters, and you'll need to fetch or construct the callback_url 24from the issuance_id. If you need server-to-server pre-notification, ask the 25Invisible admin to add a webhook URL. 26`;return`# Invisible Integration Setup for "${m.provider.name}" 27 28You are integrating with Invisible, a coaching platform that sends people to 29your app for learning experiences (quizzes, assessments, simulations, etc.). 30Your app runs the experience, then posts observations back to Invisible. 31 32--- 33 34## Your registered URLs 35 36Redirect URL: ${m.provider.redirect_url}${m.provider.webhook_url?` 37Webhook URL: `+m.provider.webhook_url:""} 38 39## Environment variable 40 41Store this signing secret in your environment: 42 43 INVISIBLE_SIGNING_SECRET=${s} 44 45--- 46 47## How the flow works 48 491. Invisible sends the person's browser to your Redirect URL with query params: 50 ${m.provider.redirect_url}?issuance_id=xxx&user_token=yyy 51 522. Your app reads issuance_id and user_token from the URL 533. Your app runs the experience (quiz, assessment, etc.) 544. When complete, your app POSTs results server-side to the callback_url 55${c} 56--- 57 58## Signature verification (for webhook, if configured) 59 60Every webhook POST includes two headers: 61 62 X-Invisible-Signature: v1=<hex-digest> 63 X-Invisible-Timestamp: <unix-epoch-seconds> 64 65Verify like this (Node.js / Edge Function): 66 67 const crypto = require('crypto'); 68 69 const timestamp = req.headers['x-invisible-timestamp']; 70 const signature = req.headers['x-invisible-signature']; 71 const rawBody = await req.text(); 72 73 const signedString = \`\${timestamp}:\${rawBody}\`; 74 const expected = crypto 75 .createHmac('sha256', process.env.INVISIBLE_SIGNING_SECRET) 76 .update(signedString) 77 .digest('hex'); 78 79 const received = signature.replace('v1=', ''); 80 const valid = crypto.timingSafeEqual( 81 Buffer.from(expected), 82 Buffer.from(received) 83 ); 84 85 // Also reject if timestamp is older than 5 minutes (replay protection) 86 87--- 88 89## Callback payload (POST to callback_url) 90 91When the experience completes, POST this JSON to the callback_url: 92 93 POST {callback_url} 94 Content-Type: application/json 95 96 { 97 "issuance_id": "the-issuance-id-from-redirect", 98 "user_token": "the-user-token-from-redirect", 99 "status": "completed", 100 "observations": [ 101 {
102 "text": "Completed assessment: scored 8/10 on leadership scenarios", 103 "confidence": 0.8 104 } 105 ] 106 } 107 108### Field rules (strict â custom fields will be rejected) 109 110 issuance_id â string, max 64 chars (from the redirect query param) 111 user_token â string, max 128 chars (from the redirect query param) 112 status â "completed" | "abandoned" | "in_progress" 113 observations â array, max 20 items 114 .text â string, required, max 10,000 chars 115 .confidence â number 0â1, optional (default 0.5) 116 117### Important 118 119- POST server-side only (edge function / API route), never from the browser 120- Do NOT invent custom field names (no "summary", "score", "type", etc.) 121- The callback_url is single-use â once a terminal status is received, it expires 122- user_token is opaque â do not try to decode or correlate it 123 124--- 125 126## Quick checklist 127 128- [ ] Store INVISIBLE_SIGNING_SECRET in environment 129- [ ] Read issuance_id and user_token from redirect URL query params 130- [ ] Run your experience 131- [ ] POST results to callback_url with the exact schema above 132${m.provider.webhook_url?`- [ ] Verify webhook signature before trusting payload 133- [ ] Store callback_url from webhook for later use`:""}`});return(s,c)=>(n(),p(Z,null,{default:l(()=>[i(r(D),{title:o.provider.name},null,8,["title"]),e("div",me,[i(r(I),{href:r(f).index().url,class:"inline-flex items-center gap-1.5 font-body text-sm text-brand-muted transition-colors hover:text-brand-ink"},{default:l(()=>[i(r(ee),{class:"h-3.5 w-3.5"}),u(" "+t(s.$t("admin_external-providers.back_to_providers")),1)]),_:1},8,["href"]),i(r(K),{eyebrow:s.$t("admin_external-providers.eyebrow_external_provider"),title:o.provider.name,description:o.provider.description,class:"mt-6"},{actions:l(()=>[i(r(h),{variant:"outline",size:"sm",onClick:c[0]||(c[0]=a=>w.value=!0)},{default:l(()=>[i(r(te),{class:"h-3.5 w-3.5"}),u(" "+t(s.$t("admin_external-providers.buttons.copy_setup_prompt")),1)]),_:1}),i(r(h),{"as-child":"",variant:"outline",size:"sm"},{default:l(()=>[i(r(I),{href:r(f).edit(o.provider.id).url},{default:l(()=>[i(r(se),{class:"h-3.5 w-3.5"}),u(" "+t(s.$t("common.actions.edit")),1)]),_:1},8,["href"])]),_:1})]),_:1},8,["eyebrow","title","description"]),e("div",ue,[e("span",{class:x(["h-1.5 w-1.5 rounded-full",B(o.provider.status)])},null,2),e("span",pe,t(o.provider.status_label),1)]),o.secrets?(n(),d("div",be,[e("div",he,[i(r(re),{class:"mt-0.5 h-4 w-4 shrink-0 text-brand-warning"}),e("div",ve,[e("p",_e,t(s.$t("admin_external-providers.show.secret_copy_now")),1),e("p",fe,t(s.$t("admin_external-providers.show.secret_copy_now_body")),1),e("div",xe,[e("p",ke,t(s.$t("admin_external-providers.show.signing_secret")),1),e("div",ge,[e("code",we,t(o.secrets.signing_secret),1),i(r(h),{variant:"outline",size:"sm",onClick:c[1]||(c[1]=a=>g(o.secrets?.signing_secret??"","signing"))},{default:l(()=>[_.value==="signing"?(n(),p(r(S),{key:0,class:"h-3.5 w-3.5 text-brand-positive"})):(n(),p(r($),{key:1,class:"h-3.5 w-3.5"})),u(" "+t(_.value==="signing"?s.$t("admin_external-providers.buttons.copied"):s.$t("admin_external-providers.buttons.copy")),1)]),_:1})])])])])])):b("",!0),e("div",ye,[e("div",null,[e("p",$e,t(s.$t("admin_external-providers.fields.redirect_url")),1),e("p",Se,t(o.provider.redirect_url),1)]),e("div",null,[e("p",Re,t(s.$t("admin_external-providers.fields.webhook_url")),1),e("p",{class:x(["mt-1 font-mono text-sm break-all",o.provider.webhook_url?"text-brand-ink":"text-brand-faint italic"])},t(o.provider.webhook_url||s.$t("admin_external-providers.show.not_configured")),3)]),e("div",null,[e("p",Ce,t(s.$t("admin_external-providers.show.context_scope")),1),e("p",Ie,t(o.provider.context_scope_label),1)]),e("div",null,[e("p",Te,t(s.$t("admin_external-providers.show.last_issued")),1),e("p",Le,t(o.provider.last_issued_at?new Date(o.provider.last_issued_at).toLocaleString():s.$t("admin_external-providers.show.never")),1)]),e("div",null,[e("p",Pe,t(s.$t("admin_external-providers.show.consecutive_failures")),1),e("p",{class:x(["mt-1 font-body text-base",o.provider.failure_count>0?"text-brand-negative":"text-brand-ink"])},t(o.provider.failure_count),3)])]),e("div",Ne,[e("p",qe,t(s.$t("admin_external-providers.show.issue_title")),1),e("p",Ee,t(s.$t("admin_external-providers.show.issue_description")),1),o.issuanceResult?(n(),d("div",{key:0,class:x(["mt-4 rounded-md border p-4",o.issuanceResult.delivered?"border-brand-positive/40 bg-brand-positive/5":"border-brand-negative/40 bg-brand-negative/5"])},[e("div",ze,[o.issuanceResult.delivered?(n(),p(r(oe),{key:0,class:"mt-0.5 h-4 w-4 shrink-0 text-brand-positive"})):(n(),p(r(le),{key:1,class:"mt-0.5 h-4 w-4 shrink-0 text-brand-negative"})),e("div",Ue,[e("p",Oe,[o.issuanceResult.delivered?(n(),d("span",Be,t(s.$t("admin_external-providers.show.issue_delivered",{name:o.issuanceResult.recipient_name})),1)):(n(),d("span",Ve,t(s.$t("admin_external-providers.show.issue_failed",{name:o.issuanceResult.recipient_name})),1))]),o.issuanceResult.error?(n(),d("p",Ae,t(o.issuanceResult.error),1)):b("",!0),o.issuanceResult.status_code?(n(),d("p",De," HTTP "+t(o.issuanceResult.status_code),1)):b("",!0)])]),o.issuanceResult.experience_link_url?(n(),d("div",Fe,[e("p",Me,t(s.$t("admin_external-providers.show.user_facing_link")),1),e("p",We,t(s.$t("admin_external-providers.show.share_link",{name:o.issuanceResult.recipient_name})),1),e("div",je,[e("code",Ge,t(o.issuanceResult.experience_link_url),1),i(r(h),{variant:"outline",size:"sm",onClick:c[2]||(c[2]=a=>g(o.issuanceResult?.experience_link_url??"","experience-link"))},{default:l(()=>[_.value==="experience-link"?(n(),p(r(S),{key:0,class:"h-3.5 w-3.5 text-brand-positive"})):(n(),p(r($),{key:1,class:"h-3.5 w-3.5"})),u(" "+t(_.value==="experience-link"?s.$t("admin_external-providers.buttons.copied"):s.$t("admin_external-providers.buttons.copy")),1)]),_:1})])])):b("",!0)],2)):b("",!0),e("form",{class:"mt-4 flex flex-wrap items-end gap-3",onSubmit:F(q,["prevent"])},[e("div",Ye,[e("label",He,t(s.$t("admin_external-providers.show.person")),1),M(e("select",{id:"issue-user","onUpdate:modelValue":c[3]||(c[3]=a=>r(v).user_id=a),class:"mt-2 block w-full rounded-md border border-brand-line bg-brand-white px-3 py-2 font-body text-sm text-brand-ink transition-colors outline-none focus:border-brand-ink"},[e("option",Xe,t(s.$t("admin_external-providers.show.select_member")),1),(n(!0),d(y,null,T(o.teamMembers,a=>(n(),d("option",{key:a.id,value:a.id},t(a.name)+" ("+t(a.email)+") ",9,Je))),128))],512),[[W,r(v).user_id]]),r(v).errors.user_id?(n(),d("p",Qe,t(r(v).errors.user_id
133),1)):b("",!0)]),i(r(h),{type:"submit",disabled:!r(v).user_id||r(v).processing||o.provider.status!=="active"},{default:l(()=>[i(r(ne),{class:"h-3.5 w-3.5"}),u(" "+t(r(v).processing?s.$t("admin_external-providers.show.issuing"):s.$t("admin_external-providers.show.issue")),1)]),_:1},8,["disabled"])],32),o.provider.status!=="active"?(n(),d("p",Ke,t(s.$t("admin_external-providers.show.must_be_active")),1)):b("",!0)]),e("div",Ze,[e("p",et,t(s.$t("admin_external-providers.show.stats")),1),e("div",tt,[e("div",null,[e("p",st,t(o.stats.total_issuances),1),e("p",rt,t(s.$t("admin_external-providers.show.stat_issuances")),1)]),e("div",null,[e("p",ot,t(o.stats.completed_count),1),e("p",nt,t(s.$t("admin_external-providers.show.stat_completed")),1)]),e("div",null,[e("p",it,t(o.stats.observation_count),1),e("p",at,t(s.$t("admin_external-providers.show.stat_observations")),1)]),e("div",null,[e("p",{class:x(["font-serif text-2xl tabular-nums",o.stats.dispute_count>0?"text-brand-negative":"text-brand-ink"])},t(o.stats.dispute_count),3),e("p",dt,t(s.$t("admin_external-providers.show.stat_disputes")),1)])])]),e("div",lt,[e("p",ct,t(s.$t("admin_external-providers.show.recent_issuances")),1),o.issuances.length?(n(),d("div",ut,[(n(!0),d(y,null,T(o.issuances,a=>(n(),d("div",{key:a.issuance_id??"",class:"flex items-start justify-between gap-4 py-3"},[e("div",pt,[e("p",bt,t(a.recipient_name??s.$t("admin_external-providers.show.unknown_recipient")),1),e("p",ht,[u(t(s.$t("admin_external-providers.show.issued_at",{date:new Date(a.issued_at).toLocaleString()}))+" ",1),a.clicked_at?(n(),d(y,{key:0},[u(" · "+t(s.$t("admin_external-providers.show.clicked_at",{date:new Date(a.clicked_at).toLocaleString()})),1)],64)):b("",!0)])]),e("div",vt,[a.callback_status==="completed"?(n(),d("span",_t,t(s.$t("admin_external-providers.show.status_completed")),1)):a.callback_status==="abandoned"?(n(),d("span",ft,t(s.$t("admin_external-providers.show.status_abandoned")),1)):a.clicked_at?(n(),d("span",xt,t(s.$t("admin_external-providers.show.status_in_progress")),1)):(n(),d("span",kt,t(s.$t("admin_external-providers.show.status_not_clicked")),1)),a.completed_at?(n(),d("p",gt,t(new Date(a.completed_at).toLocaleString()),1)):b("",!0)])]))),128))])):(n(),d("p",mt,t(s.$t("admin_external-providers.show.no_issuances")),1))]),e("div",wt,[e("p",yt,t(s.$t("admin_external-providers.show.actions")),1),e("div",$t,[o.provider.status==="active"?(n(),p(r(h),{key:0,variant:"outline",size:"sm",onClick:E},{default:l(()=>[i(r(ie),{class:"h-3.5 w-3.5"}),u(" "+t(s.$t("admin_external-providers.show.pause")),1)]),_:1})):(n(),p(r(h),{key:1,variant:"outline",size:"sm",onClick:z},{default:l(()=>[i(r(ae),{class:"h-3.5 w-3.5"}),u(" "+t(s.$t("admin_external-providers.show.resume")),1)]),_:1})),i(r(h),{variant:"outline",size:"sm",onClick:U},{default:l(()=>[i(r(ce),{class:"h-3.5 w-3.5"}),u(" "+t(s.$t("admin_external-providers.show.rotate_secrets")),1)]),_:1}),i(r(h),{variant:"destructive",size:"sm",class:"ml-auto",onClick:O},{default:l(()=>[i(r(de),{class:"h-3.5 w-3.5"}),u(" "+t(s.$t("common.actions.delete")),1)]),_:1})])]),i(r(j),{open:w.value,"onUpdate:open":c[5]||(c[5]=a=>w.value=a)},{default:l(()=>[i(r(G),{class:"max-h-[85vh] overflow-y-auto sm:max-w-2xl"},{default:l(()=>[i(r(Y),null,{default:l(()=>
133[i(r(H),{class:"font-body text-2xl tracking-tight"},{default:l(()=>[u(t(s.$t("admin_external-providers.show.setup_prompt_title")),1)]),_:1}),i(r(X),{class:"font-body text-sm"},{default:l(()=>[u(t(s.$t("admin_external-providers.show.setup_prompt_description")),1)]),_:1})]),_:1}),e("div",St,[e("pre",Rt,t(C.value),1),i(r(h),{variant:"outline",size:"sm",class:"absolute top-3 right-3",onClick:c[4]||(c[4]=a=>g(C.value,"prompt"))},{default:l(()=>[_.value==="prompt"?(n(),p(r(S),{key:0,class:"h-3.5 w-3.5 text-brand-positive"})):(n(),p(r($),{key:1,class:"h-3.5 w-3.5"})),u(" "+t(_.value==="prompt"?s.$t("admin_external-providers.buttons.copied_bang"):s.$t("admin_external-providers.buttons.copy_all")),1)]),_:1})]),o.secrets?b("",!0):(n(),d("p",Ct,t(s.$t("admin_external-providers.show.setup_prompt_secret_warning")),1))]),_:1})]),_:1},8,["open"])])]),_:1}))}});export{hs as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.