@ainyc/canonry 4.114.0 → 4.115.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/assets/{BacklinksPage-pxm5QdkH.js → BacklinksPage-DhXsZ8Sb.js} +1 -1
- package/assets/assets/{ChartPrimitives-lKnj_JyP.js → ChartPrimitives-Cdj0P8uG.js} +1 -1
- package/assets/assets/ProjectPage-DAWtJQ3w.js +7 -0
- package/assets/assets/{RunRow-BCinrp7o.js → RunRow-GJ_2CEif.js} +1 -1
- package/assets/assets/{RunsPage-CRoqsHH6.js → RunsPage-upaDiLFK.js} +1 -1
- package/assets/assets/{SettingsPage-BEJ39Z1y.js → SettingsPage-FbmEaN16.js} +1 -1
- package/assets/assets/{TrafficPage-DwlIys8k.js → TrafficPage-Di0H5JRu.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-BxZdMbPs.js → TrafficSourceDetailPage-Bc2mxXSV.js} +1 -1
- package/assets/assets/{arrow-left-Bh1K7Q5q.js → arrow-left-yOCIy3_x.js} +1 -1
- package/assets/assets/{extract-error-message-CC-RB1fH.js → extract-error-message-tCNIzznL.js} +1 -1
- package/assets/assets/index-Bb5yUz7k.css +1 -0
- package/assets/assets/{index--YS3kkht.js → index-D0ZdnFQf.js} +43 -43
- package/assets/assets/{trash-2-uW1qyzpW.js → trash-2-gRyTO-PS.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-3VSTTH4M.js → chunk-BXNFOGDF.js} +227 -187
- package/dist/{chunk-WMWZW34J.js → chunk-PGVGHGIX.js} +3 -3
- package/dist/cli.js +3 -3
- package/dist/index.js +3 -3
- package/dist/{intelligence-service-I5EQ77KZ.js → intelligence-service-2C7H4C6A.js} +1 -1
- package/dist/mcp.js +1 -1
- package/package.json +9 -9
- package/assets/assets/ProjectPage-38ZIpkmq.js +0 -7
- package/assets/assets/index-CReX5Jn9.css +0 -1
- /package/dist/{chunk-DUBZH5JW.js → chunk-MO7GPMNV.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ProjectPage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ProjectPage-DAWtJQ3w.js","./vendor-tanstack-Be8JdV5M.js","./RunRow-GJ_2CEif.js","./ChartPrimitives-Cdj0P8uG.js","./extract-error-message-tCNIzznL.js","./vendor-recharts-C9EZkgbP.js","./trash-2-gRyTO-PS.js","./vendor-radix-CQ77EO2y.js","./vendor-markdown-6dwjPOKK.js","./RunsPage-upaDiLFK.js","./SettingsPage-FbmEaN16.js","./BacklinksPage-DhXsZ8Sb.js","./TrafficPage-Di0H5JRu.js","./arrow-left-yOCIy3_x.js","./TrafficSourceDetailPage-Bc2mxXSV.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{c as Tw,d as Ew,Q as Ow,M as zw,r as L,q as Te,j as f,L as st,a as Dw,e as ks,u as fn,f as Rw,h as fc,k as Mw,l as Bw,m as mv,O as xf,n as Wa,o as Ti,p as Lw,s as Et,t as Hf,v as Ps,x as qw,y as Uw,z as $w}from"./vendor-tanstack-Be8JdV5M.js";import{S as Vw,O as Qf,P as hv,C as Kf,a as gv,T as Zf,D as yv,R as bv}from"./vendor-radix-CQ77EO2y.js";import{c as vv}from"./vendor-recharts-C9EZkgbP.js";import{M as Iw}from"./vendor-markdown-6dwjPOKK.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&r(d)}).observe(document,{childList:!0,subtree:!0});function i(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function r(l){if(l.ep)return;l.ep=!0;const c=i(l);fetch(l.href,c)}})();var tf={exports:{}},Kr={},nf={exports:{}},af={};var Vy;function Pw(){return Vy||(Vy=1,(function(e){function n($,J){var pe=$.length;$.push(J);e:for(;0<pe;){var je=pe-1>>>1,re=$[je];if(0<l(re,J))$[je]=J,$[pe]=re,pe=je;else break e}}function i($){return $.length===0?null:$[0]}function r($){if($.length===0)return null;var J=$[0],pe=$.pop();if(pe!==J){$[0]=pe;e:for(var je=0,re=$.length,Ze=re>>>1;je<Ze;){var F=2*(je+1)-1,ue=$[F],W=F+1,de=$[W];if(0>l(ue,pe))W<re&&0>l(de,ue)?($[je]=de,$[W]=pe,je=W):($[je]=ue,$[F]=pe,je=F);else if(W<re&&0>l(de,pe))$[je]=de,$[W]=pe,je=W;else break e}}return J}function l($,J){var pe=$.sortIndex-J.sortIndex;return pe!==0?pe:$.id-J.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var d=Date,h=d.now();e.unstable_now=function(){return d.now()-h}}var g=[],v=[],S=1,x=null,N=3,_=!1,O=!1,k=!1,E=!1,R=typeof setTimeout=="function"?setTimeout:null,G=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;function Y($){for(var J=i(v);J!==null;){if(J.callback===null)r(v);else if(J.startTime<=$)r(v),J.sortIndex=J.expirationTime,n(g,J);else break;J=i(v)}}function I($){if(k=!1,Y($),!O)if(i(g)!==null)O=!0,se||(se=!0,ve());else{var J=i(v);J!==null&&fe(I,J.startTime-$)}}var se=!1,z=-1,q=5,ie=-1;function _e(){return E?!0:!(e.unstable_now()-ie<q)}function De(){if(E=!1,se){var $=e.unstable_now();ie=$;var J=!0;try{e:{O=!1,k&&(k=!1,G(z),z=-1),_=!0;var pe=N;try{t:{for(Y($),x=i(g);x!==null&&!(x.expirationTime>$&&_e());){var je=x.callback;if(typeof je=="function"){x.callback=null,N=x.priorityLevel;var re=je(x.expirationTime<=$);if($=e.unstable_now(),typeof re=="function"){x.callback=re,Y($),J=!0;break t}x===i(g)&&r(g),Y($)}else r(g);x=i(g)}if(x!==null)J=!0;else{var Ze=i(v);Ze!==null&&fe(I,Ze.startTime-$),J=!1}}break e}finally{x=null,N=pe,_=!1}J=void 0}}finally{J?ve():se=!1}}}var ve;if(typeof P=="function")ve=function(){P(De)};else if(typeof MessageChannel<"u"){var et=new MessageChannel,le=et.port2;et.port1.onmessage=De,ve=function(){le.postMessage(null)}}else ve=function(){R(De,0)};function fe($,J){z=R(function(){$(e.unstable_now())},J)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):q=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return N},e.unstable_next=function($){switch(N){case 1:case 2:case 3:var J=3;break;default:J=N}var pe=N;N=J;try{return $()}finally{N=pe}},e.unstable_requestPaint=function(){E=!0},e.unstable_runWithPriority=function($,J){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var pe=N;N=$;try{return J()}finally{N=pe}},e.unstable_scheduleCallback=function($,J,pe){var je=e.unstable_now();switch(typeof pe=="object"&&pe!==null?(pe=pe.delay,pe=typeof pe=="number"&&0<pe?je+pe:je):pe=je,$){case 1:var re=-1;break;case 2:re=250;break;case 5:re=1073741823;break;case 4:re=1e4;break;default:re=5e3}return re=pe+re,$={id:S++,callback:J,priorityLevel:$,startTime:pe,expirationTime:re,sortIndex:-1},pe>je?($.sortIndex=pe,n(v,$),i(g)===null&&$===i(v)&&(k?(G(z),z=-1):k=!0,fe(I,pe-je))):($.sortIndex=re,n(g,$),O||_||(O=!0,se||(se=!0,ve()))),$},e.unstable_shouldYield=_e,e.unstable_wrapCallback=function($){var J=N;return function(){var pe=N;N=J;try{return $.apply(this,arguments)}finally{N=pe}}}})(af)),af}var Iy;function Gw(){return Iy||(Iy=1,nf.exports=Pw()),nf.exports}var Py;function Hw(){if(Py)return Kr;Py=1;var e=Gw(),n=Tw(),i=Ew();function r(t){var a="https://react.dev/errors/"+t;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)a+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+t+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function c(t){var a=t,s=t;if(t.alternate)for(;a.return;)a=a.return;else{t=a;do a=t,(a.flags&4098)!==0&&(s=a.return),t=a.return;while(t)}return a.tag===3?s:null}function d(t){if(t.tag===13){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function h(t){if(t.tag===31){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function g(t){if(c(t)!==t)throw Error(r(188))}function v(t){var a=t.alternate;if(!a){if(a=c(t),a===null)throw Error(r(188));return a!==t?null:t}for(var s=t,o=a;;){var u=s.return;if(u===null)break;var m=u.alternate;if(m===null){if(o=u.return,o!==null){s=o;continue}break}if(u.child===m.child){for(m=u.child;m;){if(m===s)return g(u),t;if(m===o)return g(u),a;m=m.sibling}throw Error(r(188))}if(s.return!==o.return)s=u,o=m;else{for(var b=!1,j=u.child;j;){if(j===s){b=!0,s=u,o=m;break}if(j===o){b=!0,o=u,s=m;break}j=j.sibling}if(!b){for(j=m.child;j;){if(j===s){b=!0,s=m,o=u;break}if(j===o){b=!0,o=m,s=u;break}j=j.sibling}if(!b)throw Error(r(189))}}if(s.alternate!==o)throw Error(r(190))}if(s.tag!==3)throw Error(r(188));return s.stateNode.current===s?t:a}function S(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t;for(t=t.child;t!==null;){if(a=S(t),a!==null)return a;t=t.sibling}return null}var x=Object.assign,N=Symbol.for("react.element"),_=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),R=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),P=Symbol.for("react.context"),Y=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),se=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),ie=Symbol.for("react.activity"),_e=Symbol.for("react.memo_cache_sentinel"),De=Symbol.iterator;function ve(t){return t===null||typeof t!="object"?null:(t=De&&t[De]||t["@@iterator"],typeof t=="function"?t:null)}var et=Symbol.for("react.client.reference");function le(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===et?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case k:return"Fragment";case R:return"Profiler";case E:return"StrictMode";case I:return"Suspense";case se:return"SuspenseList";case ie:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case O:return"Portal";case P:return t.displayName||"Context";case G:return(t._context.displayName||"Context")+".Consumer";case Y:var a=t.render;return t=t.displayName,t||(t=a.displayName||a.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case z:return a=t.displayName||null,a!==null?a:le(t.type)||"Memo";case q:a=t._payload,t=t._init;try{return le(t(a))}catch{}}return null}var fe=Array.isArray,$=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,pe={pending:!1,data:null,method:null,action:null},je=[],re=-1;function Ze(t){return{current:t}}function F(t){0>re||(t.current=je[re],je[re]=null,re--)}function ue(t,a){re++,je[re]=t.current,t.current=a}var W=Ze(null),de=Ze(null),ne=Ze(null),Ne=Ze(null);function tt(t,a){switch(ue(ne,a),ue(de,t),ue(W,null),a.nodeType){case 9:case 11:t=(t=a.documentElement)&&(t=t.namespaceURI)?uy(t):0;break;default:if(t=a.tagName,a=a.namespaceURI)a=uy(a),t=dy(a,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}F(W),ue(W,t)}function xe(){F(W),F(de),F(ne)}function $e(t){t.memoizedState!==null&&ue(Ne,t);var a=W.current,s=dy(a,t.type);a!==s&&(ue(de,t),ue(W,s))}function He(t){de.current===t&&(F(W),F(de)),Ne.current===t&&(F(Ne),Pr._currentValue=pe)}var Dt,Un;function Rt(t){if(Dt===void 0)try{throw Error()}catch(s){var a=s.stack.trim().match(/\n( *(at )?)/);Dt=a&&a[1]||"",Un=-1<s.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+Dt+t+Un}var er=!1;function Ri(t,a){if(!t||er)return"";er=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(a){var X=function(){throw Error()};if(Object.defineProperty(X.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(X,[])}catch(V){var U=V}Reflect.construct(t,[],X)}else{try{X.call()}catch(V){U=V}t.call(X.prototype)}}else{try{throw Error()}catch(V){U=V}(X=t())&&typeof X.catch=="function"&&X.catch(function(){})}}catch(V){if(V&&U&&typeof V.stack=="string")return[V.stack,U.stack]}return[null,null]}};o.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var u=Object.getOwnPropertyDescriptor(o.DetermineComponentFrameRoot,"name");u&&u.configurable&&Object.defineProperty(o.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var m=o.DetermineComponentFrameRoot(),b=m[0],j=m[1];if(b&&j){var C=b.split(`
|
|
@@ -11,9 +11,9 @@ Error generating stack: `+o.message+`
|
|
|
11
11
|
|
|
12
12
|
`);q=ve.pop()??"";for(const et of ve){const le=et.split(`
|
|
13
13
|
`),fe=[];let $;for(const je of le)if(je.startsWith("data:"))fe.push(je.replace(/^data:\s*/,""));else if(je.startsWith("event:"))$=je.replace(/^event:\s*/,"");else if(je.startsWith("id:"))x=je.replace(/^id:\s*/,"");else if(je.startsWith("retry:")){const re=Number.parseInt(je.replace(/^retry:\s*/,""),10);Number.isNaN(re)||(k=re)}let J,pe=!1;if(fe.length){const je=fe.join(`
|
|
14
|
-
`);try{J=JSON.parse(je),pe=!0}catch{J=je}}pe&&(l&&await l(J),r&&(J=await r(J))),i?.({data:J,event:$,id:x,retry:k}),fe.length&&(yield J)}}}finally{R.removeEventListener("abort",ie),z.releaseLock()}break}catch(P){if(n?.(P),d!==void 0&&E>=d)break;const Y=Math.min(k*2**(E-1),h??3e4);await N(Y)}}}()}},Xw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Fw=e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},Jw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Sv=({allowReserved:e,explode:n,name:i,style:r,value:l})=>{if(!n){const h=(e?l:l.map(g=>encodeURIComponent(g))).join(Fw(r));switch(r){case"label":return`.${h}`;case"matrix":return`;${i}=${h}`;case"simple":return h;default:return`${i}=${h}`}}const c=Xw(r),d=l.map(h=>r==="label"||r==="simple"?e?h:encodeURIComponent(h):pc({allowReserved:e,name:i,value:h})).join(c);return r==="label"||r==="matrix"?c+d:d},pc=({allowReserved:e,name:n,value:i})=>{if(i==null)return"";if(typeof i=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${n}=${e?i:encodeURIComponent(i)}`},xv=({allowReserved:e,explode:n,name:i,style:r,value:l,valueOnly:c})=>{if(l instanceof Date)return c?l.toISOString():`${i}=${l.toISOString()}`;if(r!=="deepObject"&&!n){let g=[];Object.entries(l).forEach(([S,x])=>{g=[...g,S,e?x:encodeURIComponent(x)]});const v=g.join(",");switch(r){case"form":return`${i}=${v}`;case"label":return`.${v}`;case"matrix":return`;${i}=${v}`;default:return v}}const d=Jw(r),h=Object.entries(l).map(([g,v])=>pc({allowReserved:e,name:r==="deepObject"?`${i}[${g}]`:g,value:v})).join(d);return r==="label"||r==="matrix"?d+h:h},Ww=/\{[^{}]+\}/g,ej=({path:e,url:n})=>{let i=n;const r=n.match(Ww);if(r)for(const l of r){let c=!1,d=l.substring(1,l.length-1),h="simple";d.endsWith("*")&&(c=!0,d=d.substring(0,d.length-1)),d.startsWith(".")?(d=d.substring(1),h="label"):d.startsWith(";")&&(d=d.substring(1),h="matrix");const g=e[d];if(g==null)continue;if(Array.isArray(g)){i=i.replace(l,Sv({explode:c,name:d,style:h,value:g}));continue}if(typeof g=="object"){i=i.replace(l,xv({explode:c,name:d,style:h,value:g,valueOnly:!0}));continue}if(h==="matrix"){i=i.replace(l,`;${pc({name:d,value:g})}`);continue}const v=encodeURIComponent(h==="label"?`.${g}`:g);i=i.replace(l,v)}return i},tj=({baseUrl:e,path:n,query:i,querySerializer:r,url:l})=>{const c=l.startsWith("/")?l:`/${l}`;let d=(e??"")+c;n&&(d=ej({path:n,url:d}));let h=i?r(i):"";return h.startsWith("?")&&(h=h.substring(1)),h&&(d+=`?${h}`),d};function nj(e){const n=e.body!==void 0;if(n&&e.bodySerializer)return"serializedBody"in e?e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null:e.body!==""?e.body:null;if(n)return e.body}const aj=async(e,n)=>{const i=typeof n=="function"?await n(e):n;if(i)return e.scheme==="bearer"?`Bearer ${i}`:e.scheme==="basic"?`Basic ${btoa(i)}`:i},wv=({allowReserved:e,array:n,object:i}={})=>l=>{const c=[];if(l&&typeof l=="object")for(const d in l){const h=l[d];if(h!=null)if(Array.isArray(h)){const g=Sv({allowReserved:e,explode:!0,name:d,style:"form",value:h,...n});g&&c.push(g)}else if(typeof h=="object"){const g=xv({allowReserved:e,explode:!0,name:d,style:"deepObject",value:h,...i});g&&c.push(g)}else{const g=pc({allowReserved:e,name:d,value:h});g&&c.push(g)}}return c.join("&")},ij=e=>{if(!e)return"stream";const n=e.split(";")[0]?.trim();if(n){if(n.startsWith("application/json")||n.endsWith("+json"))return"json";if(n==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some(i=>n.startsWith(i)))return"blob";if(n.startsWith("text/"))return"text"}},sj=(e,n)=>n?!!(e.headers.has(n)||e.query?.[n]||e.headers.get("Cookie")?.includes(`${n}=`)):!1,rj=async({security:e,...n})=>{for(const i of e){if(sj(n,i.name))continue;const r=await aj(i,n.auth);if(!r)continue;const l=i.name??"Authorization";switch(i.in){case"query":n.query||(n.query={}),n.query[l]=r;break;case"cookie":n.headers.append("Cookie",`${l}=${r}`);break;default:n.headers.set(l,r);break}}},Hy=e=>tj({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:wv(e.querySerializer),url:e.url}),Qy=(e,n)=>{const i={...e,...n};return i.baseUrl?.endsWith("/")&&(i.baseUrl=i.baseUrl.substring(0,i.baseUrl.length-1)),i.headers=jv(e.headers,n.headers),i},oj=e=>{const n=[];return e.forEach((i,r)=>{n.push([r,i])}),n},jv=(...e)=>{const n=new Headers;for(const i of e){if(!i)continue;const r=i instanceof Headers?oj(i):Object.entries(i);for(const[l,c]of r)if(c===null)n.delete(l);else if(Array.isArray(c))for(const d of c)n.append(l,d);else c!==void 0&&n.set(l,typeof c=="object"?JSON.stringify(c):c)}return n};class sf{fns=[];clear(){this.fns=[]}eject(n){const i=this.getInterceptorIndex(n);this.fns[i]&&(this.fns[i]=null)}exists(n){const i=this.getInterceptorIndex(n);return!!this.fns[i]}getInterceptorIndex(n){return typeof n=="number"?this.fns[n]?n:-1:this.fns.indexOf(n)}update(n,i){const r=this.getInterceptorIndex(n);return this.fns[r]?(this.fns[r]=i,n):!1}use(n){return this.fns.push(n),this.fns.length-1}}const lj=()=>({error:new sf,request:new sf,response:new sf}),cj=wv({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),uj={"Content-Type":"application/json"},Nv=(e={})=>({...Zw,headers:uj,parseAs:"auto",querySerializer:cj,...e}),kv=(e={})=>{let n=Qy(Nv(),e);const i=()=>({...n}),r=v=>(n=Qy(n,v),i()),l=lj(),c=async v=>{const S={...n,...v,fetch:v.fetch??n.fetch??globalThis.fetch,headers:jv(n.headers,v.headers),serializedBody:void 0};S.security&&await rj({...S,security:S.security}),S.requestValidator&&await S.requestValidator(S),S.body!==void 0&&S.bodySerializer&&(S.serializedBody=S.bodySerializer(S.body)),(S.body===void 0||S.serializedBody==="")&&S.headers.delete("Content-Type");const x=Hy(S);return{opts:S,url:x}},d=async v=>{const{opts:S,url:x}=await c(v),N={redirect:"follow",...S,body:nj(S)};let _=new Request(x,N);for(const I of l.request.fns)I&&(_=await I(_,S));const O=S.fetch;let k=await O(_);for(const I of l.response.fns)I&&(k=await I(k,_,S));const E={request:_,response:k};if(k.ok){const I=(S.parseAs==="auto"?ij(k.headers.get("Content-Type")):S.parseAs)??"json";if(k.status===204||k.headers.get("Content-Length")==="0"){let z;switch(I){case"arrayBuffer":case"blob":case"text":z=await k[I]();break;case"formData":z=new FormData;break;case"stream":z=k.body;break;default:z={};break}return S.responseStyle==="data"?z:{data:z,...E}}let se;switch(I){case"arrayBuffer":case"blob":case"formData":case"json":case"text":se=await k[I]();break;case"stream":return S.responseStyle==="data"?k.body:{data:k.body,...E}}return I==="json"&&(S.responseValidator&&await S.responseValidator(se),S.responseTransformer&&(se=await S.responseTransformer(se))),S.responseStyle==="data"?se:{data:se,...E}}const R=await k.text();let G;try{G=JSON.parse(R)}catch{}const P=G??R;let Y=P;for(const I of l.error.fns)I&&(Y=await I(P,k,_,S));if(Y=Y||{},S.throwOnError)throw Y;return S.responseStyle==="data"?void 0:{error:Y,...E}},h=v=>S=>d({...S,method:v}),g=v=>async S=>{const{opts:x,url:N}=await c(S);return Yw({...x,body:x.body,headers:x.headers,method:v,onRequest:async(_,O)=>{let k=new Request(_,O);for(const E of l.request.fns)E&&(k=await E(k,x));return k},url:N})};return{buildUrl:Hy,connect:h("CONNECT"),delete:h("DELETE"),get:h("GET"),getConfig:i,head:h("HEAD"),interceptors:l,options:h("OPTIONS"),patch:h("PATCH"),post:h("POST"),put:h("PUT"),request:d,setConfig:r,sse:{connect:g("CONNECT"),delete:g("DELETE"),get:g("GET"),head:g("HEAD"),options:g("OPTIONS"),patch:g("PATCH"),post:g("POST"),put:g("PUT"),trace:g("TRACE")},trace:h("TRACE")}},Q=kv(Nv()),dj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),Av=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),fj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),pj=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects",...e}),mj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations",...e,headers:{"Content-Type":"application/json",...e.headers}}),hj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/{label}",...e}),gj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/default",...e,headers:{"Content-Type":"application/json",...e.headers}}),yj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/export",...e}),bj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),vj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e}),Sj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),xj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),wj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries/generate",...e,headers:{"Content-Type":"application/json",...e.headers}}),jj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),Nj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e}),kj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),_v=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e}),Aj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),_j=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e}),Cj=e=>(e?.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),Cv=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs/{id}",...e}),Tj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/apply",...e,headers:{"Content-Type":"application/json",...e.headers}}),Ej=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/timeline",...e}),Oj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/analytics/metrics",...e}),Tv=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings",...e}),zj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/providers/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),Dj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/google",...e,headers:{"Content-Type":"application/json",...e.headers}}),Rj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/bing",...e,headers:{"Content-Type":"application/json",...e.headers}}),Mj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/cdp",...e,headers:{"Content-Type":"application/json",...e.headers}}),Bj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),Lj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),qj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e,headers:{"Content-Type":"application/json",...e.headers}}),Uj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e}),$j=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e,headers:{"Content-Type":"application/json",...e.headers}}),Vj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}",...e}),Ij=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}/test",...e}),Pj=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/cdp/status",...e}),Gj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections",...e}),Hj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),Qj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}",...e}),Kj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/properties",...e}),Zj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/property",...e,headers:{"Content-Type":"application/json",...e.headers}}),Yj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Xj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),Fj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance",...e}),Jj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance/daily",...e}),Wj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect",...e,headers:{"Content-Type":"application/json",...e.headers}}),eN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspections",...e}),tN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/deindexed",...e}),Ev=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage",...e}),nN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage/history",...e}),aN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps",...e}),iN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/discover-sitemaps",...e}),sN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),rN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/indexing/request",...e,headers:{"Content-Type":"application/json",...e.headers}}),oN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations",...e}),lN=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations/{locationName}/selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),cN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),uN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/keywords",...e}),dN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/place-actions",...e}),fN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/lodging",...e}),pN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/places",...e}),mN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/summary",...e}),hN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),gN=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/disconnect",...e}),yN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/status",...e}),bN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/sites",...e}),vN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/set-site",...e,headers:{"Content-Type":"application/json",...e.headers}}),Ov=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/coverage",...e}),SN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspections",...e}),xN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-url",...e,headers:{"Content-Type":"application/json",...e.headers}}),wN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),jN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/request-indexing",...e,headers:{"Content-Type":"application/json",...e.headers}}),NN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/performance",...e}),kN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),AN=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/disconnect",...e}),_N=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/status",...e}),CN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),TN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/traffic",...e}),EN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/ai-referral-history",...e}),ON=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/social-referral-history",...e}),zN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/session-history",...e}),DN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/insights",...e}),RN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/report",...e}),MN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/citations/visibility",...e}),BN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/content/dismissals",...e,headers:{"Content-Type":"application/json",...e.headers}}),LN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/overview",...e}),qN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/status",...e}),UN=e=>(e?.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/install",...e}),$N=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e}),VN=e=>(e?.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),IN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs/latest",...e}),PN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/releases",...e}),GN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/latest-release",...e}),HN=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/cache/{release}",...e}),QN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/extract",...e,headers:{"Content-Type":"application/json",...e.headers}}),KN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/summary",...e}),ZN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/domains",...e}),YN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/history",...e}),XN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/sources",...e}),FN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/bing-sync",...e}),JN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/cloud-run",...e,headers:{"Content-Type":"application/json",...e.headers}}),WN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/wordpress",...e,headers:{"Content-Type":"application/json",...e.headers}}),ek=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/vercel",...e,headers:{"Content-Type":"application/json",...e.headers}}),tk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),nk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/backfill",...e,headers:{"Content-Type":"application/json",...e.headers}}),ak=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources",...e}),ik=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/status",...e}),sk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}",...e}),rk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/events",...e}),ok=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/run",...e,headers:{"Content-Type":"application/json",...e.headers}}),lk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions",...e}),ck=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}",...e}),uk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e}),dk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e,headers:{"Content-Type":"application/json",...e.headers}}),fk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo",...e}),pk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/pages",...e}),mk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/trend",...e}),hk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),gk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/agent/providers",...e});function yk(e){const n={baseUrl:e.baseUrl,fetch:e.fetch,headers:{...e.headers??{}}};return kv(n)}class Hn extends Error{code;statusCode;details;constructor(n,i,r,l){super(n),this.name="ApiError",this.code=r??"UNKNOWN",this.statusCode=i,this.details=l}}function bk(){if(typeof window>"u")return;const e=window.__CANONRY_CONFIG__?.embed?.renderToken;return typeof e=="string"&&e.length>0?e:void 0}function Yf(e){const n=bk();if(!n)return e;let i;const r=typeof window<"u"&&window.location?window.location.href:"http://localhost/";try{i=new URL(e,r)}catch{return e}const l=new URL(r).origin;if(i.origin!==l)return e;const d=`${Xf().replace(/\/$/,"")}/api/v1`;return i.pathname!==d&&!i.pathname.startsWith(`${d}/`)?e:(i.searchParams.set("token",n),/^[a-z][a-z\d+.-]*:/i.test(e)?i.toString():`${i.pathname}${i.search}${i.hash}`)}function vk(e,n){const i={method:e.method,headers:e.headers,cache:e.cache,credentials:e.credentials,integrity:e.integrity,keepalive:e.keepalive,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal};return e.body&&(i.body=e.body,i.duplex="half"),new Request(n,i)}function zv(){if(typeof window>"u")return null;const e=window.__CANONRY_CONFIG__?.embed;return e?.enabled?e:null}function Sk(){return zv()!==null}function xk(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const Dv=xk();function wk(){const e=typeof window<"u"&&window.location?window.location.origin:"";return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?e+window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):e}function Xf(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):""}function jk(e){const n=e.trim().toLowerCase().replace(/^\[|\]$/g,"");return n==="localhost"||n==="::1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(n)}function Nk(e,n){if(e.protocol!=="http:"&&e.protocol!=="https:"||!jk(e.hostname))return;const i=e.port?`:${e.port}`:"",r=n?n.replace(/\/$/,""):"";return`${e.protocol}//localhost${i}${r}`}function ML(e){return`${e.replace(/\/$/,"")}/api/v1/google/callback`}function kk(){if(!(typeof window>"u"))return Nk(window.location,Xf())}function Ak(e){return`${Xf()}${e}`}function _k(e,n){if(n===404)return"Health endpoint returned 404. Check basePath or reverse-proxy configuration and make sure the dashboard reaches /health instead of an API-prefixed route."}function Ck(){return""}function rf(){return!!Ck()}let Rv=null;function Ky(e){Rv=e}function Ff(){Rv?.()}const ee=yk({baseUrl:wk()});ee.interceptors.response.use((e,n)=>(e.status===401&&!n.url.includes("/api/v1/session")&&Ff(),e));ee.interceptors.request.use(e=>{const n=Yf(e.url);return n===e.url?e:vk(e,n)});async function ce(e){const n=await e();if(n.error!==void 0&&n.error!==null){const i=n.response.status;let r=`API ${i}: ${n.response.statusText}`,l,c;if(typeof n.error=="object"&&n.error!==null){const d=n.error.error;if(typeof d=="string")r=d;else if(d&&typeof d=="object"){const h=d;h.message&&(r=h.message),h.code&&(l=h.code),h.details&&(c=h.details)}else{const h=n.error;h.message&&(r=h.message),h.code&&(l=h.code),h.details&&(c=h.details)}}else typeof n.error=="string"&&(r=n.error);throw new Hn(r,i,l,c)}if(n.response.status!==204)return n.data}async function Jf(e,n){const i=n?.body!=null,r=await fetch(Yf(`${Dv}${e}`),{...n,credentials:n?.credentials??"same-origin",headers:{...i?{"Content-Type":"application/json"}:{},...n?.headers}});if(!r.ok){const l=await r.text();let c=`API ${r.status}: ${r.statusText}`,d,h;if(l)try{const g=JSON.parse(l);typeof g.error=="string"?c=g.error:g.error?.message?(c=g.error.message,d=g.error.code,h=g.error.details):g.message&&(c=g.message)}catch{c=l}throw r.status===401&&!e.startsWith("/session")&&Ff(),new Hn(c,r.status,d,h)}if(r.status!==204)return r.json()}function Wf(e){return ce(()=>Av({client:ee,path:{name:e}}))}function BL(e){return ce(()=>_v({client:ee,path:{name:e}}))}function Wl(e){return ce(()=>Cv({client:ee,path:{id:e}}))}function Tk(e){return ce(()=>vj({client:ee,path:{name:e}}))}function Ek(e){return ce(()=>Nj({client:ee,path:{name:e}}))}function Ok(e,n){return ce(()=>Ej({client:ee,path:{name:e},query:{location:n}}))}function Mv(e,n){return ce(()=>LN({client:ee,path:{name:e},query:{location:n?.location,since:n?.since}}))}function co(e,n){return ce(()=>fj({client:ee,path:{name:e},body:n}))}function zk(e,n){return ce(()=>xj({client:ee,path:{name:e},body:{queries:n}}))}function Dk(e,n){return ce(()=>Sj({client:ee,path:{name:e},body:{queries:n}}))}function LL(e,n){return ce(()=>bj({client:ee,path:{name:e},body:{queries:n}}))}function Rk(e,n){return ce(()=>BN({client:ee,path:{name:e},body:n}))}function Mk(e,n){return ce(()=>kj({client:ee,path:{name:e},body:{competitors:n}}))}function qL(e,n){return ce(()=>jj({client:ee,path:{name:e},body:{competitors:n}}))}async function UL(e,n){const i=await Wf(e);return co(e,{displayName:i.displayName??i.name,canonicalDomain:i.canonicalDomain,ownedDomains:n,aliases:i.aliases,country:i.country,language:i.language,tags:i.tags,labels:i.labels,providers:i.providers,locations:i.locations,defaultLocation:i.defaultLocation})}async function $L(e,n){const i=await Wf(e);return co(e,{displayName:i.displayName??i.name,canonicalDomain:i.canonicalDomain,ownedDomains:i.ownedDomains,aliases:n,country:i.country,language:i.language,tags:i.tags,labels:i.labels,providers:i.providers,locations:i.locations,defaultLocation:i.defaultLocation})}async function VL(e,n){const i=await Wf(e);return co(e,{displayName:n.displayName??i.displayName??i.name,canonicalDomain:n.canonicalDomain??i.canonicalDomain,ownedDomains:n.ownedDomains??i.ownedDomains,aliases:n.aliases??i.aliases,country:n.country??i.country,language:n.language??i.language,tags:i.tags,labels:i.labels,providers:i.providers,locations:n.locations??i.locations,defaultLocation:n.defaultLocation!==void 0?n.defaultLocation:i.defaultLocation})}function Bk(e,n){const i={};return n?.location&&(i.location=n.location),n?.allLocations&&(i.allLocations=!0),n?.noLocation&&(i.noLocation=!0),ce(()=>Aj({client:ee,path:{name:e},body:i}))}function IL(e,n){return ce(()=>mj({client:ee,path:{name:e},body:n}))}async function PL(e,n){await ce(()=>hj({client:ee,path:{name:e,label:n}}))}function GL(e,n){return ce(()=>gj({client:ee,path:{name:e},body:{label:n}}))}async function HL(e){await ce(()=>dj({client:ee,path:{name:e}}))}function QL(e){return ce(()=>yj({client:ee,path:{name:e}}))}function KL(){return ce(()=>Tv({client:ee}))}function Zy(){return Jf("/session")}function Lk(e){return Jf("/session/setup",{method:"POST",body:JSON.stringify({password:e})})}function qk(e){return Jf("/session",{method:"POST",body:JSON.stringify({password:e})})}function Uk(e,n){return ce(()=>zj({client:ee,path:{name:e},body:n}))}function ZL(e){return ce(()=>Dj({client:ee,body:e}))}async function YL(e){try{return await ce(()=>Lj({client:ee,path:{name:e}}))}catch(n){if(n instanceof Hn&&n.statusCode===404)return null;throw n}}function XL(e,n){return ce(()=>qj({client:ee,path:{name:e},body:n}))}async function FL(e){await ce(()=>Bj({client:ee,path:{name:e}}))}function JL(e){return ce(()=>Uj({client:ee,path:{name:e}}))}function WL(e,n){return ce(()=>$j({client:ee,path:{name:e},body:n}))}async function e5(e,n){await ce(()=>Vj({client:ee,path:{name:e,id:n}}))}function t5(e,n){return ce(()=>Ij({client:ee,path:{name:e,id:n}}))}function $k(e,n,i){return ce(()=>wj({client:ee,path:{name:e},body:{provider:n,count:i}}))}function Vk(e){return ce(()=>Tj({client:ee,body:e}))}function Ik(e){return ce(()=>Cj({client:ee,body:e??{}}))}function n5(e,n){const i=kk();return ce(()=>Hj({client:ee,path:{name:e},body:{type:n,...i?{publicUrl:i}:{}}}))}function a5(e,n){return ce(()=>Qj({client:ee,path:{name:e,type:n}}))}function i5(e,n,i){return ce(()=>Zj({client:ee,path:{name:e,type:n},body:{propertyId:i}}))}function s5(e,n,i){return ce(()=>Yj({client:ee,path:{name:e,type:n},body:{sitemapUrl:i}}))}function Pk(e,n){return ce(()=>Xj({client:ee,path:{name:e},body:n??{}}))}function r5(e,n){const i={};return n&&n!=="all"&&(i.window=n),ce(()=>Oj({client:ee,path:{name:e},query:i}))}function o5(e,n){return ce(()=>Wj({client:ee,path:{name:e},body:{url:n}}))}function Gk(e){return ce(()=>Ev({client:ee,path:{name:e}}))}function Hk(e,n){return ce(()=>sN({client:ee,path:{name:e},body:n??{}}))}function l5(e){return ce(()=>aN({client:ee,path:{name:e}}))}function Qk(e){return ce(()=>iN({client:ee,path:{name:e}}))}function c5(e,n){return ce(()=>hk({client:ee,path:{name:e},body:{}}))}function u5(e,n){return ce(()=>ok({client:ee,path:{name:e},body:n??{}}))}function d5(e,n,i){return ce(()=>dk({client:ee,path:{name:e,id:n},body:i??{}}))}function f5(){return ce(()=>Pj({client:ee}))}function p5(e,n){return ce(()=>Mj({client:ee,body:{host:e,port:n}}))}function m5(e,n){return ce(()=>rN({client:ee,path:{name:e},body:n}))}function h5(e,n){return ce(()=>hN({client:ee,path:{name:e},body:{apiKey:n}}))}function g5(e){return ce(()=>gN({client:ee,path:{name:e}}))}function y5(e,n){return ce(()=>vN({client:ee,path:{name:e},body:{siteUrl:n}}))}function Kk(e){return ce(()=>Ov({client:ee,path:{name:e}}))}function b5(e,n){return ce(()=>xN({client:ee,path:{name:e},body:{url:n}}))}function v5(e,n){return ce(()=>wN({client:ee,path:{name:e},body:{}}))}function S5(e,n){return ce(()=>jN({client:ee,path:{name:e},body:n}))}function x5(e){return ce(()=>Rj({client:ee,body:{apiKey:e}}))}function Zk(e){return e?/filename\s*=\s*"?([^";]+)"?/i.exec(e)?.[1]??null:null}async function w5(e,n="agency",i){const r=new URLSearchParams({audience:n});i!==void 0&&r.set("period",String(i));const l=await fetch(Yf(`${Dv}/projects/${encodeURIComponent(e)}/report.html?${r.toString()}`),{credentials:"same-origin",headers:{}});if(!l.ok)throw new Hn(`Failed to download report: ${l.status}`,l.status);const c=await l.blob(),d=URL.createObjectURL(c),h=Zk(l.headers.get("Content-Disposition"))??`canonry-report-${e}.html`,g=document.createElement("a");g.href=d,g.download=h,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(d)}function j5(e,n){return ce(()=>CN({client:ee,path:{name:e},body:{}}))}function N5(e,n){return ce(()=>kN({client:ee,path:{name:e},body:n}))}function k5(e){return ce(()=>AN({client:ee,path:{name:e}}))}function A5(e,n){return ce(()=>JN({client:ee,path:{name:e},body:n}))}function _5(e,n){return ce(()=>WN({client:ee,path:{name:e},body:n}))}function C5(e,n){return ce(()=>ek({client:ee,path:{name:e},body:n}))}function T5(e,n,i){return ce(()=>tk({client:ee,path:{name:e,id:n},body:i??{}}))}function E5(e,n,i){return ce(()=>nk({client:ee,path:{name:e,id:n},body:{}}))}function Yk(e,n){return ce(()=>DN({client:ee,path:{name:e},query:{runId:n}}))}function Xk(e){if(!e||typeof e!="object")return;const n=e;if(!(typeof n.current!="string"||typeof n.latest!="string"||typeof n.url!="string"||typeof n.upgradeCommand!="string"))return{current:n.current,latest:n.latest,url:n.url,upgradeCommand:n.upgradeCommand}}async function Fk(e,n){const i=Ak(e);try{const r=await fetch(i,{credentials:"same-origin"});if(!r.ok)return{label:n,state:"error",detail:`${n} ${r.status}: ${r.statusText}`,statusCode:r.status,hint:_k(e,r.status)};const l=await r.json(),c=typeof l.version=="string"?l.version:"unknown",d=typeof l.databaseUrlConfigured=="boolean"?l.databaseUrlConfigured:void 0,h=typeof l.lastHeartbeatAt=="string"?l.lastHeartbeatAt:void 0,g=Xk(l.updateAvailable),v=[c,d===!1?"database not configured":"database configured",h?`heartbeat ${h}`:void 0].filter(Boolean).join(" · ");return{label:n,state:"ok",detail:v,version:c,databaseConfigured:d,lastHeartbeatAt:h,...g?{updateAvailable:g}:{}}}catch(r){return{label:n,state:"error",detail:r instanceof Error?r.message:"unreachable",hint:e==="/health"?`Request failed while checking ${i}. If this instance is served behind a sub-path, verify the dashboard basePath and reverse-proxy rewrites.`:void 0}}}function O5(){return ce(()=>qN({client:ee}))}function z5(){return ce(()=>UN({client:ee}))}function D5(){return ce(()=>IN({client:ee}))}function R5(){return ce(()=>$N({client:ee}))}function M5(e){return ce(()=>VN({client:ee,body:e?{release:e}:{}}))}function B5(){return ce(()=>PN({client:ee}))}function L5(){return ce(()=>GN({client:ee}))}function q5(e){return ce(()=>HN({client:ee,path:{release:e}}))}function U5(e,n={}){return ce(()=>KN({client:ee,path:{name:e},query:{release:n.release,excludeCrawlers:n.excludeCrawlers?"1":void 0,source:n.source}}))}function $5(e,n={}){return ce(()=>ZN({client:ee,path:{name:e},query:{limit:n.limit!==void 0?String(n.limit):void 0,offset:n.offset!==void 0?String(n.offset):void 0,release:n.release,excludeCrawlers:n.excludeCrawlers?"1":void 0,source:n.source}}))}function V5(e,n={}){return ce(()=>YN({client:ee,path:{name:e},query:{source:n.source}}))}function I5(e,n={}){return ce(()=>XN({client:ee,path:{name:e},query:{excludeCrawlers:n.excludeCrawlers?"1":void 0}}))}function P5(e,n){return ce(()=>QN({client:ee,path:{name:e},body:{release:void 0}}))}function G5(e){return ce(()=>FN({client:ee,path:{name:e}}))}function Nn(e){return(...n)=>{e(...n)}}const Jk=6e3,Wk=5,eA=180;let It=[],tA=0;const wf=new Set,jf=new Map,Nf=new Map;function ec(){const e=[...It];for(const n of wf)n(e)}function ep(e){const n=jf.get(e);n&&(clearTimeout(n),jf.delete(e));const i=Nf.get(e);i&&(clearTimeout(i),Nf.delete(e))}function Bv(e){ep(e);const n=It.length;It=It.filter(i=>i.id!==e),It.length!==n&&ec()}function Yy(e){ep(e.id),jf.set(e.id,setTimeout(()=>{kf(e.id)},e.durationMs))}function nA(e,n,i){return typeof e=="string"?{title:e,tone:n,durationMs:i}:e}function tn(e,n="negative",i=Jk){const r=nA(e,n,i),l={id:String(++tA),title:r.title,detail:r.detail,tone:r.tone??n,durationMs:r.durationMs??i,dedupeKey:r.dedupeKey,cta:r.cta,state:"open"};if(r.dedupeKey){const c=It.find(d=>d.dedupeKey===r.dedupeKey);if(c){if((r.dedupeMode??"drop")==="drop")return c.id;const d={...c,title:l.title,detail:l.detail,tone:l.tone,durationMs:l.durationMs,cta:l.cta,state:"open"};return It=It.map(h=>h.id===c.id?d:h),ec(),Yy(d),c.id}}return It.length>=Wk&&Bv(It[0].id),It=[...It,l],ec(),Yy(l),l.id}function kf(e){const n=It.find(i=>i.id===e);!n||n.state==="closing"||(ep(e),It=It.map(i=>i.id===e?{...i,state:"closing"}:i),ec(),Nf.set(e,setTimeout(()=>{Bv(e)},eA)))}function aA(e){return wf.add(e),()=>{wf.delete(e)}}function Xy(){return It}const iA=5*6e4,Af=30*6e4,H5=3e4,Q5=6e4,ao=3e4,sA=2e3,rA=5e3;function oA(){return new Ow({defaultOptions:{queries:{staleTime:iA,retry:1,refetchOnWindowFocus:!1}},mutationCache:new zw({onError:(e,n,i,r)=>{r.meta?.skipGlobalErrorToast||tn({title:e instanceof Error?e.message:"An unexpected error occurred",tone:"negative"})}})})}const lA="modulepreload",cA=function(e,n){return new URL(e,n).href},Fy={},Gs=function(n,i,r){let l=Promise.resolve();if(i&&i.length>0){let v=function(S){return Promise.all(S.map(x=>Promise.resolve(x).then(N=>({status:"fulfilled",value:N}),N=>({status:"rejected",reason:N}))))};const d=document.getElementsByTagName("link"),h=document.querySelector("meta[property=csp-nonce]"),g=h?.nonce||h?.getAttribute("nonce");l=v(i.map(S=>{if(S=cA(S,r),S in Fy)return;Fy[S]=!0;const x=S.endsWith(".css"),N=x?'[rel="stylesheet"]':"";if(r)for(let O=d.length-1;O>=0;O--){const k=d[O];if(k.href===S&&(!x||k.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${S}"]${N}`))return;const _=document.createElement("link");if(_.rel=x?"stylesheet":lA,x||(_.as="script"),_.crossOrigin="",_.href=S,g&&_.setAttribute("nonce",g),document.head.appendChild(_),x)return new Promise((O,k)=>{_.addEventListener("load",O),_.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${S}`)))})}))}function c(d){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=d,window.dispatchEvent(h),!h.defaultPrevented)throw d}return l.then(d=>{for(const h of d||[])h.status==="rejected"&&c(h.reason);return n().catch(c)})};const uA=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),dA=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,i,r)=>r?r.toUpperCase():i.toLowerCase()),Jy=e=>{const n=dA(e);return n.charAt(0).toUpperCase()+n.slice(1)},Lv=(...e)=>e.filter((n,i,r)=>!!n&&n.trim()!==""&&r.indexOf(n)===i).join(" ").trim(),fA=e=>{for(const n in e)if(n.startsWith("aria-")||n==="role"||n==="title")return!0};var pA={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const mA=L.forwardRef(({color:e="currentColor",size:n=24,strokeWidth:i=2,absoluteStrokeWidth:r,className:l="",children:c,iconNode:d,...h},g)=>L.createElement("svg",{ref:g,...pA,width:n,height:n,stroke:e,strokeWidth:r?Number(i)*24/Number(n):i,className:Lv("lucide",l),...!c&&!fA(h)&&{"aria-hidden":"true"},...h},[...d.map(([v,S])=>L.createElement(v,S)),...Array.isArray(c)?c:[c]]));const We=(e,n)=>{const i=L.forwardRef(({className:r,...l},c)=>L.createElement(mA,{ref:c,iconNode:n,className:Lv(`lucide-${uA(Jy(e))}`,`lucide-${e}`,r),...l}));return i.displayName=Jy(e),i};const hA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],gA=We("arrow-right",hA);const yA=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],bA=We("arrow-up",yA);const vA=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],SA=We("book-open",vA);const xA=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],qv=We("check",xA);const wA=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],jA=We("chevron-down",wA);const NA=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],tp=We("chevron-right",NA);const kA=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],AA=We("copy",kA);const _A=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],CA=We("file-text",_A);const TA=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],EA=We("github",TA);const OA=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],zA=We("globe",OA);const DA=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],RA=We("layout-dashboard",DA);const MA=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],BA=We("link-2",MA);const LA=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],qA=We("loader-circle",LA);const UA=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],$A=We("maximize-2",UA);const VA=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],IA=We("menu",VA);const PA=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],GA=We("minimize-2",PA);const HA=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],QA=We("play",HA);const KA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Wy=We("plus",KA);const ZA=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],YA=We("radar",ZA);const XA=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],eb=We("radio",XA);const FA=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],JA=We("rocket",FA);const WA=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Uv=We("rotate-ccw",WA);const e_=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],t_=We("search",e_);const n_=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],a_=We("settings",n_);const i_=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],$v=We("triangle-alert",i_);const s_=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],r_=We("wrench",s_);const o_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Hs=We("x",o_);function K(e,n,i){function r(h,g){if(h._zod||Object.defineProperty(h,"_zod",{value:{def:g,constr:d,traits:new Set},enumerable:!1}),h._zod.traits.has(e))return;h._zod.traits.add(e),n(h,g);const v=d.prototype,S=Object.keys(v);for(let x=0;x<S.length;x++){const N=S[x];N in h||(h[N]=v[N].bind(h))}}const l=i?.Parent??Object;class c extends l{}Object.defineProperty(c,"name",{value:e});function d(h){var g;const v=i?.Parent?new c:this;r(v,h),(g=v._zod).deferred??(g.deferred=[]);for(const S of v._zod.deferred)S();return v}return Object.defineProperty(d,"init",{value:r}),Object.defineProperty(d,Symbol.hasInstance,{value:h=>i?.Parent&&h instanceof i.Parent?!0:h?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}class Rs extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Vv extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError"}}const Iv={};function Fa(e){return Iv}function Pv(e){const n=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,l])=>n.indexOf(+r)===-1).map(([r,l])=>l)}function _f(e,n){return typeof n=="bigint"?n.toString():n}function mc(e){return{get value(){{const n=e();return Object.defineProperty(this,"value",{value:n}),n}}}}function np(e){return e==null}function ap(e){const n=e.startsWith("^")?1:0,i=e.endsWith("$")?e.length-1:e.length;return e.slice(n,i)}function l_(e,n){const i=(e.toString().split(".")[1]||"").length,r=n.toString();let l=(r.split(".")[1]||"").length;if(l===0&&/\d?e-\d?/.test(r)){const g=r.match(/\d?e-(\d?)/);g?.[1]&&(l=Number.parseInt(g[1]))}const c=i>l?i:l,d=Number.parseInt(e.toFixed(c).replace(".","")),h=Number.parseInt(n.toFixed(c).replace(".",""));return d%h/10**c}const tb=Symbol("evaluating");function Ge(e,n,i){let r;Object.defineProperty(e,n,{get(){if(r!==tb)return r===void 0&&(r=tb,r=i()),r},set(l){Object.defineProperty(e,n,{value:l})},configurable:!0})}function Ei(e,n,i){Object.defineProperty(e,n,{value:i,writable:!0,enumerable:!0,configurable:!0})}function ei(...e){const n={};for(const i of e){const r=Object.getOwnPropertyDescriptors(i);Object.assign(n,r)}return Object.defineProperties({},n)}function nb(e){return JSON.stringify(e)}function c_(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Gv="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function io(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const u_=mc(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function qs(e){if(io(e)===!1)return!1;const n=e.constructor;if(n===void 0||typeof n!="function")return!0;const i=n.prototype;return!(io(i)===!1||Object.prototype.hasOwnProperty.call(i,"isPrototypeOf")===!1)}function Hv(e){return qs(e)?{...e}:Array.isArray(e)?[...e]:e}const d_=new Set(["string","number","symbol"]);function Us(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ti(e,n,i){const r=new e._zod.constr(n??e._zod.def);return(!n||i?.parent)&&(r._zod.parent=e),r}function be(e){const n=e;if(!n)return{};if(typeof n=="string")return{error:()=>n};if(n?.message!==void 0){if(n?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");n.error=n.message}return delete n.message,typeof n.error=="string"?{...n,error:()=>n.error}:n}function f_(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}const p_={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function m_(e,n){const i=e._zod.def,r=i.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const c=ei(e._zod.def,{get shape(){const d={};for(const h in n){if(!(h in i.shape))throw new Error(`Unrecognized key: "${h}"`);n[h]&&(d[h]=i.shape[h])}return Ei(this,"shape",d),d},checks:[]});return ti(e,c)}function h_(e,n){const i=e._zod.def,r=i.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const c=ei(e._zod.def,{get shape(){const d={...e._zod.def.shape};for(const h in n){if(!(h in i.shape))throw new Error(`Unrecognized key: "${h}"`);n[h]&&delete d[h]}return Ei(this,"shape",d),d},checks:[]});return ti(e,c)}function g_(e,n){if(!qs(n))throw new Error("Invalid input to extend: expected a plain object");const i=e._zod.def.checks;if(i&&i.length>0){const c=e._zod.def.shape;for(const d in n)if(Object.getOwnPropertyDescriptor(c,d)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const l=ei(e._zod.def,{get shape(){const c={...e._zod.def.shape,...n};return Ei(this,"shape",c),c}});return ti(e,l)}function y_(e,n){if(!qs(n))throw new Error("Invalid input to safeExtend: expected a plain object");const i=ei(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n};return Ei(this,"shape",r),r}});return ti(e,i)}function b_(e,n){const i=ei(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n._zod.def.shape};return Ei(this,"shape",r),r},get catchall(){return n._zod.def.catchall},checks:[]});return ti(e,i)}function v_(e,n,i){const l=n._zod.def.checks;if(l&&l.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const d=ei(n._zod.def,{get shape(){const h=n._zod.def.shape,g={...h};if(i)for(const v in i){if(!(v in h))throw new Error(`Unrecognized key: "${v}"`);i[v]&&(g[v]=e?new e({type:"optional",innerType:h[v]}):h[v])}else for(const v in h)g[v]=e?new e({type:"optional",innerType:h[v]}):h[v];return Ei(this,"shape",g),g},checks:[]});return ti(n,d)}function S_(e,n,i){const r=ei(n._zod.def,{get shape(){const l=n._zod.def.shape,c={...l};if(i)for(const d in i){if(!(d in c))throw new Error(`Unrecognized key: "${d}"`);i[d]&&(c[d]=new e({type:"nonoptional",innerType:l[d]}))}else for(const d in l)c[d]=new e({type:"nonoptional",innerType:l[d]});return Ei(this,"shape",c),c}});return ti(n,r)}function Ts(e,n=0){if(e.aborted===!0)return!0;for(let i=n;i<e.issues.length;i++)if(e.issues[i]?.continue!==!0)return!0;return!1}function Es(e,n){return n.map(i=>{var r;return(r=i).path??(r.path=[]),i.path.unshift(e),i})}function Ll(e){return typeof e=="string"?e:e?.message}function Ja(e,n,i){const r={...e,path:e.path??[]};if(!e.message){const l=Ll(e.inst?._zod.def?.error?.(e))??Ll(n?.error?.(e))??Ll(i.customError?.(e))??Ll(i.localeError?.(e))??"Invalid input";r.message=l}return delete r.inst,delete r.continue,n?.reportInput||delete r.input,r}function ip(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function so(...e){const[n,i,r]=e;return typeof n=="string"?{message:n,code:"custom",input:i,inst:r}:{...n}}const Qv=(e,n)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:n,enumerable:!1}),e.message=JSON.stringify(n,_f,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Kv=K("$ZodError",Qv),Zv=K("$ZodError",Qv,{Parent:Error});function x_(e,n=i=>i.message){const i={},r=[];for(const l of e.issues)l.path.length>0?(i[l.path[0]]=i[l.path[0]]||[],i[l.path[0]].push(n(l))):r.push(n(l));return{formErrors:r,fieldErrors:i}}function w_(e,n=i=>i.message){const i={_errors:[]},r=l=>{for(const c of l.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(d=>r({issues:d}));else if(c.code==="invalid_key")r({issues:c.issues});else if(c.code==="invalid_element")r({issues:c.issues});else if(c.path.length===0)i._errors.push(n(c));else{let d=i,h=0;for(;h<c.path.length;){const g=c.path[h];h===c.path.length-1?(d[g]=d[g]||{_errors:[]},d[g]._errors.push(n(c))):d[g]=d[g]||{_errors:[]},d=d[g],h++}}};return r(e),i}const sp=e=>(n,i,r,l)=>{const c=r?Object.assign(r,{async:!1}):{async:!1},d=n._zod.run({value:i,issues:[]},c);if(d instanceof Promise)throw new Rs;if(d.issues.length){const h=new(l?.Err??e)(d.issues.map(g=>Ja(g,c,Fa())));throw Gv(h,l?.callee),h}return d.value},rp=e=>async(n,i,r,l)=>{const c=r?Object.assign(r,{async:!0}):{async:!0};let d=n._zod.run({value:i,issues:[]},c);if(d instanceof Promise&&(d=await d),d.issues.length){const h=new(l?.Err??e)(d.issues.map(g=>Ja(g,c,Fa())));throw Gv(h,l?.callee),h}return d.value},hc=e=>(n,i,r)=>{const l=r?{...r,async:!1}:{async:!1},c=n._zod.run({value:i,issues:[]},l);if(c instanceof Promise)throw new Rs;return c.issues.length?{success:!1,error:new(e??Kv)(c.issues.map(d=>Ja(d,l,Fa())))}:{success:!0,data:c.value}},j_=hc(Zv),gc=e=>async(n,i,r)=>{const l=r?Object.assign(r,{async:!0}):{async:!0};let c=n._zod.run({value:i,issues:[]},l);return c instanceof Promise&&(c=await c),c.issues.length?{success:!1,error:new e(c.issues.map(d=>Ja(d,l,Fa())))}:{success:!0,data:c.value}},N_=gc(Zv),k_=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return sp(e)(n,i,l)},A_=e=>(n,i,r)=>sp(e)(n,i,r),__=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return rp(e)(n,i,l)},C_=e=>async(n,i,r)=>rp(e)(n,i,r),T_=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return hc(e)(n,i,l)},E_=e=>(n,i,r)=>hc(e)(n,i,r),O_=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return gc(e)(n,i,l)},z_=e=>async(n,i,r)=>gc(e)(n,i,r),D_=/^[cC][^\s-]{8,}$/,R_=/^[0-9a-z]+$/,M_=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,B_=/^[0-9a-vA-V]{20}$/,L_=/^[A-Za-z0-9]{27}$/,q_=/^[a-zA-Z0-9_-]{21}$/,U_=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,$_=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ab=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,V_=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,I_="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function P_(){return new RegExp(I_,"u")}const G_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,H_=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Q_=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,K_=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Z_=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Yv=/^[A-Za-z0-9_-]*$/,Y_=/^\+[1-9]\d{6,14}$/,Xv="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",X_=new RegExp(`^${Xv}$`);function Fv(e){const n="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${n}`:e.precision===0?`${n}:[0-5]\\d`:`${n}:[0-5]\\d\\.\\d{${e.precision}}`:`${n}(?::[0-5]\\d(?:\\.\\d+)?)?`}function F_(e){return new RegExp(`^${Fv(e)}$`)}function J_(e){const n=Fv({precision:e.precision}),i=["Z"];e.local&&i.push(""),e.offset&&i.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${n}(?:${i.join("|")})`;return new RegExp(`^${Xv}T(?:${r})$`)}const W_=e=>{const n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},e2=/^-?\d+$/,Jv=/^-?\d+(?:\.\d+)?$/,t2=/^(?:true|false)$/i,n2=/^[^A-Z]*$/,a2=/^[^a-z]*$/,an=K("$ZodCheck",(e,n)=>{var i;e._zod??(e._zod={}),e._zod.def=n,(i=e._zod).onattach??(i.onattach=[])}),Wv={number:"number",bigint:"bigint",object:"date"},e0=K("$ZodCheckLessThan",(e,n)=>{an.init(e,n);const i=Wv[typeof n.value];e._zod.onattach.push(r=>{const l=r._zod.bag,c=(n.inclusive?l.maximum:l.exclusiveMaximum)??Number.POSITIVE_INFINITY;n.value<c&&(n.inclusive?l.maximum=n.value:l.exclusiveMaximum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value<=n.value:r.value<n.value)||r.issues.push({origin:i,code:"too_big",maximum:typeof n.value=="object"?n.value.getTime():n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),t0=K("$ZodCheckGreaterThan",(e,n)=>{an.init(e,n);const i=Wv[typeof n.value];e._zod.onattach.push(r=>{const l=r._zod.bag,c=(n.inclusive?l.minimum:l.exclusiveMinimum)??Number.NEGATIVE_INFINITY;n.value>c&&(n.inclusive?l.minimum=n.value:l.exclusiveMinimum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value>=n.value:r.value>n.value)||r.issues.push({origin:i,code:"too_small",minimum:typeof n.value=="object"?n.value.getTime():n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),i2=K("$ZodCheckMultipleOf",(e,n)=>{an.init(e,n),e._zod.onattach.push(i=>{var r;(r=i._zod.bag).multipleOf??(r.multipleOf=n.value)}),e._zod.check=i=>{if(typeof i.value!=typeof n.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof i.value=="bigint"?i.value%n.value===BigInt(0):l_(i.value,n.value)===0)||i.issues.push({origin:typeof i.value,code:"not_multiple_of",divisor:n.value,input:i.value,inst:e,continue:!n.abort})}}),s2=K("$ZodCheckNumberFormat",(e,n)=>{an.init(e,n),n.format=n.format||"float64";const i=n.format?.includes("int"),r=i?"int":"number",[l,c]=p_[n.format];e._zod.onattach.push(d=>{const h=d._zod.bag;h.format=n.format,h.minimum=l,h.maximum=c,i&&(h.pattern=e2)}),e._zod.check=d=>{const h=d.value;if(i){if(!Number.isInteger(h)){d.issues.push({expected:r,format:n.format,code:"invalid_type",continue:!1,input:h,inst:e});return}if(!Number.isSafeInteger(h)){h>0?d.issues.push({input:h,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!n.abort}):d.issues.push({input:h,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!n.abort});return}}h<l&&d.issues.push({origin:"number",input:h,code:"too_small",minimum:l,inclusive:!0,inst:e,continue:!n.abort}),h>c&&d.issues.push({origin:"number",input:h,code:"too_big",maximum:c,inclusive:!0,inst:e,continue:!n.abort})}}),r2=K("$ZodCheckMaxLength",(e,n)=>{var i;an.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!np(l)&&l.length!==void 0}),e._zod.onattach.push(r=>{const l=r._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<l&&(r._zod.bag.maximum=n.maximum)}),e._zod.check=r=>{const l=r.value;if(l.length<=n.maximum)return;const d=ip(l);r.issues.push({origin:d,code:"too_big",maximum:n.maximum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),o2=K("$ZodCheckMinLength",(e,n)=>{var i;an.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!np(l)&&l.length!==void 0}),e._zod.onattach.push(r=>{const l=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>l&&(r._zod.bag.minimum=n.minimum)}),e._zod.check=r=>{const l=r.value;if(l.length>=n.minimum)return;const d=ip(l);r.issues.push({origin:d,code:"too_small",minimum:n.minimum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),l2=K("$ZodCheckLengthEquals",(e,n)=>{var i;an.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!np(l)&&l.length!==void 0}),e._zod.onattach.push(r=>{const l=r._zod.bag;l.minimum=n.length,l.maximum=n.length,l.length=n.length}),e._zod.check=r=>{const l=r.value,c=l.length;if(c===n.length)return;const d=ip(l),h=c>n.length;r.issues.push({origin:d,...h?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!n.abort})}}),yc=K("$ZodCheckStringFormat",(e,n)=>{var i,r;an.init(e,n),e._zod.onattach.push(l=>{const c=l._zod.bag;c.format=n.format,n.pattern&&(c.patterns??(c.patterns=new Set),c.patterns.add(n.pattern))}),n.pattern?(i=e._zod).check??(i.check=l=>{n.pattern.lastIndex=0,!n.pattern.test(l.value)&&l.issues.push({origin:"string",code:"invalid_format",format:n.format,input:l.value,...n.pattern?{pattern:n.pattern.toString()}:{},inst:e,continue:!n.abort})}):(r=e._zod).check??(r.check=()=>{})}),c2=K("$ZodCheckRegex",(e,n)=>{yc.init(e,n),e._zod.check=i=>{n.pattern.lastIndex=0,!n.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:"regex",input:i.value,pattern:n.pattern.toString(),inst:e,continue:!n.abort})}}),u2=K("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=n2),yc.init(e,n)}),d2=K("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=a2),yc.init(e,n)}),f2=K("$ZodCheckIncludes",(e,n)=>{an.init(e,n);const i=Us(n.includes),r=new RegExp(typeof n.position=="number"?`^.{${n.position}}${i}`:i);n.pattern=r,e._zod.onattach.push(l=>{const c=l._zod.bag;c.patterns??(c.patterns=new Set),c.patterns.add(r)}),e._zod.check=l=>{l.value.includes(n.includes,n.position)||l.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:n.includes,input:l.value,inst:e,continue:!n.abort})}}),p2=K("$ZodCheckStartsWith",(e,n)=>{an.init(e,n);const i=new RegExp(`^${Us(n.prefix)}.*`);n.pattern??(n.pattern=i),e._zod.onattach.push(r=>{const l=r._zod.bag;l.patterns??(l.patterns=new Set),l.patterns.add(i)}),e._zod.check=r=>{r.value.startsWith(n.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:n.prefix,input:r.value,inst:e,continue:!n.abort})}}),m2=K("$ZodCheckEndsWith",(e,n)=>{an.init(e,n);const i=new RegExp(`.*${Us(n.suffix)}$`);n.pattern??(n.pattern=i),e._zod.onattach.push(r=>{const l=r._zod.bag;l.patterns??(l.patterns=new Set),l.patterns.add(i)}),e._zod.check=r=>{r.value.endsWith(n.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:n.suffix,input:r.value,inst:e,continue:!n.abort})}}),h2=K("$ZodCheckOverwrite",(e,n)=>{an.init(e,n),e._zod.check=i=>{i.value=n.tx(i.value)}});class g2{constructor(n=[]){this.content=[],this.indent=0,this&&(this.args=n)}indented(n){this.indent+=1,n(this),this.indent-=1}write(n){if(typeof n=="function"){n(this,{execution:"sync"}),n(this,{execution:"async"});return}const r=n.split(`
|
|
14
|
+
`);try{J=JSON.parse(je),pe=!0}catch{J=je}}pe&&(l&&await l(J),r&&(J=await r(J))),i?.({data:J,event:$,id:x,retry:k}),fe.length&&(yield J)}}}finally{R.removeEventListener("abort",ie),z.releaseLock()}break}catch(P){if(n?.(P),d!==void 0&&E>=d)break;const Y=Math.min(k*2**(E-1),h??3e4);await N(Y)}}}()}},Xw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Fw=e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},Jw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Sv=({allowReserved:e,explode:n,name:i,style:r,value:l})=>{if(!n){const h=(e?l:l.map(g=>encodeURIComponent(g))).join(Fw(r));switch(r){case"label":return`.${h}`;case"matrix":return`;${i}=${h}`;case"simple":return h;default:return`${i}=${h}`}}const c=Xw(r),d=l.map(h=>r==="label"||r==="simple"?e?h:encodeURIComponent(h):pc({allowReserved:e,name:i,value:h})).join(c);return r==="label"||r==="matrix"?c+d:d},pc=({allowReserved:e,name:n,value:i})=>{if(i==null)return"";if(typeof i=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${n}=${e?i:encodeURIComponent(i)}`},xv=({allowReserved:e,explode:n,name:i,style:r,value:l,valueOnly:c})=>{if(l instanceof Date)return c?l.toISOString():`${i}=${l.toISOString()}`;if(r!=="deepObject"&&!n){let g=[];Object.entries(l).forEach(([S,x])=>{g=[...g,S,e?x:encodeURIComponent(x)]});const v=g.join(",");switch(r){case"form":return`${i}=${v}`;case"label":return`.${v}`;case"matrix":return`;${i}=${v}`;default:return v}}const d=Jw(r),h=Object.entries(l).map(([g,v])=>pc({allowReserved:e,name:r==="deepObject"?`${i}[${g}]`:g,value:v})).join(d);return r==="label"||r==="matrix"?d+h:h},Ww=/\{[^{}]+\}/g,ej=({path:e,url:n})=>{let i=n;const r=n.match(Ww);if(r)for(const l of r){let c=!1,d=l.substring(1,l.length-1),h="simple";d.endsWith("*")&&(c=!0,d=d.substring(0,d.length-1)),d.startsWith(".")?(d=d.substring(1),h="label"):d.startsWith(";")&&(d=d.substring(1),h="matrix");const g=e[d];if(g==null)continue;if(Array.isArray(g)){i=i.replace(l,Sv({explode:c,name:d,style:h,value:g}));continue}if(typeof g=="object"){i=i.replace(l,xv({explode:c,name:d,style:h,value:g,valueOnly:!0}));continue}if(h==="matrix"){i=i.replace(l,`;${pc({name:d,value:g})}`);continue}const v=encodeURIComponent(h==="label"?`.${g}`:g);i=i.replace(l,v)}return i},tj=({baseUrl:e,path:n,query:i,querySerializer:r,url:l})=>{const c=l.startsWith("/")?l:`/${l}`;let d=(e??"")+c;n&&(d=ej({path:n,url:d}));let h=i?r(i):"";return h.startsWith("?")&&(h=h.substring(1)),h&&(d+=`?${h}`),d};function nj(e){const n=e.body!==void 0;if(n&&e.bodySerializer)return"serializedBody"in e?e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null:e.body!==""?e.body:null;if(n)return e.body}const aj=async(e,n)=>{const i=typeof n=="function"?await n(e):n;if(i)return e.scheme==="bearer"?`Bearer ${i}`:e.scheme==="basic"?`Basic ${btoa(i)}`:i},wv=({allowReserved:e,array:n,object:i}={})=>l=>{const c=[];if(l&&typeof l=="object")for(const d in l){const h=l[d];if(h!=null)if(Array.isArray(h)){const g=Sv({allowReserved:e,explode:!0,name:d,style:"form",value:h,...n});g&&c.push(g)}else if(typeof h=="object"){const g=xv({allowReserved:e,explode:!0,name:d,style:"deepObject",value:h,...i});g&&c.push(g)}else{const g=pc({allowReserved:e,name:d,value:h});g&&c.push(g)}}return c.join("&")},ij=e=>{if(!e)return"stream";const n=e.split(";")[0]?.trim();if(n){if(n.startsWith("application/json")||n.endsWith("+json"))return"json";if(n==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some(i=>n.startsWith(i)))return"blob";if(n.startsWith("text/"))return"text"}},sj=(e,n)=>n?!!(e.headers.has(n)||e.query?.[n]||e.headers.get("Cookie")?.includes(`${n}=`)):!1,rj=async({security:e,...n})=>{for(const i of e){if(sj(n,i.name))continue;const r=await aj(i,n.auth);if(!r)continue;const l=i.name??"Authorization";switch(i.in){case"query":n.query||(n.query={}),n.query[l]=r;break;case"cookie":n.headers.append("Cookie",`${l}=${r}`);break;default:n.headers.set(l,r);break}}},Hy=e=>tj({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:wv(e.querySerializer),url:e.url}),Qy=(e,n)=>{const i={...e,...n};return i.baseUrl?.endsWith("/")&&(i.baseUrl=i.baseUrl.substring(0,i.baseUrl.length-1)),i.headers=jv(e.headers,n.headers),i},oj=e=>{const n=[];return e.forEach((i,r)=>{n.push([r,i])}),n},jv=(...e)=>{const n=new Headers;for(const i of e){if(!i)continue;const r=i instanceof Headers?oj(i):Object.entries(i);for(const[l,c]of r)if(c===null)n.delete(l);else if(Array.isArray(c))for(const d of c)n.append(l,d);else c!==void 0&&n.set(l,typeof c=="object"?JSON.stringify(c):c)}return n};class sf{fns=[];clear(){this.fns=[]}eject(n){const i=this.getInterceptorIndex(n);this.fns[i]&&(this.fns[i]=null)}exists(n){const i=this.getInterceptorIndex(n);return!!this.fns[i]}getInterceptorIndex(n){return typeof n=="number"?this.fns[n]?n:-1:this.fns.indexOf(n)}update(n,i){const r=this.getInterceptorIndex(n);return this.fns[r]?(this.fns[r]=i,n):!1}use(n){return this.fns.push(n),this.fns.length-1}}const lj=()=>({error:new sf,request:new sf,response:new sf}),cj=wv({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),uj={"Content-Type":"application/json"},Nv=(e={})=>({...Zw,headers:uj,parseAs:"auto",querySerializer:cj,...e}),kv=(e={})=>{let n=Qy(Nv(),e);const i=()=>({...n}),r=v=>(n=Qy(n,v),i()),l=lj(),c=async v=>{const S={...n,...v,fetch:v.fetch??n.fetch??globalThis.fetch,headers:jv(n.headers,v.headers),serializedBody:void 0};S.security&&await rj({...S,security:S.security}),S.requestValidator&&await S.requestValidator(S),S.body!==void 0&&S.bodySerializer&&(S.serializedBody=S.bodySerializer(S.body)),(S.body===void 0||S.serializedBody==="")&&S.headers.delete("Content-Type");const x=Hy(S);return{opts:S,url:x}},d=async v=>{const{opts:S,url:x}=await c(v),N={redirect:"follow",...S,body:nj(S)};let _=new Request(x,N);for(const I of l.request.fns)I&&(_=await I(_,S));const O=S.fetch;let k=await O(_);for(const I of l.response.fns)I&&(k=await I(k,_,S));const E={request:_,response:k};if(k.ok){const I=(S.parseAs==="auto"?ij(k.headers.get("Content-Type")):S.parseAs)??"json";if(k.status===204||k.headers.get("Content-Length")==="0"){let z;switch(I){case"arrayBuffer":case"blob":case"text":z=await k[I]();break;case"formData":z=new FormData;break;case"stream":z=k.body;break;default:z={};break}return S.responseStyle==="data"?z:{data:z,...E}}let se;switch(I){case"arrayBuffer":case"blob":case"formData":case"json":case"text":se=await k[I]();break;case"stream":return S.responseStyle==="data"?k.body:{data:k.body,...E}}return I==="json"&&(S.responseValidator&&await S.responseValidator(se),S.responseTransformer&&(se=await S.responseTransformer(se))),S.responseStyle==="data"?se:{data:se,...E}}const R=await k.text();let G;try{G=JSON.parse(R)}catch{}const P=G??R;let Y=P;for(const I of l.error.fns)I&&(Y=await I(P,k,_,S));if(Y=Y||{},S.throwOnError)throw Y;return S.responseStyle==="data"?void 0:{error:Y,...E}},h=v=>S=>d({...S,method:v}),g=v=>async S=>{const{opts:x,url:N}=await c(S);return Yw({...x,body:x.body,headers:x.headers,method:v,onRequest:async(_,O)=>{let k=new Request(_,O);for(const E of l.request.fns)E&&(k=await E(k,x));return k},url:N})};return{buildUrl:Hy,connect:h("CONNECT"),delete:h("DELETE"),get:h("GET"),getConfig:i,head:h("HEAD"),interceptors:l,options:h("OPTIONS"),patch:h("PATCH"),post:h("POST"),put:h("PUT"),request:d,setConfig:r,sse:{connect:g("CONNECT"),delete:g("DELETE"),get:g("GET"),head:g("HEAD"),options:g("OPTIONS"),patch:g("PATCH"),post:g("POST"),put:g("PUT"),trace:g("TRACE")},trace:h("TRACE")}},Q=kv(Nv()),dj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),Av=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),fj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),pj=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects",...e}),mj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations",...e,headers:{"Content-Type":"application/json",...e.headers}}),hj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/{label}",...e}),gj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/default",...e,headers:{"Content-Type":"application/json",...e.headers}}),yj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/export",...e}),bj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),vj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e}),Sj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),xj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),wj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries/generate",...e,headers:{"Content-Type":"application/json",...e.headers}}),jj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e}),Nj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),kj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),Aj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors/{id}",...e}),_v=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e}),_j=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),Cj=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e}),Tj=e=>(e?.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),Cv=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs/{id}",...e}),Ej=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/apply",...e,headers:{"Content-Type":"application/json",...e.headers}}),Oj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/timeline",...e}),zj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/analytics/metrics",...e}),Tv=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings",...e}),Dj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/providers/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),Rj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/google",...e,headers:{"Content-Type":"application/json",...e.headers}}),Mj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/bing",...e,headers:{"Content-Type":"application/json",...e.headers}}),Bj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/cdp",...e,headers:{"Content-Type":"application/json",...e.headers}}),Lj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),qj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),Uj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e,headers:{"Content-Type":"application/json",...e.headers}}),$j=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e}),Vj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e,headers:{"Content-Type":"application/json",...e.headers}}),Ij=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}",...e}),Pj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}/test",...e}),Gj=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/cdp/status",...e}),Hj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections",...e}),Qj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),Kj=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}",...e}),Zj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/properties",...e}),Yj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/property",...e,headers:{"Content-Type":"application/json",...e.headers}}),Xj=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Fj=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),Jj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance",...e}),Wj=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance/daily",...e}),eN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect",...e,headers:{"Content-Type":"application/json",...e.headers}}),tN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspections",...e}),nN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/deindexed",...e}),Ev=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage",...e}),aN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage/history",...e}),iN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps",...e}),sN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/discover-sitemaps",...e}),rN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),oN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/indexing/request",...e,headers:{"Content-Type":"application/json",...e.headers}}),lN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations",...e}),cN=e=>(e.client??Q).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations/{locationName}/selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),uN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),dN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/keywords",...e}),fN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/place-actions",...e}),pN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/lodging",...e}),mN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/places",...e}),hN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/summary",...e}),gN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),yN=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/disconnect",...e}),bN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/status",...e}),vN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/sites",...e}),SN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/set-site",...e,headers:{"Content-Type":"application/json",...e.headers}}),Ov=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/coverage",...e}),xN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspections",...e}),wN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-url",...e,headers:{"Content-Type":"application/json",...e.headers}}),jN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),NN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/request-indexing",...e,headers:{"Content-Type":"application/json",...e.headers}}),kN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/performance",...e}),AN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),_N=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/disconnect",...e}),CN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/status",...e}),TN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),EN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/traffic",...e}),ON=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/ai-referral-history",...e}),zN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/social-referral-history",...e}),DN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/session-history",...e}),RN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/insights",...e}),MN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/report",...e}),BN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/citations/visibility",...e}),LN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/content/dismissals",...e,headers:{"Content-Type":"application/json",...e.headers}}),qN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/overview",...e}),UN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/status",...e}),$N=e=>(e?.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/install",...e}),VN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e}),IN=e=>(e?.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),PN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs/latest",...e}),GN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/releases",...e}),HN=e=>(e?.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/latest-release",...e}),QN=e=>(e.client??Q).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/cache/{release}",...e}),KN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/extract",...e,headers:{"Content-Type":"application/json",...e.headers}}),ZN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/summary",...e}),YN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/domains",...e}),XN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/history",...e}),FN=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/sources",...e}),JN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/bing-sync",...e}),WN=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/cloud-run",...e,headers:{"Content-Type":"application/json",...e.headers}}),ek=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/wordpress",...e,headers:{"Content-Type":"application/json",...e.headers}}),tk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/vercel",...e,headers:{"Content-Type":"application/json",...e.headers}}),nk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),ak=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/backfill",...e,headers:{"Content-Type":"application/json",...e.headers}}),ik=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources",...e}),sk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/status",...e}),rk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}",...e}),ok=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/events",...e}),lk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/run",...e,headers:{"Content-Type":"application/json",...e.headers}}),ck=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions",...e}),uk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}",...e}),dk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e}),fk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e,headers:{"Content-Type":"application/json",...e.headers}}),pk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo",...e}),mk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/pages",...e}),hk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/trend",...e}),gk=e=>(e.client??Q).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/technical-aeo/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),yk=e=>(e.client??Q).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/agent/providers",...e});function bk(e){const n={baseUrl:e.baseUrl,fetch:e.fetch,headers:{...e.headers??{}}};return kv(n)}class Hn extends Error{code;statusCode;details;constructor(n,i,r,l){super(n),this.name="ApiError",this.code=r??"UNKNOWN",this.statusCode=i,this.details=l}}function vk(){if(typeof window>"u")return;const e=window.__CANONRY_CONFIG__?.embed?.renderToken;return typeof e=="string"&&e.length>0?e:void 0}function Yf(e){const n=vk();if(!n)return e;let i;const r=typeof window<"u"&&window.location?window.location.href:"http://localhost/";try{i=new URL(e,r)}catch{return e}const l=new URL(r).origin;if(i.origin!==l)return e;const d=`${Xf().replace(/\/$/,"")}/api/v1`;return i.pathname!==d&&!i.pathname.startsWith(`${d}/`)?e:(i.searchParams.set("token",n),/^[a-z][a-z\d+.-]*:/i.test(e)?i.toString():`${i.pathname}${i.search}${i.hash}`)}function Sk(e,n){const i={method:e.method,headers:e.headers,cache:e.cache,credentials:e.credentials,integrity:e.integrity,keepalive:e.keepalive,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal};return e.body&&(i.body=e.body,i.duplex="half"),new Request(n,i)}function zv(){if(typeof window>"u")return null;const e=window.__CANONRY_CONFIG__?.embed;return e?.enabled?e:null}function xk(){return zv()!==null}function wk(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const Dv=wk();function jk(){const e=typeof window<"u"&&window.location?window.location.origin:"";return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?e+window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):e}function Xf(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):""}function Nk(e){const n=e.trim().toLowerCase().replace(/^\[|\]$/g,"");return n==="localhost"||n==="::1"?!0:/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(n)}function kk(e,n){if(e.protocol!=="http:"&&e.protocol!=="https:"||!Nk(e.hostname))return;const i=e.port?`:${e.port}`:"",r=n?n.replace(/\/$/,""):"";return`${e.protocol}//localhost${i}${r}`}function BL(e){return`${e.replace(/\/$/,"")}/api/v1/google/callback`}function Ak(){if(!(typeof window>"u"))return kk(window.location,Xf())}function _k(e){return`${Xf()}${e}`}function Ck(e,n){if(n===404)return"Health endpoint returned 404. Check basePath or reverse-proxy configuration and make sure the dashboard reaches /health instead of an API-prefixed route."}function Tk(){return""}function rf(){return!!Tk()}let Rv=null;function Ky(e){Rv=e}function Ff(){Rv?.()}const ee=bk({baseUrl:jk()});ee.interceptors.response.use((e,n)=>(e.status===401&&!n.url.includes("/api/v1/session")&&Ff(),e));ee.interceptors.request.use(e=>{const n=Yf(e.url);return n===e.url?e:Sk(e,n)});async function ce(e){const n=await e();if(n.error!==void 0&&n.error!==null){const i=n.response.status;let r=`API ${i}: ${n.response.statusText}`,l,c;if(typeof n.error=="object"&&n.error!==null){const d=n.error.error;if(typeof d=="string")r=d;else if(d&&typeof d=="object"){const h=d;h.message&&(r=h.message),h.code&&(l=h.code),h.details&&(c=h.details)}else{const h=n.error;h.message&&(r=h.message),h.code&&(l=h.code),h.details&&(c=h.details)}}else typeof n.error=="string"&&(r=n.error);throw new Hn(r,i,l,c)}if(n.response.status!==204)return n.data}async function Jf(e,n){const i=n?.body!=null,r=await fetch(Yf(`${Dv}${e}`),{...n,credentials:n?.credentials??"same-origin",headers:{...i?{"Content-Type":"application/json"}:{},...n?.headers}});if(!r.ok){const l=await r.text();let c=`API ${r.status}: ${r.statusText}`,d,h;if(l)try{const g=JSON.parse(l);typeof g.error=="string"?c=g.error:g.error?.message?(c=g.error.message,d=g.error.code,h=g.error.details):g.message&&(c=g.message)}catch{c=l}throw r.status===401&&!e.startsWith("/session")&&Ff(),new Hn(c,r.status,d,h)}if(r.status!==204)return r.json()}function Wf(e){return ce(()=>Av({client:ee,path:{name:e}}))}function LL(e){return ce(()=>_v({client:ee,path:{name:e}}))}function Wl(e){return ce(()=>Cv({client:ee,path:{id:e}}))}function Ek(e){return ce(()=>vj({client:ee,path:{name:e}}))}function Ok(e){return ce(()=>jj({client:ee,path:{name:e}}))}function zk(e,n){return ce(()=>Oj({client:ee,path:{name:e},query:{location:n}}))}function Mv(e,n){return ce(()=>qN({client:ee,path:{name:e},query:{location:n?.location,since:n?.since}}))}function co(e,n){return ce(()=>fj({client:ee,path:{name:e},body:n}))}function Dk(e,n){return ce(()=>xj({client:ee,path:{name:e},body:{queries:n}}))}function Rk(e,n){return ce(()=>Sj({client:ee,path:{name:e},body:{queries:n}}))}function qL(e,n){return ce(()=>bj({client:ee,path:{name:e},body:{queries:n}}))}function Mk(e,n){return ce(()=>LN({client:ee,path:{name:e},body:n}))}function Bk(e,n){return ce(()=>kj({client:ee,path:{name:e},body:{competitors:n}}))}function UL(e,n){return ce(()=>Nj({client:ee,path:{name:e},body:{competitors:n}}))}function $L(e,n){return ce(()=>Aj({client:ee,path:{name:e,id:n}}))}async function VL(e,n){const i=await Wf(e);return co(e,{displayName:i.displayName??i.name,canonicalDomain:i.canonicalDomain,ownedDomains:n,aliases:i.aliases,country:i.country,language:i.language,tags:i.tags,labels:i.labels,providers:i.providers,locations:i.locations,defaultLocation:i.defaultLocation})}async function IL(e,n){const i=await Wf(e);return co(e,{displayName:i.displayName??i.name,canonicalDomain:i.canonicalDomain,ownedDomains:i.ownedDomains,aliases:n,country:i.country,language:i.language,tags:i.tags,labels:i.labels,providers:i.providers,locations:i.locations,defaultLocation:i.defaultLocation})}async function PL(e,n){const i=await Wf(e);return co(e,{displayName:n.displayName??i.displayName??i.name,canonicalDomain:n.canonicalDomain??i.canonicalDomain,ownedDomains:n.ownedDomains??i.ownedDomains,aliases:n.aliases??i.aliases,country:n.country??i.country,language:n.language??i.language,tags:i.tags,labels:i.labels,providers:i.providers,locations:n.locations??i.locations,defaultLocation:n.defaultLocation!==void 0?n.defaultLocation:i.defaultLocation})}function Lk(e,n){const i={};return n?.location&&(i.location=n.location),n?.allLocations&&(i.allLocations=!0),n?.noLocation&&(i.noLocation=!0),ce(()=>_j({client:ee,path:{name:e},body:i}))}function GL(e,n){return ce(()=>mj({client:ee,path:{name:e},body:n}))}async function HL(e,n){await ce(()=>hj({client:ee,path:{name:e,label:n}}))}function QL(e,n){return ce(()=>gj({client:ee,path:{name:e},body:{label:n}}))}async function KL(e){await ce(()=>dj({client:ee,path:{name:e}}))}function ZL(e){return ce(()=>yj({client:ee,path:{name:e}}))}function YL(){return ce(()=>Tv({client:ee}))}function Zy(){return Jf("/session")}function qk(e){return Jf("/session/setup",{method:"POST",body:JSON.stringify({password:e})})}function Uk(e){return Jf("/session",{method:"POST",body:JSON.stringify({password:e})})}function $k(e,n){return ce(()=>Dj({client:ee,path:{name:e},body:n}))}function XL(e){return ce(()=>Rj({client:ee,body:e}))}async function FL(e){try{return await ce(()=>qj({client:ee,path:{name:e}}))}catch(n){if(n instanceof Hn&&n.statusCode===404)return null;throw n}}function JL(e,n){return ce(()=>Uj({client:ee,path:{name:e},body:n}))}async function WL(e){await ce(()=>Lj({client:ee,path:{name:e}}))}function e5(e){return ce(()=>$j({client:ee,path:{name:e}}))}function t5(e,n){return ce(()=>Vj({client:ee,path:{name:e},body:n}))}async function n5(e,n){await ce(()=>Ij({client:ee,path:{name:e,id:n}}))}function a5(e,n){return ce(()=>Pj({client:ee,path:{name:e,id:n}}))}function Vk(e,n,i){return ce(()=>wj({client:ee,path:{name:e},body:{provider:n,count:i}}))}function Ik(e){return ce(()=>Ej({client:ee,body:e}))}function Pk(e){return ce(()=>Tj({client:ee,body:e??{}}))}function i5(e,n){const i=Ak();return ce(()=>Qj({client:ee,path:{name:e},body:{type:n,...i?{publicUrl:i}:{}}}))}function s5(e,n){return ce(()=>Kj({client:ee,path:{name:e,type:n}}))}function r5(e,n,i){return ce(()=>Yj({client:ee,path:{name:e,type:n},body:{propertyId:i}}))}function o5(e,n,i){return ce(()=>Xj({client:ee,path:{name:e,type:n},body:{sitemapUrl:i}}))}function Gk(e,n){return ce(()=>Fj({client:ee,path:{name:e},body:n??{}}))}function l5(e,n){const i={};return n&&n!=="all"&&(i.window=n),ce(()=>zj({client:ee,path:{name:e},query:i}))}function c5(e,n){return ce(()=>eN({client:ee,path:{name:e},body:{url:n}}))}function Hk(e){return ce(()=>Ev({client:ee,path:{name:e}}))}function Qk(e,n){return ce(()=>rN({client:ee,path:{name:e},body:n??{}}))}function u5(e){return ce(()=>iN({client:ee,path:{name:e}}))}function Kk(e){return ce(()=>sN({client:ee,path:{name:e}}))}function d5(e,n){return ce(()=>gk({client:ee,path:{name:e},body:{}}))}function f5(e,n){return ce(()=>lk({client:ee,path:{name:e},body:n??{}}))}function p5(e,n,i){return ce(()=>fk({client:ee,path:{name:e,id:n},body:i??{}}))}function m5(){return ce(()=>Gj({client:ee}))}function h5(e,n){return ce(()=>Bj({client:ee,body:{host:e,port:n}}))}function g5(e,n){return ce(()=>oN({client:ee,path:{name:e},body:n}))}function y5(e,n){return ce(()=>gN({client:ee,path:{name:e},body:{apiKey:n}}))}function b5(e){return ce(()=>yN({client:ee,path:{name:e}}))}function v5(e,n){return ce(()=>SN({client:ee,path:{name:e},body:{siteUrl:n}}))}function Zk(e){return ce(()=>Ov({client:ee,path:{name:e}}))}function S5(e,n){return ce(()=>wN({client:ee,path:{name:e},body:{url:n}}))}function x5(e,n){return ce(()=>jN({client:ee,path:{name:e},body:{}}))}function w5(e,n){return ce(()=>NN({client:ee,path:{name:e},body:n}))}function j5(e){return ce(()=>Mj({client:ee,body:{apiKey:e}}))}function Yk(e){return e?/filename\s*=\s*"?([^";]+)"?/i.exec(e)?.[1]??null:null}async function N5(e,n="agency",i){const r=new URLSearchParams({audience:n});i!==void 0&&r.set("period",String(i));const l=await fetch(Yf(`${Dv}/projects/${encodeURIComponent(e)}/report.html?${r.toString()}`),{credentials:"same-origin",headers:{}});if(!l.ok)throw new Hn(`Failed to download report: ${l.status}`,l.status);const c=await l.blob(),d=URL.createObjectURL(c),h=Yk(l.headers.get("Content-Disposition"))??`canonry-report-${e}.html`,g=document.createElement("a");g.href=d,g.download=h,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(d)}function k5(e,n){return ce(()=>TN({client:ee,path:{name:e},body:{}}))}function A5(e,n){return ce(()=>AN({client:ee,path:{name:e},body:n}))}function _5(e){return ce(()=>_N({client:ee,path:{name:e}}))}function C5(e,n){return ce(()=>WN({client:ee,path:{name:e},body:n}))}function T5(e,n){return ce(()=>ek({client:ee,path:{name:e},body:n}))}function E5(e,n){return ce(()=>tk({client:ee,path:{name:e},body:n}))}function O5(e,n,i){return ce(()=>nk({client:ee,path:{name:e,id:n},body:i??{}}))}function z5(e,n,i){return ce(()=>ak({client:ee,path:{name:e,id:n},body:{}}))}function Xk(e,n){return ce(()=>RN({client:ee,path:{name:e},query:{runId:n}}))}function Fk(e){if(!e||typeof e!="object")return;const n=e;if(!(typeof n.current!="string"||typeof n.latest!="string"||typeof n.url!="string"||typeof n.upgradeCommand!="string"))return{current:n.current,latest:n.latest,url:n.url,upgradeCommand:n.upgradeCommand}}async function Jk(e,n){const i=_k(e);try{const r=await fetch(i,{credentials:"same-origin"});if(!r.ok)return{label:n,state:"error",detail:`${n} ${r.status}: ${r.statusText}`,statusCode:r.status,hint:Ck(e,r.status)};const l=await r.json(),c=typeof l.version=="string"?l.version:"unknown",d=typeof l.databaseUrlConfigured=="boolean"?l.databaseUrlConfigured:void 0,h=typeof l.lastHeartbeatAt=="string"?l.lastHeartbeatAt:void 0,g=Fk(l.updateAvailable),v=[c,d===!1?"database not configured":"database configured",h?`heartbeat ${h}`:void 0].filter(Boolean).join(" · ");return{label:n,state:"ok",detail:v,version:c,databaseConfigured:d,lastHeartbeatAt:h,...g?{updateAvailable:g}:{}}}catch(r){return{label:n,state:"error",detail:r instanceof Error?r.message:"unreachable",hint:e==="/health"?`Request failed while checking ${i}. If this instance is served behind a sub-path, verify the dashboard basePath and reverse-proxy rewrites.`:void 0}}}function D5(){return ce(()=>UN({client:ee}))}function R5(){return ce(()=>$N({client:ee}))}function M5(){return ce(()=>PN({client:ee}))}function B5(){return ce(()=>VN({client:ee}))}function L5(e){return ce(()=>IN({client:ee,body:e?{release:e}:{}}))}function q5(){return ce(()=>GN({client:ee}))}function U5(){return ce(()=>HN({client:ee}))}function $5(e){return ce(()=>QN({client:ee,path:{release:e}}))}function V5(e,n={}){return ce(()=>ZN({client:ee,path:{name:e},query:{release:n.release,excludeCrawlers:n.excludeCrawlers?"1":void 0,source:n.source}}))}function I5(e,n={}){return ce(()=>YN({client:ee,path:{name:e},query:{limit:n.limit!==void 0?String(n.limit):void 0,offset:n.offset!==void 0?String(n.offset):void 0,release:n.release,excludeCrawlers:n.excludeCrawlers?"1":void 0,source:n.source}}))}function P5(e,n={}){return ce(()=>XN({client:ee,path:{name:e},query:{source:n.source}}))}function G5(e,n={}){return ce(()=>FN({client:ee,path:{name:e},query:{excludeCrawlers:n.excludeCrawlers?"1":void 0}}))}function H5(e,n){return ce(()=>KN({client:ee,path:{name:e},body:{release:void 0}}))}function Q5(e){return ce(()=>JN({client:ee,path:{name:e}}))}function Nn(e){return(...n)=>{e(...n)}}const Wk=6e3,eA=5,tA=180;let It=[],nA=0;const wf=new Set,jf=new Map,Nf=new Map;function ec(){const e=[...It];for(const n of wf)n(e)}function ep(e){const n=jf.get(e);n&&(clearTimeout(n),jf.delete(e));const i=Nf.get(e);i&&(clearTimeout(i),Nf.delete(e))}function Bv(e){ep(e);const n=It.length;It=It.filter(i=>i.id!==e),It.length!==n&&ec()}function Yy(e){ep(e.id),jf.set(e.id,setTimeout(()=>{kf(e.id)},e.durationMs))}function aA(e,n,i){return typeof e=="string"?{title:e,tone:n,durationMs:i}:e}function tn(e,n="negative",i=Wk){const r=aA(e,n,i),l={id:String(++nA),title:r.title,detail:r.detail,tone:r.tone??n,durationMs:r.durationMs??i,dedupeKey:r.dedupeKey,cta:r.cta,state:"open"};if(r.dedupeKey){const c=It.find(d=>d.dedupeKey===r.dedupeKey);if(c){if((r.dedupeMode??"drop")==="drop")return c.id;const d={...c,title:l.title,detail:l.detail,tone:l.tone,durationMs:l.durationMs,cta:l.cta,state:"open"};return It=It.map(h=>h.id===c.id?d:h),ec(),Yy(d),c.id}}return It.length>=eA&&Bv(It[0].id),It=[...It,l],ec(),Yy(l),l.id}function kf(e){const n=It.find(i=>i.id===e);!n||n.state==="closing"||(ep(e),It=It.map(i=>i.id===e?{...i,state:"closing"}:i),ec(),Nf.set(e,setTimeout(()=>{Bv(e)},tA)))}function iA(e){return wf.add(e),()=>{wf.delete(e)}}function Xy(){return It}const sA=5*6e4,Af=30*6e4,K5=3e4,Z5=6e4,ao=3e4,rA=2e3,oA=5e3;function lA(){return new Ow({defaultOptions:{queries:{staleTime:sA,retry:1,refetchOnWindowFocus:!1}},mutationCache:new zw({onError:(e,n,i,r)=>{r.meta?.skipGlobalErrorToast||tn({title:e instanceof Error?e.message:"An unexpected error occurred",tone:"negative"})}})})}const cA="modulepreload",uA=function(e,n){return new URL(e,n).href},Fy={},Gs=function(n,i,r){let l=Promise.resolve();if(i&&i.length>0){let v=function(S){return Promise.all(S.map(x=>Promise.resolve(x).then(N=>({status:"fulfilled",value:N}),N=>({status:"rejected",reason:N}))))};const d=document.getElementsByTagName("link"),h=document.querySelector("meta[property=csp-nonce]"),g=h?.nonce||h?.getAttribute("nonce");l=v(i.map(S=>{if(S=uA(S,r),S in Fy)return;Fy[S]=!0;const x=S.endsWith(".css"),N=x?'[rel="stylesheet"]':"";if(r)for(let O=d.length-1;O>=0;O--){const k=d[O];if(k.href===S&&(!x||k.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${S}"]${N}`))return;const _=document.createElement("link");if(_.rel=x?"stylesheet":cA,x||(_.as="script"),_.crossOrigin="",_.href=S,g&&_.setAttribute("nonce",g),document.head.appendChild(_),x)return new Promise((O,k)=>{_.addEventListener("load",O),_.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${S}`)))})}))}function c(d){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=d,window.dispatchEvent(h),!h.defaultPrevented)throw d}return l.then(d=>{for(const h of d||[])h.status==="rejected"&&c(h.reason);return n().catch(c)})};const dA=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),fA=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,i,r)=>r?r.toUpperCase():i.toLowerCase()),Jy=e=>{const n=fA(e);return n.charAt(0).toUpperCase()+n.slice(1)},Lv=(...e)=>e.filter((n,i,r)=>!!n&&n.trim()!==""&&r.indexOf(n)===i).join(" ").trim(),pA=e=>{for(const n in e)if(n.startsWith("aria-")||n==="role"||n==="title")return!0};var mA={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const hA=L.forwardRef(({color:e="currentColor",size:n=24,strokeWidth:i=2,absoluteStrokeWidth:r,className:l="",children:c,iconNode:d,...h},g)=>L.createElement("svg",{ref:g,...mA,width:n,height:n,stroke:e,strokeWidth:r?Number(i)*24/Number(n):i,className:Lv("lucide",l),...!c&&!pA(h)&&{"aria-hidden":"true"},...h},[...d.map(([v,S])=>L.createElement(v,S)),...Array.isArray(c)?c:[c]]));const We=(e,n)=>{const i=L.forwardRef(({className:r,...l},c)=>L.createElement(hA,{ref:c,iconNode:n,className:Lv(`lucide-${dA(Jy(e))}`,`lucide-${e}`,r),...l}));return i.displayName=Jy(e),i};const gA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],yA=We("arrow-right",gA);const bA=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],vA=We("arrow-up",bA);const SA=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],xA=We("book-open",SA);const wA=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],qv=We("check",wA);const jA=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],NA=We("chevron-down",jA);const kA=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],tp=We("chevron-right",kA);const AA=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],_A=We("copy",AA);const CA=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],TA=We("file-text",CA);const EA=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],OA=We("github",EA);const zA=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],DA=We("globe",zA);const RA=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],MA=We("layout-dashboard",RA);const BA=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],LA=We("link-2",BA);const qA=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],UA=We("loader-circle",qA);const $A=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],VA=We("maximize-2",$A);const IA=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],PA=We("menu",IA);const GA=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],HA=We("minimize-2",GA);const QA=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],KA=We("play",QA);const ZA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Wy=We("plus",ZA);const YA=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],XA=We("radar",YA);const FA=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],eb=We("radio",FA);const JA=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],WA=We("rocket",JA);const e_=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Uv=We("rotate-ccw",e_);const t_=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],n_=We("search",t_);const a_=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],i_=We("settings",a_);const s_=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],$v=We("triangle-alert",s_);const r_=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],o_=We("wrench",r_);const l_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Hs=We("x",l_);function K(e,n,i){function r(h,g){if(h._zod||Object.defineProperty(h,"_zod",{value:{def:g,constr:d,traits:new Set},enumerable:!1}),h._zod.traits.has(e))return;h._zod.traits.add(e),n(h,g);const v=d.prototype,S=Object.keys(v);for(let x=0;x<S.length;x++){const N=S[x];N in h||(h[N]=v[N].bind(h))}}const l=i?.Parent??Object;class c extends l{}Object.defineProperty(c,"name",{value:e});function d(h){var g;const v=i?.Parent?new c:this;r(v,h),(g=v._zod).deferred??(g.deferred=[]);for(const S of v._zod.deferred)S();return v}return Object.defineProperty(d,"init",{value:r}),Object.defineProperty(d,Symbol.hasInstance,{value:h=>i?.Parent&&h instanceof i.Parent?!0:h?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}class Rs extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Vv extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError"}}const Iv={};function Fa(e){return Iv}function Pv(e){const n=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,l])=>n.indexOf(+r)===-1).map(([r,l])=>l)}function _f(e,n){return typeof n=="bigint"?n.toString():n}function mc(e){return{get value(){{const n=e();return Object.defineProperty(this,"value",{value:n}),n}}}}function np(e){return e==null}function ap(e){const n=e.startsWith("^")?1:0,i=e.endsWith("$")?e.length-1:e.length;return e.slice(n,i)}function c_(e,n){const i=(e.toString().split(".")[1]||"").length,r=n.toString();let l=(r.split(".")[1]||"").length;if(l===0&&/\d?e-\d?/.test(r)){const g=r.match(/\d?e-(\d?)/);g?.[1]&&(l=Number.parseInt(g[1]))}const c=i>l?i:l,d=Number.parseInt(e.toFixed(c).replace(".","")),h=Number.parseInt(n.toFixed(c).replace(".",""));return d%h/10**c}const tb=Symbol("evaluating");function Ge(e,n,i){let r;Object.defineProperty(e,n,{get(){if(r!==tb)return r===void 0&&(r=tb,r=i()),r},set(l){Object.defineProperty(e,n,{value:l})},configurable:!0})}function Ei(e,n,i){Object.defineProperty(e,n,{value:i,writable:!0,enumerable:!0,configurable:!0})}function ei(...e){const n={};for(const i of e){const r=Object.getOwnPropertyDescriptors(i);Object.assign(n,r)}return Object.defineProperties({},n)}function nb(e){return JSON.stringify(e)}function u_(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Gv="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function io(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const d_=mc(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function qs(e){if(io(e)===!1)return!1;const n=e.constructor;if(n===void 0||typeof n!="function")return!0;const i=n.prototype;return!(io(i)===!1||Object.prototype.hasOwnProperty.call(i,"isPrototypeOf")===!1)}function Hv(e){return qs(e)?{...e}:Array.isArray(e)?[...e]:e}const f_=new Set(["string","number","symbol"]);function Us(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ti(e,n,i){const r=new e._zod.constr(n??e._zod.def);return(!n||i?.parent)&&(r._zod.parent=e),r}function be(e){const n=e;if(!n)return{};if(typeof n=="string")return{error:()=>n};if(n?.message!==void 0){if(n?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");n.error=n.message}return delete n.message,typeof n.error=="string"?{...n,error:()=>n.error}:n}function p_(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}const m_={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function h_(e,n){const i=e._zod.def,r=i.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const c=ei(e._zod.def,{get shape(){const d={};for(const h in n){if(!(h in i.shape))throw new Error(`Unrecognized key: "${h}"`);n[h]&&(d[h]=i.shape[h])}return Ei(this,"shape",d),d},checks:[]});return ti(e,c)}function g_(e,n){const i=e._zod.def,r=i.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const c=ei(e._zod.def,{get shape(){const d={...e._zod.def.shape};for(const h in n){if(!(h in i.shape))throw new Error(`Unrecognized key: "${h}"`);n[h]&&delete d[h]}return Ei(this,"shape",d),d},checks:[]});return ti(e,c)}function y_(e,n){if(!qs(n))throw new Error("Invalid input to extend: expected a plain object");const i=e._zod.def.checks;if(i&&i.length>0){const c=e._zod.def.shape;for(const d in n)if(Object.getOwnPropertyDescriptor(c,d)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const l=ei(e._zod.def,{get shape(){const c={...e._zod.def.shape,...n};return Ei(this,"shape",c),c}});return ti(e,l)}function b_(e,n){if(!qs(n))throw new Error("Invalid input to safeExtend: expected a plain object");const i=ei(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n};return Ei(this,"shape",r),r}});return ti(e,i)}function v_(e,n){const i=ei(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n._zod.def.shape};return Ei(this,"shape",r),r},get catchall(){return n._zod.def.catchall},checks:[]});return ti(e,i)}function S_(e,n,i){const l=n._zod.def.checks;if(l&&l.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const d=ei(n._zod.def,{get shape(){const h=n._zod.def.shape,g={...h};if(i)for(const v in i){if(!(v in h))throw new Error(`Unrecognized key: "${v}"`);i[v]&&(g[v]=e?new e({type:"optional",innerType:h[v]}):h[v])}else for(const v in h)g[v]=e?new e({type:"optional",innerType:h[v]}):h[v];return Ei(this,"shape",g),g},checks:[]});return ti(n,d)}function x_(e,n,i){const r=ei(n._zod.def,{get shape(){const l=n._zod.def.shape,c={...l};if(i)for(const d in i){if(!(d in c))throw new Error(`Unrecognized key: "${d}"`);i[d]&&(c[d]=new e({type:"nonoptional",innerType:l[d]}))}else for(const d in l)c[d]=new e({type:"nonoptional",innerType:l[d]});return Ei(this,"shape",c),c}});return ti(n,r)}function Ts(e,n=0){if(e.aborted===!0)return!0;for(let i=n;i<e.issues.length;i++)if(e.issues[i]?.continue!==!0)return!0;return!1}function Es(e,n){return n.map(i=>{var r;return(r=i).path??(r.path=[]),i.path.unshift(e),i})}function Ll(e){return typeof e=="string"?e:e?.message}function Ja(e,n,i){const r={...e,path:e.path??[]};if(!e.message){const l=Ll(e.inst?._zod.def?.error?.(e))??Ll(n?.error?.(e))??Ll(i.customError?.(e))??Ll(i.localeError?.(e))??"Invalid input";r.message=l}return delete r.inst,delete r.continue,n?.reportInput||delete r.input,r}function ip(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function so(...e){const[n,i,r]=e;return typeof n=="string"?{message:n,code:"custom",input:i,inst:r}:{...n}}const Qv=(e,n)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:n,enumerable:!1}),e.message=JSON.stringify(n,_f,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Kv=K("$ZodError",Qv),Zv=K("$ZodError",Qv,{Parent:Error});function w_(e,n=i=>i.message){const i={},r=[];for(const l of e.issues)l.path.length>0?(i[l.path[0]]=i[l.path[0]]||[],i[l.path[0]].push(n(l))):r.push(n(l));return{formErrors:r,fieldErrors:i}}function j_(e,n=i=>i.message){const i={_errors:[]},r=l=>{for(const c of l.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(d=>r({issues:d}));else if(c.code==="invalid_key")r({issues:c.issues});else if(c.code==="invalid_element")r({issues:c.issues});else if(c.path.length===0)i._errors.push(n(c));else{let d=i,h=0;for(;h<c.path.length;){const g=c.path[h];h===c.path.length-1?(d[g]=d[g]||{_errors:[]},d[g]._errors.push(n(c))):d[g]=d[g]||{_errors:[]},d=d[g],h++}}};return r(e),i}const sp=e=>(n,i,r,l)=>{const c=r?Object.assign(r,{async:!1}):{async:!1},d=n._zod.run({value:i,issues:[]},c);if(d instanceof Promise)throw new Rs;if(d.issues.length){const h=new(l?.Err??e)(d.issues.map(g=>Ja(g,c,Fa())));throw Gv(h,l?.callee),h}return d.value},rp=e=>async(n,i,r,l)=>{const c=r?Object.assign(r,{async:!0}):{async:!0};let d=n._zod.run({value:i,issues:[]},c);if(d instanceof Promise&&(d=await d),d.issues.length){const h=new(l?.Err??e)(d.issues.map(g=>Ja(g,c,Fa())));throw Gv(h,l?.callee),h}return d.value},hc=e=>(n,i,r)=>{const l=r?{...r,async:!1}:{async:!1},c=n._zod.run({value:i,issues:[]},l);if(c instanceof Promise)throw new Rs;return c.issues.length?{success:!1,error:new(e??Kv)(c.issues.map(d=>Ja(d,l,Fa())))}:{success:!0,data:c.value}},N_=hc(Zv),gc=e=>async(n,i,r)=>{const l=r?Object.assign(r,{async:!0}):{async:!0};let c=n._zod.run({value:i,issues:[]},l);return c instanceof Promise&&(c=await c),c.issues.length?{success:!1,error:new e(c.issues.map(d=>Ja(d,l,Fa())))}:{success:!0,data:c.value}},k_=gc(Zv),A_=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return sp(e)(n,i,l)},__=e=>(n,i,r)=>sp(e)(n,i,r),C_=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return rp(e)(n,i,l)},T_=e=>async(n,i,r)=>rp(e)(n,i,r),E_=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return hc(e)(n,i,l)},O_=e=>(n,i,r)=>hc(e)(n,i,r),z_=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return gc(e)(n,i,l)},D_=e=>async(n,i,r)=>gc(e)(n,i,r),R_=/^[cC][^\s-]{8,}$/,M_=/^[0-9a-z]+$/,B_=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,L_=/^[0-9a-vA-V]{20}$/,q_=/^[A-Za-z0-9]{27}$/,U_=/^[a-zA-Z0-9_-]{21}$/,$_=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,V_=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ab=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,I_=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,P_="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function G_(){return new RegExp(P_,"u")}const H_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Q_=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,K_=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Z_=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Y_=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Yv=/^[A-Za-z0-9_-]*$/,X_=/^\+[1-9]\d{6,14}$/,Xv="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",F_=new RegExp(`^${Xv}$`);function Fv(e){const n="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${n}`:e.precision===0?`${n}:[0-5]\\d`:`${n}:[0-5]\\d\\.\\d{${e.precision}}`:`${n}(?::[0-5]\\d(?:\\.\\d+)?)?`}function J_(e){return new RegExp(`^${Fv(e)}$`)}function W_(e){const n=Fv({precision:e.precision}),i=["Z"];e.local&&i.push(""),e.offset&&i.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${n}(?:${i.join("|")})`;return new RegExp(`^${Xv}T(?:${r})$`)}const e2=e=>{const n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},t2=/^-?\d+$/,Jv=/^-?\d+(?:\.\d+)?$/,n2=/^(?:true|false)$/i,a2=/^[^A-Z]*$/,i2=/^[^a-z]*$/,an=K("$ZodCheck",(e,n)=>{var i;e._zod??(e._zod={}),e._zod.def=n,(i=e._zod).onattach??(i.onattach=[])}),Wv={number:"number",bigint:"bigint",object:"date"},e0=K("$ZodCheckLessThan",(e,n)=>{an.init(e,n);const i=Wv[typeof n.value];e._zod.onattach.push(r=>{const l=r._zod.bag,c=(n.inclusive?l.maximum:l.exclusiveMaximum)??Number.POSITIVE_INFINITY;n.value<c&&(n.inclusive?l.maximum=n.value:l.exclusiveMaximum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value<=n.value:r.value<n.value)||r.issues.push({origin:i,code:"too_big",maximum:typeof n.value=="object"?n.value.getTime():n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),t0=K("$ZodCheckGreaterThan",(e,n)=>{an.init(e,n);const i=Wv[typeof n.value];e._zod.onattach.push(r=>{const l=r._zod.bag,c=(n.inclusive?l.minimum:l.exclusiveMinimum)??Number.NEGATIVE_INFINITY;n.value>c&&(n.inclusive?l.minimum=n.value:l.exclusiveMinimum=n.value)}),e._zod.check=r=>{(n.inclusive?r.value>=n.value:r.value>n.value)||r.issues.push({origin:i,code:"too_small",minimum:typeof n.value=="object"?n.value.getTime():n.value,input:r.value,inclusive:n.inclusive,inst:e,continue:!n.abort})}}),s2=K("$ZodCheckMultipleOf",(e,n)=>{an.init(e,n),e._zod.onattach.push(i=>{var r;(r=i._zod.bag).multipleOf??(r.multipleOf=n.value)}),e._zod.check=i=>{if(typeof i.value!=typeof n.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof i.value=="bigint"?i.value%n.value===BigInt(0):c_(i.value,n.value)===0)||i.issues.push({origin:typeof i.value,code:"not_multiple_of",divisor:n.value,input:i.value,inst:e,continue:!n.abort})}}),r2=K("$ZodCheckNumberFormat",(e,n)=>{an.init(e,n),n.format=n.format||"float64";const i=n.format?.includes("int"),r=i?"int":"number",[l,c]=m_[n.format];e._zod.onattach.push(d=>{const h=d._zod.bag;h.format=n.format,h.minimum=l,h.maximum=c,i&&(h.pattern=t2)}),e._zod.check=d=>{const h=d.value;if(i){if(!Number.isInteger(h)){d.issues.push({expected:r,format:n.format,code:"invalid_type",continue:!1,input:h,inst:e});return}if(!Number.isSafeInteger(h)){h>0?d.issues.push({input:h,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!n.abort}):d.issues.push({input:h,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!n.abort});return}}h<l&&d.issues.push({origin:"number",input:h,code:"too_small",minimum:l,inclusive:!0,inst:e,continue:!n.abort}),h>c&&d.issues.push({origin:"number",input:h,code:"too_big",maximum:c,inclusive:!0,inst:e,continue:!n.abort})}}),o2=K("$ZodCheckMaxLength",(e,n)=>{var i;an.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!np(l)&&l.length!==void 0}),e._zod.onattach.push(r=>{const l=r._zod.bag.maximum??Number.POSITIVE_INFINITY;n.maximum<l&&(r._zod.bag.maximum=n.maximum)}),e._zod.check=r=>{const l=r.value;if(l.length<=n.maximum)return;const d=ip(l);r.issues.push({origin:d,code:"too_big",maximum:n.maximum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),l2=K("$ZodCheckMinLength",(e,n)=>{var i;an.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!np(l)&&l.length!==void 0}),e._zod.onattach.push(r=>{const l=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;n.minimum>l&&(r._zod.bag.minimum=n.minimum)}),e._zod.check=r=>{const l=r.value;if(l.length>=n.minimum)return;const d=ip(l);r.issues.push({origin:d,code:"too_small",minimum:n.minimum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),c2=K("$ZodCheckLengthEquals",(e,n)=>{var i;an.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!np(l)&&l.length!==void 0}),e._zod.onattach.push(r=>{const l=r._zod.bag;l.minimum=n.length,l.maximum=n.length,l.length=n.length}),e._zod.check=r=>{const l=r.value,c=l.length;if(c===n.length)return;const d=ip(l),h=c>n.length;r.issues.push({origin:d,...h?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!n.abort})}}),yc=K("$ZodCheckStringFormat",(e,n)=>{var i,r;an.init(e,n),e._zod.onattach.push(l=>{const c=l._zod.bag;c.format=n.format,n.pattern&&(c.patterns??(c.patterns=new Set),c.patterns.add(n.pattern))}),n.pattern?(i=e._zod).check??(i.check=l=>{n.pattern.lastIndex=0,!n.pattern.test(l.value)&&l.issues.push({origin:"string",code:"invalid_format",format:n.format,input:l.value,...n.pattern?{pattern:n.pattern.toString()}:{},inst:e,continue:!n.abort})}):(r=e._zod).check??(r.check=()=>{})}),u2=K("$ZodCheckRegex",(e,n)=>{yc.init(e,n),e._zod.check=i=>{n.pattern.lastIndex=0,!n.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:"regex",input:i.value,pattern:n.pattern.toString(),inst:e,continue:!n.abort})}}),d2=K("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=a2),yc.init(e,n)}),f2=K("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=i2),yc.init(e,n)}),p2=K("$ZodCheckIncludes",(e,n)=>{an.init(e,n);const i=Us(n.includes),r=new RegExp(typeof n.position=="number"?`^.{${n.position}}${i}`:i);n.pattern=r,e._zod.onattach.push(l=>{const c=l._zod.bag;c.patterns??(c.patterns=new Set),c.patterns.add(r)}),e._zod.check=l=>{l.value.includes(n.includes,n.position)||l.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:n.includes,input:l.value,inst:e,continue:!n.abort})}}),m2=K("$ZodCheckStartsWith",(e,n)=>{an.init(e,n);const i=new RegExp(`^${Us(n.prefix)}.*`);n.pattern??(n.pattern=i),e._zod.onattach.push(r=>{const l=r._zod.bag;l.patterns??(l.patterns=new Set),l.patterns.add(i)}),e._zod.check=r=>{r.value.startsWith(n.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:n.prefix,input:r.value,inst:e,continue:!n.abort})}}),h2=K("$ZodCheckEndsWith",(e,n)=>{an.init(e,n);const i=new RegExp(`.*${Us(n.suffix)}$`);n.pattern??(n.pattern=i),e._zod.onattach.push(r=>{const l=r._zod.bag;l.patterns??(l.patterns=new Set),l.patterns.add(i)}),e._zod.check=r=>{r.value.endsWith(n.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:n.suffix,input:r.value,inst:e,continue:!n.abort})}}),g2=K("$ZodCheckOverwrite",(e,n)=>{an.init(e,n),e._zod.check=i=>{i.value=n.tx(i.value)}});class y2{constructor(n=[]){this.content=[],this.indent=0,this&&(this.args=n)}indented(n){this.indent+=1,n(this),this.indent-=1}write(n){if(typeof n=="function"){n(this,{execution:"sync"}),n(this,{execution:"async"});return}const r=n.split(`
|
|
15
15
|
`).filter(d=>d),l=Math.min(...r.map(d=>d.length-d.trimStart().length)),c=r.map(d=>d.slice(l)).map(d=>" ".repeat(this.indent*2)+d);for(const d of c)this.content.push(d)}compile(){const n=Function,i=this?.args,l=[...(this?.content??[""]).map(c=>` ${c}`)];return new n(...i,l.join(`
|
|
16
|
-
`))}}const
|
|
16
|
+
`))}}const b2={major:4,minor:3,patch:6},ut=K("$ZodType",(e,n)=>{var i;e??(e={}),e._zod.def=n,e._zod.bag=e._zod.bag||{},e._zod.version=b2;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const l of r)for(const c of l._zod.onattach)c(e);if(r.length===0)(i=e._zod).deferred??(i.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const l=(d,h,g)=>{let v=Ts(d),S;for(const x of h){if(x._zod.def.when){if(!x._zod.def.when(d))continue}else if(v)continue;const N=d.issues.length,_=x._zod.check(d);if(_ instanceof Promise&&g?.async===!1)throw new Rs;if(S||_ instanceof Promise)S=(S??Promise.resolve()).then(async()=>{await _,d.issues.length!==N&&(v||(v=Ts(d,N)))});else{if(d.issues.length===N)continue;v||(v=Ts(d,N))}}return S?S.then(()=>d):d},c=(d,h,g)=>{if(Ts(d))return d.aborted=!0,d;const v=l(h,r,g);if(v instanceof Promise){if(g.async===!1)throw new Rs;return v.then(S=>e._zod.parse(S,g))}return e._zod.parse(v,g)};e._zod.run=(d,h)=>{if(h.skipChecks)return e._zod.parse(d,h);if(h.direction==="backward"){const v=e._zod.parse({value:d.value,issues:[]},{...h,skipChecks:!0});return v instanceof Promise?v.then(S=>c(S,d,h)):c(v,d,h)}const g=e._zod.parse(d,h);if(g instanceof Promise){if(h.async===!1)throw new Rs;return g.then(v=>l(v,r,h))}return l(g,r,h)}}Ge(e,"~standard",()=>({validate:l=>{try{const c=N_(e,l);return c.success?{value:c.data}:{issues:c.error?.issues}}catch{return k_(e,l).then(d=>d.success?{value:d.data}:{issues:d.error?.issues})}},vendor:"zod",version:1}))}),op=K("$ZodString",(e,n)=>{ut.init(e,n),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??e2(e._zod.bag),e._zod.parse=(i,r)=>{if(n.coerce)try{i.value=String(i.value)}catch{}return typeof i.value=="string"||i.issues.push({expected:"string",code:"invalid_type",input:i.value,inst:e}),i}}),ct=K("$ZodStringFormat",(e,n)=>{yc.init(e,n),op.init(e,n)}),v2=K("$ZodGUID",(e,n)=>{n.pattern??(n.pattern=V_),ct.init(e,n)}),S2=K("$ZodUUID",(e,n)=>{if(n.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[n.version];if(r===void 0)throw new Error(`Invalid UUID version: "${n.version}"`);n.pattern??(n.pattern=ab(r))}else n.pattern??(n.pattern=ab());ct.init(e,n)}),x2=K("$ZodEmail",(e,n)=>{n.pattern??(n.pattern=I_),ct.init(e,n)}),w2=K("$ZodURL",(e,n)=>{ct.init(e,n),e._zod.check=i=>{try{const r=i.value.trim(),l=new URL(r);n.hostname&&(n.hostname.lastIndex=0,n.hostname.test(l.hostname)||i.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:n.hostname.source,input:i.value,inst:e,continue:!n.abort})),n.protocol&&(n.protocol.lastIndex=0,n.protocol.test(l.protocol.endsWith(":")?l.protocol.slice(0,-1):l.protocol)||i.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:n.protocol.source,input:i.value,inst:e,continue:!n.abort})),n.normalize?i.value=l.href:i.value=r;return}catch{i.issues.push({code:"invalid_format",format:"url",input:i.value,inst:e,continue:!n.abort})}}}),j2=K("$ZodEmoji",(e,n)=>{n.pattern??(n.pattern=G_()),ct.init(e,n)}),N2=K("$ZodNanoID",(e,n)=>{n.pattern??(n.pattern=U_),ct.init(e,n)}),k2=K("$ZodCUID",(e,n)=>{n.pattern??(n.pattern=R_),ct.init(e,n)}),A2=K("$ZodCUID2",(e,n)=>{n.pattern??(n.pattern=M_),ct.init(e,n)}),_2=K("$ZodULID",(e,n)=>{n.pattern??(n.pattern=B_),ct.init(e,n)}),C2=K("$ZodXID",(e,n)=>{n.pattern??(n.pattern=L_),ct.init(e,n)}),T2=K("$ZodKSUID",(e,n)=>{n.pattern??(n.pattern=q_),ct.init(e,n)}),E2=K("$ZodISODateTime",(e,n)=>{n.pattern??(n.pattern=W_(n)),ct.init(e,n)}),O2=K("$ZodISODate",(e,n)=>{n.pattern??(n.pattern=F_),ct.init(e,n)}),z2=K("$ZodISOTime",(e,n)=>{n.pattern??(n.pattern=J_(n)),ct.init(e,n)}),D2=K("$ZodISODuration",(e,n)=>{n.pattern??(n.pattern=$_),ct.init(e,n)}),R2=K("$ZodIPv4",(e,n)=>{n.pattern??(n.pattern=H_),ct.init(e,n),e._zod.bag.format="ipv4"}),M2=K("$ZodIPv6",(e,n)=>{n.pattern??(n.pattern=Q_),ct.init(e,n),e._zod.bag.format="ipv6",e._zod.check=i=>{try{new URL(`http://[${i.value}]`)}catch{i.issues.push({code:"invalid_format",format:"ipv6",input:i.value,inst:e,continue:!n.abort})}}}),B2=K("$ZodCIDRv4",(e,n)=>{n.pattern??(n.pattern=K_),ct.init(e,n)}),L2=K("$ZodCIDRv6",(e,n)=>{n.pattern??(n.pattern=Z_),ct.init(e,n),e._zod.check=i=>{const r=i.value.split("/");try{if(r.length!==2)throw new Error;const[l,c]=r;if(!c)throw new Error;const d=Number(c);if(`${d}`!==c)throw new Error;if(d<0||d>128)throw new Error;new URL(`http://[${l}]`)}catch{i.issues.push({code:"invalid_format",format:"cidrv6",input:i.value,inst:e,continue:!n.abort})}}});function n0(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const q2=K("$ZodBase64",(e,n)=>{n.pattern??(n.pattern=Y_),ct.init(e,n),e._zod.bag.contentEncoding="base64",e._zod.check=i=>{n0(i.value)||i.issues.push({code:"invalid_format",format:"base64",input:i.value,inst:e,continue:!n.abort})}});function U2(e){if(!Yv.test(e))return!1;const n=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),i=n.padEnd(Math.ceil(n.length/4)*4,"=");return n0(i)}const $2=K("$ZodBase64URL",(e,n)=>{n.pattern??(n.pattern=Yv),ct.init(e,n),e._zod.bag.contentEncoding="base64url",e._zod.check=i=>{U2(i.value)||i.issues.push({code:"invalid_format",format:"base64url",input:i.value,inst:e,continue:!n.abort})}}),V2=K("$ZodE164",(e,n)=>{n.pattern??(n.pattern=X_),ct.init(e,n)});function I2(e,n=null){try{const i=e.split(".");if(i.length!==3)return!1;const[r]=i;if(!r)return!1;const l=JSON.parse(atob(r));return!("typ"in l&&l?.typ!=="JWT"||!l.alg||n&&(!("alg"in l)||l.alg!==n))}catch{return!1}}const P2=K("$ZodJWT",(e,n)=>{ct.init(e,n),e._zod.check=i=>{I2(i.value,n.alg)||i.issues.push({code:"invalid_format",format:"jwt",input:i.value,inst:e,continue:!n.abort})}}),a0=K("$ZodNumber",(e,n)=>{ut.init(e,n),e._zod.pattern=e._zod.bag.pattern??Jv,e._zod.parse=(i,r)=>{if(n.coerce)try{i.value=Number(i.value)}catch{}const l=i.value;if(typeof l=="number"&&!Number.isNaN(l)&&Number.isFinite(l))return i;const c=typeof l=="number"?Number.isNaN(l)?"NaN":Number.isFinite(l)?void 0:"Infinity":void 0;return i.issues.push({expected:"number",code:"invalid_type",input:l,inst:e,...c?{received:c}:{}}),i}}),G2=K("$ZodNumberFormat",(e,n)=>{r2.init(e,n),a0.init(e,n)}),H2=K("$ZodBoolean",(e,n)=>{ut.init(e,n),e._zod.pattern=n2,e._zod.parse=(i,r)=>{if(n.coerce)try{i.value=!!i.value}catch{}const l=i.value;return typeof l=="boolean"||i.issues.push({expected:"boolean",code:"invalid_type",input:l,inst:e}),i}}),Q2=K("$ZodUnknown",(e,n)=>{ut.init(e,n),e._zod.parse=i=>i}),K2=K("$ZodNever",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>(i.issues.push({expected:"never",code:"invalid_type",input:i.value,inst:e}),i)});function ib(e,n,i){e.issues.length&&n.issues.push(...Es(i,e.issues)),n.value[i]=e.value}const Z2=K("$ZodArray",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{const l=i.value;if(!Array.isArray(l))return i.issues.push({expected:"array",code:"invalid_type",input:l,inst:e}),i;i.value=Array(l.length);const c=[];for(let d=0;d<l.length;d++){const h=l[d],g=n.element._zod.run({value:h,issues:[]},r);g instanceof Promise?c.push(g.then(v=>ib(v,i,d))):ib(g,i,d)}return c.length?Promise.all(c).then(()=>i):i}});function tc(e,n,i,r,l){if(e.issues.length){if(l&&!(i in r))return;n.issues.push(...Es(i,e.issues))}e.value===void 0?i in r&&(n.value[i]=void 0):n.value[i]=e.value}function i0(e){const n=Object.keys(e.shape);for(const r of n)if(!e.shape?.[r]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${r}": expected a Zod schema`);const i=p_(e.shape);return{...e,keys:n,keySet:new Set(n),numKeys:n.length,optionalKeys:new Set(i)}}function s0(e,n,i,r,l,c){const d=[],h=l.keySet,g=l.catchall._zod,v=g.def.type,S=g.optout==="optional";for(const x in n){if(h.has(x))continue;if(v==="never"){d.push(x);continue}const N=g.run({value:n[x],issues:[]},r);N instanceof Promise?e.push(N.then(_=>tc(_,i,x,n,S))):tc(N,i,x,n,S)}return d.length&&i.issues.push({code:"unrecognized_keys",keys:d,input:n,inst:c}),e.length?Promise.all(e).then(()=>i):i}const Y2=K("$ZodObject",(e,n)=>{if(ut.init(e,n),!Object.getOwnPropertyDescriptor(n,"shape")?.get){const h=n.shape;Object.defineProperty(n,"shape",{get:()=>{const g={...h};return Object.defineProperty(n,"shape",{value:g}),g}})}const r=mc(()=>i0(n));Ge(e._zod,"propValues",()=>{const h=n.shape,g={};for(const v in h){const S=h[v]._zod;if(S.values){g[v]??(g[v]=new Set);for(const x of S.values)g[v].add(x)}}return g});const l=io,c=n.catchall;let d;e._zod.parse=(h,g)=>{d??(d=r.value);const v=h.value;if(!l(v))return h.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),h;h.value={};const S=[],x=d.shape;for(const N of d.keys){const _=x[N],O=_._zod.optout==="optional",k=_._zod.run({value:v[N],issues:[]},g);k instanceof Promise?S.push(k.then(E=>tc(E,h,N,v,O))):tc(k,h,N,v,O)}return c?s0(S,v,h,g,r.value,e):S.length?Promise.all(S).then(()=>h):h}}),X2=K("$ZodObjectJIT",(e,n)=>{Y2.init(e,n);const i=e._zod.parse,r=mc(()=>i0(n)),l=N=>{const _=new y2(["shape","payload","ctx"]),O=r.value,k=P=>{const Y=nb(P);return`shape[${Y}]._zod.run({ value: input[${Y}], issues: [] }, ctx)`};_.write("const input = payload.value;");const E=Object.create(null);let R=0;for(const P of O.keys)E[P]=`key_${R++}`;_.write("const newResult = {};");for(const P of O.keys){const Y=E[P],I=nb(P),z=N[P]?._zod?.optout==="optional";_.write(`const ${Y} = ${k(P)};`),z?_.write(`
|
|
17
17
|
if (${Y}.issues.length) {
|
|
18
18
|
if (${I} in input) {
|
|
19
19
|
payload.issues = payload.issues.concat(${Y}.issues.map(iss => ({
|
|
@@ -47,22 +47,22 @@ Error generating stack: `+o.message+`
|
|
|
47
47
|
newResult[${I}] = ${Y}.value;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
`)}_.write("payload.value = newResult;"),_.write("return payload;");const G=_.compile();return(P,Y)=>G(N,P,Y)};let c;const d=io,h=!Iv.jitless,v=h&&u_.value,S=n.catchall;let x;e._zod.parse=(N,_)=>{x??(x=r.value);const O=N.value;return d(O)?h&&v&&_?.async===!1&&_.jitless!==!0?(c||(c=l(n.shape)),N=c(N,_),S?s0([],O,N,_,x,e):N):i(N,_):(N.issues.push({expected:"object",code:"invalid_type",input:O,inst:e}),N)}});function sb(e,n,i,r){for(const c of e)if(c.issues.length===0)return n.value=c.value,n;const l=e.filter(c=>!Ts(c));return l.length===1?(n.value=l[0].value,l[0]):(n.issues.push({code:"invalid_union",input:n.value,inst:i,errors:e.map(c=>c.issues.map(d=>Ja(d,r,Fa())))}),n)}const r0=K("$ZodUnion",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.options.some(l=>l._zod.optin==="optional")?"optional":void 0),Ge(e._zod,"optout",()=>n.options.some(l=>l._zod.optout==="optional")?"optional":void 0),Ge(e._zod,"values",()=>{if(n.options.every(l=>l._zod.values))return new Set(n.options.flatMap(l=>Array.from(l._zod.values)))}),Ge(e._zod,"pattern",()=>{if(n.options.every(l=>l._zod.pattern)){const l=n.options.map(c=>c._zod.pattern);return new RegExp(`^(${l.map(c=>ap(c.source)).join("|")})$`)}});const i=n.options.length===1,r=n.options[0]._zod.run;e._zod.parse=(l,c)=>{if(i)return r(l,c);let d=!1;const h=[];for(const g of n.options){const v=g._zod.run({value:l.value,issues:[]},c);if(v instanceof Promise)h.push(v),d=!0;else{if(v.issues.length===0)return v;h.push(v)}}return d?Promise.all(h).then(g=>sb(g,l,e,c)):sb(h,l,e,c)}}),X2=K("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=!1,r0.init(e,n);const i=e._zod.parse;Ge(e._zod,"propValues",()=>{const l={};for(const c of n.options){const d=c._zod.propValues;if(!d||Object.keys(d).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(c)}"`);for(const[h,g]of Object.entries(d)){l[h]||(l[h]=new Set);for(const v of g)l[h].add(v)}}return l});const r=mc(()=>{const l=n.options,c=new Map;for(const d of l){const h=d._zod.propValues?.[n.discriminator];if(!h||h.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(d)}"`);for(const g of h){if(c.has(g))throw new Error(`Duplicate discriminator value "${String(g)}"`);c.set(g,d)}}return c});e._zod.parse=(l,c)=>{const d=l.value;if(!io(d))return l.issues.push({code:"invalid_type",expected:"object",input:d,inst:e}),l;const h=r.value.get(d?.[n.discriminator]);return h?h._zod.run(l,c):n.unionFallback?i(l,c):(l.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,input:d,path:[n.discriminator],inst:e}),l)}}),F2=K("$ZodIntersection",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{const l=i.value,c=n.left._zod.run({value:l,issues:[]},r),d=n.right._zod.run({value:l,issues:[]},r);return c instanceof Promise||d instanceof Promise?Promise.all([c,d]).then(([g,v])=>rb(i,g,v)):rb(i,c,d)}});function Cf(e,n){if(e===n)return{valid:!0,data:e};if(e instanceof Date&&n instanceof Date&&+e==+n)return{valid:!0,data:e};if(qs(e)&&qs(n)){const i=Object.keys(n),r=Object.keys(e).filter(c=>i.indexOf(c)!==-1),l={...e,...n};for(const c of r){const d=Cf(e[c],n[c]);if(!d.valid)return{valid:!1,mergeErrorPath:[c,...d.mergeErrorPath]};l[c]=d.data}return{valid:!0,data:l}}if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return{valid:!1,mergeErrorPath:[]};const i=[];for(let r=0;r<e.length;r++){const l=e[r],c=n[r],d=Cf(l,c);if(!d.valid)return{valid:!1,mergeErrorPath:[r,...d.mergeErrorPath]};i.push(d.data)}return{valid:!0,data:i}}return{valid:!1,mergeErrorPath:[]}}function rb(e,n,i){const r=new Map;let l;for(const h of n.issues)if(h.code==="unrecognized_keys"){l??(l=h);for(const g of h.keys)r.has(g)||r.set(g,{}),r.get(g).l=!0}else e.issues.push(h);for(const h of i.issues)if(h.code==="unrecognized_keys")for(const g of h.keys)r.has(g)||r.set(g,{}),r.get(g).r=!0;else e.issues.push(h);const c=[...r].filter(([,h])=>h.l&&h.r).map(([h])=>h);if(c.length&&l&&e.issues.push({...l,keys:c}),Ts(e))return e;const d=Cf(n.value,i.value);if(!d.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(d.mergeErrorPath)}`);return e.value=d.data,e}const J2=K("$ZodRecord",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{const l=i.value;if(!qs(l))return i.issues.push({expected:"record",code:"invalid_type",input:l,inst:e}),i;const c=[],d=n.keyType._zod.values;if(d){i.value={};const h=new Set;for(const v of d)if(typeof v=="string"||typeof v=="number"||typeof v=="symbol"){h.add(typeof v=="number"?v.toString():v);const S=n.valueType._zod.run({value:l[v],issues:[]},r);S instanceof Promise?c.push(S.then(x=>{x.issues.length&&i.issues.push(...Es(v,x.issues)),i.value[v]=x.value})):(S.issues.length&&i.issues.push(...Es(v,S.issues)),i.value[v]=S.value)}let g;for(const v in l)h.has(v)||(g=g??[],g.push(v));g&&g.length>0&&i.issues.push({code:"unrecognized_keys",input:l,inst:e,keys:g})}else{i.value={};for(const h of Reflect.ownKeys(l)){if(h==="__proto__")continue;let g=n.keyType._zod.run({value:h,issues:[]},r);if(g instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof h=="string"&&Jv.test(h)&&g.issues.length){const x=n.keyType._zod.run({value:Number(h),issues:[]},r);if(x instanceof Promise)throw new Error("Async schemas not supported in object keys currently");x.issues.length===0&&(g=x)}if(g.issues.length){n.mode==="loose"?i.value[h]=l[h]:i.issues.push({code:"invalid_key",origin:"record",issues:g.issues.map(x=>Ja(x,r,Fa())),input:h,path:[h],inst:e});continue}const S=n.valueType._zod.run({value:l[h],issues:[]},r);S instanceof Promise?c.push(S.then(x=>{x.issues.length&&i.issues.push(...Es(h,x.issues)),i.value[g.value]=x.value})):(S.issues.length&&i.issues.push(...Es(h,S.issues)),i.value[g.value]=S.value)}}return c.length?Promise.all(c).then(()=>i):i}}),W2=K("$ZodEnum",(e,n)=>{ut.init(e,n);const i=Pv(n.entries),r=new Set(i);e._zod.values=r,e._zod.pattern=new RegExp(`^(${i.filter(l=>d_.has(typeof l)).map(l=>typeof l=="string"?Us(l):l.toString()).join("|")})$`),e._zod.parse=(l,c)=>{const d=l.value;return r.has(d)||l.issues.push({code:"invalid_value",values:i,input:d,inst:e}),l}}),eC=K("$ZodLiteral",(e,n)=>{if(ut.init(e,n),n.values.length===0)throw new Error("Cannot create literal schema with no valid values");const i=new Set(n.values);e._zod.values=i,e._zod.pattern=new RegExp(`^(${n.values.map(r=>typeof r=="string"?Us(r):r?Us(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,l)=>{const c=r.value;return i.has(c)||r.issues.push({code:"invalid_value",values:n.values,input:c,inst:e}),r}}),tC=K("$ZodTransform",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new Vv(e.constructor.name);const l=n.transform(i.value,i);if(r.async)return(l instanceof Promise?l:Promise.resolve(l)).then(d=>(i.value=d,i));if(l instanceof Promise)throw new Rs;return i.value=l,i}});function ob(e,n){return e.issues.length&&n===void 0?{issues:[],value:void 0}:e}const o0=K("$ZodOptional",(e,n)=>{ut.init(e,n),e._zod.optin="optional",e._zod.optout="optional",Ge(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Ge(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${ap(i.source)})?$`):void 0}),e._zod.parse=(i,r)=>{if(n.innerType._zod.optin==="optional"){const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>ob(c,i.value)):ob(l,i.value)}return i.value===void 0?i:n.innerType._zod.run(i,r)}}),nC=K("$ZodExactOptional",(e,n)=>{o0.init(e,n),Ge(e._zod,"values",()=>n.innerType._zod.values),Ge(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(i,r)=>n.innerType._zod.run(i,r)}),aC=K("$ZodNullable",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.innerType._zod.optin),Ge(e._zod,"optout",()=>n.innerType._zod.optout),Ge(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${ap(i.source)}|null)$`):void 0}),Ge(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),e._zod.parse=(i,r)=>i.value===null?i:n.innerType._zod.run(i,r)}),iC=K("$ZodDefault",(e,n)=>{ut.init(e,n),e._zod.optin="optional",Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);if(i.value===void 0)return i.value=n.defaultValue,i;const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>lb(c,n)):lb(l,n)}});function lb(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}const sC=K("$ZodPrefault",(e,n)=>{ut.init(e,n),e._zod.optin="optional",Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>(r.direction==="backward"||i.value===void 0&&(i.value=n.defaultValue),n.innerType._zod.run(i,r))}),rC=K("$ZodNonOptional",(e,n)=>{ut.init(e,n),Ge(e._zod,"values",()=>{const i=n.innerType._zod.values;return i?new Set([...i].filter(r=>r!==void 0)):void 0}),e._zod.parse=(i,r)=>{const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>cb(c,e)):cb(l,e)}});function cb(e,n){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:n}),e}const oC=K("$ZodCatch",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.innerType._zod.optin),Ge(e._zod,"optout",()=>n.innerType._zod.optout),Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>(i.value=c.value,c.issues.length&&(i.value=n.catchValue({...i,error:{issues:c.issues.map(d=>Ja(d,r,Fa()))},input:i.value}),i.issues=[]),i)):(i.value=l.value,l.issues.length&&(i.value=n.catchValue({...i,error:{issues:l.issues.map(c=>Ja(c,r,Fa()))},input:i.value}),i.issues=[]),i)}}),lC=K("$ZodPipe",(e,n)=>{ut.init(e,n),Ge(e._zod,"values",()=>n.in._zod.values),Ge(e._zod,"optin",()=>n.in._zod.optin),Ge(e._zod,"optout",()=>n.out._zod.optout),Ge(e._zod,"propValues",()=>n.in._zod.propValues),e._zod.parse=(i,r)=>{if(r.direction==="backward"){const c=n.out._zod.run(i,r);return c instanceof Promise?c.then(d=>ql(d,n.in,r)):ql(c,n.in,r)}const l=n.in._zod.run(i,r);return l instanceof Promise?l.then(c=>ql(c,n.out,r)):ql(l,n.out,r)}});function ql(e,n,i){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:e.value,issues:e.issues},i)}const cC=K("$ZodReadonly",(e,n)=>{ut.init(e,n),Ge(e._zod,"propValues",()=>n.innerType._zod.propValues),Ge(e._zod,"values",()=>n.innerType._zod.values),Ge(e._zod,"optin",()=>n.innerType?._zod?.optin),Ge(e._zod,"optout",()=>n.innerType?._zod?.optout),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(ub):ub(l)}});function ub(e){return e.value=Object.freeze(e.value),e}const uC=K("$ZodCustom",(e,n)=>{an.init(e,n),ut.init(e,n),e._zod.parse=(i,r)=>i,e._zod.check=i=>{const r=i.value,l=n.fn(r);if(l instanceof Promise)return l.then(c=>db(c,i,r,e));db(l,i,r,e)}});function db(e,n,i,r){if(!e){const l={code:"custom",input:i,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(l.params=r._zod.def.params),n.issues.push(so(l))}}var fb;class dC{constructor(){this._map=new WeakMap,this._idmap=new Map}add(n,...i){const r=i[0];return this._map.set(n,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,n),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(n){const i=this._map.get(n);return i&&typeof i=="object"&&"id"in i&&this._idmap.delete(i.id),this._map.delete(n),this}get(n){const i=n._zod.parent;if(i){const r={...this.get(i)??{}};delete r.id;const l={...r,...this._map.get(n)};return Object.keys(l).length?l:void 0}return this._map.get(n)}has(n){return this._map.has(n)}}function fC(){return new dC}(fb=globalThis).__zod_globalRegistry??(fb.__zod_globalRegistry=fC());const Wr=globalThis.__zod_globalRegistry;function pC(e,n){return new e({type:"string",...be(n)})}function mC(e,n){return new e({type:"string",format:"email",check:"string_format",abort:!1,...be(n)})}function pb(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...be(n)})}function hC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...be(n)})}function gC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...be(n)})}function yC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...be(n)})}function bC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...be(n)})}function vC(e,n){return new e({type:"string",format:"url",check:"string_format",abort:!1,...be(n)})}function SC(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...be(n)})}function xC(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...be(n)})}function wC(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...be(n)})}function jC(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...be(n)})}function NC(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...be(n)})}function kC(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...be(n)})}function AC(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...be(n)})}function _C(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...be(n)})}function CC(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...be(n)})}function TC(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...be(n)})}function EC(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...be(n)})}function OC(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...be(n)})}function zC(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...be(n)})}function DC(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...be(n)})}function RC(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...be(n)})}function MC(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...be(n)})}function BC(e,n){return new e({type:"string",format:"date",check:"string_format",...be(n)})}function LC(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...be(n)})}function qC(e,n){return new e({type:"string",format:"duration",check:"string_format",...be(n)})}function UC(e,n){return new e({type:"number",checks:[],...be(n)})}function $C(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...be(n)})}function VC(e,n){return new e({type:"boolean",...be(n)})}function IC(e){return new e({type:"unknown"})}function PC(e,n){return new e({type:"never",...be(n)})}function mb(e,n){return new e0({check:"less_than",...be(n),value:e,inclusive:!1})}function of(e,n){return new e0({check:"less_than",...be(n),value:e,inclusive:!0})}function hb(e,n){return new t0({check:"greater_than",...be(n),value:e,inclusive:!1})}function lf(e,n){return new t0({check:"greater_than",...be(n),value:e,inclusive:!0})}function gb(e,n){return new i2({check:"multiple_of",...be(n),value:e})}function l0(e,n){return new r2({check:"max_length",...be(n),maximum:e})}function nc(e,n){return new o2({check:"min_length",...be(n),minimum:e})}function c0(e,n){return new l2({check:"length_equals",...be(n),length:e})}function GC(e,n){return new c2({check:"string_format",format:"regex",...be(n),pattern:e})}function HC(e){return new u2({check:"string_format",format:"lowercase",...be(e)})}function QC(e){return new d2({check:"string_format",format:"uppercase",...be(e)})}function KC(e,n){return new f2({check:"string_format",format:"includes",...be(n),includes:e})}function ZC(e,n){return new p2({check:"string_format",format:"starts_with",...be(n),prefix:e})}function YC(e,n){return new m2({check:"string_format",format:"ends_with",...be(n),suffix:e})}function Qs(e){return new h2({check:"overwrite",tx:e})}function XC(e){return Qs(n=>n.normalize(e))}function FC(){return Qs(e=>e.trim())}function JC(){return Qs(e=>e.toLowerCase())}function WC(){return Qs(e=>e.toUpperCase())}function eT(){return Qs(e=>c_(e))}function tT(e,n,i){return new e({type:"array",element:n,...be(i)})}function nT(e,n,i){return new e({type:"custom",check:"custom",fn:n,...be(i)})}function aT(e){const n=iT(i=>(i.addIssue=r=>{if(typeof r=="string")i.issues.push(so(r,i.value,n._zod.def));else{const l=r;l.fatal&&(l.continue=!1),l.code??(l.code="custom"),l.input??(l.input=i.value),l.inst??(l.inst=n),l.continue??(l.continue=!n._zod.def.abort),i.issues.push(so(l))}},e(i.value,i)));return n}function iT(e,n){const i=new an({check:"custom",...be(n)});return i._zod.check=e,i}function u0(e){let n=e?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Wr,target:n,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function At(e,n,i={path:[],schemaPath:[]}){var r;const l=e._zod.def,c=n.seen.get(e);if(c)return c.count++,i.schemaPath.includes(e)&&(c.cycle=i.path),c.schema;const d={schema:{},count:1,cycle:void 0,path:i.path};n.seen.set(e,d);const h=e._zod.toJSONSchema?.();if(h)d.schema=h;else{const S={...i,schemaPath:[...i.schemaPath,e],path:i.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,d.schema,S);else{const N=d.schema,_=n.processors[l.type];if(!_)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${l.type}`);_(e,n,N,S)}const x=e._zod.parent;x&&(d.ref||(d.ref=x),At(x,n,S),n.seen.get(x).isParent=!0)}const g=n.metadataRegistry.get(e);return g&&Object.assign(d.schema,g),n.io==="input"&&Gt(e)&&(delete d.schema.examples,delete d.schema.default),n.io==="input"&&d.schema._prefault&&((r=d.schema).default??(r.default=d.schema._prefault)),delete d.schema._prefault,n.seen.get(e).schema}function d0(e,n){const i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const d of e.seen.entries()){const h=e.metadataRegistry.get(d[0])?.id;if(h){const g=r.get(h);if(g&&g!==d[0])throw new Error(`Duplicate schema id "${h}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(h,d[0])}}const l=d=>{const h=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const x=e.external.registry.get(d[0])?.id,N=e.external.uri??(O=>O);if(x)return{ref:N(x)};const _=d[1].defId??d[1].schema.id??`schema${e.counter++}`;return d[1].defId=_,{defId:_,ref:`${N("__shared")}#/${h}/${_}`}}if(d[1]===i)return{ref:"#"};const v=`#/${h}/`,S=d[1].schema.id??`__schema${e.counter++}`;return{defId:S,ref:v+S}},c=d=>{if(d[1].schema.$ref)return;const h=d[1],{ref:g,defId:v}=l(d);h.def={...h.schema},v&&(h.defId=v);const S=h.schema;for(const x in S)delete S[x];S.$ref=g};if(e.cycles==="throw")for(const d of e.seen.entries()){const h=d[1];if(h.cycle)throw new Error(`Cycle detected: #/${h.cycle?.join("/")}/<root>
|
|
50
|
+
`)}_.write("payload.value = newResult;"),_.write("return payload;");const G=_.compile();return(P,Y)=>G(N,P,Y)};let c;const d=io,h=!Iv.jitless,v=h&&d_.value,S=n.catchall;let x;e._zod.parse=(N,_)=>{x??(x=r.value);const O=N.value;return d(O)?h&&v&&_?.async===!1&&_.jitless!==!0?(c||(c=l(n.shape)),N=c(N,_),S?s0([],O,N,_,x,e):N):i(N,_):(N.issues.push({expected:"object",code:"invalid_type",input:O,inst:e}),N)}});function sb(e,n,i,r){for(const c of e)if(c.issues.length===0)return n.value=c.value,n;const l=e.filter(c=>!Ts(c));return l.length===1?(n.value=l[0].value,l[0]):(n.issues.push({code:"invalid_union",input:n.value,inst:i,errors:e.map(c=>c.issues.map(d=>Ja(d,r,Fa())))}),n)}const r0=K("$ZodUnion",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.options.some(l=>l._zod.optin==="optional")?"optional":void 0),Ge(e._zod,"optout",()=>n.options.some(l=>l._zod.optout==="optional")?"optional":void 0),Ge(e._zod,"values",()=>{if(n.options.every(l=>l._zod.values))return new Set(n.options.flatMap(l=>Array.from(l._zod.values)))}),Ge(e._zod,"pattern",()=>{if(n.options.every(l=>l._zod.pattern)){const l=n.options.map(c=>c._zod.pattern);return new RegExp(`^(${l.map(c=>ap(c.source)).join("|")})$`)}});const i=n.options.length===1,r=n.options[0]._zod.run;e._zod.parse=(l,c)=>{if(i)return r(l,c);let d=!1;const h=[];for(const g of n.options){const v=g._zod.run({value:l.value,issues:[]},c);if(v instanceof Promise)h.push(v),d=!0;else{if(v.issues.length===0)return v;h.push(v)}}return d?Promise.all(h).then(g=>sb(g,l,e,c)):sb(h,l,e,c)}}),F2=K("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=!1,r0.init(e,n);const i=e._zod.parse;Ge(e._zod,"propValues",()=>{const l={};for(const c of n.options){const d=c._zod.propValues;if(!d||Object.keys(d).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(c)}"`);for(const[h,g]of Object.entries(d)){l[h]||(l[h]=new Set);for(const v of g)l[h].add(v)}}return l});const r=mc(()=>{const l=n.options,c=new Map;for(const d of l){const h=d._zod.propValues?.[n.discriminator];if(!h||h.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(d)}"`);for(const g of h){if(c.has(g))throw new Error(`Duplicate discriminator value "${String(g)}"`);c.set(g,d)}}return c});e._zod.parse=(l,c)=>{const d=l.value;if(!io(d))return l.issues.push({code:"invalid_type",expected:"object",input:d,inst:e}),l;const h=r.value.get(d?.[n.discriminator]);return h?h._zod.run(l,c):n.unionFallback?i(l,c):(l.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,input:d,path:[n.discriminator],inst:e}),l)}}),J2=K("$ZodIntersection",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{const l=i.value,c=n.left._zod.run({value:l,issues:[]},r),d=n.right._zod.run({value:l,issues:[]},r);return c instanceof Promise||d instanceof Promise?Promise.all([c,d]).then(([g,v])=>rb(i,g,v)):rb(i,c,d)}});function Cf(e,n){if(e===n)return{valid:!0,data:e};if(e instanceof Date&&n instanceof Date&&+e==+n)return{valid:!0,data:e};if(qs(e)&&qs(n)){const i=Object.keys(n),r=Object.keys(e).filter(c=>i.indexOf(c)!==-1),l={...e,...n};for(const c of r){const d=Cf(e[c],n[c]);if(!d.valid)return{valid:!1,mergeErrorPath:[c,...d.mergeErrorPath]};l[c]=d.data}return{valid:!0,data:l}}if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return{valid:!1,mergeErrorPath:[]};const i=[];for(let r=0;r<e.length;r++){const l=e[r],c=n[r],d=Cf(l,c);if(!d.valid)return{valid:!1,mergeErrorPath:[r,...d.mergeErrorPath]};i.push(d.data)}return{valid:!0,data:i}}return{valid:!1,mergeErrorPath:[]}}function rb(e,n,i){const r=new Map;let l;for(const h of n.issues)if(h.code==="unrecognized_keys"){l??(l=h);for(const g of h.keys)r.has(g)||r.set(g,{}),r.get(g).l=!0}else e.issues.push(h);for(const h of i.issues)if(h.code==="unrecognized_keys")for(const g of h.keys)r.has(g)||r.set(g,{}),r.get(g).r=!0;else e.issues.push(h);const c=[...r].filter(([,h])=>h.l&&h.r).map(([h])=>h);if(c.length&&l&&e.issues.push({...l,keys:c}),Ts(e))return e;const d=Cf(n.value,i.value);if(!d.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(d.mergeErrorPath)}`);return e.value=d.data,e}const W2=K("$ZodRecord",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{const l=i.value;if(!qs(l))return i.issues.push({expected:"record",code:"invalid_type",input:l,inst:e}),i;const c=[],d=n.keyType._zod.values;if(d){i.value={};const h=new Set;for(const v of d)if(typeof v=="string"||typeof v=="number"||typeof v=="symbol"){h.add(typeof v=="number"?v.toString():v);const S=n.valueType._zod.run({value:l[v],issues:[]},r);S instanceof Promise?c.push(S.then(x=>{x.issues.length&&i.issues.push(...Es(v,x.issues)),i.value[v]=x.value})):(S.issues.length&&i.issues.push(...Es(v,S.issues)),i.value[v]=S.value)}let g;for(const v in l)h.has(v)||(g=g??[],g.push(v));g&&g.length>0&&i.issues.push({code:"unrecognized_keys",input:l,inst:e,keys:g})}else{i.value={};for(const h of Reflect.ownKeys(l)){if(h==="__proto__")continue;let g=n.keyType._zod.run({value:h,issues:[]},r);if(g instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof h=="string"&&Jv.test(h)&&g.issues.length){const x=n.keyType._zod.run({value:Number(h),issues:[]},r);if(x instanceof Promise)throw new Error("Async schemas not supported in object keys currently");x.issues.length===0&&(g=x)}if(g.issues.length){n.mode==="loose"?i.value[h]=l[h]:i.issues.push({code:"invalid_key",origin:"record",issues:g.issues.map(x=>Ja(x,r,Fa())),input:h,path:[h],inst:e});continue}const S=n.valueType._zod.run({value:l[h],issues:[]},r);S instanceof Promise?c.push(S.then(x=>{x.issues.length&&i.issues.push(...Es(h,x.issues)),i.value[g.value]=x.value})):(S.issues.length&&i.issues.push(...Es(h,S.issues)),i.value[g.value]=S.value)}}return c.length?Promise.all(c).then(()=>i):i}}),eC=K("$ZodEnum",(e,n)=>{ut.init(e,n);const i=Pv(n.entries),r=new Set(i);e._zod.values=r,e._zod.pattern=new RegExp(`^(${i.filter(l=>f_.has(typeof l)).map(l=>typeof l=="string"?Us(l):l.toString()).join("|")})$`),e._zod.parse=(l,c)=>{const d=l.value;return r.has(d)||l.issues.push({code:"invalid_value",values:i,input:d,inst:e}),l}}),tC=K("$ZodLiteral",(e,n)=>{if(ut.init(e,n),n.values.length===0)throw new Error("Cannot create literal schema with no valid values");const i=new Set(n.values);e._zod.values=i,e._zod.pattern=new RegExp(`^(${n.values.map(r=>typeof r=="string"?Us(r):r?Us(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,l)=>{const c=r.value;return i.has(c)||r.issues.push({code:"invalid_value",values:n.values,input:c,inst:e}),r}}),nC=K("$ZodTransform",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new Vv(e.constructor.name);const l=n.transform(i.value,i);if(r.async)return(l instanceof Promise?l:Promise.resolve(l)).then(d=>(i.value=d,i));if(l instanceof Promise)throw new Rs;return i.value=l,i}});function ob(e,n){return e.issues.length&&n===void 0?{issues:[],value:void 0}:e}const o0=K("$ZodOptional",(e,n)=>{ut.init(e,n),e._zod.optin="optional",e._zod.optout="optional",Ge(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Ge(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${ap(i.source)})?$`):void 0}),e._zod.parse=(i,r)=>{if(n.innerType._zod.optin==="optional"){const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>ob(c,i.value)):ob(l,i.value)}return i.value===void 0?i:n.innerType._zod.run(i,r)}}),aC=K("$ZodExactOptional",(e,n)=>{o0.init(e,n),Ge(e._zod,"values",()=>n.innerType._zod.values),Ge(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(i,r)=>n.innerType._zod.run(i,r)}),iC=K("$ZodNullable",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.innerType._zod.optin),Ge(e._zod,"optout",()=>n.innerType._zod.optout),Ge(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${ap(i.source)}|null)$`):void 0}),Ge(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),e._zod.parse=(i,r)=>i.value===null?i:n.innerType._zod.run(i,r)}),sC=K("$ZodDefault",(e,n)=>{ut.init(e,n),e._zod.optin="optional",Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);if(i.value===void 0)return i.value=n.defaultValue,i;const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>lb(c,n)):lb(l,n)}});function lb(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}const rC=K("$ZodPrefault",(e,n)=>{ut.init(e,n),e._zod.optin="optional",Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>(r.direction==="backward"||i.value===void 0&&(i.value=n.defaultValue),n.innerType._zod.run(i,r))}),oC=K("$ZodNonOptional",(e,n)=>{ut.init(e,n),Ge(e._zod,"values",()=>{const i=n.innerType._zod.values;return i?new Set([...i].filter(r=>r!==void 0)):void 0}),e._zod.parse=(i,r)=>{const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>cb(c,e)):cb(l,e)}});function cb(e,n){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:n}),e}const lC=K("$ZodCatch",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.innerType._zod.optin),Ge(e._zod,"optout",()=>n.innerType._zod.optout),Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>(i.value=c.value,c.issues.length&&(i.value=n.catchValue({...i,error:{issues:c.issues.map(d=>Ja(d,r,Fa()))},input:i.value}),i.issues=[]),i)):(i.value=l.value,l.issues.length&&(i.value=n.catchValue({...i,error:{issues:l.issues.map(c=>Ja(c,r,Fa()))},input:i.value}),i.issues=[]),i)}}),cC=K("$ZodPipe",(e,n)=>{ut.init(e,n),Ge(e._zod,"values",()=>n.in._zod.values),Ge(e._zod,"optin",()=>n.in._zod.optin),Ge(e._zod,"optout",()=>n.out._zod.optout),Ge(e._zod,"propValues",()=>n.in._zod.propValues),e._zod.parse=(i,r)=>{if(r.direction==="backward"){const c=n.out._zod.run(i,r);return c instanceof Promise?c.then(d=>ql(d,n.in,r)):ql(c,n.in,r)}const l=n.in._zod.run(i,r);return l instanceof Promise?l.then(c=>ql(c,n.out,r)):ql(l,n.out,r)}});function ql(e,n,i){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:e.value,issues:e.issues},i)}const uC=K("$ZodReadonly",(e,n)=>{ut.init(e,n),Ge(e._zod,"propValues",()=>n.innerType._zod.propValues),Ge(e._zod,"values",()=>n.innerType._zod.values),Ge(e._zod,"optin",()=>n.innerType?._zod?.optin),Ge(e._zod,"optout",()=>n.innerType?._zod?.optout),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(ub):ub(l)}});function ub(e){return e.value=Object.freeze(e.value),e}const dC=K("$ZodCustom",(e,n)=>{an.init(e,n),ut.init(e,n),e._zod.parse=(i,r)=>i,e._zod.check=i=>{const r=i.value,l=n.fn(r);if(l instanceof Promise)return l.then(c=>db(c,i,r,e));db(l,i,r,e)}});function db(e,n,i,r){if(!e){const l={code:"custom",input:i,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(l.params=r._zod.def.params),n.issues.push(so(l))}}var fb;class fC{constructor(){this._map=new WeakMap,this._idmap=new Map}add(n,...i){const r=i[0];return this._map.set(n,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,n),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(n){const i=this._map.get(n);return i&&typeof i=="object"&&"id"in i&&this._idmap.delete(i.id),this._map.delete(n),this}get(n){const i=n._zod.parent;if(i){const r={...this.get(i)??{}};delete r.id;const l={...r,...this._map.get(n)};return Object.keys(l).length?l:void 0}return this._map.get(n)}has(n){return this._map.has(n)}}function pC(){return new fC}(fb=globalThis).__zod_globalRegistry??(fb.__zod_globalRegistry=pC());const Wr=globalThis.__zod_globalRegistry;function mC(e,n){return new e({type:"string",...be(n)})}function hC(e,n){return new e({type:"string",format:"email",check:"string_format",abort:!1,...be(n)})}function pb(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...be(n)})}function gC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...be(n)})}function yC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...be(n)})}function bC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...be(n)})}function vC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...be(n)})}function SC(e,n){return new e({type:"string",format:"url",check:"string_format",abort:!1,...be(n)})}function xC(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...be(n)})}function wC(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...be(n)})}function jC(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...be(n)})}function NC(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...be(n)})}function kC(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...be(n)})}function AC(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...be(n)})}function _C(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...be(n)})}function CC(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...be(n)})}function TC(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...be(n)})}function EC(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...be(n)})}function OC(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...be(n)})}function zC(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...be(n)})}function DC(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...be(n)})}function RC(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...be(n)})}function MC(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...be(n)})}function BC(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...be(n)})}function LC(e,n){return new e({type:"string",format:"date",check:"string_format",...be(n)})}function qC(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...be(n)})}function UC(e,n){return new e({type:"string",format:"duration",check:"string_format",...be(n)})}function $C(e,n){return new e({type:"number",checks:[],...be(n)})}function VC(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...be(n)})}function IC(e,n){return new e({type:"boolean",...be(n)})}function PC(e){return new e({type:"unknown"})}function GC(e,n){return new e({type:"never",...be(n)})}function mb(e,n){return new e0({check:"less_than",...be(n),value:e,inclusive:!1})}function of(e,n){return new e0({check:"less_than",...be(n),value:e,inclusive:!0})}function hb(e,n){return new t0({check:"greater_than",...be(n),value:e,inclusive:!1})}function lf(e,n){return new t0({check:"greater_than",...be(n),value:e,inclusive:!0})}function gb(e,n){return new s2({check:"multiple_of",...be(n),value:e})}function l0(e,n){return new o2({check:"max_length",...be(n),maximum:e})}function nc(e,n){return new l2({check:"min_length",...be(n),minimum:e})}function c0(e,n){return new c2({check:"length_equals",...be(n),length:e})}function HC(e,n){return new u2({check:"string_format",format:"regex",...be(n),pattern:e})}function QC(e){return new d2({check:"string_format",format:"lowercase",...be(e)})}function KC(e){return new f2({check:"string_format",format:"uppercase",...be(e)})}function ZC(e,n){return new p2({check:"string_format",format:"includes",...be(n),includes:e})}function YC(e,n){return new m2({check:"string_format",format:"starts_with",...be(n),prefix:e})}function XC(e,n){return new h2({check:"string_format",format:"ends_with",...be(n),suffix:e})}function Qs(e){return new g2({check:"overwrite",tx:e})}function FC(e){return Qs(n=>n.normalize(e))}function JC(){return Qs(e=>e.trim())}function WC(){return Qs(e=>e.toLowerCase())}function eT(){return Qs(e=>e.toUpperCase())}function tT(){return Qs(e=>u_(e))}function nT(e,n,i){return new e({type:"array",element:n,...be(i)})}function aT(e,n,i){return new e({type:"custom",check:"custom",fn:n,...be(i)})}function iT(e){const n=sT(i=>(i.addIssue=r=>{if(typeof r=="string")i.issues.push(so(r,i.value,n._zod.def));else{const l=r;l.fatal&&(l.continue=!1),l.code??(l.code="custom"),l.input??(l.input=i.value),l.inst??(l.inst=n),l.continue??(l.continue=!n._zod.def.abort),i.issues.push(so(l))}},e(i.value,i)));return n}function sT(e,n){const i=new an({check:"custom",...be(n)});return i._zod.check=e,i}function u0(e){let n=e?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Wr,target:n,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function At(e,n,i={path:[],schemaPath:[]}){var r;const l=e._zod.def,c=n.seen.get(e);if(c)return c.count++,i.schemaPath.includes(e)&&(c.cycle=i.path),c.schema;const d={schema:{},count:1,cycle:void 0,path:i.path};n.seen.set(e,d);const h=e._zod.toJSONSchema?.();if(h)d.schema=h;else{const S={...i,schemaPath:[...i.schemaPath,e],path:i.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,d.schema,S);else{const N=d.schema,_=n.processors[l.type];if(!_)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${l.type}`);_(e,n,N,S)}const x=e._zod.parent;x&&(d.ref||(d.ref=x),At(x,n,S),n.seen.get(x).isParent=!0)}const g=n.metadataRegistry.get(e);return g&&Object.assign(d.schema,g),n.io==="input"&&Gt(e)&&(delete d.schema.examples,delete d.schema.default),n.io==="input"&&d.schema._prefault&&((r=d.schema).default??(r.default=d.schema._prefault)),delete d.schema._prefault,n.seen.get(e).schema}function d0(e,n){const i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const d of e.seen.entries()){const h=e.metadataRegistry.get(d[0])?.id;if(h){const g=r.get(h);if(g&&g!==d[0])throw new Error(`Duplicate schema id "${h}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(h,d[0])}}const l=d=>{const h=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const x=e.external.registry.get(d[0])?.id,N=e.external.uri??(O=>O);if(x)return{ref:N(x)};const _=d[1].defId??d[1].schema.id??`schema${e.counter++}`;return d[1].defId=_,{defId:_,ref:`${N("__shared")}#/${h}/${_}`}}if(d[1]===i)return{ref:"#"};const v=`#/${h}/`,S=d[1].schema.id??`__schema${e.counter++}`;return{defId:S,ref:v+S}},c=d=>{if(d[1].schema.$ref)return;const h=d[1],{ref:g,defId:v}=l(d);h.def={...h.schema},v&&(h.defId=v);const S=h.schema;for(const x in S)delete S[x];S.$ref=g};if(e.cycles==="throw")for(const d of e.seen.entries()){const h=d[1];if(h.cycle)throw new Error(`Cycle detected: #/${h.cycle?.join("/")}/<root>
|
|
51
51
|
|
|
52
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const d of e.seen.entries()){const h=d[1];if(n===d[0]){c(d);continue}if(e.external){const v=e.external.registry.get(d[0])?.id;if(n!==d[0]&&v){c(d);continue}}if(e.metadataRegistry.get(d[0])?.id){c(d);continue}if(h.cycle){c(d);continue}if(h.count>1&&e.reused==="ref"){c(d);continue}}}function f0(e,n){const i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=d=>{const h=e.seen.get(d);if(h.ref===null)return;const g=h.def??h.schema,v={...g},S=h.ref;if(h.ref=null,S){r(S);const N=e.seen.get(S),_=N.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(g.allOf=g.allOf??[],g.allOf.push(_)):Object.assign(g,_),Object.assign(g,v),d._zod.parent===S)for(const k in g)k==="$ref"||k==="allOf"||k in v||delete g[k];if(_.$ref&&N.def)for(const k in g)k==="$ref"||k==="allOf"||k in N.def&&JSON.stringify(g[k])===JSON.stringify(N.def[k])&&delete g[k]}const x=d._zod.parent;if(x&&x!==S){r(x);const N=e.seen.get(x);if(N?.schema.$ref&&(g.$ref=N.schema.$ref,N.def))for(const _ in g)_==="$ref"||_==="allOf"||_ in N.def&&JSON.stringify(g[_])===JSON.stringify(N.def[_])&&delete g[_]}e.override({zodSchema:d,jsonSchema:g,path:h.path??[]})};for(const d of[...e.seen.entries()].reverse())r(d[0]);const l={};if(e.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?l.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?l.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const d=e.external.registry.get(n)?.id;if(!d)throw new Error("Schema is missing an `id` property");l.$id=e.external.uri(d)}Object.assign(l,i.def??i.schema);const c=e.external?.defs??{};for(const d of e.seen.entries()){const h=d[1];h.def&&h.defId&&(c[h.defId]=h.def)}e.external||Object.keys(c).length>0&&(e.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{const d=JSON.parse(JSON.stringify(l));return Object.defineProperty(d,"~standard",{value:{...n["~standard"],jsonSchema:{input:ac(n,"input",e.processors),output:ac(n,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function Gt(e,n){const i=n??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Gt(r.element,i);if(r.type==="set")return Gt(r.valueType,i);if(r.type==="lazy")return Gt(r.getter(),i);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Gt(r.innerType,i);if(r.type==="intersection")return Gt(r.left,i)||Gt(r.right,i);if(r.type==="record"||r.type==="map")return Gt(r.keyType,i)||Gt(r.valueType,i);if(r.type==="pipe")return Gt(r.in,i)||Gt(r.out,i);if(r.type==="object"){for(const l in r.shape)if(Gt(r.shape[l],i))return!0;return!1}if(r.type==="union"){for(const l of r.options)if(Gt(l,i))return!0;return!1}if(r.type==="tuple"){for(const l of r.items)if(Gt(l,i))return!0;return!!(r.rest&&Gt(r.rest,i))}return!1}const sT=(e,n={})=>i=>{const r=u0({...i,processors:n});return At(e,r),d0(r,e),f0(r,e)},ac=(e,n,i={})=>r=>{const{libraryOptions:l,target:c}=r??{},d=u0({...l??{},target:c,io:n,processors:i});return At(e,d),d0(d,e),f0(d,e)},rT={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},oT=(e,n,i,r)=>{const l=i;l.type="string";const{minimum:c,maximum:d,format:h,patterns:g,contentEncoding:v}=e._zod.bag;if(typeof c=="number"&&(l.minLength=c),typeof d=="number"&&(l.maxLength=d),h&&(l.format=rT[h]??h,l.format===""&&delete l.format,h==="time"&&delete l.format),v&&(l.contentEncoding=v),g&&g.size>0){const S=[...g];S.length===1?l.pattern=S[0].source:S.length>1&&(l.allOf=[...S.map(x=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:x.source}))])}},lT=(e,n,i,r)=>{const l=i,{minimum:c,maximum:d,format:h,multipleOf:g,exclusiveMaximum:v,exclusiveMinimum:S}=e._zod.bag;typeof h=="string"&&h.includes("int")?l.type="integer":l.type="number",typeof S=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.minimum=S,l.exclusiveMinimum=!0):l.exclusiveMinimum=S),typeof c=="number"&&(l.minimum=c,typeof S=="number"&&n.target!=="draft-04"&&(S>=c?delete l.minimum:delete l.exclusiveMinimum)),typeof v=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.maximum=v,l.exclusiveMaximum=!0):l.exclusiveMaximum=v),typeof d=="number"&&(l.maximum=d,typeof v=="number"&&n.target!=="draft-04"&&(v<=d?delete l.maximum:delete l.exclusiveMaximum)),typeof g=="number"&&(l.multipleOf=g)},cT=(e,n,i,r)=>{i.type="boolean"},uT=(e,n,i,r)=>{i.not={}},dT=(e,n,i,r)=>{},fT=(e,n,i,r)=>{const l=e._zod.def,c=Pv(l.entries);c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),i.enum=c},pT=(e,n,i,r)=>{const l=e._zod.def,c=[];for(const d of l.values)if(d===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof d=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");c.push(Number(d))}else c.push(d);if(c.length!==0)if(c.length===1){const d=c[0];i.type=d===null?"null":typeof d,n.target==="draft-04"||n.target==="openapi-3.0"?i.enum=[d]:i.const=d}else c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),c.every(d=>typeof d=="boolean")&&(i.type="boolean"),c.every(d=>d===null)&&(i.type="null"),i.enum=c},mT=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},hT=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},gT=(e,n,i,r)=>{const l=i,c=e._zod.def,{minimum:d,maximum:h}=e._zod.bag;typeof d=="number"&&(l.minItems=d),typeof h=="number"&&(l.maxItems=h),l.type="array",l.items=At(c.element,n,{...r,path:[...r.path,"items"]})},yT=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object",l.properties={};const d=c.shape;for(const v in d)l.properties[v]=At(d[v],n,{...r,path:[...r.path,"properties",v]});const h=new Set(Object.keys(d)),g=new Set([...h].filter(v=>{const S=c.shape[v]._zod;return n.io==="input"?S.optin===void 0:S.optout===void 0}));g.size>0&&(l.required=Array.from(g)),c.catchall?._zod.def.type==="never"?l.additionalProperties=!1:c.catchall?c.catchall&&(l.additionalProperties=At(c.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(l.additionalProperties=!1)},bT=(e,n,i,r)=>{const l=e._zod.def,c=l.inclusive===!1,d=l.options.map((h,g)=>At(h,n,{...r,path:[...r.path,c?"oneOf":"anyOf",g]}));c?i.oneOf=d:i.anyOf=d},vT=(e,n,i,r)=>{const l=e._zod.def,c=At(l.left,n,{...r,path:[...r.path,"allOf",0]}),d=At(l.right,n,{...r,path:[...r.path,"allOf",1]}),h=v=>"allOf"in v&&Object.keys(v).length===1,g=[...h(c)?c.allOf:[c],...h(d)?d.allOf:[d]];i.allOf=g},ST=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object";const d=c.keyType,g=d._zod.bag?.patterns;if(c.mode==="loose"&&g&&g.size>0){const S=At(c.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});l.patternProperties={};for(const x of g)l.patternProperties[x.source]=S}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(l.propertyNames=At(c.keyType,n,{...r,path:[...r.path,"propertyNames"]})),l.additionalProperties=At(c.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const v=d._zod.values;if(v){const S=[...v].filter(x=>typeof x=="string"||typeof x=="number");S.length>0&&(l.required=S)}},xT=(e,n,i,r)=>{const l=e._zod.def,c=At(l.innerType,n,r),d=n.seen.get(e);n.target==="openapi-3.0"?(d.ref=l.innerType,i.nullable=!0):i.anyOf=[c,{type:"null"}]},wT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},jT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.default=JSON.parse(JSON.stringify(l.defaultValue))},NT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,n.io==="input"&&(i._prefault=JSON.parse(JSON.stringify(l.defaultValue)))},kT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType;let d;try{d=l.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}i.default=d},AT=(e,n,i,r)=>{const l=e._zod.def,c=n.io==="input"?l.in._zod.def.type==="transform"?l.out:l.in:l.out;At(c,n,r);const d=n.seen.get(e);d.ref=c},_T=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.readOnly=!0},p0=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},CT=K("ZodISODateTime",(e,n)=>{T2.init(e,n),ft.init(e,n)});function TT(e){return MC(CT,e)}const ET=K("ZodISODate",(e,n)=>{E2.init(e,n),ft.init(e,n)});function OT(e){return BC(ET,e)}const zT=K("ZodISOTime",(e,n)=>{O2.init(e,n),ft.init(e,n)});function DT(e){return LC(zT,e)}const RT=K("ZodISODuration",(e,n)=>{z2.init(e,n),ft.init(e,n)});function MT(e){return qC(RT,e)}const BT=(e,n)=>{Kv.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>w_(e,i)},flatten:{value:i=>x_(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,_f,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,_f,2)}},isEmpty:{get(){return e.issues.length===0}}})},Tn=K("ZodError",BT,{Parent:Error}),LT=sp(Tn),qT=rp(Tn),UT=hc(Tn),$T=gc(Tn),VT=k_(Tn),IT=A_(Tn),PT=__(Tn),GT=C_(Tn),HT=T_(Tn),QT=E_(Tn),KT=O_(Tn),ZT=z_(Tn),dt=K("ZodType",(e,n)=>(ut.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ac(e,"input"),output:ac(e,"output")}}),e.toJSONSchema=sT(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...i)=>e.clone(ei(n,{checks:[...n.checks??[],...i.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(i,r)=>ti(e,i,r),e.brand=()=>e,e.register=((i,r)=>(i.add(e,r),e)),e.parse=(i,r)=>LT(e,i,r,{callee:e.parse}),e.safeParse=(i,r)=>UT(e,i,r),e.parseAsync=async(i,r)=>qT(e,i,r,{callee:e.parseAsync}),e.safeParseAsync=async(i,r)=>$T(e,i,r),e.spa=e.safeParseAsync,e.encode=(i,r)=>VT(e,i,r),e.decode=(i,r)=>IT(e,i,r),e.encodeAsync=async(i,r)=>PT(e,i,r),e.decodeAsync=async(i,r)=>GT(e,i,r),e.safeEncode=(i,r)=>HT(e,i,r),e.safeDecode=(i,r)=>QT(e,i,r),e.safeEncodeAsync=async(i,r)=>KT(e,i,r),e.safeDecodeAsync=async(i,r)=>ZT(e,i,r),e.refine=(i,r)=>e.check(VE(i,r)),e.superRefine=i=>e.check(IE(i)),e.overwrite=i=>e.check(Qs(i)),e.optional=()=>vb(e),e.exactOptional=()=>CE(e),e.nullable=()=>Sb(e),e.nullish=()=>vb(Sb(e)),e.nonoptional=i=>RE(e,i),e.array=()=>A(e),e.or=i=>bc([e,i]),e.and=i=>wE(e,i),e.transform=i=>xb(e,AE(i)),e.default=i=>OE(e,i),e.prefault=i=>DE(e,i),e.catch=i=>BE(e,i),e.pipe=i=>xb(e,i),e.readonly=()=>UE(e),e.describe=i=>{const r=e.clone();return Wr.add(r,{description:i}),r},Object.defineProperty(e,"description",{get(){return Wr.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return Wr.get(e);const r=e.clone();return Wr.add(r,i[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),m0=K("_ZodString",(e,n)=>{op.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>oT(e,r,l);const i=e._zod.bag;e.format=i.format??null,e.minLength=i.minimum??null,e.maxLength=i.maximum??null,e.regex=(...r)=>e.check(GC(...r)),e.includes=(...r)=>e.check(KC(...r)),e.startsWith=(...r)=>e.check(ZC(...r)),e.endsWith=(...r)=>e.check(YC(...r)),e.min=(...r)=>e.check(nc(...r)),e.max=(...r)=>e.check(l0(...r)),e.length=(...r)=>e.check(c0(...r)),e.nonempty=(...r)=>e.check(nc(1,...r)),e.lowercase=r=>e.check(HC(r)),e.uppercase=r=>e.check(QC(r)),e.trim=()=>e.check(FC()),e.normalize=(...r)=>e.check(XC(...r)),e.toLowerCase=()=>e.check(JC()),e.toUpperCase=()=>e.check(WC()),e.slugify=()=>e.check(eT())}),YT=K("ZodString",(e,n)=>{op.init(e,n),m0.init(e,n),e.email=i=>e.check(mC(XT,i)),e.url=i=>e.check(vC(FT,i)),e.jwt=i=>e.check(RC(fE,i)),e.emoji=i=>e.check(SC(JT,i)),e.guid=i=>e.check(pb(yb,i)),e.uuid=i=>e.check(hC(Ul,i)),e.uuidv4=i=>e.check(gC(Ul,i)),e.uuidv6=i=>e.check(yC(Ul,i)),e.uuidv7=i=>e.check(bC(Ul,i)),e.nanoid=i=>e.check(xC(WT,i)),e.guid=i=>e.check(pb(yb,i)),e.cuid=i=>e.check(wC(eE,i)),e.cuid2=i=>e.check(jC(tE,i)),e.ulid=i=>e.check(NC(nE,i)),e.base64=i=>e.check(OC(cE,i)),e.base64url=i=>e.check(zC(uE,i)),e.xid=i=>e.check(kC(aE,i)),e.ksuid=i=>e.check(AC(iE,i)),e.ipv4=i=>e.check(_C(sE,i)),e.ipv6=i=>e.check(CC(rE,i)),e.cidrv4=i=>e.check(TC(oE,i)),e.cidrv6=i=>e.check(EC(lE,i)),e.e164=i=>e.check(DC(dE,i)),e.datetime=i=>e.check(TT(i)),e.date=i=>e.check(OT(i)),e.time=i=>e.check(DT(i)),e.duration=i=>e.check(MT(i))});function p(e){return pC(YT,e)}const ft=K("ZodStringFormat",(e,n)=>{ct.init(e,n),m0.init(e,n)}),XT=K("ZodEmail",(e,n)=>{S2.init(e,n),ft.init(e,n)}),yb=K("ZodGUID",(e,n)=>{b2.init(e,n),ft.init(e,n)}),Ul=K("ZodUUID",(e,n)=>{v2.init(e,n),ft.init(e,n)}),FT=K("ZodURL",(e,n)=>{x2.init(e,n),ft.init(e,n)}),JT=K("ZodEmoji",(e,n)=>{w2.init(e,n),ft.init(e,n)}),WT=K("ZodNanoID",(e,n)=>{j2.init(e,n),ft.init(e,n)}),eE=K("ZodCUID",(e,n)=>{N2.init(e,n),ft.init(e,n)}),tE=K("ZodCUID2",(e,n)=>{k2.init(e,n),ft.init(e,n)}),nE=K("ZodULID",(e,n)=>{A2.init(e,n),ft.init(e,n)}),aE=K("ZodXID",(e,n)=>{_2.init(e,n),ft.init(e,n)}),iE=K("ZodKSUID",(e,n)=>{C2.init(e,n),ft.init(e,n)}),sE=K("ZodIPv4",(e,n)=>{D2.init(e,n),ft.init(e,n)}),rE=K("ZodIPv6",(e,n)=>{R2.init(e,n),ft.init(e,n)}),oE=K("ZodCIDRv4",(e,n)=>{M2.init(e,n),ft.init(e,n)}),lE=K("ZodCIDRv6",(e,n)=>{B2.init(e,n),ft.init(e,n)}),cE=K("ZodBase64",(e,n)=>{L2.init(e,n),ft.init(e,n)}),uE=K("ZodBase64URL",(e,n)=>{U2.init(e,n),ft.init(e,n)}),dE=K("ZodE164",(e,n)=>{$2.init(e,n),ft.init(e,n)}),fE=K("ZodJWT",(e,n)=>{I2.init(e,n),ft.init(e,n)}),h0=K("ZodNumber",(e,n)=>{a0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>lT(e,r,l),e.gt=(r,l)=>e.check(hb(r,l)),e.gte=(r,l)=>e.check(lf(r,l)),e.min=(r,l)=>e.check(lf(r,l)),e.lt=(r,l)=>e.check(mb(r,l)),e.lte=(r,l)=>e.check(of(r,l)),e.max=(r,l)=>e.check(of(r,l)),e.int=r=>e.check(bb(r)),e.safe=r=>e.check(bb(r)),e.positive=r=>e.check(hb(0,r)),e.nonnegative=r=>e.check(lf(0,r)),e.negative=r=>e.check(mb(0,r)),e.nonpositive=r=>e.check(of(0,r)),e.multipleOf=(r,l)=>e.check(gb(r,l)),e.step=(r,l)=>e.check(gb(r,l)),e.finite=()=>e;const i=e._zod.bag;e.minValue=Math.max(i.minimum??Number.NEGATIVE_INFINITY,i.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(i.maximum??Number.POSITIVE_INFINITY,i.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(i.format??"").includes("int")||Number.isSafeInteger(i.multipleOf??.5),e.isFinite=!0,e.format=i.format??null});function y(e){return UC(h0,e)}const pE=K("ZodNumberFormat",(e,n)=>{P2.init(e,n),h0.init(e,n)});function bb(e){return $C(pE,e)}const mE=K("ZodBoolean",(e,n)=>{G2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>cT(e,i,r)});function oe(e){return VC(mE,e)}const hE=K("ZodUnknown",(e,n)=>{H2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>dT()});function Ln(){return IC(hE)}const gE=K("ZodNever",(e,n)=>{Q2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>uT(e,i,r)});function yE(e){return PC(gE,e)}const bE=K("ZodArray",(e,n)=>{K2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>gT(e,i,r,l),e.element=n.element,e.min=(i,r)=>e.check(nc(i,r)),e.nonempty=i=>e.check(nc(1,i)),e.max=(i,r)=>e.check(l0(i,r)),e.length=(i,r)=>e.check(c0(i,r)),e.unwrap=()=>e.element});function A(e,n){return tT(bE,e,n)}const vE=K("ZodObject",(e,n)=>{Y2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>yT(e,i,r,l),Ge(e,"shape",()=>n.shape),e.keyof=()=>te(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Ln()}),e.loose=()=>e.clone({...e._zod.def,catchall:Ln()}),e.strict=()=>e.clone({...e._zod.def,catchall:yE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>g_(e,i),e.safeExtend=i=>y_(e,i),e.merge=i=>b_(e,i),e.pick=i=>m_(e,i),e.omit=i=>h_(e,i),e.partial=(...i)=>v_(b0,e,i[0]),e.required=(...i)=>S_(v0,e,i[0])});function w(e,n){const i={type:"object",shape:e??{},...be(n)};return new vE(i)}const g0=K("ZodUnion",(e,n)=>{r0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>bT(e,i,r,l),e.options=n.options});function bc(e,n){return new g0({type:"union",options:e,...be(n)})}const SE=K("ZodDiscriminatedUnion",(e,n)=>{g0.init(e,n),X2.init(e,n)});function y0(e,n,i){return new SE({type:"union",options:n,discriminator:e,...be(i)})}const xE=K("ZodIntersection",(e,n)=>{F2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>vT(e,i,r,l)});function wE(e,n){return new xE({type:"intersection",left:e,right:n})}const jE=K("ZodRecord",(e,n)=>{J2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>ST(e,i,r,l),e.keyType=n.keyType,e.valueType=n.valueType});function rt(e,n,i){return new jE({type:"record",keyType:e,valueType:n,...be(i)})}const Tf=K("ZodEnum",(e,n)=>{W2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>fT(e,r,l),e.enum=n.entries,e.options=Object.values(n.entries);const i=new Set(Object.keys(n.entries));e.extract=(r,l)=>{const c={};for(const d of r)if(i.has(d))c[d]=n.entries[d];else throw new Error(`Key ${d} not found in enum`);return new Tf({...n,checks:[],...be(l),entries:c})},e.exclude=(r,l)=>{const c={...n.entries};for(const d of r)if(i.has(d))delete c[d];else throw new Error(`Key ${d} not found in enum`);return new Tf({...n,checks:[],...be(l),entries:c})}});function te(e,n){const i=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Tf({type:"enum",entries:i,...be(n)})}const NE=K("ZodLiteral",(e,n)=>{eC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>pT(e,i,r),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function vt(e,n){return new NE({type:"literal",values:Array.isArray(e)?e:[e],...be(n)})}const kE=K("ZodTransform",(e,n)=>{tC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>hT(e,i),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new Vv(e.constructor.name);i.addIssue=c=>{if(typeof c=="string")i.issues.push(so(c,i.value,n));else{const d=c;d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=i.value),d.inst??(d.inst=e),i.issues.push(so(d))}};const l=n.transform(i.value,i);return l instanceof Promise?l.then(c=>(i.value=c,i)):(i.value=l,i)}});function AE(e){return new kE({type:"transform",transform:e})}const b0=K("ZodOptional",(e,n)=>{o0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>p0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function vb(e){return new b0({type:"optional",innerType:e})}const _E=K("ZodExactOptional",(e,n)=>{nC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>p0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function CE(e){return new _E({type:"optional",innerType:e})}const TE=K("ZodNullable",(e,n)=>{aC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>xT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function Sb(e){return new TE({type:"nullable",innerType:e})}const EE=K("ZodDefault",(e,n)=>{iC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>jT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function OE(e,n){return new EE({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Hv(n)}})}const zE=K("ZodPrefault",(e,n)=>{sC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>NT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function DE(e,n){return new zE({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Hv(n)}})}const v0=K("ZodNonOptional",(e,n)=>{rC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>wT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function RE(e,n){return new v0({type:"nonoptional",innerType:e,...be(n)})}const ME=K("ZodCatch",(e,n)=>{oC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>kT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function BE(e,n){return new ME({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const LE=K("ZodPipe",(e,n)=>{lC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>AT(e,i,r,l),e.in=n.in,e.out=n.out});function xb(e,n){return new LE({type:"pipe",in:e,out:n})}const qE=K("ZodReadonly",(e,n)=>{cC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>_T(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function UE(e){return new qE({type:"readonly",innerType:e})}const $E=K("ZodCustom",(e,n)=>{uC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>mT(e,i)});function VE(e,n={}){return nT($E,e,n)}function IE(e){return aT(e)}const S0=w({id:p(),name:p(),keyPrefix:p(),scopes:A(p()),projectId:p().nullable(),readOnly:oe(),createdAt:p(),lastUsedAt:p().nullable(),revokedAt:p().nullable()});w({keys:A(S0)});w({name:p().min(1).max(100),scopes:A(p()).min(1).optional(),projectId:p().optional()});S0.extend({key:p()});const PE=w({maxConcurrency:y().int().positive(),maxRequestsPerMinute:y().int().positive(),maxRequestsPerDay:y().int().positive()}),ya=p().min(1);p().min(1);const vc=w({label:p().min(1),city:p().min(1),region:p().min(1),country:p().length(2),timezone:p().optional()}),lp=te(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high"]);w({id:p(),projectId:p(),channel:vt("webhook"),url:p().url(),urlDisplay:p(),urlHost:p(),events:A(lp),enabled:oe().default(!0),source:p().optional(),webhookSecret:p().optional(),createdAt:p(),updatedAt:p()});w({channel:vt("webhook"),url:p().url(),events:A(lp).min(1),source:p().optional()});const x0=te(["cli","api","config-file"]);function GE(e){const n=new Set,i=new Set;for(const r of e){if(n.has(r.label)){i.add(r.label);continue}n.add(r.label)}return[...i]}function HE(e,n){return n?e.some(i=>i.label===n):!0}w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional(),aliases:A(p()).optional(),country:p().length(2),language:p().min(2),tags:A(p()).optional(),labels:rt(p(),p()).optional(),providers:A(ya).optional(),locations:A(vc).optional(),defaultLocation:p().nullable().optional(),autoExtractBacklinks:oe().optional(),configSource:x0.optional()});const QE=w({id:p(),name:p(),displayName:p().optional(),canonicalDomain:p(),ownedDomains:A(p()).default([]),aliases:A(p()).default([]),country:p().length(2),language:p().min(2),tags:A(p()).default([]),labels:rt(p(),p()).default({}),providers:A(p()).default([]),locations:A(vc).default([]),defaultLocation:p().nullable().optional(),autoExtractBacklinks:oe().default(!1),configSource:x0.default("cli"),configRevision:y().int().positive().default(1),createdAt:p().optional(),updatedAt:p().optional()});w({id:p(),query:p(),createdAt:p()});w({id:p(),keyword:p(),createdAt:p()});w({queries:A(p().trim().min(1)).min(1)});w({keywords:A(p().trim().min(1)).min(1)});w({provider:ya,count:y().int().min(1).max(20).optional()});w({id:p(),domain:p(),createdAt:p()});w({competitors:A(p().trim().min(1)).min(1)});function ic(e){let n=e.trim().toLowerCase();try{n.includes("://")&&(n=new URL(n).hostname.toLowerCase())}catch{}return n.replace(/^www\./,"")}const KE=new Set(["ac.uk","co.id","co.il","co.in","co.jp","co.kr","co.nz","co.th","co.uk","co.za","com.au","com.br","com.cn","com.mx","com.ph","com.sg","com.tr","edu.au","edu.sg","gov.au","gov.uk","me.uk","ne.jp","net.au","net.br","net.cn","net.in","net.tr","or.jp","or.kr","org.au","org.br","org.in","org.nz","org.tr","org.uk","org.za"]);function ZE(e){const n=ic(e);if(!n)return"";const i=n.split("/")[0]?.split(":")[0]??"";if(!i)return"";const r=i.split(".").filter(Boolean);if(r.length<2)return"";if(r.length===2)return r.join(".");const l=r.slice(-2).join(".");return KE.has(l)?r.length>=3?r.slice(-3).join("."):"":r.slice(-2).join(".")}function YE(e){const n=ZE(e);return n?n.split(".")[0]??"":""}function XE(e){const n=[e.canonicalDomain,...e.ownedDomains??[]],i=new Set,r=[];for(const l of n){const c=l.trim();if(!c)continue;const d=ic(c);i.has(d)||(i.add(d),r.push(c))}return r}const FE=w({name:p().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:rt(p(),p()).optional().default({})}),JE=w({preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),providers:A(ya).optional().default([])}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),WE=w({channel:vt("webhook"),url:p().url(),events:A(lp).min(1)}),eO=w({gsc:w({propertyUrl:p()}).optional(),syncSchedule:w({preset:p().optional(),cron:p().optional()}).optional()}).optional(),wb=A(p().min(1)),tO=w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional().default([]),aliases:A(p().min(1)).optional().default([]),country:p().length(2),language:p().min(2),queries:wb.optional(),keywords:wb.optional(),competitors:A(p().min(1)).optional().default([]),providers:A(ya).optional().default([]),locations:A(vc).optional().default([]),defaultLocation:p().optional(),schedule:JE,notifications:A(WE).optional().default([]),google:eO,autoExtractBacklinks:oe().optional().default(!1)}).superRefine((e,n)=>{e.queries!==void 0&&e.keywords!==void 0&&n.addIssue({code:"custom",message:"Use spec.queries; spec.keywords is accepted only as a legacy alias when spec.queries is omitted",path:["keywords"]});const i=GE(e.locations);i.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),HE(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});w({apiVersion:vt("canonry/v1"),kind:vt("Project"),metadata:FE,spec:tO});const nO=te(["gsc","ga4","gbp"]);w({id:p(),domain:p(),connectionType:nO,propertyId:p().nullable().optional(),sitemapUrl:p().nullable().optional(),scopes:A(p()).default([]),createdAt:p(),updatedAt:p()});w({date:p(),query:p(),page:p(),country:p().nullable().optional(),device:p().nullable().optional(),clicks:y(),impressions:y(),ctr:y(),position:y()});const aO=w({date:p(),clicks:y(),impressions:y(),ctr:y()});w({totals:w({clicks:y(),impressions:y(),ctr:y(),days:y()}),daily:A(aO)});const Ef=w({id:p(),url:p(),indexingState:p().nullable().optional(),verdict:p().nullable().optional(),coverageState:p().nullable().optional(),pageFetchState:p().nullable().optional(),robotsTxtState:p().nullable().optional(),crawlTime:p().nullable().optional(),lastCrawlResult:p().nullable().optional(),isMobileFriendly:oe().nullable().optional(),richResults:A(p()).default([]),referringUrls:A(p()).default([]),inspectedAt:p()});te(["stable","reindexed","deindexed","still-missing","new"]);const iO=w({url:p(),previousState:p().nullable(),currentState:p().nullable(),transitionDate:p()}),sO=w({reason:p(),count:y(),urls:A(Ef).default([])});w({summary:w({total:y(),indexed:y(),notIndexed:y(),deindexed:y(),percentage:y()}),lastInspectedAt:p().nullable(),lastSyncedAt:p().nullable(),indexed:A(Ef).default([]),notIndexed:A(Ef).default([]),deindexed:A(iO).default([]),reasonGroups:A(sO).default([])});w({url:p(),type:te(["URL_UPDATED","URL_DELETED"]),notifiedAt:p()});const rO=w({url:p(),type:te(["URL_UPDATED","URL_DELETED"]),notifiedAt:p(),status:te(["success","error"]),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(rO).default([])});w({date:p(),indexed:y(),notIndexed:y(),reasonBreakdown:rt(p(),y()).default({})});const oO=w({siteUrl:p(),permissionLevel:p()});w({sites:A(oO).default([])});const lO=w({type:p(),submitted:p(),indexed:p()}),cO=w({path:p(),lastSubmitted:p().optional(),isPending:oe().optional(),isSitemapsIndex:oe().optional(),type:p().optional(),lastDownloaded:p().optional(),warnings:p().optional(),errors:p().optional(),contents:A(lO).optional()});w({sitemaps:A(cO).default([])});const uO=w({name:p(),accountName:p().nullable(),type:p().nullable(),role:p().nullable()});w({accounts:A(uO),total:y().int().nonnegative()});const dO=w({id:p(),projectId:p(),accountName:p(),locationName:p(),displayName:p(),primaryCategoryDisplayName:p().nullable(),storefrontAddress:p().nullable(),websiteUri:p().nullable(),placeId:p().nullable(),mapsUri:p().nullable(),additionalCategories:A(p()),description:p().nullable(),serviceArea:rt(p(),Ln()).nullable(),regularHours:rt(p(),Ln()).nullable(),primaryPhone:p().nullable(),openStatus:p().nullable(),openingDate:p().nullable(),selected:oe(),syncedAt:p().nullable(),createdAt:p(),updatedAt:p()});w({locations:A(dO),totalDiscovered:y().int().nonnegative(),totalSelected:y().int().nonnegative()});w({selectAllNew:oe().default(!0),accountName:p().optional(),switchAccount:oe().default(!1)});w({selected:oe()});w({locationNames:A(p()).optional(),daysOfMetrics:y().int().positive().max(540).optional(),monthsOfKeywords:y().int().positive().max(18).optional()});w({runId:p(),status:p()});const fO=w({locationName:p(),date:p(),metric:p(),value:y().int()});w({metrics:A(fO),total:y().int().nonnegative()});const pO=w({locationName:p(),periodStart:p(),periodEnd:p(),keyword:p(),valueCount:y().int().nullable(),valueThreshold:y().int().nullable()});w({keywords:A(pO),total:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)});const mO=w({locationName:p(),placeActionLinkName:p(),placeActionType:p(),uri:p().nullable(),isPreferred:oe(),providerType:p().nullable()});w({placeActions:A(mO),total:y().int().nonnegative()});const hO=w({locationName:p(),populatedGroupCount:y().int().nonnegative(),syncedAt:p(),attributes:rt(p(),Ln())});w({lodging:A(hO),total:y().int().nonnegative()});const gO=w({name:p(),valueType:p(),values:A(bc([oe(),p()])),unsetValues:A(p()),uris:A(p())}),yO=w({locationName:p(),attributeCount:y().int().nonnegative(),syncedAt:p(),attributes:A(gO)});w({attributes:A(yO),total:y().int().nonnegative()});const bO=w({locationName:p(),placeId:p(),tier:p(),amenities:A(p()),syncedAt:p(),place:rt(p(),Ln())});w({places:A(bO),total:y().int().nonnegative()});w({scope:w({locationName:p().nullable(),locationCount:y().int().nonnegative()}),performance:w({totals:rt(p(),y()),recent7d:rt(p(),y()),prior7d:rt(p(),y()),deltaPct:rt(p(),y().nullable())}),freshness:w({dataThroughDate:p().nullable(),latestStoredDate:p().nullable(),pendingDays:y().int().nonnegative()}),timeseries:A(w({date:p(),pending:oe(),metrics:rt(p(),y())})),keywords:w({total:y().int().nonnegative(),thresholdedCount:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)}),placeActions:w({total:y().int().nonnegative(),hasReservationCta:oe(),hasBookingCta:oe(),hasDirectMerchantCta:oe()}),lodging:w({lodgingLocationCount:y().int().nonnegative(),populatedLodgingCount:y().int().nonnegative(),emptyLodgingCount:y().int().nonnegative()}),profileCompleteness:w({locationCount:y().int().nonnegative(),withSecondaryCategories:y().int().nonnegative(),secondaryCategoryTotal:y().int().nonnegative(),withDescription:y().int().nonnegative(),withServiceArea:y().int().nonnegative(),withHours:y().int().nonnegative(),withPrimaryPhone:y().int().nonnegative(),permanentlyClosed:y().int().nonnegative(),temporarilyClosed:y().int().nonnegative()})});const vO={BUSINESS_DIRECTION_REQUESTS:"Direction requests",WEBSITE_CLICKS:"Website clicks",CALL_CLICKS:"Call clicks",BUSINESS_BOOKINGS:"Bookings",BUSINESS_CONVERSATIONS:"Conversations",BUSINESS_FOOD_ORDERS:"Food orders",BUSINESS_FOOD_MENU_CLICKS:"Food menu clicks",BUSINESS_IMPRESSIONS_DESKTOP_SEARCH:"Search impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_SEARCH:"Search impressions (mobile)",BUSINESS_IMPRESSIONS_DESKTOP_MAPS:"Maps impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_MAPS:"Maps impressions (mobile)"};function SO(e){const n=e.replace(/^BUSINESS_/,"").split("_").filter(Boolean).map(r=>r.toLowerCase());if(n.length===0)return e;const i=n.join(" ");return i.charAt(0).toUpperCase()+i.slice(1)}function K5(e){return vO[e]??SO(e)}const xO=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],wO=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function Z5(e){return xO.includes(e)?"conversion":wO.includes(e)?"reach":"other"}w({id:p(),domain:p(),siteUrl:p().nullable().optional(),createdAt:p(),updatedAt:p()});const cf=w({id:p(),url:p(),httpCode:y().nullable().optional(),inIndex:oe().nullable().optional(),lastCrawledDate:p().nullable().optional(),inIndexDate:p().nullable().optional(),inspectedAt:p(),documentSize:y().nullable().optional(),anchorCount:y().nullable().optional(),discoveryDate:p().nullable().optional()});w({summary:w({total:y(),indexed:y(),notIndexed:y(),unknown:y().optional(),percentage:y()}),lastInspectedAt:p().nullable(),indexed:A(cf).default([]),notIndexed:A(cf).default([]),unknown:A(cf).default([]).optional()});w({query:p(),impressions:y(),clicks:y(),ctr:y(),averagePosition:y()});w({date:p(),indexed:y(),notIndexed:y(),unknown:y()});const jO=w({url:p(),status:te(["success","error"]),submittedAt:p(),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(jO).default([])});const w0=w({url:p(),verified:oe()});w({sites:A(w0).default([])});w({connected:oe(),domain:p(),siteUrl:p().nullable(),createdAt:p().nullable(),updatedAt:p().nullable()});w({connected:oe(),domain:p(),siteUrl:p().nullable(),availableSites:A(w0).default([])});w({siteUrl:p()});const NO=w({name:p(),alive:oe(),lastUsed:p().nullable()});w({connected:oe(),endpoint:p(),version:p().optional(),browserVersion:p().optional(),targets:A(NO).default([])});const Ks=te(["live","staging"]);w({projectName:p(),url:p(),stagingUrl:p().optional(),username:p(),defaultEnv:Ks,createdAt:p(),updatedAt:p()});const jb=w({url:p(),reachable:oe(),pageCount:y().nullable().optional(),version:p().nullable().optional(),error:p().nullable().optional(),plugins:A(p()).optional(),authenticatedUser:w({id:y(),slug:p()}).nullable().optional()});w({connected:oe(),projectName:p(),defaultEnv:Ks,live:jb.nullable(),staging:jb.nullable(),adminUrl:p().nullable().optional()});const kO=w({id:y(),slug:p(),title:p(),status:p(),modifiedAt:p().nullable().optional(),link:p().nullable().optional()}),j0=w({title:p().nullable(),description:p().nullable(),noindex:oe().nullable(),writable:oe().default(!1),writeTargets:A(p()).default([])}),AO=w({type:p(),json:rt(p(),Ln())}),_O=kO.extend({env:Ks,content:p(),seo:j0,schemaBlocks:A(AO).default([])}),Nb=_O.extend({contentHash:p(),contentSnippet:p()}),N0=w({manualRequired:vt(!0),targetUrl:p(),adminUrl:p().nullable().optional(),content:p(),nextSteps:A(p()).default([])}),CO=w({slug:p(),severity:te(["high","medium","low"]),code:te(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:p()});w({slug:p(),title:p(),status:p(),wordCount:y(),seo:j0,schemaPresent:oe(),issues:A(CO).default([])});const TO=w({slug:p(),status:te(["applied","skipped","manual"]),error:p().optional(),manualAssist:N0.optional()});w({env:Ks,strategy:te(["plugin","manual"]),results:A(TO)});const EO=w({slug:p(),status:te(["deployed","stripped","skipped","failed"]),schemasInjected:A(p()).optional(),manualAssist:N0.optional(),error:p().optional()});w({env:Ks,results:A(EO)});const OO=w({slug:p(),title:p(),canonrySchemas:A(p()),thirdPartySchemas:A(p()),hasCanonrySchema:oe()});w({env:Ks,pages:A(OO)});const zO=w({name:p(),status:te(["completed","skipped","failed"]),summary:p().optional(),error:p().optional()});w({projectName:p(),steps:A(zO)});w({slug:p(),live:Nb,staging:Nb,hasDifferences:oe(),differences:w({title:oe(),slug:oe(),content:oe(),seoTitle:oe(),seoDescription:oe(),noindex:oe(),schema:oe()})});const DO=w({name:p(),displayName:p().optional(),keyUrl:p().optional(),modelHint:p().optional(),model:p().optional(),defaultModel:p().optional(),configured:oe(),quota:PE.optional(),vertexConfigured:oe().optional()}),kb=w({configured:oe()});w({providers:A(DO).default([]),google:kb,bing:kb});const Zs=te(["queued","running","completed","partial","failed","cancelled"]),Qt=Zs.enum,k0=te(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),ke=k0.enum,A0=te(["manual","scheduled","config-apply","backfill","probe"]),Ms=A0.enum,Ai=te(["cited","not-cited"]),sc=Ai.enum,rc=te(["visible","not-visible"]);rc.enum;const oc=te(["mentioned","not-mentioned"]);oc.enum;const _0=te(["new","cited","lost","emerging","not-cited"]);_0.enum;const RO=te(["new","mentioned","lost","emerging","not-mentioned"]);RO.enum;const MO=te([Ms.manual,Ms.probe]);w({kind:vt(ke["answer-visibility"]).optional(),trigger:MO.optional(),providers:A(ya).optional(),queries:A(p().min(1)).min(1).optional(),location:p().min(1).optional(),allLocations:oe().optional(),noLocation:oe().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const BO=w({message:p(),raw:Ln().optional()}),LO=w({message:p().optional(),providers:rt(p(),BO).optional()}),qO=w({id:p(),projectId:p(),kind:k0,status:Zs,trigger:A0.default("manual"),location:p().nullable().optional(),queries:A(p()).nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),error:LO.nullable().optional(),createdAt:p()});function cp(e){if(e.providers){const n=Object.entries(e.providers);if(n.length===1){const[i,r]=n[0];return`${i}: ${r.message}`}if(n.length>1)return n.map(([i,r])=>`${i}: ${r.message}`).join(" • ")}return e.message??"Run failed."}const C0=w({uri:p(),title:p()}),T0=w({id:p(),runId:p(),queryId:p(),query:p().optional(),provider:ya,citationState:Ai,answerMentioned:oe().optional(),visibilityState:rc.optional(),mentionState:oc.optional(),transition:_0.optional(),answerText:p().nullable().optional(),citedDomains:A(p()).default([]),competitorOverlap:A(p()).default([]),recommendedCompetitors:A(p()).default([]),matchedTerms:A(p()).default([]),groundingSources:A(C0).default([]),searchQueries:A(p()).default([]),model:p().nullable().optional(),location:p().nullable().optional(),createdAt:p()});w({snapshots:A(T0),total:y().int().nonnegative()});const UO=w({queryId:p().nullable(),query:p().nullable(),run1State:Ai.nullable(),run2State:Ai.nullable(),run1AnswerMentioned:oe().nullable(),run2AnswerMentioned:oe().nullable(),run1VisibilityState:rc.nullable(),run2VisibilityState:rc.nullable(),run1MentionState:oc.nullable().optional(),run2MentionState:oc.nullable().optional(),changed:oe(),visibilityChanged:oe()});w({run1:p(),run2:p(),diff:A(UO)});const $O=qO.extend({snapshots:A(T0).optional()}),VO=w({totalRuns:y().int().nonnegative(),run:$O.nullable()});w({id:p(),projectId:p().nullable().optional(),actor:p(),action:p(),entityType:p(),entityId:p().nullable().optional(),diff:Ln().optional(),createdAt:p()});const IO=te(["yes","no","unknown","not-mentioned"]),Ab=A(p().min(1));w({companyName:p().min(1),domain:p().min(1),queries:Ab.optional(),phrases:Ab.optional(),competitors:A(p().min(1)).optional().default([])}).superRefine((e,n)=>{e.queries!==void 0&&e.phrases!==void 0&&n.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const PO=w({name:p(),count:y().int().nonnegative()}),GO=w({id:p(),name:p(),weight:y(),score:y(),findings:A(w({type:p(),message:p()})).default([]),recommendations:A(p()).default([])}),HO=w({url:p(),finalUrl:p(),auditedAt:p(),overallScore:y(),summary:p(),factors:A(GO).default([])}),QO=w({industry:p(),summary:p(),services:A(p()).default([]),categoryTerms:A(p()).default([])}),KO=w({provider:p(),displayName:p(),model:p().nullable().optional(),mentioned:oe(),cited:oe(),describedAccurately:IO,accuracyNotes:p().nullable().optional(),incorrectClaims:A(p()).default([]),recommendedCompetitors:A(p()).default([]),citedDomains:A(p()).default([]),groundingSources:A(C0).default([]),searchQueries:A(p()).default([]),answerText:p(),error:p().nullable().optional()}),ZO=w({query:p(),providerResults:A(KO).default([])}),YO=w({totalQueries:y().int().nonnegative(),totalProviders:y().int().nonnegative(),totalComparisons:y().int().nonnegative(),mentionCount:y().int().nonnegative(),citationCount:y().int().nonnegative(),topCompetitors:A(PO).default([]),visibilityGap:p(),whatThisMeans:A(p()).default([]),recommendedActions:A(p()).default([])});w({companyName:p(),domain:p(),homepageUrl:p(),generatedAt:p(),queries:A(p()).default([]),competitors:A(p()).default([]),profile:QO,audit:HO,queryResults:A(ZO).default([]),summary:YO});const E0=te(["pass","partial","fail"]);E0.enum;const O0=te(["up","down","flat"]);O0.enum;const XO=w({id:p(),name:p(),weight:y(),avgScore:y(),status:E0,pagesPassing:y().int().nonnegative(),pagesPartial:y().int().nonnegative(),pagesFailing:y().int().nonnegative()}),FO=w({factorId:p(),factorName:p(),avgScore:y(),affectedPages:y().int().nonnegative(),totalPages:y().int().nonnegative(),affectedPct:y().int().nonnegative(),topRecommendations:A(p()).default([])});w({project:p(),hasData:oe(),runId:p().nullable(),runStatus:Zs.nullable(),sitemapUrl:p().nullable(),auditedAt:p().nullable(),aggregateScore:y(),pagesDiscovered:y().int().nonnegative(),pagesAudited:y().int().nonnegative(),pagesSkipped:y().int().nonnegative(),pagesErrored:y().int().nonnegative(),deltaScore:y().nullable(),trend:O0.nullable(),previousScore:y().nullable(),previousAuditedAt:p().nullable(),factors:A(XO).default([]),crossCuttingIssues:A(FO).default([]),prioritizedFixes:A(p()).default([])});const JO=w({id:p(),name:p(),weight:y(),score:y()}),WO=w({url:p(),overallScore:y(),status:te(["success","error"]),error:p().nullable().optional(),factors:A(JO).default([])});w({project:p(),runId:p().nullable(),auditedAt:p().nullable(),total:y().int().nonnegative(),pages:A(WO).default([])});const ez=w({runId:p(),auditedAt:p(),aggregateScore:y(),pagesAudited:y().int().nonnegative()});w({project:p(),points:A(ez).default([])});w({sitemapUrl:p().url().optional(),limit:y().int().positive().max(2e3).optional()});w({runId:p(),status:Zs});const up=te(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync"]);up.enum;w({id:p(),projectId:p(),kind:up,cronExpr:p(),preset:p().nullable().optional(),timezone:p().default("UTC"),enabled:oe().default(!0),providers:A(ya).default([]),sourceId:p().nullable().optional(),lastRunAt:p().nullable().optional(),nextRunAt:p().nullable().optional(),createdAt:p(),updatedAt:p()});w({kind:up.optional(),preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),enabled:oe().optional().default(!0),providers:A(ya).optional().default([]),sourceId:p().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const dp=te(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);dp.enum;const fp=te(["cited","aspirational","wasted-surface"]),_b=fp.enum;_b.cited,_b.aspirational;const Sc=te(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),tz=Sc.enum;tz["direct-competitor"];const xc=te(["queued","seeding","probing","completed","failed"]);xc.enum;const z0=w({domain:p().min(1),hits:y().int().positive(),competitorType:Sc.default("unknown")}),nz=w({id:p(),sessionId:p(),projectId:p(),query:p(),bucket:fp.nullable().default(null),citationState:Ai,citedDomains:A(p()).default([]),answerMentioned:oe().nullable().default(null),createdAt:p()}),az=w({id:p(),projectId:p(),status:xc,icpDescription:p().nullable().optional(),seedProvider:p().nullable().optional(),seedCountRaw:y().int().nullable().optional(),seedCount:y().int().nullable().optional(),seedFromAnswerCount:y().int().nullable().optional(),seedFromGroundingCount:y().int().nullable().optional(),seedBrandFilteredCount:y().int().nullable().optional(),buyerDescription:p().nullable().optional(),locations:A(vc).nullable().optional(),seedRawCandidates:A(p()).nullable().optional(),dedupClusterMinSims:A(y()).nullable().optional(),dedupBandPairFraction:y().nullable().optional(),dedupPairsTotal:y().int().nullable().optional(),seedProviders:A(p()).nullable().optional(),seedProviderCounts:rt(p(),y().int()).nullable().optional(),canonicalCount:y().int().nullable().optional(),dedupThreshold:y().nullable().optional(),probeCount:y().int().nullable().optional(),citedCount:y().int().nullable().default(null),aspirationalCount:y().int().nullable().default(null),wastedCount:y().int().nullable().default(null),competitorMap:A(z0).default([]),warning:p().nullable().optional(),error:p().nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),createdAt:p()});az.extend({probes:A(nz).default([])});const iz=500,sz=8,rz=["gemini","openai"],oz=te(rz);w({icpDescription:p().min(1).optional(),buyerDescription:p().min(1).optional(),seedProviders:A(oz).min(1).transform(e=>[...new Set(e)].sort()).optional(),dedupThreshold:y().min(0).max(1).optional(),maxProbes:y().int().positive().max(iz).optional(),probeConcurrency:y().int().min(1).max(sz).optional(),locations:A(p().min(1)).optional()});w({buckets:A(fp).min(1).optional(),includeCompetitors:oe().optional(),competitorTypes:A(Sc).min(1).optional()});w({sessionId:p(),projectId:p(),status:xc,queriesByBucket:w({cited:A(p()),aspirational:A(p()),"wasted-surface":A(p())}),suggestedCompetitors:A(z0)});w({sessionId:p(),projectId:p(),promoted:w({queries:A(p()),competitors:A(p())}),skipped:w({queries:A(p()),competitors:A(p())})});bc([vt("cli"),p().regex(/^discovery:.+$/)]);const lz=w({query:p().min(1),probeHits:y().int().positive()}),cz=w({rawCandidates:y().int().nonnegative(),admitted:y().int().nonnegative(),rejected:w({belowFloor:y().int().nonnegative(),length:y().int().nonnegative(),navigational:y().int().nonnegative(),duplicate:y().int().nonnegative(),offAnchor:y().int().nonnegative(),semanticDuplicate:y().int().nonnegative()})});w({sessionId:p(),projectId:p(),provider:p(),status:xc,minProbeHits:y().int().positive(),anchorApplied:oe(),semanticNoveltyApplied:oe(),candidates:A(lz),stats:cz});const pp=te(["own","direct-competitor","ota-aggregator","editorial-media","other"]);pp.enum;const D0=te(["7d","30d","90d","all"]),Cb=te(["improving","declining","stable"]),uz=te(["mentioned","cited"]);uz.enum;const Of=w({citationRate:y(),cited:y().int(),total:y().int(),mentionRate:y(),mentionedCount:y().int()}),dz=w({rate:y().nullable(),projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative()}),fz=w({startDate:p(),endDate:p(),citationRate:y(),cited:y().int(),total:y().int(),queryCount:y().int(),mentionRate:y(),mentionedCount:y().int(),mentionShare:dz,byProvider:rt(p(),Of)}),pz=w({date:p(),delta:y().int(),label:p()});w({window:D0,buckets:A(fz),overall:Of,byProvider:rt(p(),Of),trend:Cb,mentionTrend:Cb,queryChanges:A(pz)});const Tb=w({category:dp,label:p(),count:y().int(),percentage:y(),topDomains:A(w({domain:p(),count:y().int()}))}),mz=w({domain:p(),count:y().int(),percentage:y(),category:dp,label:p(),surfaceClass:pp}),hz=w({surfaceClass:pp,label:p(),count:y().int(),percentage:y(),domainCount:y().int()}),Eb=w({totalCitedSlots:y().int(),domainTotal:y().int(),entries:A(mz),truncatedDomainCount:y().int(),truncatedCitedSlots:y().int(),bySurfaceClass:A(hz)});w({overall:A(Tb),byQuery:rt(p(),A(Tb)),ranked:Eb,byProvider:rt(p(),Eb),runId:p(),window:D0,limit:y().int().nullable()});const mp=w({total:y().int(),checked:y().int(),mentioned:y().int(),cited:y().int(),mentionRate:y().nullable(),citedRate:y().nullable()}),R0=mp.extend({provider:p(),firstObserved:p(),lastObserved:p()}),gz=mp.extend({queryId:p().nullable(),query:p(),firstObserved:p(),lastObserved:p(),providers:A(R0).optional()}),yz=w({since:p().nullable(),until:p().nullable(),lastRuns:y().int().nullable(),runCount:y().int()}),bz=te(["provider"]),vz=w({domain:p(),mentions:y().int()}),Sz=w({percent:y().nullable(),projectMentions:y().int(),competitorMentions:y().int(),snapshotsWithAnswerText:y().int(),perCompetitor:A(vz)});w({project:p(),groupBy:bz.optional(),window:yz,totals:mp,byProvider:A(R0).optional(),queries:A(gz),shareOfVoice:Sz.optional()});w({id:p(),projectId:p(),propertyId:p(),clientEmail:p(),connected:oe(),createdAt:p(),updatedAt:p()});w({date:p(),landingPage:p(),sessions:y(),organicSessions:y(),users:y()});const hp=te(["session","first_user","manual_utm"]),xz=w({source:p(),medium:p(),sessions:y(),users:y(),sourceDimension:hp}),wz=w({source:p(),medium:p(),sourceDimension:hp,landingPage:p(),sessions:y(),users:y()}),jz=w({source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()}),Zr=w({sessions:y(),sharePct:y(),sharePctDisplay:p()}),Nz=w({organic:Zr,social:Zr,direct:Zr,ai:Zr,other:Zr});w({totalSessions:y(),totalOrganicSessions:y(),totalDirectSessions:y(),totalUsers:y(),topPages:A(w({landingPage:p(),sessions:y(),organicSessions:y(),directSessions:y(),users:y()})),aiReferrals:A(xz),aiReferralLandingPages:A(wz),aiSessionsDeduped:y(),aiUsersDeduped:y(),aiSessionsBySession:y(),aiUsersBySession:y(),socialReferrals:A(jz),socialSessions:y(),socialUsers:y(),channelBreakdown:Nz,organicSharePct:y(),aiSharePct:y(),aiSharePctBySession:y(),directSharePct:y(),socialSharePct:y(),organicSharePctDisplay:p(),aiSharePctDisplay:p(),aiSharePctBySessionDisplay:p(),directSharePctDisplay:p(),socialSharePctDisplay:p(),otherSessions:y(),otherSharePct:y(),otherSharePctDisplay:p(),lastSyncedAt:p().nullable()});w({connected:oe(),propertyId:p().nullable(),clientEmail:p().nullable(),authMethod:te(["service-account","oauth"]).nullable(),lastSyncedAt:p().nullable(),createdAt:p().nullable().optional(),updatedAt:p().nullable().optional()});w({synced:oe(),rowCount:y().int().nonnegative(),aiReferralCount:y().int().nonnegative(),socialReferralCount:y().int().nonnegative(),days:y().int().nonnegative(),syncedAt:p(),syncedComponents:A(p()).optional()});w({date:p(),source:p(),medium:p(),landingPage:p(),sessions:y(),users:y(),sourceDimension:hp});w({date:p(),source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()});w({date:p(),sessions:y(),organicSessions:y(),users:y()});function lc(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}const M0=te(["claude","openai","gemini","zai","deepinfra"]),kz=w({id:M0,label:p(),defaultModel:p(),configured:oe(),keySource:te(["config","env"]).nullable()});w({providers:A(kz).default([]),defaultProvider:M0.nullable()});const Az=te(["aero","user","compaction"]);Az.enum;const B0=128;w({key:p().min(1).max(B0),value:p().min(1)});w({key:p().min(1).max(B0)});const Ys=te(["commoncrawl","bing-webmaster"]);Ys.enum;const gp=te(["queued","downloading","querying","ready","failed"]);gp.enum;w({id:p(),release:p(),status:gp,phaseDetail:p().nullable().optional(),vertexPath:p().nullable().optional(),edgesPath:p().nullable().optional(),vertexSha256:p().nullable().optional(),edgesSha256:p().nullable().optional(),vertexBytes:y().int().nullable().optional(),edgesBytes:y().int().nullable().optional(),projectsProcessed:y().int().nullable().optional(),domainsDiscovered:y().int().nullable().optional(),downloadStartedAt:p().nullable().optional(),downloadFinishedAt:p().nullable().optional(),queryStartedAt:p().nullable().optional(),queryFinishedAt:p().nullable().optional(),error:p().nullable().optional(),createdAt:p(),updatedAt:p()});const _z=w({linkingDomain:p(),numHosts:y().int(),source:Ys}),Cz=w({projectId:p(),release:p(),targetDomain:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys,excludedLinkingDomains:y().int().optional(),excludedHosts:y().int().optional()});w({source:Ys,summary:Cz.nullable(),total:y().int(),rows:A(_z)});w({release:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys});const Tz=w({source:Ys,connected:oe(),hasData:oe(),latestRelease:p().nullable(),totalLinkingDomains:y().int(),lastSyncedAt:p().nullable()});w({projectId:p(),targetDomain:p(),sources:A(Tz),anyConnected:oe(),anyData:oe()});w({duckdbInstalled:oe(),duckdbVersion:p().nullable().optional(),duckdbSpec:p(),pluginDir:p()});w({installed:oe(),version:p(),path:p(),alreadyPresent:oe()});w({release:p(),vertexUrl:p(),edgesUrl:p(),vertexBytes:y().int().nullable(),edgesBytes:y().int().nullable(),lastModified:p().nullable()});w({release:p(),syncStatus:gp.nullable(),bytes:y().int(),lastUsedAt:p().nullable()});const yp=te(["positive","caution","negative","neutral"]),Za=w({label:p(),value:p(),delta:p(),tone:yp,description:p(),tooltip:p().optional(),trend:A(y()),progress:y().optional(),providerCoverage:p().optional()}),Ez=Za.extend({breakdown:w({projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative(),perCompetitor:A(w({domain:p(),mentionSnapshots:y().int().nonnegative(),shareOfCompetitiveTotal:y()})),snapshotsWithAnswerText:y().int().nonnegative(),snapshotsTotal:y().int().nonnegative()})}),uf=w({gained:y().int().nonnegative(),lost:y().int().nonnegative(),tone:yp,hasPreviousRun:oe(),gainedQueries:A(p()).optional(),lostQueries:A(p()).optional()}),Oz=w({hasPreviousRun:oe(),comparable:oe(),querySetChanged:oe(),previousRunAt:p().nullable(),currentQueryCount:y().int().nonnegative(),previousQueryCount:y().int().nonnegative(),comparableQueryCount:y().int().nonnegative(),addedQueryCount:y().int().nonnegative(),removedQueryCount:y().int().nonnegative(),addedQueries:A(p()),removedQueries:A(p())}),zz=w({id:p(),projectId:p(),runId:p().nullable(),type:te(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:te(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:w({action:p(),target:p().optional(),reason:p()}).optional(),cause:w({cause:p(),competitorDomain:p().optional(),details:p().optional()}).optional(),dismissed:oe(),createdAt:p()}),Dz=w({id:p(),projectId:p(),runId:p().nullable(),overallCitedRate:y(),overallMentionRate:y(),totalPairs:y().int().nonnegative(),citedPairs:y().int().nonnegative(),mentionedPairs:y().int().nonnegative(),providerBreakdown:rt(p(),w({citedRate:y(),mentionRate:y(),cited:y().int().nonnegative(),mentioned:y().int().nonnegative(),total:y().int().nonnegative()})),createdAt:p(),status:te(["ready","no-data"]),reason:vt("no-runs-yet").optional()});w({project:QE,latestRun:VO,health:Dz.nullable(),topInsights:A(zz),queryCounts:w({totalQueries:y().int().nonnegative(),citedQueries:y().int().nonnegative(),notCitedQueries:y().int().nonnegative(),citedRate:y(),mentionedQueries:y().int().nonnegative(),notMentionedQueries:y().int().nonnegative(),mentionRate:y()}),providers:A(w({provider:p(),citedRate:y(),cited:y().int().nonnegative(),total:y().int().nonnegative()})),transitions:w({since:p().nullable(),gained:y().int().nonnegative(),lost:y().int().nonnegative(),emerging:y().int().nonnegative()}),scores:w({mention:Za,visibility:Za,mentionShare:Ez,gapQueries:Za,mentionGaps:Za,indexCoverage:Za,competitorPressure:Za,runStatus:Za}),movementSummary:uf,citationMovement:uf,mentionMovement:uf,movementComparison:Oz,competitors:A(w({id:p(),domain:p(),citationCount:y().int().nonnegative(),totalQueries:y().int().nonnegative(),pressureLabel:te(["None","Low","Moderate","High"]),citedQueries:A(p())})),providerScores:A(w({provider:p(),model:p().nullable(),score:y(),cited:y().int().nonnegative(),total:y().int().nonnegative(),trend:A(y()).optional()})),attentionItems:A(w({id:p(),tone:yp,title:p(),detail:p(),actionLabel:p(),href:p()})),runHistory:A(w({runId:p(),createdAt:p(),citedCount:y().int().nonnegative(),totalCount:y().int().nonnegative(),citationRate:y(),mentionedCount:y().int().nonnegative(),mentionRate:y(),status:p()})),suggestedQueries:w({rows:A(w({query:p(),impressions:y(),clicks:y(),avgPosition:y(),reason:p()})),totalCandidates:y().int().nonnegative(),skippedAlreadyTracked:y().int().nonnegative()}),dateRangeLabel:p(),contextLabel:p()});te(["snapshot","insight"]);const Rz=w({kind:vt("snapshot"),id:p(),runId:p(),query:p(),provider:p(),model:p().nullable(),citationState:Ai,matchedField:te(["answerText","citedDomains","searchQueries","query"]),snippet:p(),createdAt:p()}),Mz=w({kind:vt("insight"),id:p(),runId:p().nullable(),type:te(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:te(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),matchedField:te(["title","query","recommendation","cause"]),snippet:p(),dismissed:oe(),createdAt:p()}),Bz=y0("kind",[Rz,Mz]);w({query:p(),totalHits:y().int().nonnegative(),truncated:oe(),hits:A(Bz)});const L0=te(["create","expand","refresh","add-schema"]);L0.enum;function Y5(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const q0=te(["gsc","competitor-evidence","both"]);q0.enum;const U0=te(["high","medium","low"]);U0.enum;const Lz=te(["blog-post","comparison","listicle","how-to","guide","glossary"]);Lz.enum;const $0=te(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);$0.enum;const bp=te(["ownable","ceded"]);bp.enum;const qz=w({url:p(),gscImpressions:y().nonnegative(),gscClicks:y().nonnegative(),gscAvgPosition:y().nonnegative().nullable(),organicSessions:y().nonnegative()}),Uz=w({domain:p(),url:p(),title:p(),citationCount:y().int().nonnegative()}),$z=w({demand:y(),competitor:y(),absence:y(),gapSeverity:y()}),Vz=w({actionId:p(),state:$0,lastUpdated:p()}),V0=w({targetRef:p(),query:p(),action:L0,ourBestPage:qz.nullable(),winningCompetitor:Uz.nullable(),score:y(),scoreBreakdown:$z,drivers:A(p()),demandSource:q0,actionConfidence:U0,existingAction:Vz.nullable(),winnabilityClass:bp,winnability:y().min(0).max(1).nullable()});w({targets:A(V0),contextMetrics:w({totalAiReferralSessions:y().int().nonnegative(),latestRunId:p(),runTimestamp:p()})});const Iz=w({targetRef:p(),addressedUrl:p().nullable(),note:p().nullable(),dismissedAt:p()});w({dismissals:A(Iz)});w({targetRef:p().min(1),addressedUrl:p().url().optional(),note:p().max(500).optional()});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),responseText:p(),costMillicents:y().int().nonnegative(),generatedAt:p()});w({provider:p().optional(),model:p().optional(),forceRefresh:oe().optional()});const Pz=w({targetQuery:p().trim().min(1),winnabilityClass:bp,angle:p().trim().min(1),whyWinnable:p().trim().min(1),schemaHookup:p().trim().min(1),controllableSurfaceRationale:p().trim().min(1)});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),brief:Pz,costMillicents:y().int().nonnegative(),generatedAt:p()});const Gz=w({domain:p(),competitorType:Sc,hits:y().int().nonnegative(),updatedAt:p()});w({classifications:A(Gz)});const Hz=w({uri:p(),title:p(),domain:p(),isOurDomain:oe(),isCompetitor:oe(),citationCount:y().int().nonnegative(),providers:A(ya)}),I0=w({query:p(),groundingSources:A(Hz)});w({sources:A(I0),latestRunId:p()});const P0=w({query:p(),competitorDomains:A(p()),competitorCount:y().int().nonnegative(),missRate:y().min(0).max(1),lastSeenInRunId:p()});w({gaps:A(P0),latestRunId:p()});const G0=te(["ok","warn","fail","skipped"]);G0.enum;const vp=te(["global","project"]);vp.enum;const H0=te(["auth","config","providers","integrations","database","schedules","agent"]);H0.enum;const Qz=w({id:p(),category:H0,scope:vp,title:p(),status:G0,code:p().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:p(),remediation:p().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:rt(p(),Ln()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:y().int().nonnegative().describe("How long the check took to execute.")});w({scope:vp,project:p().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:p().describe("ISO-8601 timestamp when this doctor run started."),durationMs:y().int().nonnegative(),summary:w({total:y().int().nonnegative(),ok:y().int().nonnegative(),warn:y().int().nonnegative(),fail:y().int().nonnegative(),skipped:y().int().nonnegative()}),checks:A(Qz)});const Kz=w({provider:p(),citationState:Ai,cited:oe(),mentioned:oe(),runId:p(),runCreatedAt:p()}),Zz=w({queryId:p(),query:p(),providers:A(Kz),citedCount:y().int().nonnegative(),mentionedCount:y().int().nonnegative(),totalProviders:y().int().nonnegative()}),Yz=w({queryId:p(),query:p(),provider:p(),citingCompetitors:A(p()),runId:p(),runCreatedAt:p()}),Xz=w({providersConfigured:y().int().nonnegative(),providersCiting:y().int().nonnegative(),providersMentioning:y().int().nonnegative(),totalQueries:y().int().nonnegative(),queriesCitedAndMentioned:y().int().nonnegative(),queriesCitedOnly:y().int().nonnegative(),queriesMentionedOnly:y().int().nonnegative(),queriesInvisible:y().int().nonnegative(),latestRunId:p().nullable(),latestRunAt:p().nullable()});w({summary:Xz,byQuery:A(Zz),competitorGaps:A(Yz),status:te(["ready","no-data"]),reason:te(["no-runs-yet","no-queries"]).optional()});const X5=[7,14,30,90],F5=30;bc([vt(7),vt(14),vt(30),vt(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const Fz=te(["prompt","request-param","browser-geo","ignored"]),Jz=w({label:p(),city:p(),region:p(),country:p(),otherConfiguredLabels:A(p())}),Wz=w({provider:p(),treatment:Fz,description:p()}),eD=w({generatedAt:p(),project:w({id:p(),name:p(),displayName:p(),canonicalDomain:p(),country:p(),language:p()}),location:Jz.nullable(),providerLocationHandling:A(Wz),periodStart:p().nullable(),periodEnd:p().nullable(),periodDays:y().int().positive()}),tD=w({citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),trend:te(["up","down","flat","unknown"]),queryCount:y(),competitorCount:y(),providerCount:y(),gsc:w({clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),periodStart:p(),periodEnd:p()}).nullable(),ga:w({sessions:y(),users:y(),periodStart:p(),periodEnd:p()}).nullable(),findings:A(w({title:p(),detail:p(),tone:te(["positive","caution","negative","neutral"])}))}),nD=w({citationState:te(["cited","not-cited","pending"]),answerMentioned:oe().nullable(),model:p().nullable()}),aD=w({queries:A(p()),providers:A(p()),matrix:A(A(nD.nullable())),providerRates:A(w({provider:p(),citedCount:y(),mentionedCount:y(),totalCount:y(),citationRate:y(),mentionRate:y()}))}),iD=w({domain:p(),citationCount:y(),totalCount:y(),pressureLabel:te(["High","Moderate","Low","None"]),citedQueries:A(p()),sharePct:y(),theirCitedPages:A(w({url:p(),citedFor:A(p())}))}),sD=w({projectCitationCount:y(),competitors:A(iD)}),rD=w({domain:p(),mentionCount:y(),totalCount:y(),pressureLabel:te(["High","Moderate","Low","None"]),mentionedQueries:A(p()),sharePct:y()}),oD=w({projectMentionCount:y(),totalAnswerSnapshots:y(),competitors:A(rD)}),lD=w({category:p(),label:p(),count:y(),sharePct:y()}),cD=w({categories:A(lD),topDomains:A(w({domain:p(),count:y(),isCompetitor:oe()}))}),uD=w({query:p(),clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),category:te(["brand","lead-gen","industry","other"])}),dD=w({periodStart:p(),periodEnd:p(),totalClicks:y(),totalImpressions:y(),ctr:y(),avgPosition:y(),topQueries:A(uD),categoryBreakdown:A(w({category:te(["brand","lead-gen","industry","other"]),clicks:y(),impressions:y(),sharePct:y()})),trend:A(w({date:p(),clicks:y(),impressions:y()})),trackedButNoGsc:A(p()),gscButNotTracked:A(p())}),fD=w({totalSessions:y(),totalUsers:y(),totalOrganicSessions:y(),periodStart:p(),periodEnd:p(),topLandingPages:A(w({page:p(),sessions:y(),users:y(),organicSessions:y()})),channelBreakdown:A(w({channel:p(),sessions:y(),sharePct:y()}))}),pD=w({totalSessions:y(),organicSessions:y(),paidSessions:y(),channels:A(w({channelGroup:p(),sessions:y(),sharePct:y()})),topCampaigns:A(w({source:p(),medium:p(),sessions:y()}))}),mD=w({totalSessions:y(),totalUsers:y(),bySource:A(w({source:p(),sessions:y(),users:y(),sharePct:y()})),trend:A(w({date:p(),sessions:y()})),topLandingPages:A(w({page:p(),sessions:y(),users:y()}))}),hD=w({windowStart:p(),windowEnd:p(),hasData:oe(),verifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),unverifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),aiUserFetchHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),referralArrivals:w({current:y(),prior:y(),deltaPct:y().nullable()}),byOperator:A(w({operator:p(),verifiedHits:y(),unverifiedHits:y(),userFetchHits:y(),referralArrivals:y(),deltaPct:y().nullable()})),topCrawledPaths:A(w({path:p(),verifiedHits:y(),distinctOperators:y()})),referralProducts:A(w({product:p(),arrivals:y(),distinctLandingPaths:y()})),dailyTrend:A(w({date:p(),verifiedCrawlerHits:y(),userFetchHits:y(),referralArrivals:y()})),topReferralLandingPaths:A(w({path:p(),arrivals:y(),distinctProducts:y()}))}),gD=w({provider:te(["google","bing"]).nullable(),total:y(),indexed:y(),notIndexed:y(),deindexed:y(),unknown:y(),indexedPct:y()}),yD=w({runId:p(),date:p(),citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),providerRates:A(w({provider:p(),citationRate:y(),mentionRate:y()}))}),zf=w({id:p(),type:te(["regression","gain","opportunity"]),severity:te(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:p().nullable(),createdAt:p(),instanceCount:y()}),bD=w({horizon:te(["immediate","short-term","medium-term"]),title:p(),rationale:p()}),As=w({current:y(),prior:y(),deltaAbs:y(),deltaPct:y().nullable(),direction:te(["up","down","flat"]),window:y().optional()}),vD=w({provider:p(),current:y(),prior:y(),deltaAbs:y(),direction:te(["up","down","flat"])}),SD=w({enoughHistory:oe(),headline:p(),citationRate:As.nullable(),mentionRate:As.nullable(),citedQueryCount:As.nullable(),mentionedQueryCount:As.nullable(),gscClicksDelta:As.nullable(),aiReferralsDelta:As.nullable(),comparisonWindowDays:y().int().positive(),providerMovements:A(vD),wins:A(zf),regressions:A(zf)});te(["agency","client"]);const xD=te(["agency","client","both"]),wD=te(["immediate","short-term","medium-term"]),jD=te(["high","medium","low"]);te(["positive","caution","negative","neutral"]);const ND=te(["content","competitors","provider","search-demand","indexing","location","monitoring"]),Sp=w({audience:xD,priority:y(),horizon:wD,category:ND,title:p(),action:p(),why:A(p()),evidence:A(p()),successMetric:p(),confidence:jD,targetRef:p().optional()}),kD=w({headline:p(),overview:p(),actionItems:A(Sp),confidenceNotes:A(p())}),AD=w({title:p(),detail:p(),severity:te(["positive","caution","negative","neutral"]),evidence:A(p())}),_D=w({priorities:A(Sp),diagnostics:A(AD)});function J5(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function W5(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function e6(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function t6(e){switch(e){case"content":return"Content";case"competitors":return"Competitors";case"provider":return"Provider";case"search-demand":return"Search demand";case"indexing":return"Indexing";case"location":return"Location";case"monitoring":return"Monitoring"}}function n6(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}w({meta:eD,executiveSummary:tD,citationScorecard:aD,competitorLandscape:sD,mentionLandscape:oD,aiSourceOrigin:cD,gsc:dD.nullable(),ga:fD.nullable(),socialReferrals:pD.nullable(),aiReferrals:mD.nullable(),serverActivity:hD.nullable(),indexingHealth:gD.nullable(),citationsTrend:A(yD),whatsChanged:SD,insights:A(zf),recommendedNextSteps:A(bD),actionPlan:A(Sp),clientSummary:kD,agencyDiagnostics:_D,contentOpportunities:A(V0),contentGaps:A(P0),groundingSources:A(I0)});const CD=te(["claude","codex"]);CD.enum;const TD=te(["claude","codex","all"]);TD.enum;const Q0=w({content:y().int().nonnegative(),sitemap:y().int().nonnegative(),robots:y().int().nonnegative(),asset:y().int().nonnegative(),other:y().int().nonnegative()}),ED=te(["content","sitemap","robots","asset","other"]),xp=te(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);xp.enum;const OD=te(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);OD.enum;const zD=te(["raw-request","aggregate-bucket"]),DD=zD.enum,RD=te(["observed","provider-aggregated","inferred"]),MD=RD.enum,BD=w({type:p().nullable(),labels:rt(p(),p())}),LD=w({sourceType:xp,evidenceKind:vt(DD["raw-request"]),confidence:vt(MD.observed),eventId:p().min(1),observedAt:p().min(1),method:p().nullable(),requestUrl:p().nullable(),host:p().nullable(),path:p().min(1),queryString:p().nullable(),status:y().int().nullable(),userAgent:p().nullable(),remoteIp:p().nullable(),referer:p().nullable(),latencyMs:y().nullable(),requestSizeBytes:y().int().nullable(),responseSizeBytes:y().int().nullable(),providerResource:BD,providerLabels:rt(p(),p())});w({events:A(LD),rawEntryCount:y().int().nonnegative(),skippedEntryCount:y().int().nonnegative(),nextPageToken:p().optional(),filter:p()});const K0=te(["connected","paused","error","archived"]),a6=K0.enum,Z0=te(["oauth","service-account"]);Z0.enum;const qD=te(["verified","claimed_unverified","unknown_ai_like"]),i6=qD.enum;w({gcpProjectId:p().min(1),serviceName:p().nullable().optional(),location:p().nullable().optional(),authMode:Z0});w({baseUrl:p().url(),username:p().min(1)});const wp=te(["production","preview"]);wp.enum;w({projectId:p().min(1),teamId:p().min(1),environment:wp});const Y0=w({id:p(),projectId:p(),sourceType:xp,displayName:p(),status:K0,lastSyncedAt:p().nullable(),lastCursor:p().nullable(),lastError:p().nullable(),archivedAt:p().nullable(),config:rt(p(),Ln()),createdAt:p(),updatedAt:p()});w({gcpProjectId:p().min(1),serviceName:p().min(1).optional(),location:p().min(1).optional(),displayName:p().min(1).optional(),keyJson:p().optional()});w({baseUrl:p().url(),username:p().min(1),applicationPassword:p().min(1),displayName:p().min(1).optional()});w({projectId:p().min(1),teamId:p().min(1),token:p().min(1),environment:wp.optional(),displayName:p().min(1).optional()});w({sourceId:p(),runId:p(),syncedAt:p(),pulledEvents:y().int().nonnegative(),selfTrafficExcluded:y().int().nonnegative(),crawlerHits:y().int().nonnegative(),aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),unknownHits:y().int().nonnegative(),crawlerBucketRows:y().int().nonnegative(),aiUserFetchBucketRows:y().int().nonnegative(),aiReferralBucketRows:y().int().nonnegative(),sampleRows:y().int().nonnegative(),windowStart:p(),windowEnd:p()});w({days:y().int().positive().optional()});w({advanceToNow:vt(!0)});w({sourceId:p(),runId:p(),status:Zs,windowStart:p(),windowEnd:p(),daysRequested:y().int().positive(),daysApplied:y().int().positive()});const UD=w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:Q0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),sampleCount:y().int().nonnegative()});w({sources:A(Y0)});const $D=Y0.extend({totals24h:UD,latestRun:w({runId:p(),status:Zs,startedAt:p().nullable(),finishedAt:p().nullable(),error:p().nullable()}).nullable()});w({sources:A($D)});const VD=te(["crawler","ai-user-fetch","ai-referral"]),jp=VD.enum,ID=w({kind:vt(jp.crawler),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),pathClass:ED,status:y().int(),hits:y().int().nonnegative()}),PD=w({kind:vt(jp["ai-user-fetch"]),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),GD=w({kind:vt(jp["ai-referral"]),sourceId:p(),tsHour:p(),product:p(),operator:p(),sourceDomain:p(),evidenceType:p(),landingPathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),HD=y0("kind",[ID,PD,GD]);w({windowStart:p(),windowEnd:p(),totals:w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:Q0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative()}),events:A(HD)});w({apiKey:p().min(1)});w({connected:oe(),adAccountId:p().nullable().optional(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),timezone:p().nullable().optional(),status:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),conversionTrackingConfigured:oe().optional()});w({disconnected:oe()});w({runId:p(),status:p()});const QD=w({type:p().nullable().optional(),title:p().nullable().optional(),body:p().nullable().optional(),targetUrl:p().nullable().optional()}),KD=w({id:p(),adGroupId:p(),name:p(),status:p(),reviewStatus:p().nullable().optional(),creative:QD.nullable().optional()}),ZD=w({id:p(),campaignId:p(),name:p(),status:p(),billingEventType:p().nullable().optional(),maxBidMicros:y().int().nullable().optional(),contextHints:A(p()).default([]),ads:A(KD).default([])}),YD=w({id:p(),name:p(),status:p(),biddingType:p().nullable().optional(),dailySpendLimitMicros:y().int().nullable().optional(),lifetimeSpendLimitMicros:y().int().nullable().optional(),adGroups:A(ZD).default([])});w({campaigns:A(YD)});const X0=te(["campaign","ad_group"]);X0.enum;const XD=w({level:X0,entityId:p(),date:p(),impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({rows:A(XD),currencyCode:p().nullable().optional()});const FD=w({impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({connected:oe(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),campaignCount:y().int(),adGroupCount:y().int(),adCount:y().int(),window:w({from:p().nullable(),to:p().nullable()}),totals:FD});var JD=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(JD||{});const s6={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},r6={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},o6=cp;function WD(e){const n=[];if(e.message&&n.push(e.message),e.providers)for(const[i,r]of Object.entries(e.providers)){const l=`[${i}] ${r.message}`;r.raw!==void 0?n.push(`${l}
|
|
52
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const d of e.seen.entries()){const h=d[1];if(n===d[0]){c(d);continue}if(e.external){const v=e.external.registry.get(d[0])?.id;if(n!==d[0]&&v){c(d);continue}}if(e.metadataRegistry.get(d[0])?.id){c(d);continue}if(h.cycle){c(d);continue}if(h.count>1&&e.reused==="ref"){c(d);continue}}}function f0(e,n){const i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=d=>{const h=e.seen.get(d);if(h.ref===null)return;const g=h.def??h.schema,v={...g},S=h.ref;if(h.ref=null,S){r(S);const N=e.seen.get(S),_=N.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(g.allOf=g.allOf??[],g.allOf.push(_)):Object.assign(g,_),Object.assign(g,v),d._zod.parent===S)for(const k in g)k==="$ref"||k==="allOf"||k in v||delete g[k];if(_.$ref&&N.def)for(const k in g)k==="$ref"||k==="allOf"||k in N.def&&JSON.stringify(g[k])===JSON.stringify(N.def[k])&&delete g[k]}const x=d._zod.parent;if(x&&x!==S){r(x);const N=e.seen.get(x);if(N?.schema.$ref&&(g.$ref=N.schema.$ref,N.def))for(const _ in g)_==="$ref"||_==="allOf"||_ in N.def&&JSON.stringify(g[_])===JSON.stringify(N.def[_])&&delete g[_]}e.override({zodSchema:d,jsonSchema:g,path:h.path??[]})};for(const d of[...e.seen.entries()].reverse())r(d[0]);const l={};if(e.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?l.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?l.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const d=e.external.registry.get(n)?.id;if(!d)throw new Error("Schema is missing an `id` property");l.$id=e.external.uri(d)}Object.assign(l,i.def??i.schema);const c=e.external?.defs??{};for(const d of e.seen.entries()){const h=d[1];h.def&&h.defId&&(c[h.defId]=h.def)}e.external||Object.keys(c).length>0&&(e.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{const d=JSON.parse(JSON.stringify(l));return Object.defineProperty(d,"~standard",{value:{...n["~standard"],jsonSchema:{input:ac(n,"input",e.processors),output:ac(n,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function Gt(e,n){const i=n??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Gt(r.element,i);if(r.type==="set")return Gt(r.valueType,i);if(r.type==="lazy")return Gt(r.getter(),i);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Gt(r.innerType,i);if(r.type==="intersection")return Gt(r.left,i)||Gt(r.right,i);if(r.type==="record"||r.type==="map")return Gt(r.keyType,i)||Gt(r.valueType,i);if(r.type==="pipe")return Gt(r.in,i)||Gt(r.out,i);if(r.type==="object"){for(const l in r.shape)if(Gt(r.shape[l],i))return!0;return!1}if(r.type==="union"){for(const l of r.options)if(Gt(l,i))return!0;return!1}if(r.type==="tuple"){for(const l of r.items)if(Gt(l,i))return!0;return!!(r.rest&&Gt(r.rest,i))}return!1}const rT=(e,n={})=>i=>{const r=u0({...i,processors:n});return At(e,r),d0(r,e),f0(r,e)},ac=(e,n,i={})=>r=>{const{libraryOptions:l,target:c}=r??{},d=u0({...l??{},target:c,io:n,processors:i});return At(e,d),d0(d,e),f0(d,e)},oT={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},lT=(e,n,i,r)=>{const l=i;l.type="string";const{minimum:c,maximum:d,format:h,patterns:g,contentEncoding:v}=e._zod.bag;if(typeof c=="number"&&(l.minLength=c),typeof d=="number"&&(l.maxLength=d),h&&(l.format=oT[h]??h,l.format===""&&delete l.format,h==="time"&&delete l.format),v&&(l.contentEncoding=v),g&&g.size>0){const S=[...g];S.length===1?l.pattern=S[0].source:S.length>1&&(l.allOf=[...S.map(x=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:x.source}))])}},cT=(e,n,i,r)=>{const l=i,{minimum:c,maximum:d,format:h,multipleOf:g,exclusiveMaximum:v,exclusiveMinimum:S}=e._zod.bag;typeof h=="string"&&h.includes("int")?l.type="integer":l.type="number",typeof S=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.minimum=S,l.exclusiveMinimum=!0):l.exclusiveMinimum=S),typeof c=="number"&&(l.minimum=c,typeof S=="number"&&n.target!=="draft-04"&&(S>=c?delete l.minimum:delete l.exclusiveMinimum)),typeof v=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.maximum=v,l.exclusiveMaximum=!0):l.exclusiveMaximum=v),typeof d=="number"&&(l.maximum=d,typeof v=="number"&&n.target!=="draft-04"&&(v<=d?delete l.maximum:delete l.exclusiveMaximum)),typeof g=="number"&&(l.multipleOf=g)},uT=(e,n,i,r)=>{i.type="boolean"},dT=(e,n,i,r)=>{i.not={}},fT=(e,n,i,r)=>{},pT=(e,n,i,r)=>{const l=e._zod.def,c=Pv(l.entries);c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),i.enum=c},mT=(e,n,i,r)=>{const l=e._zod.def,c=[];for(const d of l.values)if(d===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof d=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");c.push(Number(d))}else c.push(d);if(c.length!==0)if(c.length===1){const d=c[0];i.type=d===null?"null":typeof d,n.target==="draft-04"||n.target==="openapi-3.0"?i.enum=[d]:i.const=d}else c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),c.every(d=>typeof d=="boolean")&&(i.type="boolean"),c.every(d=>d===null)&&(i.type="null"),i.enum=c},hT=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},gT=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},yT=(e,n,i,r)=>{const l=i,c=e._zod.def,{minimum:d,maximum:h}=e._zod.bag;typeof d=="number"&&(l.minItems=d),typeof h=="number"&&(l.maxItems=h),l.type="array",l.items=At(c.element,n,{...r,path:[...r.path,"items"]})},bT=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object",l.properties={};const d=c.shape;for(const v in d)l.properties[v]=At(d[v],n,{...r,path:[...r.path,"properties",v]});const h=new Set(Object.keys(d)),g=new Set([...h].filter(v=>{const S=c.shape[v]._zod;return n.io==="input"?S.optin===void 0:S.optout===void 0}));g.size>0&&(l.required=Array.from(g)),c.catchall?._zod.def.type==="never"?l.additionalProperties=!1:c.catchall?c.catchall&&(l.additionalProperties=At(c.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(l.additionalProperties=!1)},vT=(e,n,i,r)=>{const l=e._zod.def,c=l.inclusive===!1,d=l.options.map((h,g)=>At(h,n,{...r,path:[...r.path,c?"oneOf":"anyOf",g]}));c?i.oneOf=d:i.anyOf=d},ST=(e,n,i,r)=>{const l=e._zod.def,c=At(l.left,n,{...r,path:[...r.path,"allOf",0]}),d=At(l.right,n,{...r,path:[...r.path,"allOf",1]}),h=v=>"allOf"in v&&Object.keys(v).length===1,g=[...h(c)?c.allOf:[c],...h(d)?d.allOf:[d]];i.allOf=g},xT=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object";const d=c.keyType,g=d._zod.bag?.patterns;if(c.mode==="loose"&&g&&g.size>0){const S=At(c.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});l.patternProperties={};for(const x of g)l.patternProperties[x.source]=S}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(l.propertyNames=At(c.keyType,n,{...r,path:[...r.path,"propertyNames"]})),l.additionalProperties=At(c.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const v=d._zod.values;if(v){const S=[...v].filter(x=>typeof x=="string"||typeof x=="number");S.length>0&&(l.required=S)}},wT=(e,n,i,r)=>{const l=e._zod.def,c=At(l.innerType,n,r),d=n.seen.get(e);n.target==="openapi-3.0"?(d.ref=l.innerType,i.nullable=!0):i.anyOf=[c,{type:"null"}]},jT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},NT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.default=JSON.parse(JSON.stringify(l.defaultValue))},kT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,n.io==="input"&&(i._prefault=JSON.parse(JSON.stringify(l.defaultValue)))},AT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType;let d;try{d=l.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}i.default=d},_T=(e,n,i,r)=>{const l=e._zod.def,c=n.io==="input"?l.in._zod.def.type==="transform"?l.out:l.in:l.out;At(c,n,r);const d=n.seen.get(e);d.ref=c},CT=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.readOnly=!0},p0=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},TT=K("ZodISODateTime",(e,n)=>{E2.init(e,n),ft.init(e,n)});function ET(e){return BC(TT,e)}const OT=K("ZodISODate",(e,n)=>{O2.init(e,n),ft.init(e,n)});function zT(e){return LC(OT,e)}const DT=K("ZodISOTime",(e,n)=>{z2.init(e,n),ft.init(e,n)});function RT(e){return qC(DT,e)}const MT=K("ZodISODuration",(e,n)=>{D2.init(e,n),ft.init(e,n)});function BT(e){return UC(MT,e)}const LT=(e,n)=>{Kv.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>j_(e,i)},flatten:{value:i=>w_(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,_f,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,_f,2)}},isEmpty:{get(){return e.issues.length===0}}})},Tn=K("ZodError",LT,{Parent:Error}),qT=sp(Tn),UT=rp(Tn),$T=hc(Tn),VT=gc(Tn),IT=A_(Tn),PT=__(Tn),GT=C_(Tn),HT=T_(Tn),QT=E_(Tn),KT=O_(Tn),ZT=z_(Tn),YT=D_(Tn),dt=K("ZodType",(e,n)=>(ut.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ac(e,"input"),output:ac(e,"output")}}),e.toJSONSchema=rT(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...i)=>e.clone(ei(n,{checks:[...n.checks??[],...i.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(i,r)=>ti(e,i,r),e.brand=()=>e,e.register=((i,r)=>(i.add(e,r),e)),e.parse=(i,r)=>qT(e,i,r,{callee:e.parse}),e.safeParse=(i,r)=>$T(e,i,r),e.parseAsync=async(i,r)=>UT(e,i,r,{callee:e.parseAsync}),e.safeParseAsync=async(i,r)=>VT(e,i,r),e.spa=e.safeParseAsync,e.encode=(i,r)=>IT(e,i,r),e.decode=(i,r)=>PT(e,i,r),e.encodeAsync=async(i,r)=>GT(e,i,r),e.decodeAsync=async(i,r)=>HT(e,i,r),e.safeEncode=(i,r)=>QT(e,i,r),e.safeDecode=(i,r)=>KT(e,i,r),e.safeEncodeAsync=async(i,r)=>ZT(e,i,r),e.safeDecodeAsync=async(i,r)=>YT(e,i,r),e.refine=(i,r)=>e.check(IE(i,r)),e.superRefine=i=>e.check(PE(i)),e.overwrite=i=>e.check(Qs(i)),e.optional=()=>vb(e),e.exactOptional=()=>TE(e),e.nullable=()=>Sb(e),e.nullish=()=>vb(Sb(e)),e.nonoptional=i=>ME(e,i),e.array=()=>A(e),e.or=i=>bc([e,i]),e.and=i=>jE(e,i),e.transform=i=>xb(e,_E(i)),e.default=i=>zE(e,i),e.prefault=i=>RE(e,i),e.catch=i=>LE(e,i),e.pipe=i=>xb(e,i),e.readonly=()=>$E(e),e.describe=i=>{const r=e.clone();return Wr.add(r,{description:i}),r},Object.defineProperty(e,"description",{get(){return Wr.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return Wr.get(e);const r=e.clone();return Wr.add(r,i[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),m0=K("_ZodString",(e,n)=>{op.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>lT(e,r,l);const i=e._zod.bag;e.format=i.format??null,e.minLength=i.minimum??null,e.maxLength=i.maximum??null,e.regex=(...r)=>e.check(HC(...r)),e.includes=(...r)=>e.check(ZC(...r)),e.startsWith=(...r)=>e.check(YC(...r)),e.endsWith=(...r)=>e.check(XC(...r)),e.min=(...r)=>e.check(nc(...r)),e.max=(...r)=>e.check(l0(...r)),e.length=(...r)=>e.check(c0(...r)),e.nonempty=(...r)=>e.check(nc(1,...r)),e.lowercase=r=>e.check(QC(r)),e.uppercase=r=>e.check(KC(r)),e.trim=()=>e.check(JC()),e.normalize=(...r)=>e.check(FC(...r)),e.toLowerCase=()=>e.check(WC()),e.toUpperCase=()=>e.check(eT()),e.slugify=()=>e.check(tT())}),XT=K("ZodString",(e,n)=>{op.init(e,n),m0.init(e,n),e.email=i=>e.check(hC(FT,i)),e.url=i=>e.check(SC(JT,i)),e.jwt=i=>e.check(MC(pE,i)),e.emoji=i=>e.check(xC(WT,i)),e.guid=i=>e.check(pb(yb,i)),e.uuid=i=>e.check(gC(Ul,i)),e.uuidv4=i=>e.check(yC(Ul,i)),e.uuidv6=i=>e.check(bC(Ul,i)),e.uuidv7=i=>e.check(vC(Ul,i)),e.nanoid=i=>e.check(wC(eE,i)),e.guid=i=>e.check(pb(yb,i)),e.cuid=i=>e.check(jC(tE,i)),e.cuid2=i=>e.check(NC(nE,i)),e.ulid=i=>e.check(kC(aE,i)),e.base64=i=>e.check(zC(uE,i)),e.base64url=i=>e.check(DC(dE,i)),e.xid=i=>e.check(AC(iE,i)),e.ksuid=i=>e.check(_C(sE,i)),e.ipv4=i=>e.check(CC(rE,i)),e.ipv6=i=>e.check(TC(oE,i)),e.cidrv4=i=>e.check(EC(lE,i)),e.cidrv6=i=>e.check(OC(cE,i)),e.e164=i=>e.check(RC(fE,i)),e.datetime=i=>e.check(ET(i)),e.date=i=>e.check(zT(i)),e.time=i=>e.check(RT(i)),e.duration=i=>e.check(BT(i))});function p(e){return mC(XT,e)}const ft=K("ZodStringFormat",(e,n)=>{ct.init(e,n),m0.init(e,n)}),FT=K("ZodEmail",(e,n)=>{x2.init(e,n),ft.init(e,n)}),yb=K("ZodGUID",(e,n)=>{v2.init(e,n),ft.init(e,n)}),Ul=K("ZodUUID",(e,n)=>{S2.init(e,n),ft.init(e,n)}),JT=K("ZodURL",(e,n)=>{w2.init(e,n),ft.init(e,n)}),WT=K("ZodEmoji",(e,n)=>{j2.init(e,n),ft.init(e,n)}),eE=K("ZodNanoID",(e,n)=>{N2.init(e,n),ft.init(e,n)}),tE=K("ZodCUID",(e,n)=>{k2.init(e,n),ft.init(e,n)}),nE=K("ZodCUID2",(e,n)=>{A2.init(e,n),ft.init(e,n)}),aE=K("ZodULID",(e,n)=>{_2.init(e,n),ft.init(e,n)}),iE=K("ZodXID",(e,n)=>{C2.init(e,n),ft.init(e,n)}),sE=K("ZodKSUID",(e,n)=>{T2.init(e,n),ft.init(e,n)}),rE=K("ZodIPv4",(e,n)=>{R2.init(e,n),ft.init(e,n)}),oE=K("ZodIPv6",(e,n)=>{M2.init(e,n),ft.init(e,n)}),lE=K("ZodCIDRv4",(e,n)=>{B2.init(e,n),ft.init(e,n)}),cE=K("ZodCIDRv6",(e,n)=>{L2.init(e,n),ft.init(e,n)}),uE=K("ZodBase64",(e,n)=>{q2.init(e,n),ft.init(e,n)}),dE=K("ZodBase64URL",(e,n)=>{$2.init(e,n),ft.init(e,n)}),fE=K("ZodE164",(e,n)=>{V2.init(e,n),ft.init(e,n)}),pE=K("ZodJWT",(e,n)=>{P2.init(e,n),ft.init(e,n)}),h0=K("ZodNumber",(e,n)=>{a0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>cT(e,r,l),e.gt=(r,l)=>e.check(hb(r,l)),e.gte=(r,l)=>e.check(lf(r,l)),e.min=(r,l)=>e.check(lf(r,l)),e.lt=(r,l)=>e.check(mb(r,l)),e.lte=(r,l)=>e.check(of(r,l)),e.max=(r,l)=>e.check(of(r,l)),e.int=r=>e.check(bb(r)),e.safe=r=>e.check(bb(r)),e.positive=r=>e.check(hb(0,r)),e.nonnegative=r=>e.check(lf(0,r)),e.negative=r=>e.check(mb(0,r)),e.nonpositive=r=>e.check(of(0,r)),e.multipleOf=(r,l)=>e.check(gb(r,l)),e.step=(r,l)=>e.check(gb(r,l)),e.finite=()=>e;const i=e._zod.bag;e.minValue=Math.max(i.minimum??Number.NEGATIVE_INFINITY,i.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(i.maximum??Number.POSITIVE_INFINITY,i.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(i.format??"").includes("int")||Number.isSafeInteger(i.multipleOf??.5),e.isFinite=!0,e.format=i.format??null});function y(e){return $C(h0,e)}const mE=K("ZodNumberFormat",(e,n)=>{G2.init(e,n),h0.init(e,n)});function bb(e){return VC(mE,e)}const hE=K("ZodBoolean",(e,n)=>{H2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>uT(e,i,r)});function oe(e){return IC(hE,e)}const gE=K("ZodUnknown",(e,n)=>{Q2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>fT()});function Ln(){return PC(gE)}const yE=K("ZodNever",(e,n)=>{K2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>dT(e,i,r)});function bE(e){return GC(yE,e)}const vE=K("ZodArray",(e,n)=>{Z2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>yT(e,i,r,l),e.element=n.element,e.min=(i,r)=>e.check(nc(i,r)),e.nonempty=i=>e.check(nc(1,i)),e.max=(i,r)=>e.check(l0(i,r)),e.length=(i,r)=>e.check(c0(i,r)),e.unwrap=()=>e.element});function A(e,n){return nT(vE,e,n)}const SE=K("ZodObject",(e,n)=>{X2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>bT(e,i,r,l),Ge(e,"shape",()=>n.shape),e.keyof=()=>te(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Ln()}),e.loose=()=>e.clone({...e._zod.def,catchall:Ln()}),e.strict=()=>e.clone({...e._zod.def,catchall:bE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>y_(e,i),e.safeExtend=i=>b_(e,i),e.merge=i=>v_(e,i),e.pick=i=>h_(e,i),e.omit=i=>g_(e,i),e.partial=(...i)=>S_(b0,e,i[0]),e.required=(...i)=>x_(v0,e,i[0])});function w(e,n){const i={type:"object",shape:e??{},...be(n)};return new SE(i)}const g0=K("ZodUnion",(e,n)=>{r0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>vT(e,i,r,l),e.options=n.options});function bc(e,n){return new g0({type:"union",options:e,...be(n)})}const xE=K("ZodDiscriminatedUnion",(e,n)=>{g0.init(e,n),F2.init(e,n)});function y0(e,n,i){return new xE({type:"union",options:n,discriminator:e,...be(i)})}const wE=K("ZodIntersection",(e,n)=>{J2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>ST(e,i,r,l)});function jE(e,n){return new wE({type:"intersection",left:e,right:n})}const NE=K("ZodRecord",(e,n)=>{W2.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>xT(e,i,r,l),e.keyType=n.keyType,e.valueType=n.valueType});function rt(e,n,i){return new NE({type:"record",keyType:e,valueType:n,...be(i)})}const Tf=K("ZodEnum",(e,n)=>{eC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>pT(e,r,l),e.enum=n.entries,e.options=Object.values(n.entries);const i=new Set(Object.keys(n.entries));e.extract=(r,l)=>{const c={};for(const d of r)if(i.has(d))c[d]=n.entries[d];else throw new Error(`Key ${d} not found in enum`);return new Tf({...n,checks:[],...be(l),entries:c})},e.exclude=(r,l)=>{const c={...n.entries};for(const d of r)if(i.has(d))delete c[d];else throw new Error(`Key ${d} not found in enum`);return new Tf({...n,checks:[],...be(l),entries:c})}});function te(e,n){const i=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Tf({type:"enum",entries:i,...be(n)})}const kE=K("ZodLiteral",(e,n)=>{tC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>mT(e,i,r),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function vt(e,n){return new kE({type:"literal",values:Array.isArray(e)?e:[e],...be(n)})}const AE=K("ZodTransform",(e,n)=>{nC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>gT(e,i),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new Vv(e.constructor.name);i.addIssue=c=>{if(typeof c=="string")i.issues.push(so(c,i.value,n));else{const d=c;d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=i.value),d.inst??(d.inst=e),i.issues.push(so(d))}};const l=n.transform(i.value,i);return l instanceof Promise?l.then(c=>(i.value=c,i)):(i.value=l,i)}});function _E(e){return new AE({type:"transform",transform:e})}const b0=K("ZodOptional",(e,n)=>{o0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>p0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function vb(e){return new b0({type:"optional",innerType:e})}const CE=K("ZodExactOptional",(e,n)=>{aC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>p0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function TE(e){return new CE({type:"optional",innerType:e})}const EE=K("ZodNullable",(e,n)=>{iC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>wT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function Sb(e){return new EE({type:"nullable",innerType:e})}const OE=K("ZodDefault",(e,n)=>{sC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>NT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function zE(e,n){return new OE({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Hv(n)}})}const DE=K("ZodPrefault",(e,n)=>{rC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>kT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function RE(e,n){return new DE({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Hv(n)}})}const v0=K("ZodNonOptional",(e,n)=>{oC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>jT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function ME(e,n){return new v0({type:"nonoptional",innerType:e,...be(n)})}const BE=K("ZodCatch",(e,n)=>{lC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>AT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function LE(e,n){return new BE({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const qE=K("ZodPipe",(e,n)=>{cC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>_T(e,i,r,l),e.in=n.in,e.out=n.out});function xb(e,n){return new qE({type:"pipe",in:e,out:n})}const UE=K("ZodReadonly",(e,n)=>{uC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>CT(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function $E(e){return new UE({type:"readonly",innerType:e})}const VE=K("ZodCustom",(e,n)=>{dC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>hT(e,i)});function IE(e,n={}){return aT(VE,e,n)}function PE(e){return iT(e)}const S0=w({id:p(),name:p(),keyPrefix:p(),scopes:A(p()),projectId:p().nullable(),readOnly:oe(),createdAt:p(),lastUsedAt:p().nullable(),revokedAt:p().nullable()});w({keys:A(S0)});w({name:p().min(1).max(100),scopes:A(p()).min(1).optional(),projectId:p().optional()});S0.extend({key:p()});const GE=w({maxConcurrency:y().int().positive(),maxRequestsPerMinute:y().int().positive(),maxRequestsPerDay:y().int().positive()}),ya=p().min(1);p().min(1);const vc=w({label:p().min(1),city:p().min(1),region:p().min(1),country:p().length(2),timezone:p().optional()}),lp=te(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high"]);w({id:p(),projectId:p(),channel:vt("webhook"),url:p().url(),urlDisplay:p(),urlHost:p(),events:A(lp),enabled:oe().default(!0),source:p().optional(),webhookSecret:p().optional(),createdAt:p(),updatedAt:p()});w({channel:vt("webhook"),url:p().url(),events:A(lp).min(1),source:p().optional()});const x0=te(["cli","api","config-file"]);function HE(e){const n=new Set,i=new Set;for(const r of e){if(n.has(r.label)){i.add(r.label);continue}n.add(r.label)}return[...i]}function QE(e,n){return n?e.some(i=>i.label===n):!0}w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional(),aliases:A(p()).optional(),country:p().length(2),language:p().min(2),tags:A(p()).optional(),labels:rt(p(),p()).optional(),providers:A(ya).optional(),locations:A(vc).optional(),defaultLocation:p().nullable().optional(),autoExtractBacklinks:oe().optional(),configSource:x0.optional()});const KE=w({id:p(),name:p(),displayName:p().optional(),canonicalDomain:p(),ownedDomains:A(p()).default([]),aliases:A(p()).default([]),country:p().length(2),language:p().min(2),tags:A(p()).default([]),labels:rt(p(),p()).default({}),providers:A(p()).default([]),locations:A(vc).default([]),defaultLocation:p().nullable().optional(),autoExtractBacklinks:oe().default(!1),configSource:x0.default("cli"),configRevision:y().int().positive().default(1),createdAt:p().optional(),updatedAt:p().optional()});w({id:p(),query:p(),createdAt:p()});w({id:p(),keyword:p(),createdAt:p()});w({queries:A(p().trim().min(1)).min(1)});w({keywords:A(p().trim().min(1)).min(1)});w({provider:ya,count:y().int().min(1).max(20).optional()});w({id:p(),domain:p(),createdAt:p()});w({competitors:A(p().trim().min(1)).min(1)});function ic(e){let n=e.trim().toLowerCase();try{n.includes("://")&&(n=new URL(n).hostname.toLowerCase())}catch{}return n.replace(/^www\./,"")}const ZE=new Set(["ac.uk","co.id","co.il","co.in","co.jp","co.kr","co.nz","co.th","co.uk","co.za","com.au","com.br","com.cn","com.mx","com.ph","com.sg","com.tr","edu.au","edu.sg","gov.au","gov.uk","me.uk","ne.jp","net.au","net.br","net.cn","net.in","net.tr","or.jp","or.kr","org.au","org.br","org.in","org.nz","org.tr","org.uk","org.za"]);function YE(e){const n=ic(e);if(!n)return"";const i=n.split("/")[0]?.split(":")[0]??"";if(!i)return"";const r=i.split(".").filter(Boolean);if(r.length<2)return"";if(r.length===2)return r.join(".");const l=r.slice(-2).join(".");return ZE.has(l)?r.length>=3?r.slice(-3).join("."):"":r.slice(-2).join(".")}function XE(e){const n=YE(e);return n?n.split(".")[0]??"":""}function FE(e){const n=[e.canonicalDomain,...e.ownedDomains??[]],i=new Set,r=[];for(const l of n){const c=l.trim();if(!c)continue;const d=ic(c);i.has(d)||(i.add(d),r.push(c))}return r}const JE=w({name:p().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:rt(p(),p()).optional().default({})}),WE=w({preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),providers:A(ya).optional().default([])}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),eO=w({channel:vt("webhook"),url:p().url(),events:A(lp).min(1)}),tO=w({gsc:w({propertyUrl:p()}).optional(),syncSchedule:w({preset:p().optional(),cron:p().optional()}).optional()}).optional(),wb=A(p().min(1)),nO=w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional().default([]),aliases:A(p().min(1)).optional().default([]),country:p().length(2),language:p().min(2),queries:wb.optional(),keywords:wb.optional(),competitors:A(p().min(1)).optional().default([]),providers:A(ya).optional().default([]),locations:A(vc).optional().default([]),defaultLocation:p().optional(),schedule:WE,notifications:A(eO).optional().default([]),google:tO,autoExtractBacklinks:oe().optional().default(!1)}).superRefine((e,n)=>{e.queries!==void 0&&e.keywords!==void 0&&n.addIssue({code:"custom",message:"Use spec.queries; spec.keywords is accepted only as a legacy alias when spec.queries is omitted",path:["keywords"]});const i=HE(e.locations);i.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),QE(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});w({apiVersion:vt("canonry/v1"),kind:vt("Project"),metadata:JE,spec:nO});const aO=te(["gsc","ga4","gbp"]);w({id:p(),domain:p(),connectionType:aO,propertyId:p().nullable().optional(),sitemapUrl:p().nullable().optional(),scopes:A(p()).default([]),createdAt:p(),updatedAt:p()});w({date:p(),query:p(),page:p(),country:p().nullable().optional(),device:p().nullable().optional(),clicks:y(),impressions:y(),ctr:y(),position:y()});const iO=w({date:p(),clicks:y(),impressions:y(),ctr:y()});w({totals:w({clicks:y(),impressions:y(),ctr:y(),days:y()}),daily:A(iO)});const Ef=w({id:p(),url:p(),indexingState:p().nullable().optional(),verdict:p().nullable().optional(),coverageState:p().nullable().optional(),pageFetchState:p().nullable().optional(),robotsTxtState:p().nullable().optional(),crawlTime:p().nullable().optional(),lastCrawlResult:p().nullable().optional(),isMobileFriendly:oe().nullable().optional(),richResults:A(p()).default([]),referringUrls:A(p()).default([]),inspectedAt:p()});te(["stable","reindexed","deindexed","still-missing","new"]);const sO=w({url:p(),previousState:p().nullable(),currentState:p().nullable(),transitionDate:p()}),rO=w({reason:p(),count:y(),urls:A(Ef).default([])});w({summary:w({total:y(),indexed:y(),notIndexed:y(),deindexed:y(),percentage:y()}),lastInspectedAt:p().nullable(),lastSyncedAt:p().nullable(),indexed:A(Ef).default([]),notIndexed:A(Ef).default([]),deindexed:A(sO).default([]),reasonGroups:A(rO).default([])});w({url:p(),type:te(["URL_UPDATED","URL_DELETED"]),notifiedAt:p()});const oO=w({url:p(),type:te(["URL_UPDATED","URL_DELETED"]),notifiedAt:p(),status:te(["success","error"]),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(oO).default([])});w({date:p(),indexed:y(),notIndexed:y(),reasonBreakdown:rt(p(),y()).default({})});const lO=w({siteUrl:p(),permissionLevel:p()});w({sites:A(lO).default([])});const cO=w({type:p(),submitted:p(),indexed:p()}),uO=w({path:p(),lastSubmitted:p().optional(),isPending:oe().optional(),isSitemapsIndex:oe().optional(),type:p().optional(),lastDownloaded:p().optional(),warnings:p().optional(),errors:p().optional(),contents:A(cO).optional()});w({sitemaps:A(uO).default([])});const dO=w({name:p(),accountName:p().nullable(),type:p().nullable(),role:p().nullable()});w({accounts:A(dO),total:y().int().nonnegative()});const fO=w({id:p(),projectId:p(),accountName:p(),locationName:p(),displayName:p(),primaryCategoryDisplayName:p().nullable(),storefrontAddress:p().nullable(),websiteUri:p().nullable(),placeId:p().nullable(),mapsUri:p().nullable(),additionalCategories:A(p()),description:p().nullable(),serviceArea:rt(p(),Ln()).nullable(),regularHours:rt(p(),Ln()).nullable(),primaryPhone:p().nullable(),openStatus:p().nullable(),openingDate:p().nullable(),selected:oe(),syncedAt:p().nullable(),createdAt:p(),updatedAt:p()});w({locations:A(fO),totalDiscovered:y().int().nonnegative(),totalSelected:y().int().nonnegative()});w({selectAllNew:oe().default(!0),accountName:p().optional(),switchAccount:oe().default(!1)});w({selected:oe()});w({locationNames:A(p()).optional(),daysOfMetrics:y().int().positive().max(540).optional(),monthsOfKeywords:y().int().positive().max(18).optional()});w({runId:p(),status:p()});const pO=w({locationName:p(),date:p(),metric:p(),value:y().int()});w({metrics:A(pO),total:y().int().nonnegative()});const mO=w({locationName:p(),periodStart:p(),periodEnd:p(),keyword:p(),valueCount:y().int().nullable(),valueThreshold:y().int().nullable()});w({keywords:A(mO),total:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)});const hO=w({locationName:p(),placeActionLinkName:p(),placeActionType:p(),uri:p().nullable(),isPreferred:oe(),providerType:p().nullable()});w({placeActions:A(hO),total:y().int().nonnegative()});const gO=w({locationName:p(),populatedGroupCount:y().int().nonnegative(),syncedAt:p(),attributes:rt(p(),Ln())});w({lodging:A(gO),total:y().int().nonnegative()});const yO=w({name:p(),valueType:p(),values:A(bc([oe(),p()])),unsetValues:A(p()),uris:A(p())}),bO=w({locationName:p(),attributeCount:y().int().nonnegative(),syncedAt:p(),attributes:A(yO)});w({attributes:A(bO),total:y().int().nonnegative()});const vO=w({locationName:p(),placeId:p(),tier:p(),amenities:A(p()),syncedAt:p(),place:rt(p(),Ln())});w({places:A(vO),total:y().int().nonnegative()});w({scope:w({locationName:p().nullable(),locationCount:y().int().nonnegative()}),performance:w({totals:rt(p(),y()),recent7d:rt(p(),y()),prior7d:rt(p(),y()),deltaPct:rt(p(),y().nullable())}),freshness:w({dataThroughDate:p().nullable(),latestStoredDate:p().nullable(),pendingDays:y().int().nonnegative()}),timeseries:A(w({date:p(),pending:oe(),metrics:rt(p(),y())})),keywords:w({total:y().int().nonnegative(),thresholdedCount:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)}),placeActions:w({total:y().int().nonnegative(),hasReservationCta:oe(),hasBookingCta:oe(),hasDirectMerchantCta:oe()}),lodging:w({lodgingLocationCount:y().int().nonnegative(),populatedLodgingCount:y().int().nonnegative(),emptyLodgingCount:y().int().nonnegative()}),profileCompleteness:w({locationCount:y().int().nonnegative(),withSecondaryCategories:y().int().nonnegative(),secondaryCategoryTotal:y().int().nonnegative(),withDescription:y().int().nonnegative(),withServiceArea:y().int().nonnegative(),withHours:y().int().nonnegative(),withPrimaryPhone:y().int().nonnegative(),permanentlyClosed:y().int().nonnegative(),temporarilyClosed:y().int().nonnegative()})});const SO={BUSINESS_DIRECTION_REQUESTS:"Direction requests",WEBSITE_CLICKS:"Website clicks",CALL_CLICKS:"Call clicks",BUSINESS_BOOKINGS:"Bookings",BUSINESS_CONVERSATIONS:"Conversations",BUSINESS_FOOD_ORDERS:"Food orders",BUSINESS_FOOD_MENU_CLICKS:"Food menu clicks",BUSINESS_IMPRESSIONS_DESKTOP_SEARCH:"Search impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_SEARCH:"Search impressions (mobile)",BUSINESS_IMPRESSIONS_DESKTOP_MAPS:"Maps impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_MAPS:"Maps impressions (mobile)"};function xO(e){const n=e.replace(/^BUSINESS_/,"").split("_").filter(Boolean).map(r=>r.toLowerCase());if(n.length===0)return e;const i=n.join(" ");return i.charAt(0).toUpperCase()+i.slice(1)}function Y5(e){return SO[e]??xO(e)}const wO=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],jO=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function X5(e){return wO.includes(e)?"conversion":jO.includes(e)?"reach":"other"}w({id:p(),domain:p(),siteUrl:p().nullable().optional(),createdAt:p(),updatedAt:p()});const cf=w({id:p(),url:p(),httpCode:y().nullable().optional(),inIndex:oe().nullable().optional(),lastCrawledDate:p().nullable().optional(),inIndexDate:p().nullable().optional(),inspectedAt:p(),documentSize:y().nullable().optional(),anchorCount:y().nullable().optional(),discoveryDate:p().nullable().optional()});w({summary:w({total:y(),indexed:y(),notIndexed:y(),unknown:y().optional(),percentage:y()}),lastInspectedAt:p().nullable(),indexed:A(cf).default([]),notIndexed:A(cf).default([]),unknown:A(cf).default([]).optional()});w({query:p(),impressions:y(),clicks:y(),ctr:y(),averagePosition:y()});w({date:p(),indexed:y(),notIndexed:y(),unknown:y()});const NO=w({url:p(),status:te(["success","error"]),submittedAt:p(),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(NO).default([])});const w0=w({url:p(),verified:oe()});w({sites:A(w0).default([])});w({connected:oe(),domain:p(),siteUrl:p().nullable(),createdAt:p().nullable(),updatedAt:p().nullable()});w({connected:oe(),domain:p(),siteUrl:p().nullable(),availableSites:A(w0).default([])});w({siteUrl:p()});const kO=w({name:p(),alive:oe(),lastUsed:p().nullable()});w({connected:oe(),endpoint:p(),version:p().optional(),browserVersion:p().optional(),targets:A(kO).default([])});const Ks=te(["live","staging"]);w({projectName:p(),url:p(),stagingUrl:p().optional(),username:p(),defaultEnv:Ks,createdAt:p(),updatedAt:p()});const jb=w({url:p(),reachable:oe(),pageCount:y().nullable().optional(),version:p().nullable().optional(),error:p().nullable().optional(),plugins:A(p()).optional(),authenticatedUser:w({id:y(),slug:p()}).nullable().optional()});w({connected:oe(),projectName:p(),defaultEnv:Ks,live:jb.nullable(),staging:jb.nullable(),adminUrl:p().nullable().optional()});const AO=w({id:y(),slug:p(),title:p(),status:p(),modifiedAt:p().nullable().optional(),link:p().nullable().optional()}),j0=w({title:p().nullable(),description:p().nullable(),noindex:oe().nullable(),writable:oe().default(!1),writeTargets:A(p()).default([])}),_O=w({type:p(),json:rt(p(),Ln())}),CO=AO.extend({env:Ks,content:p(),seo:j0,schemaBlocks:A(_O).default([])}),Nb=CO.extend({contentHash:p(),contentSnippet:p()}),N0=w({manualRequired:vt(!0),targetUrl:p(),adminUrl:p().nullable().optional(),content:p(),nextSteps:A(p()).default([])}),TO=w({slug:p(),severity:te(["high","medium","low"]),code:te(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:p()});w({slug:p(),title:p(),status:p(),wordCount:y(),seo:j0,schemaPresent:oe(),issues:A(TO).default([])});const EO=w({slug:p(),status:te(["applied","skipped","manual"]),error:p().optional(),manualAssist:N0.optional()});w({env:Ks,strategy:te(["plugin","manual"]),results:A(EO)});const OO=w({slug:p(),status:te(["deployed","stripped","skipped","failed"]),schemasInjected:A(p()).optional(),manualAssist:N0.optional(),error:p().optional()});w({env:Ks,results:A(OO)});const zO=w({slug:p(),title:p(),canonrySchemas:A(p()),thirdPartySchemas:A(p()),hasCanonrySchema:oe()});w({env:Ks,pages:A(zO)});const DO=w({name:p(),status:te(["completed","skipped","failed"]),summary:p().optional(),error:p().optional()});w({projectName:p(),steps:A(DO)});w({slug:p(),live:Nb,staging:Nb,hasDifferences:oe(),differences:w({title:oe(),slug:oe(),content:oe(),seoTitle:oe(),seoDescription:oe(),noindex:oe(),schema:oe()})});const RO=w({name:p(),displayName:p().optional(),keyUrl:p().optional(),modelHint:p().optional(),model:p().optional(),defaultModel:p().optional(),configured:oe(),quota:GE.optional(),vertexConfigured:oe().optional()}),kb=w({configured:oe()});w({providers:A(RO).default([]),google:kb,bing:kb});const Zs=te(["queued","running","completed","partial","failed","cancelled"]),Qt=Zs.enum,k0=te(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),ke=k0.enum,A0=te(["manual","scheduled","config-apply","backfill","probe"]),Ms=A0.enum,Ai=te(["cited","not-cited"]),sc=Ai.enum,rc=te(["visible","not-visible"]);rc.enum;const oc=te(["mentioned","not-mentioned"]);oc.enum;const _0=te(["new","cited","lost","emerging","not-cited"]);_0.enum;const MO=te(["new","mentioned","lost","emerging","not-mentioned"]);MO.enum;const BO=te([Ms.manual,Ms.probe]);w({kind:vt(ke["answer-visibility"]).optional(),trigger:BO.optional(),providers:A(ya).optional(),queries:A(p().min(1)).min(1).optional(),location:p().min(1).optional(),allLocations:oe().optional(),noLocation:oe().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const LO=w({message:p(),raw:Ln().optional()}),qO=w({message:p().optional(),providers:rt(p(),LO).optional()}),UO=w({id:p(),projectId:p(),kind:k0,status:Zs,trigger:A0.default("manual"),location:p().nullable().optional(),queries:A(p()).nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),error:qO.nullable().optional(),createdAt:p()});function cp(e){if(e.providers){const n=Object.entries(e.providers);if(n.length===1){const[i,r]=n[0];return`${i}: ${r.message}`}if(n.length>1)return n.map(([i,r])=>`${i}: ${r.message}`).join(" • ")}return e.message??"Run failed."}const C0=w({uri:p(),title:p()}),T0=w({id:p(),runId:p(),queryId:p(),query:p().optional(),provider:ya,citationState:Ai,answerMentioned:oe().optional(),visibilityState:rc.optional(),mentionState:oc.optional(),transition:_0.optional(),answerText:p().nullable().optional(),citedDomains:A(p()).default([]),competitorOverlap:A(p()).default([]),recommendedCompetitors:A(p()).default([]),matchedTerms:A(p()).default([]),groundingSources:A(C0).default([]),searchQueries:A(p()).default([]),model:p().nullable().optional(),location:p().nullable().optional(),createdAt:p()});w({snapshots:A(T0),total:y().int().nonnegative()});const $O=w({queryId:p().nullable(),query:p().nullable(),run1State:Ai.nullable(),run2State:Ai.nullable(),run1AnswerMentioned:oe().nullable(),run2AnswerMentioned:oe().nullable(),run1VisibilityState:rc.nullable(),run2VisibilityState:rc.nullable(),run1MentionState:oc.nullable().optional(),run2MentionState:oc.nullable().optional(),changed:oe(),visibilityChanged:oe()});w({run1:p(),run2:p(),diff:A($O)});const VO=UO.extend({snapshots:A(T0).optional()}),IO=w({totalRuns:y().int().nonnegative(),run:VO.nullable()});w({id:p(),projectId:p().nullable().optional(),actor:p(),action:p(),entityType:p(),entityId:p().nullable().optional(),diff:Ln().optional(),createdAt:p()});const PO=te(["yes","no","unknown","not-mentioned"]),Ab=A(p().min(1));w({companyName:p().min(1),domain:p().min(1),queries:Ab.optional(),phrases:Ab.optional(),competitors:A(p().min(1)).optional().default([])}).superRefine((e,n)=>{e.queries!==void 0&&e.phrases!==void 0&&n.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const GO=w({name:p(),count:y().int().nonnegative()}),HO=w({id:p(),name:p(),weight:y(),score:y(),findings:A(w({type:p(),message:p()})).default([]),recommendations:A(p()).default([])}),QO=w({url:p(),finalUrl:p(),auditedAt:p(),overallScore:y(),summary:p(),factors:A(HO).default([])}),KO=w({industry:p(),summary:p(),services:A(p()).default([]),categoryTerms:A(p()).default([])}),ZO=w({provider:p(),displayName:p(),model:p().nullable().optional(),mentioned:oe(),cited:oe(),describedAccurately:PO,accuracyNotes:p().nullable().optional(),incorrectClaims:A(p()).default([]),recommendedCompetitors:A(p()).default([]),citedDomains:A(p()).default([]),groundingSources:A(C0).default([]),searchQueries:A(p()).default([]),answerText:p(),error:p().nullable().optional()}),YO=w({query:p(),providerResults:A(ZO).default([])}),XO=w({totalQueries:y().int().nonnegative(),totalProviders:y().int().nonnegative(),totalComparisons:y().int().nonnegative(),mentionCount:y().int().nonnegative(),citationCount:y().int().nonnegative(),topCompetitors:A(GO).default([]),visibilityGap:p(),whatThisMeans:A(p()).default([]),recommendedActions:A(p()).default([])});w({companyName:p(),domain:p(),homepageUrl:p(),generatedAt:p(),queries:A(p()).default([]),competitors:A(p()).default([]),profile:KO,audit:QO,queryResults:A(YO).default([]),summary:XO});const E0=te(["pass","partial","fail"]);E0.enum;const O0=te(["up","down","flat"]);O0.enum;const FO=w({id:p(),name:p(),weight:y(),avgScore:y(),status:E0,pagesPassing:y().int().nonnegative(),pagesPartial:y().int().nonnegative(),pagesFailing:y().int().nonnegative()}),JO=w({factorId:p(),factorName:p(),avgScore:y(),affectedPages:y().int().nonnegative(),totalPages:y().int().nonnegative(),affectedPct:y().int().nonnegative(),topRecommendations:A(p()).default([])});w({project:p(),hasData:oe(),runId:p().nullable(),runStatus:Zs.nullable(),sitemapUrl:p().nullable(),auditedAt:p().nullable(),aggregateScore:y(),pagesDiscovered:y().int().nonnegative(),pagesAudited:y().int().nonnegative(),pagesSkipped:y().int().nonnegative(),pagesErrored:y().int().nonnegative(),deltaScore:y().nullable(),trend:O0.nullable(),previousScore:y().nullable(),previousAuditedAt:p().nullable(),factors:A(FO).default([]),crossCuttingIssues:A(JO).default([]),prioritizedFixes:A(p()).default([])});const WO=w({id:p(),name:p(),weight:y(),score:y()}),ez=w({url:p(),overallScore:y(),status:te(["success","error"]),error:p().nullable().optional(),factors:A(WO).default([])});w({project:p(),runId:p().nullable(),auditedAt:p().nullable(),total:y().int().nonnegative(),pages:A(ez).default([])});const tz=w({runId:p(),auditedAt:p(),aggregateScore:y(),pagesAudited:y().int().nonnegative()});w({project:p(),points:A(tz).default([])});w({sitemapUrl:p().url().optional(),limit:y().int().positive().max(2e3).optional()});w({runId:p(),status:Zs});const up=te(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync"]);up.enum;w({id:p(),projectId:p(),kind:up,cronExpr:p(),preset:p().nullable().optional(),timezone:p().default("UTC"),enabled:oe().default(!0),providers:A(ya).default([]),sourceId:p().nullable().optional(),lastRunAt:p().nullable().optional(),nextRunAt:p().nullable().optional(),createdAt:p(),updatedAt:p()});w({kind:up.optional(),preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),enabled:oe().optional().default(!0),providers:A(ya).optional().default([]),sourceId:p().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const dp=te(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);dp.enum;const fp=te(["cited","aspirational","wasted-surface"]),_b=fp.enum;_b.cited,_b.aspirational;const Sc=te(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),nz=Sc.enum;nz["direct-competitor"];const xc=te(["queued","seeding","probing","completed","failed"]);xc.enum;const z0=w({domain:p().min(1),hits:y().int().positive(),competitorType:Sc.default("unknown")}),az=w({id:p(),sessionId:p(),projectId:p(),query:p(),bucket:fp.nullable().default(null),citationState:Ai,citedDomains:A(p()).default([]),answerMentioned:oe().nullable().default(null),createdAt:p()}),iz=w({id:p(),projectId:p(),status:xc,icpDescription:p().nullable().optional(),seedProvider:p().nullable().optional(),seedCountRaw:y().int().nullable().optional(),seedCount:y().int().nullable().optional(),seedFromAnswerCount:y().int().nullable().optional(),seedFromGroundingCount:y().int().nullable().optional(),seedBrandFilteredCount:y().int().nullable().optional(),buyerDescription:p().nullable().optional(),locations:A(vc).nullable().optional(),seedRawCandidates:A(p()).nullable().optional(),dedupClusterMinSims:A(y()).nullable().optional(),dedupBandPairFraction:y().nullable().optional(),dedupPairsTotal:y().int().nullable().optional(),seedProviders:A(p()).nullable().optional(),seedProviderCounts:rt(p(),y().int()).nullable().optional(),canonicalCount:y().int().nullable().optional(),dedupThreshold:y().nullable().optional(),probeCount:y().int().nullable().optional(),citedCount:y().int().nullable().default(null),aspirationalCount:y().int().nullable().default(null),wastedCount:y().int().nullable().default(null),competitorMap:A(z0).default([]),warning:p().nullable().optional(),error:p().nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),createdAt:p()});iz.extend({probes:A(az).default([])});const sz=500,rz=8,oz=["gemini","openai"],lz=te(oz);w({icpDescription:p().min(1).optional(),buyerDescription:p().min(1).optional(),seedProviders:A(lz).min(1).transform(e=>[...new Set(e)].sort()).optional(),dedupThreshold:y().min(0).max(1).optional(),maxProbes:y().int().positive().max(sz).optional(),probeConcurrency:y().int().min(1).max(rz).optional(),locations:A(p().min(1)).optional()});w({buckets:A(fp).min(1).optional(),includeCompetitors:oe().optional(),competitorTypes:A(Sc).min(1).optional()});w({sessionId:p(),projectId:p(),status:xc,queriesByBucket:w({cited:A(p()),aspirational:A(p()),"wasted-surface":A(p())}),suggestedCompetitors:A(z0)});w({sessionId:p(),projectId:p(),promoted:w({queries:A(p()),competitors:A(p())}),skipped:w({queries:A(p()),competitors:A(p())})});bc([vt("cli"),p().regex(/^discovery:.+$/)]);const cz=w({query:p().min(1),probeHits:y().int().positive()}),uz=w({rawCandidates:y().int().nonnegative(),admitted:y().int().nonnegative(),rejected:w({belowFloor:y().int().nonnegative(),length:y().int().nonnegative(),navigational:y().int().nonnegative(),duplicate:y().int().nonnegative(),offAnchor:y().int().nonnegative(),semanticDuplicate:y().int().nonnegative()})});w({sessionId:p(),projectId:p(),provider:p(),status:xc,minProbeHits:y().int().positive(),anchorApplied:oe(),semanticNoveltyApplied:oe(),candidates:A(cz),stats:uz});const pp=te(["own","direct-competitor","ota-aggregator","editorial-media","other"]);pp.enum;const D0=te(["7d","30d","90d","all"]),Cb=te(["improving","declining","stable"]),dz=te(["mentioned","cited"]);dz.enum;const Of=w({citationRate:y(),cited:y().int(),total:y().int(),mentionRate:y(),mentionedCount:y().int()}),fz=w({rate:y().nullable(),projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative()}),pz=w({startDate:p(),endDate:p(),citationRate:y(),cited:y().int(),total:y().int(),queryCount:y().int(),mentionRate:y(),mentionedCount:y().int(),mentionShare:fz,byProvider:rt(p(),Of)}),mz=w({date:p(),delta:y().int(),label:p()});w({window:D0,buckets:A(pz),overall:Of,byProvider:rt(p(),Of),trend:Cb,mentionTrend:Cb,queryChanges:A(mz)});const Tb=w({category:dp,label:p(),count:y().int(),percentage:y(),topDomains:A(w({domain:p(),count:y().int()}))}),hz=w({domain:p(),count:y().int(),percentage:y(),category:dp,label:p(),surfaceClass:pp}),gz=w({surfaceClass:pp,label:p(),count:y().int(),percentage:y(),domainCount:y().int()}),Eb=w({totalCitedSlots:y().int(),domainTotal:y().int(),entries:A(hz),truncatedDomainCount:y().int(),truncatedCitedSlots:y().int(),bySurfaceClass:A(gz)});w({overall:A(Tb),byQuery:rt(p(),A(Tb)),ranked:Eb,byProvider:rt(p(),Eb),runId:p(),window:D0,limit:y().int().nullable()});const mp=w({total:y().int(),checked:y().int(),mentioned:y().int(),cited:y().int(),mentionRate:y().nullable(),citedRate:y().nullable()}),R0=mp.extend({provider:p(),firstObserved:p(),lastObserved:p()}),yz=mp.extend({queryId:p().nullable(),query:p(),firstObserved:p(),lastObserved:p(),providers:A(R0).optional()}),bz=w({since:p().nullable(),until:p().nullable(),lastRuns:y().int().nullable(),runCount:y().int()}),vz=te(["provider"]),Sz=w({domain:p(),mentions:y().int()}),xz=w({percent:y().nullable(),projectMentions:y().int(),competitorMentions:y().int(),snapshotsWithAnswerText:y().int(),perCompetitor:A(Sz)});w({project:p(),groupBy:vz.optional(),window:bz,totals:mp,byProvider:A(R0).optional(),queries:A(yz),shareOfVoice:xz.optional()});w({id:p(),projectId:p(),propertyId:p(),clientEmail:p(),connected:oe(),createdAt:p(),updatedAt:p()});w({date:p(),landingPage:p(),sessions:y(),organicSessions:y(),users:y()});const hp=te(["session","first_user","manual_utm"]),wz=w({source:p(),medium:p(),sessions:y(),users:y(),sourceDimension:hp}),jz=w({source:p(),medium:p(),sourceDimension:hp,landingPage:p(),sessions:y(),users:y()}),Nz=w({source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()}),Zr=w({sessions:y(),sharePct:y(),sharePctDisplay:p()}),kz=w({organic:Zr,social:Zr,direct:Zr,ai:Zr,other:Zr});w({totalSessions:y(),totalOrganicSessions:y(),totalDirectSessions:y(),totalUsers:y(),topPages:A(w({landingPage:p(),sessions:y(),organicSessions:y(),directSessions:y(),users:y()})),aiReferrals:A(wz),aiReferralLandingPages:A(jz),aiSessionsDeduped:y(),aiUsersDeduped:y(),aiSessionsBySession:y(),aiUsersBySession:y(),socialReferrals:A(Nz),socialSessions:y(),socialUsers:y(),channelBreakdown:kz,organicSharePct:y(),aiSharePct:y(),aiSharePctBySession:y(),directSharePct:y(),socialSharePct:y(),organicSharePctDisplay:p(),aiSharePctDisplay:p(),aiSharePctBySessionDisplay:p(),directSharePctDisplay:p(),socialSharePctDisplay:p(),otherSessions:y(),otherSharePct:y(),otherSharePctDisplay:p(),lastSyncedAt:p().nullable()});w({connected:oe(),propertyId:p().nullable(),clientEmail:p().nullable(),authMethod:te(["service-account","oauth"]).nullable(),lastSyncedAt:p().nullable(),createdAt:p().nullable().optional(),updatedAt:p().nullable().optional()});w({synced:oe(),rowCount:y().int().nonnegative(),aiReferralCount:y().int().nonnegative(),socialReferralCount:y().int().nonnegative(),days:y().int().nonnegative(),syncedAt:p(),syncedComponents:A(p()).optional()});w({date:p(),source:p(),medium:p(),landingPage:p(),sessions:y(),users:y(),sourceDimension:hp});w({date:p(),source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()});w({date:p(),sessions:y(),organicSessions:y(),users:y()});function lc(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}const M0=te(["claude","openai","gemini","zai","deepinfra"]),Az=w({id:M0,label:p(),defaultModel:p(),configured:oe(),keySource:te(["config","env"]).nullable()});w({providers:A(Az).default([]),defaultProvider:M0.nullable()});const _z=te(["aero","user","compaction"]);_z.enum;const B0=128;w({key:p().min(1).max(B0),value:p().min(1)});w({key:p().min(1).max(B0)});const Ys=te(["commoncrawl","bing-webmaster"]);Ys.enum;const gp=te(["queued","downloading","querying","ready","failed"]);gp.enum;w({id:p(),release:p(),status:gp,phaseDetail:p().nullable().optional(),vertexPath:p().nullable().optional(),edgesPath:p().nullable().optional(),vertexSha256:p().nullable().optional(),edgesSha256:p().nullable().optional(),vertexBytes:y().int().nullable().optional(),edgesBytes:y().int().nullable().optional(),projectsProcessed:y().int().nullable().optional(),domainsDiscovered:y().int().nullable().optional(),downloadStartedAt:p().nullable().optional(),downloadFinishedAt:p().nullable().optional(),queryStartedAt:p().nullable().optional(),queryFinishedAt:p().nullable().optional(),error:p().nullable().optional(),createdAt:p(),updatedAt:p()});const Cz=w({linkingDomain:p(),numHosts:y().int(),source:Ys}),Tz=w({projectId:p(),release:p(),targetDomain:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys,excludedLinkingDomains:y().int().optional(),excludedHosts:y().int().optional()});w({source:Ys,summary:Tz.nullable(),total:y().int(),rows:A(Cz)});w({release:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys});const Ez=w({source:Ys,connected:oe(),hasData:oe(),latestRelease:p().nullable(),totalLinkingDomains:y().int(),lastSyncedAt:p().nullable()});w({projectId:p(),targetDomain:p(),sources:A(Ez),anyConnected:oe(),anyData:oe()});w({duckdbInstalled:oe(),duckdbVersion:p().nullable().optional(),duckdbSpec:p(),pluginDir:p()});w({installed:oe(),version:p(),path:p(),alreadyPresent:oe()});w({release:p(),vertexUrl:p(),edgesUrl:p(),vertexBytes:y().int().nullable(),edgesBytes:y().int().nullable(),lastModified:p().nullable()});w({release:p(),syncStatus:gp.nullable(),bytes:y().int(),lastUsedAt:p().nullable()});const yp=te(["positive","caution","negative","neutral"]),Za=w({label:p(),value:p(),delta:p(),tone:yp,description:p(),tooltip:p().optional(),trend:A(y()),progress:y().optional(),providerCoverage:p().optional()}),Oz=Za.extend({breakdown:w({projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative(),perCompetitor:A(w({domain:p(),mentionSnapshots:y().int().nonnegative(),shareOfCompetitiveTotal:y()})),snapshotsWithAnswerText:y().int().nonnegative(),snapshotsTotal:y().int().nonnegative()})}),uf=w({gained:y().int().nonnegative(),lost:y().int().nonnegative(),tone:yp,hasPreviousRun:oe(),gainedQueries:A(p()).optional(),lostQueries:A(p()).optional()}),zz=w({hasPreviousRun:oe(),comparable:oe(),querySetChanged:oe(),previousRunAt:p().nullable(),currentQueryCount:y().int().nonnegative(),previousQueryCount:y().int().nonnegative(),comparableQueryCount:y().int().nonnegative(),addedQueryCount:y().int().nonnegative(),removedQueryCount:y().int().nonnegative(),addedQueries:A(p()),removedQueries:A(p())}),Dz=w({id:p(),projectId:p(),runId:p().nullable(),type:te(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:te(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:w({action:p(),target:p().optional(),reason:p()}).optional(),cause:w({cause:p(),competitorDomain:p().optional(),details:p().optional()}).optional(),dismissed:oe(),createdAt:p()}),Rz=w({id:p(),projectId:p(),runId:p().nullable(),overallCitedRate:y(),overallMentionRate:y(),totalPairs:y().int().nonnegative(),citedPairs:y().int().nonnegative(),mentionedPairs:y().int().nonnegative(),providerBreakdown:rt(p(),w({citedRate:y(),mentionRate:y(),cited:y().int().nonnegative(),mentioned:y().int().nonnegative(),total:y().int().nonnegative()})),createdAt:p(),status:te(["ready","no-data"]),reason:vt("no-runs-yet").optional()});w({project:KE,latestRun:IO,health:Rz.nullable(),topInsights:A(Dz),queryCounts:w({totalQueries:y().int().nonnegative(),citedQueries:y().int().nonnegative(),notCitedQueries:y().int().nonnegative(),citedRate:y(),mentionedQueries:y().int().nonnegative(),notMentionedQueries:y().int().nonnegative(),mentionRate:y()}),providers:A(w({provider:p(),citedRate:y(),cited:y().int().nonnegative(),total:y().int().nonnegative()})),transitions:w({since:p().nullable(),gained:y().int().nonnegative(),lost:y().int().nonnegative(),emerging:y().int().nonnegative()}),scores:w({mention:Za,visibility:Za,mentionShare:Oz,gapQueries:Za,mentionGaps:Za,indexCoverage:Za,competitorPressure:Za,runStatus:Za}),movementSummary:uf,citationMovement:uf,mentionMovement:uf,movementComparison:zz,competitors:A(w({id:p(),domain:p(),citationCount:y().int().nonnegative(),totalQueries:y().int().nonnegative(),pressureLabel:te(["None","Low","Moderate","High"]),citedQueries:A(p())})),providerScores:A(w({provider:p(),model:p().nullable(),score:y(),cited:y().int().nonnegative(),total:y().int().nonnegative(),trend:A(y()).optional()})),attentionItems:A(w({id:p(),tone:yp,title:p(),detail:p(),actionLabel:p(),href:p()})),runHistory:A(w({runId:p(),createdAt:p(),citedCount:y().int().nonnegative(),totalCount:y().int().nonnegative(),citationRate:y(),mentionedCount:y().int().nonnegative(),mentionRate:y(),status:p()})),suggestedQueries:w({rows:A(w({query:p(),impressions:y(),clicks:y(),avgPosition:y(),reason:p()})),totalCandidates:y().int().nonnegative(),skippedAlreadyTracked:y().int().nonnegative()}),dateRangeLabel:p(),contextLabel:p()});te(["snapshot","insight"]);const Mz=w({kind:vt("snapshot"),id:p(),runId:p(),query:p(),provider:p(),model:p().nullable(),citationState:Ai,matchedField:te(["answerText","citedDomains","searchQueries","query"]),snippet:p(),createdAt:p()}),Bz=w({kind:vt("insight"),id:p(),runId:p().nullable(),type:te(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:te(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),matchedField:te(["title","query","recommendation","cause"]),snippet:p(),dismissed:oe(),createdAt:p()}),Lz=y0("kind",[Mz,Bz]);w({query:p(),totalHits:y().int().nonnegative(),truncated:oe(),hits:A(Lz)});const L0=te(["create","expand","refresh","add-schema"]);L0.enum;function F5(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const q0=te(["gsc","competitor-evidence","both"]);q0.enum;const U0=te(["high","medium","low"]);U0.enum;const qz=te(["blog-post","comparison","listicle","how-to","guide","glossary"]);qz.enum;const $0=te(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);$0.enum;const bp=te(["ownable","ceded"]);bp.enum;const Uz=w({url:p(),gscImpressions:y().nonnegative(),gscClicks:y().nonnegative(),gscAvgPosition:y().nonnegative().nullable(),organicSessions:y().nonnegative()}),$z=w({domain:p(),url:p(),title:p(),citationCount:y().int().nonnegative()}),Vz=w({demand:y(),competitor:y(),absence:y(),gapSeverity:y()}),Iz=w({actionId:p(),state:$0,lastUpdated:p()}),V0=w({targetRef:p(),query:p(),action:L0,ourBestPage:Uz.nullable(),winningCompetitor:$z.nullable(),score:y(),scoreBreakdown:Vz,drivers:A(p()),demandSource:q0,actionConfidence:U0,existingAction:Iz.nullable(),winnabilityClass:bp,winnability:y().min(0).max(1).nullable()});w({targets:A(V0),contextMetrics:w({totalAiReferralSessions:y().int().nonnegative(),latestRunId:p(),runTimestamp:p()})});const Pz=w({targetRef:p(),addressedUrl:p().nullable(),note:p().nullable(),dismissedAt:p()});w({dismissals:A(Pz)});w({targetRef:p().min(1),addressedUrl:p().url().optional(),note:p().max(500).optional()});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),responseText:p(),costMillicents:y().int().nonnegative(),generatedAt:p()});w({provider:p().optional(),model:p().optional(),forceRefresh:oe().optional()});const Gz=w({targetQuery:p().trim().min(1),winnabilityClass:bp,angle:p().trim().min(1),whyWinnable:p().trim().min(1),schemaHookup:p().trim().min(1),controllableSurfaceRationale:p().trim().min(1)});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),brief:Gz,costMillicents:y().int().nonnegative(),generatedAt:p()});const Hz=w({domain:p(),competitorType:Sc,hits:y().int().nonnegative(),updatedAt:p()});w({classifications:A(Hz)});const Qz=w({uri:p(),title:p(),domain:p(),isOurDomain:oe(),isCompetitor:oe(),citationCount:y().int().nonnegative(),providers:A(ya)}),I0=w({query:p(),groundingSources:A(Qz)});w({sources:A(I0),latestRunId:p()});const P0=w({query:p(),competitorDomains:A(p()),competitorCount:y().int().nonnegative(),missRate:y().min(0).max(1),lastSeenInRunId:p()});w({gaps:A(P0),latestRunId:p()});const G0=te(["ok","warn","fail","skipped"]);G0.enum;const vp=te(["global","project"]);vp.enum;const H0=te(["auth","config","providers","integrations","database","schedules","agent"]);H0.enum;const Kz=w({id:p(),category:H0,scope:vp,title:p(),status:G0,code:p().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:p(),remediation:p().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:rt(p(),Ln()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:y().int().nonnegative().describe("How long the check took to execute.")});w({scope:vp,project:p().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:p().describe("ISO-8601 timestamp when this doctor run started."),durationMs:y().int().nonnegative(),summary:w({total:y().int().nonnegative(),ok:y().int().nonnegative(),warn:y().int().nonnegative(),fail:y().int().nonnegative(),skipped:y().int().nonnegative()}),checks:A(Kz)});const Zz=w({provider:p(),citationState:Ai,cited:oe(),mentioned:oe(),runId:p(),runCreatedAt:p()}),Yz=w({queryId:p(),query:p(),providers:A(Zz),citedCount:y().int().nonnegative(),mentionedCount:y().int().nonnegative(),totalProviders:y().int().nonnegative()}),Xz=w({queryId:p(),query:p(),provider:p(),citingCompetitors:A(p()),runId:p(),runCreatedAt:p()}),Fz=w({providersConfigured:y().int().nonnegative(),providersCiting:y().int().nonnegative(),providersMentioning:y().int().nonnegative(),totalQueries:y().int().nonnegative(),queriesCitedAndMentioned:y().int().nonnegative(),queriesCitedOnly:y().int().nonnegative(),queriesMentionedOnly:y().int().nonnegative(),queriesInvisible:y().int().nonnegative(),latestRunId:p().nullable(),latestRunAt:p().nullable()});w({summary:Fz,byQuery:A(Yz),competitorGaps:A(Xz),status:te(["ready","no-data"]),reason:te(["no-runs-yet","no-queries"]).optional()});const J5=[7,14,30,90],W5=30;bc([vt(7),vt(14),vt(30),vt(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const Jz=te(["prompt","request-param","browser-geo","ignored"]),Wz=w({label:p(),city:p(),region:p(),country:p(),otherConfiguredLabels:A(p())}),eD=w({provider:p(),treatment:Jz,description:p()}),tD=w({generatedAt:p(),project:w({id:p(),name:p(),displayName:p(),canonicalDomain:p(),country:p(),language:p()}),location:Wz.nullable(),providerLocationHandling:A(eD),periodStart:p().nullable(),periodEnd:p().nullable(),periodDays:y().int().positive()}),nD=w({citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),trend:te(["up","down","flat","unknown"]),queryCount:y(),competitorCount:y(),providerCount:y(),gsc:w({clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),periodStart:p(),periodEnd:p()}).nullable(),ga:w({sessions:y(),users:y(),periodStart:p(),periodEnd:p()}).nullable(),findings:A(w({title:p(),detail:p(),tone:te(["positive","caution","negative","neutral"])}))}),aD=w({citationState:te(["cited","not-cited","pending"]),answerMentioned:oe().nullable(),model:p().nullable()}),iD=w({queries:A(p()),providers:A(p()),matrix:A(A(aD.nullable())),providerRates:A(w({provider:p(),citedCount:y(),mentionedCount:y(),totalCount:y(),citationRate:y(),mentionRate:y()}))}),sD=w({domain:p(),citationCount:y(),totalCount:y(),pressureLabel:te(["High","Moderate","Low","None"]),citedQueries:A(p()),sharePct:y(),theirCitedPages:A(w({url:p(),citedFor:A(p())}))}),rD=w({projectCitationCount:y(),competitors:A(sD)}),oD=w({domain:p(),mentionCount:y(),totalCount:y(),pressureLabel:te(["High","Moderate","Low","None"]),mentionedQueries:A(p()),sharePct:y()}),lD=w({projectMentionCount:y(),totalAnswerSnapshots:y(),competitors:A(oD)}),cD=w({category:p(),label:p(),count:y(),sharePct:y()}),uD=w({categories:A(cD),topDomains:A(w({domain:p(),count:y(),isCompetitor:oe()}))}),dD=w({query:p(),clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),category:te(["brand","lead-gen","industry","other"])}),fD=w({periodStart:p(),periodEnd:p(),totalClicks:y(),totalImpressions:y(),ctr:y(),avgPosition:y(),topQueries:A(dD),categoryBreakdown:A(w({category:te(["brand","lead-gen","industry","other"]),clicks:y(),impressions:y(),sharePct:y()})),trend:A(w({date:p(),clicks:y(),impressions:y()})),trackedButNoGsc:A(p()),gscButNotTracked:A(p())}),pD=w({totalSessions:y(),totalUsers:y(),totalOrganicSessions:y(),periodStart:p(),periodEnd:p(),topLandingPages:A(w({page:p(),sessions:y(),users:y(),organicSessions:y()})),channelBreakdown:A(w({channel:p(),sessions:y(),sharePct:y()}))}),mD=w({totalSessions:y(),organicSessions:y(),paidSessions:y(),channels:A(w({channelGroup:p(),sessions:y(),sharePct:y()})),topCampaigns:A(w({source:p(),medium:p(),sessions:y()}))}),hD=w({totalSessions:y(),totalUsers:y(),bySource:A(w({source:p(),sessions:y(),users:y(),sharePct:y()})),trend:A(w({date:p(),sessions:y()})),topLandingPages:A(w({page:p(),sessions:y(),users:y()}))}),gD=w({windowStart:p(),windowEnd:p(),hasData:oe(),verifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),unverifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),aiUserFetchHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),referralArrivals:w({current:y(),prior:y(),deltaPct:y().nullable()}),byOperator:A(w({operator:p(),verifiedHits:y(),unverifiedHits:y(),userFetchHits:y(),referralArrivals:y(),deltaPct:y().nullable()})),topCrawledPaths:A(w({path:p(),verifiedHits:y(),distinctOperators:y()})),referralProducts:A(w({product:p(),arrivals:y(),distinctLandingPaths:y()})),dailyTrend:A(w({date:p(),verifiedCrawlerHits:y(),userFetchHits:y(),referralArrivals:y()})),topReferralLandingPaths:A(w({path:p(),arrivals:y(),distinctProducts:y()}))}),yD=w({provider:te(["google","bing"]).nullable(),total:y(),indexed:y(),notIndexed:y(),deindexed:y(),unknown:y(),indexedPct:y()}),bD=w({runId:p(),date:p(),citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),providerRates:A(w({provider:p(),citationRate:y(),mentionRate:y()}))}),zf=w({id:p(),type:te(["regression","gain","opportunity"]),severity:te(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:p().nullable(),createdAt:p(),instanceCount:y()}),vD=w({horizon:te(["immediate","short-term","medium-term"]),title:p(),rationale:p()}),As=w({current:y(),prior:y(),deltaAbs:y(),deltaPct:y().nullable(),direction:te(["up","down","flat"]),window:y().optional()}),SD=w({provider:p(),current:y(),prior:y(),deltaAbs:y(),direction:te(["up","down","flat"])}),xD=w({enoughHistory:oe(),headline:p(),citationRate:As.nullable(),mentionRate:As.nullable(),citedQueryCount:As.nullable(),mentionedQueryCount:As.nullable(),gscClicksDelta:As.nullable(),aiReferralsDelta:As.nullable(),comparisonWindowDays:y().int().positive(),providerMovements:A(SD),wins:A(zf),regressions:A(zf)});te(["agency","client"]);const wD=te(["agency","client","both"]),jD=te(["immediate","short-term","medium-term"]),ND=te(["high","medium","low"]);te(["positive","caution","negative","neutral"]);const kD=te(["content","competitors","provider","search-demand","indexing","location","monitoring"]),Sp=w({audience:wD,priority:y(),horizon:jD,category:kD,title:p(),action:p(),why:A(p()),evidence:A(p()),successMetric:p(),confidence:ND,targetRef:p().optional()}),AD=w({headline:p(),overview:p(),actionItems:A(Sp),confidenceNotes:A(p())}),_D=w({title:p(),detail:p(),severity:te(["positive","caution","negative","neutral"]),evidence:A(p())}),CD=w({priorities:A(Sp),diagnostics:A(_D)});function e6(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function t6(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function n6(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function a6(e){switch(e){case"content":return"Content";case"competitors":return"Competitors";case"provider":return"Provider";case"search-demand":return"Search demand";case"indexing":return"Indexing";case"location":return"Location";case"monitoring":return"Monitoring"}}function i6(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}w({meta:tD,executiveSummary:nD,citationScorecard:iD,competitorLandscape:rD,mentionLandscape:lD,aiSourceOrigin:uD,gsc:fD.nullable(),ga:pD.nullable(),socialReferrals:mD.nullable(),aiReferrals:hD.nullable(),serverActivity:gD.nullable(),indexingHealth:yD.nullable(),citationsTrend:A(bD),whatsChanged:xD,insights:A(zf),recommendedNextSteps:A(vD),actionPlan:A(Sp),clientSummary:AD,agencyDiagnostics:CD,contentOpportunities:A(V0),contentGaps:A(P0),groundingSources:A(I0)});const TD=te(["claude","codex"]);TD.enum;const ED=te(["claude","codex","all"]);ED.enum;const Q0=w({content:y().int().nonnegative(),sitemap:y().int().nonnegative(),robots:y().int().nonnegative(),asset:y().int().nonnegative(),other:y().int().nonnegative()}),OD=te(["content","sitemap","robots","asset","other"]),xp=te(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);xp.enum;const zD=te(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);zD.enum;const DD=te(["raw-request","aggregate-bucket"]),RD=DD.enum,MD=te(["observed","provider-aggregated","inferred"]),BD=MD.enum,LD=w({type:p().nullable(),labels:rt(p(),p())}),qD=w({sourceType:xp,evidenceKind:vt(RD["raw-request"]),confidence:vt(BD.observed),eventId:p().min(1),observedAt:p().min(1),method:p().nullable(),requestUrl:p().nullable(),host:p().nullable(),path:p().min(1),queryString:p().nullable(),status:y().int().nullable(),userAgent:p().nullable(),remoteIp:p().nullable(),referer:p().nullable(),latencyMs:y().nullable(),requestSizeBytes:y().int().nullable(),responseSizeBytes:y().int().nullable(),providerResource:LD,providerLabels:rt(p(),p())});w({events:A(qD),rawEntryCount:y().int().nonnegative(),skippedEntryCount:y().int().nonnegative(),nextPageToken:p().optional(),filter:p()});const K0=te(["connected","paused","error","archived"]),s6=K0.enum,Z0=te(["oauth","service-account"]);Z0.enum;const UD=te(["verified","claimed_unverified","unknown_ai_like"]),r6=UD.enum;w({gcpProjectId:p().min(1),serviceName:p().nullable().optional(),location:p().nullable().optional(),authMode:Z0});w({baseUrl:p().url(),username:p().min(1)});const wp=te(["production","preview"]);wp.enum;w({projectId:p().min(1),teamId:p().min(1),environment:wp});const Y0=w({id:p(),projectId:p(),sourceType:xp,displayName:p(),status:K0,lastSyncedAt:p().nullable(),lastCursor:p().nullable(),lastError:p().nullable(),archivedAt:p().nullable(),config:rt(p(),Ln()),createdAt:p(),updatedAt:p()});w({gcpProjectId:p().min(1),serviceName:p().min(1).optional(),location:p().min(1).optional(),displayName:p().min(1).optional(),keyJson:p().optional()});w({baseUrl:p().url(),username:p().min(1),applicationPassword:p().min(1),displayName:p().min(1).optional()});w({projectId:p().min(1),teamId:p().min(1),token:p().min(1),environment:wp.optional(),displayName:p().min(1).optional()});w({sourceId:p(),runId:p(),syncedAt:p(),pulledEvents:y().int().nonnegative(),selfTrafficExcluded:y().int().nonnegative(),crawlerHits:y().int().nonnegative(),aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),unknownHits:y().int().nonnegative(),crawlerBucketRows:y().int().nonnegative(),aiUserFetchBucketRows:y().int().nonnegative(),aiReferralBucketRows:y().int().nonnegative(),sampleRows:y().int().nonnegative(),windowStart:p(),windowEnd:p()});w({days:y().int().positive().optional()});w({advanceToNow:vt(!0)});w({sourceId:p(),runId:p(),status:Zs,windowStart:p(),windowEnd:p(),daysRequested:y().int().positive(),daysApplied:y().int().positive()});const $D=w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:Q0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),sampleCount:y().int().nonnegative()});w({sources:A(Y0)});const VD=Y0.extend({totals24h:$D,latestRun:w({runId:p(),status:Zs,startedAt:p().nullable(),finishedAt:p().nullable(),error:p().nullable()}).nullable()});w({sources:A(VD)});const ID=te(["crawler","ai-user-fetch","ai-referral"]),jp=ID.enum,PD=w({kind:vt(jp.crawler),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),pathClass:OD,status:y().int(),hits:y().int().nonnegative()}),GD=w({kind:vt(jp["ai-user-fetch"]),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),HD=w({kind:vt(jp["ai-referral"]),sourceId:p(),tsHour:p(),product:p(),operator:p(),sourceDomain:p(),evidenceType:p(),landingPathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),QD=y0("kind",[PD,GD,HD]);w({windowStart:p(),windowEnd:p(),totals:w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:Q0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative()}),events:A(QD)});w({apiKey:p().min(1)});w({connected:oe(),adAccountId:p().nullable().optional(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),timezone:p().nullable().optional(),status:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),conversionTrackingConfigured:oe().optional()});w({disconnected:oe()});w({runId:p(),status:p()});const KD=w({type:p().nullable().optional(),title:p().nullable().optional(),body:p().nullable().optional(),targetUrl:p().nullable().optional()}),ZD=w({id:p(),adGroupId:p(),name:p(),status:p(),reviewStatus:p().nullable().optional(),creative:KD.nullable().optional()}),YD=w({id:p(),campaignId:p(),name:p(),status:p(),billingEventType:p().nullable().optional(),maxBidMicros:y().int().nullable().optional(),contextHints:A(p()).default([]),ads:A(ZD).default([])}),XD=w({id:p(),name:p(),status:p(),biddingType:p().nullable().optional(),dailySpendLimitMicros:y().int().nullable().optional(),lifetimeSpendLimitMicros:y().int().nullable().optional(),adGroups:A(YD).default([])});w({campaigns:A(XD)});const X0=te(["campaign","ad_group"]);X0.enum;const FD=w({level:X0,entityId:p(),date:p(),impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({rows:A(FD),currencyCode:p().nullable().optional()});const JD=w({impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({connected:oe(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),campaignCount:y().int(),adGroupCount:y().int(),adCount:y().int(),window:w({from:p().nullable(),to:p().nullable()}),totals:JD});var WD=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(WD||{});const o6={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},l6={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},c6=cp;function e4(e){const n=[];if(e.message&&n.push(e.message),e.providers)for(const[i,r]of Object.entries(e.providers)){const l=`[${i}] ${r.message}`;r.raw!==void 0?n.push(`${l}
|
|
53
53
|
|
|
54
54
|
${JSON.stringify(r.raw,null,2)}`):n.push(l)}return n.length>0?n.join(`
|
|
55
55
|
|
|
56
|
-
`):"Run failed."}function e4(e){return e.split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function l6(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function c6(e){return e===null?"Unknown":e?"Pass":"Fail"}function Ob(e){return e===0?"12:00 AM":e<12?`${e}:00 AM`:e===12?"12:00 PM":`${e-12}:00 PM`}function u6(e,n){return e==="twice-daily"?"twice-daily":e.startsWith("weekly@")?`${e}@${n}`:`daily@${n}`}function d6(e,n){if(!e)return{freq:"custom",hour:6,customCron:n};if(e==="twice-daily")return{freq:"twice-daily",hour:6,customCron:""};const i=e.match(/^daily(?:@(\d+))?$/);if(i)return{freq:"daily",hour:i[1]?parseInt(i[1]):6,customCron:""};const r=e.match(/^(weekly@(?:mon|tue|wed|thu|fri|sat|sun))(?:@(\d+))?$/);return r?{freq:r[1],hour:r[2]?parseInt(r[2]):6,customCron:""}:{freq:"custom",hour:6,customCron:n}}function f6(e,n,i){const r=i==="UTC"?"UTC":i.split("/").pop()?.replace(/_/g," ")??i;if(!e)return`Custom: ${n} · ${r}`;if(e==="twice-daily")return`Twice a day (6am & 6pm) · ${r}`;const l=e.match(/^daily(?:@(\d+))?$/);if(l){const d=l[1]?parseInt(l[1]):6;return`Every day at ${Ob(d)} · ${r}`}const c=e.match(/^weekly@(mon|tue|wed|thu|fri|sat|sun)(?:@(\d+))?$/);if(c){const d={mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday",sun:"Sunday"},h=c[2]?parseInt(c[2]):6;return`Every ${d[c[1]]} at ${Ob(h)} · ${r}`}return`${e} · ${r}`}function t4(e,n){return n&&n!==e?`${e} · ${n}`:e}function p6(){const e=Intl.DateTimeFormat().resolvedOptions().timeZone,n=new Intl.DateTimeFormat("en-US",{timeZoneName:"short"}).formatToParts().find(i=>i.type==="timeZoneName")?.value;return t4(e,n)}function n4(e){const n=e.replace(/\/+$/,"")||"/";return n==="/"?"overview":n==="/projects"?"projects":n.startsWith("/projects/")?"project":n==="/runs"?"runs":n==="/traffic"||n.startsWith("/traffic/")?"traffic":n==="/backlinks"?"backlinks":n==="/settings"?"settings":n==="/setup"?"setup":"other"}function a4(e,n){return!n||n.includes(e)}function m6(e,n){return a4(e,n)||!n||n.length===0?e:n.includes("overview")?"overview":n[0]}const zb={bg:"--canonry-embed-bg",fg:"--canonry-embed-fg",accent:"--color-link"},i4=/^(?:#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|rgba?\([0-9.,%\s/]+\)|hsla?\([0-9.,%\s/a-z]+\))$/i,s4=/^[a-z0-9][a-z0-9 -]{0,48}$/i;function F0(e){const n=e?.font?.trim();return n&&s4.test(n)?n:void 0}function r4(e){const n=e?.mode?.trim();return n==="light"||n==="dark"?n:void 0}function o4(e){if(!e)return{};const n={};for(const[r,l]of Object.entries(e)){const c=Object.hasOwn(zb,r)?zb[r]:void 0;if(!c||typeof l!="string")continue;const d=l.trim();i4.test(d)&&(n[c]=d)}const i=F0(e);return i&&(n["--font-sans"]=`"${i}", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`),n}function l4(e){const n=F0(e);if(n)return`https://fonts.googleapis.com/css2?family=${n.replace(/ /g,"+")}:wght@400;500;600;700&display=swap`}const Ae=(e,n,i,r)=>{const l={_id:e,baseUrl:n?.baseUrl||(n?.client??Q).getConfig().baseUrl};return n?.body&&(l.body=n.body),n?.headers&&(l.headers=n.headers),n?.path&&(l.path=n.path),n?.query&&(l.query=n.query),[l]},c4=e=>Ae("getApiV1ProjectsByName",e),u4=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Av({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:c4(e)}),Oi=e=>Ae("getApiV1Projects",e),wc=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Oi(e)}),d4=e=>Ae("getApiV1ProjectsByNameRuns",e),f4=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await _v({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:d4(e)}),Np=e=>Ae("getApiV1Runs",e),J0=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await _j({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Np(e)}),p4=e=>Ae("getApiV1RunsById",e),W0=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Cv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:p4(e)}),m4=e=>Ae("getApiV1Settings",e),h4=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Tv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:m4(e)}),g4=e=>Ae("getApiV1ProjectsByNameGoogleConnections",e),h6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Gj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:g4(e)}),y4=e=>Ae("getApiV1ProjectsByNameGoogleProperties",e),g6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Kj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:y4(e)}),b4=e=>Ae("getApiV1ProjectsByNameGoogleGscPerformance",e),y6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Fj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:b4(e)}),v4=e=>Ae("getApiV1ProjectsByNameGoogleGscPerformanceDaily",e),b6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Jj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:v4(e)}),S4=e=>Ae("getApiV1ProjectsByNameGoogleGscInspections",e),v6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await eN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:S4(e)}),x4=e=>Ae("getApiV1ProjectsByNameGoogleGscDeindexed",e),S6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await tN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:x4(e)}),w4=e=>Ae("getApiV1ProjectsByNameGoogleGscCoverage",e),x6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ev({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:w4(e)}),j4=e=>Ae("getApiV1ProjectsByNameGoogleGscCoverageHistory",e),w6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await nN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:j4(e)}),j6=e=>Ae("getApiV1ProjectsByNameGoogleGscSitemaps",e),N4=e=>Ae("getApiV1ProjectsByNameGbpLocations",e),N6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await oN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:N4(e)}),k6=e=>({mutationFn:async i=>{const{data:r}=await lN({...e,...i,throwOnError:!0});return r}}),A6=e=>({mutationFn:async i=>{const{data:r}=await cN({...e,...i,throwOnError:!0});return r}}),k4=e=>Ae("getApiV1ProjectsByNameGbpKeywords",e),_6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await uN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:k4(e)}),A4=e=>Ae("getApiV1ProjectsByNameGbpPlaceActions",e),C6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await dN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:A4(e)}),_4=e=>Ae("getApiV1ProjectsByNameGbpLodging",e),T6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await fN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:_4(e)}),C4=e=>Ae("getApiV1ProjectsByNameGbpPlaces",e),E6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:C4(e)}),T4=e=>Ae("getApiV1ProjectsByNameGbpSummary",e),O6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await mN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:T4(e)}),E4=e=>Ae("getApiV1ProjectsByNameBingStatus",e),z6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await yN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:E4(e)}),O4=e=>Ae("getApiV1ProjectsByNameBingSites",e),D6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await bN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:O4(e)}),z4=e=>Ae("getApiV1ProjectsByNameBingCoverage",e),R6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ov({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:z4(e)}),D4=e=>Ae("getApiV1ProjectsByNameBingInspections",e),M6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await SN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:D4(e)}),R4=e=>Ae("getApiV1ProjectsByNameBingPerformance",e),B6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await NN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:R4(e)}),M4=e=>Ae("getApiV1ProjectsByNameGaStatus",e),L6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await _N({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:M4(e)}),B4=e=>Ae("getApiV1ProjectsByNameGaTraffic",e),q6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await TN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:B4(e)}),L4=e=>Ae("getApiV1ProjectsByNameGaAiReferralHistory",e),U6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await EN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:L4(e)}),q4=e=>Ae("getApiV1ProjectsByNameGaSocialReferralHistory",e),$6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ON({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:q4(e)}),U4=e=>Ae("getApiV1ProjectsByNameGaSessionHistory",e),V6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await zN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:U4(e)}),$4=e=>Ae("getApiV1ProjectsByNameReport",e),I6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await RN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:$4(e)}),V4=e=>Ae("getApiV1ProjectsByNameCitationsVisibility",e),P6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await MN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:V4(e)}),I4=e=>Ae("getApiV1ProjectsByNameTrafficSources",e),G6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ak({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:I4(e)}),P4=e=>Ae("getApiV1ProjectsByNameTrafficStatus",e),H6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ik({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:P4(e)}),G4=e=>Ae("getApiV1ProjectsByNameTrafficSourcesById",e),Q6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await sk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:G4(e)}),H4=e=>Ae("getApiV1ProjectsByNameTrafficEvents",e),K6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await rk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:H4(e)}),Q4=e=>Ae("getApiV1ProjectsByNameDiscoverSessions",e),Z6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await lk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Q4(e)}),K4=e=>Ae("getApiV1ProjectsByNameDiscoverSessionsById",e),Y6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ck({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:K4(e)}),Z4=e=>Ae("getApiV1ProjectsByNameDiscoverSessionsByIdPromote",e),X6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await uk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Z4(e)}),Y4=e=>Ae("getApiV1ProjectsByNameTechnicalAeo",e),F6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await fk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Y4(e)}),X4=e=>Ae("getApiV1ProjectsByNameTechnicalAeoPages",e),J6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:X4(e)}),F4=e=>Ae("getApiV1ProjectsByNameTechnicalAeoTrend",e),W6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await mk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:F4(e)}),J4=e=>Ae("getApiV1ProjectsByNameAgentProviders",e),W4=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await gk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:J4(e)});function Db(e){return e.state==="ok"?"positive":e.state==="checking"?"neutral":"negative"}function eS(e){switch(e){case"completed":return"positive";case"partial":return"caution";case"failed":return"negative";case"cancelled":return"caution";case"queued":case"running":return"neutral";default:return"neutral"}}function eq(e){switch(e){case"cited":return"positive";case"emerging":return"caution";case"not-cited":return"caution";case"lost":return"negative";case"pending":return"neutral";default:return"neutral"}}function tq(e){return e==="High"?"negative":e==="Moderate"?"caution":"neutral"}const nq={positive:"text-positive-400",caution:"text-caution-400",negative:"text-negative-400",neutral:"text-secondary"};function eR(e){return e.displayName??e.name.charAt(0).toUpperCase()+e.name.slice(1)}function $s(e){const n=[e.detail,e.hint].filter(Boolean);return n.length>0?n.join(`
|
|
57
|
-
`):void 0}function tR(e,n,i){return e.map(r=>{if(r.id==="api")return{...r,tone:Db(n.apiStatus),detail:n.apiStatus.state==="ok"?"Healthy":"Needs attention",meta:n.apiStatus.detail};if(r.id==="worker")return{...r,tone:Db(n.workerStatus),detail:n.workerStatus.state==="ok"?"Healthy":"Needs attention",meta:n.workerStatus.detail};const l=i.providerStatuses.filter(g=>g.state==="ready").length,c=i.providerStatuses.length,d=l>0,h=i.providerStatuses.filter(g=>g.state==="ready").map(g=>eR(g)).join(" · ");return{...r,label:"Providers",tone:d?"positive":"caution",detail:`${l} of ${c} configured`,meta:h||"None configured"}})}function nR(e,n){if(e.apiStatus.state!=="ok")return"Launch is blocked until the API responds cleanly.";if(e.apiStatus.databaseConfigured===!1)return"Launch is blocked until the API has a database connection configured.";if(e.workerStatus.state!=="ok")return"Launch is blocked until the worker is healthy and heartbeats are current.";if(!n.providerStatuses.some(i=>i.state==="ready"))return"Launch is blocked until at least one provider is configured."}function aR(e,n,i){const r=nR(n,i),l=structuredClone(e);return l.healthChecks=l.healthChecks.map(c=>{if(c.id==="api")return{...c,detail:n.apiStatus.detail,state:n.apiStatus.state==="ok"?"ready":"attention"};if(c.id==="worker")return{...c,detail:n.workerStatus.detail,state:n.workerStatus.state==="ok"?"ready":"attention"};const d=i.providerStatuses.some(h=>h.state==="ready");return{...c,detail:d?"At least one provider configured.":"No providers configured.",state:d?"ready":"attention"}}),l.launchState.enabled=r===void 0,l.launchState.blockedReason=r,l.launchState.summary=r??"Queue a visibility sweep first, then follow with a site audit to explain movement.",l}const tS="canonry.run-tracker",Df=new Set;let Rb=!1,iR=0,jc={runs:{},batches:{}};function sR(){const e=_i();for(const n of Df)n(e)}function rR(e){if(!e)return{runs:{},batches:{}};try{const n=JSON.parse(e);return{runs:n.runs??{},batches:n.batches??{}}}catch{return{runs:{},batches:{}}}}function oR(){typeof window>"u"||window.sessionStorage.setItem(tS,JSON.stringify(jc))}function nS(){Rb||(Rb=!0,!(typeof window>"u")&&(jc=rR(window.sessionStorage.getItem(tS))))}function Nc(e){jc=e,oR(),sR()}function _i(){return nS(),jc}function lR(e){return nS(),Df.add(e),()=>{Df.delete(e)}}function aS(e){const n=_i();Nc({...n,runs:{...n.runs,[e.id]:{runId:e.id,projectId:e.projectId,projectLabel:e.projectLabel,kind:e.kind,sourceAction:e.sourceAction,lastAnnouncedStatus:e.lastAnnouncedStatus??"queued",trackedAt:e.trackedAt??Date.now()}}})}function df(e){const n=_i();if(!n.runs[e])return;const{[e]:i,...r}=n.runs;Nc({...n,runs:r})}function cR(e){const n=_i(),i=`batch_${Date.now()}_${++iR}`;return Nc({...n,batches:{...n.batches,[i]:{batchId:i,runIds:e.runIds,queuedCount:e.queuedCount,skippedCount:e.skippedCount}}}),i}function uR(e){const n=_i();if(!n.batches[e])return;const{[e]:i,...r}=n.batches;Nc({...n,batches:r})}function dR(e){return e==="completed"||e==="partial"||e==="failed"||e==="cancelled"}const fR=10*6e4;function pR(e,n,i,r){return e.filter(l=>!n.has(l.runId)&&i-(l.trackedAt??0)>=r)}function mR(e,n){let i=0,r=0,l=0,c=0,d=0;for(const h of e){const g=n[h]?.status;g==="completed"?i+=1:g==="partial"?r+=1:g==="failed"?l+=1:g==="cancelled"?c+=1:d+=1}return{completed:i,partial:r,failed:l,cancelled:c,pending:d,finished:d===0}}const Mb=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Bb=vv,iS=(e,n)=>i=>{var r;if(n?.variants==null)return Bb(e,i?.class,i?.className);const{variants:l,defaultVariants:c}=n,d=Object.keys(l).map(v=>{const S=i?.[v],x=c?.[v];if(S===null)return null;const N=Mb(S)||Mb(x);return l[v][N]}),h=i&&Object.entries(i).reduce((v,S)=>{let[x,N]=S;return N===void 0||(v[x]=N),v},{}),g=n==null||(r=n.compoundVariants)===null||r===void 0?void 0:r.reduce((v,S)=>{let{class:x,className:N,..._}=S;return Object.entries(_).every(O=>{let[k,E]=O;return Array.isArray(E)?E.includes({...c,...h}[k]):{...c,...h}[k]===E})?[...v,x,N]:v},[]);return Bb(e,d,g,i?.class,i?.className)},hR=(e,n)=>{const i=new Array(e.length+n.length);for(let r=0;r<e.length;r++)i[r]=e[r];for(let r=0;r<n.length;r++)i[e.length+r]=n[r];return i},gR=(e,n)=>({classGroupId:e,validator:n}),sS=(e=new Map,n=null,i)=>({nextPart:e,validators:n,classGroupId:i}),cc="-",Lb=[],yR="arbitrary..",bR=e=>{const n=SR(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return vR(d);const h=d.split(cc),g=h[0]===""&&h.length>1?1:0;return rS(h,g,n)},getConflictingClassGroupIds:(d,h)=>{if(h){const g=r[d],v=i[d];return g?v?hR(v,g):g:v||Lb}return i[d]||Lb}}},rS=(e,n,i)=>{if(e.length-n===0)return i.classGroupId;const l=e[n],c=i.nextPart.get(l);if(c){const v=rS(e,n+1,c);if(v)return v}const d=i.validators;if(d===null)return;const h=n===0?e.join(cc):e.slice(n).join(cc),g=d.length;for(let v=0;v<g;v++){const S=d[v];if(S.validator(h))return S.classGroupId}},vR=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const n=e.slice(1,-1),i=n.indexOf(":"),r=n.slice(0,i);return r?yR+r:void 0})(),SR=e=>{const{theme:n,classGroups:i}=e;return xR(i,n)},xR=(e,n)=>{const i=sS();for(const r in e){const l=e[r];kp(l,i,r,n)}return i},kp=(e,n,i,r)=>{const l=e.length;for(let c=0;c<l;c++){const d=e[c];wR(d,n,i,r)}},wR=(e,n,i,r)=>{if(typeof e=="string"){jR(e,n,i);return}if(typeof e=="function"){NR(e,n,i,r);return}kR(e,n,i,r)},jR=(e,n,i)=>{const r=e===""?n:oS(n,e);r.classGroupId=i},NR=(e,n,i,r)=>{if(AR(e)){kp(e(r),n,i,r);return}n.validators===null&&(n.validators=[]),n.validators.push(gR(i,e))},kR=(e,n,i,r)=>{const l=Object.entries(e),c=l.length;for(let d=0;d<c;d++){const[h,g]=l[d];kp(g,oS(n,h),i,r)}},oS=(e,n)=>{let i=e;const r=n.split(cc),l=r.length;for(let c=0;c<l;c++){const d=r[c];let h=i.nextPart.get(d);h||(h=sS(),i.nextPart.set(d,h)),i=h}return i},AR=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,_R=e=>{if(e<1)return{get:()=>{},set:()=>{}};let n=0,i=Object.create(null),r=Object.create(null);const l=(c,d)=>{i[c]=d,n++,n>e&&(n=0,r=i,i=Object.create(null))};return{get(c){let d=i[c];if(d!==void 0)return d;if((d=r[c])!==void 0)return l(c,d),d},set(c,d){c in i?i[c]=d:l(c,d)}}},Rf="!",qb=":",CR=[],Ub=(e,n,i,r,l)=>({modifiers:e,hasImportantModifier:n,baseClassName:i,maybePostfixModifierPosition:r,isExternal:l}),TR=e=>{const{prefix:n,experimentalParseClassName:i}=e;let r=l=>{const c=[];let d=0,h=0,g=0,v;const S=l.length;for(let k=0;k<S;k++){const E=l[k];if(d===0&&h===0){if(E===qb){c.push(l.slice(g,k)),g=k+1;continue}if(E==="/"){v=k;continue}}E==="["?d++:E==="]"?d--:E==="("?h++:E===")"&&h--}const x=c.length===0?l:l.slice(g);let N=x,_=!1;x.endsWith(Rf)?(N=x.slice(0,-1),_=!0):x.startsWith(Rf)&&(N=x.slice(1),_=!0);const O=v&&v>g?v-g:void 0;return Ub(c,_,N,O)};if(n){const l=n+qb,c=r;r=d=>d.startsWith(l)?c(d.slice(l.length)):Ub(CR,!1,d,void 0,!0)}if(i){const l=r;r=c=>i({className:c,parseClassName:l})}return r},ER=e=>{const n=new Map;return e.orderSensitiveModifiers.forEach((i,r)=>{n.set(i,1e6+r)}),i=>{const r=[];let l=[];for(let c=0;c<i.length;c++){const d=i[c],h=d[0]==="[",g=n.has(d);h||g?(l.length>0&&(l.sort(),r.push(...l),l=[]),r.push(d)):l.push(d)}return l.length>0&&(l.sort(),r.push(...l)),r}},OR=e=>({cache:_R(e.cacheSize),parseClassName:TR(e),sortModifiers:ER(e),...bR(e)}),zR=/\s+/,DR=(e,n)=>{const{parseClassName:i,getClassGroupId:r,getConflictingClassGroupIds:l,sortModifiers:c}=n,d=[],h=e.trim().split(zR);let g="";for(let v=h.length-1;v>=0;v-=1){const S=h[v],{isExternal:x,modifiers:N,hasImportantModifier:_,baseClassName:O,maybePostfixModifierPosition:k}=i(S);if(x){g=S+(g.length>0?" "+g:g);continue}let E=!!k,R=r(E?O.substring(0,k):O);if(!R){if(!E){g=S+(g.length>0?" "+g:g);continue}if(R=r(O),!R){g=S+(g.length>0?" "+g:g);continue}E=!1}const G=N.length===0?"":N.length===1?N[0]:c(N).join(":"),P=_?G+Rf:G,Y=P+R;if(d.indexOf(Y)>-1)continue;d.push(Y);const I=l(R,E);for(let se=0;se<I.length;++se){const z=I[se];d.push(P+z)}g=S+(g.length>0?" "+g:g)}return g},RR=(...e)=>{let n=0,i,r,l="";for(;n<e.length;)(i=e[n++])&&(r=lS(i))&&(l&&(l+=" "),l+=r);return l},lS=e=>{if(typeof e=="string")return e;let n,i="";for(let r=0;r<e.length;r++)e[r]&&(n=lS(e[r]))&&(i&&(i+=" "),i+=n);return i},MR=(e,...n)=>{let i,r,l,c;const d=g=>{const v=n.reduce((S,x)=>x(S),e());return i=OR(v),r=i.cache.get,l=i.cache.set,c=h,h(g)},h=g=>{const v=r(g);if(v)return v;const S=DR(g,i);return l(g,S),S};return c=d,(...g)=>c(RR(...g))},BR=[],Tt=e=>{const n=i=>i[e]||BR;return n.isThemeGetter=!0,n},cS=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,uS=/^\((?:(\w[\w-]*):)?(.+)\)$/i,LR=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,qR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,UR=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$R=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,VR=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,IR=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ha=e=>LR.test(e),ze=e=>!!e&&!Number.isNaN(Number(e)),Qa=e=>!!e&&Number.isInteger(Number(e)),ff=e=>e.endsWith("%")&&ze(e.slice(0,-1)),ma=e=>qR.test(e),dS=()=>!0,PR=e=>UR.test(e)&&!$R.test(e),Ap=()=>!1,GR=e=>VR.test(e),HR=e=>IR.test(e),QR=e=>!he(e)&&!ge(e),KR=e=>ni(e,mS,Ap),he=e=>cS.test(e),wi=e=>ni(e,hS,PR),$b=e=>ni(e,t3,ze),ZR=e=>ni(e,yS,dS),YR=e=>ni(e,gS,Ap),Vb=e=>ni(e,fS,Ap),XR=e=>ni(e,pS,HR),$l=e=>ni(e,bS,GR),ge=e=>uS.test(e),Yr=e=>zi(e,hS),FR=e=>zi(e,gS),Ib=e=>zi(e,fS),JR=e=>zi(e,mS),WR=e=>zi(e,pS),Vl=e=>zi(e,bS,!0),e3=e=>zi(e,yS,!0),ni=(e,n,i)=>{const r=cS.exec(e);return r?r[1]?n(r[1]):i(r[2]):!1},zi=(e,n,i=!1)=>{const r=uS.exec(e);return r?r[1]?n(r[1]):i:!1},fS=e=>e==="position"||e==="percentage",pS=e=>e==="image"||e==="url",mS=e=>e==="length"||e==="size"||e==="bg-size",hS=e=>e==="length",t3=e=>e==="number",gS=e=>e==="family-name",yS=e=>e==="number"||e==="weight",bS=e=>e==="shadow",n3=()=>{const e=Tt("color"),n=Tt("font"),i=Tt("text"),r=Tt("font-weight"),l=Tt("tracking"),c=Tt("leading"),d=Tt("breakpoint"),h=Tt("container"),g=Tt("spacing"),v=Tt("radius"),S=Tt("shadow"),x=Tt("inset-shadow"),N=Tt("text-shadow"),_=Tt("drop-shadow"),O=Tt("blur"),k=Tt("perspective"),E=Tt("aspect"),R=Tt("ease"),G=Tt("animate"),P=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Y=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],I=()=>[...Y(),ge,he],se=()=>["auto","hidden","clip","visible","scroll"],z=()=>["auto","contain","none"],q=()=>[ge,he,g],ie=()=>[Ha,"full","auto",...q()],_e=()=>[Qa,"none","subgrid",ge,he],De=()=>["auto",{span:["full",Qa,ge,he]},Qa,ge,he],ve=()=>[Qa,"auto",ge,he],et=()=>["auto","min","max","fr",ge,he],le=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],fe=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...q()],J=()=>[Ha,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...q()],pe=()=>[Ha,"screen","full","dvw","lvw","svw","min","max","fit",...q()],je=()=>[Ha,"screen","full","lh","dvh","lvh","svh","min","max","fit",...q()],re=()=>[e,ge,he],Ze=()=>[...Y(),Ib,Vb,{position:[ge,he]}],F=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ue=()=>["auto","cover","contain",JR,KR,{size:[ge,he]}],W=()=>[ff,Yr,wi],de=()=>["","none","full",v,ge,he],ne=()=>["",ze,Yr,wi],Ne=()=>["solid","dashed","dotted","double"],tt=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],xe=()=>[ze,ff,Ib,Vb],$e=()=>["","none",O,ge,he],He=()=>["none",ze,ge,he],Dt=()=>["none",ze,ge,he],Un=()=>[ze,ge,he],Rt=()=>[Ha,"full",...q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ma],breakpoint:[ma],color:[dS],container:[ma],"drop-shadow":[ma],ease:["in","out","in-out"],font:[QR],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ma],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ma],shadow:[ma],spacing:["px",ze],text:[ma],"text-shadow":[ma],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ha,he,ge,E]}],container:["container"],columns:[{columns:[ze,he,ge,h]}],"break-after":[{"break-after":P()}],"break-before":[{"break-before":P()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:I()}],overflow:[{overflow:se()}],"overflow-x":[{"overflow-x":se()}],"overflow-y":[{"overflow-y":se()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:ie()}],"inset-x":[{"inset-x":ie()}],"inset-y":[{"inset-y":ie()}],start:[{"inset-s":ie(),start:ie()}],end:[{"inset-e":ie(),end:ie()}],"inset-bs":[{"inset-bs":ie()}],"inset-be":[{"inset-be":ie()}],top:[{top:ie()}],right:[{right:ie()}],bottom:[{bottom:ie()}],left:[{left:ie()}],visibility:["visible","invisible","collapse"],z:[{z:[Qa,"auto",ge,he]}],basis:[{basis:[Ha,"full","auto",h,...q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ze,Ha,"auto","initial","none",he]}],grow:[{grow:["",ze,ge,he]}],shrink:[{shrink:["",ze,ge,he]}],order:[{order:[Qa,"first","last","none",ge,he]}],"grid-cols":[{"grid-cols":_e()}],"col-start-end":[{col:De()}],"col-start":[{"col-start":ve()}],"col-end":[{"col-end":ve()}],"grid-rows":[{"grid-rows":_e()}],"row-start-end":[{row:De()}],"row-start":[{"row-start":ve()}],"row-end":[{"row-end":ve()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":et()}],"auto-rows":[{"auto-rows":et()}],gap:[{gap:q()}],"gap-x":[{"gap-x":q()}],"gap-y":[{"gap-y":q()}],"justify-content":[{justify:[...le(),"normal"]}],"justify-items":[{"justify-items":[...fe(),"normal"]}],"justify-self":[{"justify-self":["auto",...fe()]}],"align-content":[{content:["normal",...le()]}],"align-items":[{items:[...fe(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...fe(),{baseline:["","last"]}]}],"place-content":[{"place-content":le()}],"place-items":[{"place-items":[...fe(),"baseline"]}],"place-self":[{"place-self":["auto",...fe()]}],p:[{p:q()}],px:[{px:q()}],py:[{py:q()}],ps:[{ps:q()}],pe:[{pe:q()}],pbs:[{pbs:q()}],pbe:[{pbe:q()}],pt:[{pt:q()}],pr:[{pr:q()}],pb:[{pb:q()}],pl:[{pl:q()}],m:[{m:$()}],mx:[{mx:$()}],my:[{my:$()}],ms:[{ms:$()}],me:[{me:$()}],mbs:[{mbs:$()}],mbe:[{mbe:$()}],mt:[{mt:$()}],mr:[{mr:$()}],mb:[{mb:$()}],ml:[{ml:$()}],"space-x":[{"space-x":q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":q()}],"space-y-reverse":["space-y-reverse"],size:[{size:J()}],"inline-size":[{inline:["auto",...pe()]}],"min-inline-size":[{"min-inline":["auto",...pe()]}],"max-inline-size":[{"max-inline":["none",...pe()]}],"block-size":[{block:["auto",...je()]}],"min-block-size":[{"min-block":["auto",...je()]}],"max-block-size":[{"max-block":["none",...je()]}],w:[{w:[h,"screen",...J()]}],"min-w":[{"min-w":[h,"screen","none",...J()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[d]},...J()]}],h:[{h:["screen","lh",...J()]}],"min-h":[{"min-h":["screen","lh","none",...J()]}],"max-h":[{"max-h":["screen","lh",...J()]}],"font-size":[{text:["base",i,Yr,wi]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,e3,ZR]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ff,he]}],"font-family":[{font:[FR,YR,n]}],"font-features":[{"font-features":[he]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,ge,he]}],"line-clamp":[{"line-clamp":[ze,"none",ge,$b]}],leading:[{leading:[c,...q()]}],"list-image":[{"list-image":["none",ge,he]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ge,he]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:re()}],"text-color":[{text:re()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[ze,"from-font","auto",ge,wi]}],"text-decoration-color":[{decoration:re()}],"underline-offset":[{"underline-offset":[ze,"auto",ge,he]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ge,he]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ge,he]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Ze()}],"bg-repeat":[{bg:F()}],"bg-size":[{bg:ue()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Qa,ge,he],radial:["",ge,he],conic:[Qa,ge,he]},WR,XR]}],"bg-color":[{bg:re()}],"gradient-from-pos":[{from:W()}],"gradient-via-pos":[{via:W()}],"gradient-to-pos":[{to:W()}],"gradient-from":[{from:re()}],"gradient-via":[{via:re()}],"gradient-to":[{to:re()}],rounded:[{rounded:de()}],"rounded-s":[{"rounded-s":de()}],"rounded-e":[{"rounded-e":de()}],"rounded-t":[{"rounded-t":de()}],"rounded-r":[{"rounded-r":de()}],"rounded-b":[{"rounded-b":de()}],"rounded-l":[{"rounded-l":de()}],"rounded-ss":[{"rounded-ss":de()}],"rounded-se":[{"rounded-se":de()}],"rounded-ee":[{"rounded-ee":de()}],"rounded-es":[{"rounded-es":de()}],"rounded-tl":[{"rounded-tl":de()}],"rounded-tr":[{"rounded-tr":de()}],"rounded-br":[{"rounded-br":de()}],"rounded-bl":[{"rounded-bl":de()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-bs":[{"border-bs":ne()}],"border-w-be":[{"border-be":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ne(),"hidden","none"]}],"divide-style":[{divide:[...Ne(),"hidden","none"]}],"border-color":[{border:re()}],"border-color-x":[{"border-x":re()}],"border-color-y":[{"border-y":re()}],"border-color-s":[{"border-s":re()}],"border-color-e":[{"border-e":re()}],"border-color-bs":[{"border-bs":re()}],"border-color-be":[{"border-be":re()}],"border-color-t":[{"border-t":re()}],"border-color-r":[{"border-r":re()}],"border-color-b":[{"border-b":re()}],"border-color-l":[{"border-l":re()}],"divide-color":[{divide:re()}],"outline-style":[{outline:[...Ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ze,ge,he]}],"outline-w":[{outline:["",ze,Yr,wi]}],"outline-color":[{outline:re()}],shadow:[{shadow:["","none",S,Vl,$l]}],"shadow-color":[{shadow:re()}],"inset-shadow":[{"inset-shadow":["none",x,Vl,$l]}],"inset-shadow-color":[{"inset-shadow":re()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:re()}],"ring-offset-w":[{"ring-offset":[ze,wi]}],"ring-offset-color":[{"ring-offset":re()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":re()}],"text-shadow":[{"text-shadow":["none",N,Vl,$l]}],"text-shadow-color":[{"text-shadow":re()}],opacity:[{opacity:[ze,ge,he]}],"mix-blend":[{"mix-blend":[...tt(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":tt()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ze]}],"mask-image-linear-from-pos":[{"mask-linear-from":xe()}],"mask-image-linear-to-pos":[{"mask-linear-to":xe()}],"mask-image-linear-from-color":[{"mask-linear-from":re()}],"mask-image-linear-to-color":[{"mask-linear-to":re()}],"mask-image-t-from-pos":[{"mask-t-from":xe()}],"mask-image-t-to-pos":[{"mask-t-to":xe()}],"mask-image-t-from-color":[{"mask-t-from":re()}],"mask-image-t-to-color":[{"mask-t-to":re()}],"mask-image-r-from-pos":[{"mask-r-from":xe()}],"mask-image-r-to-pos":[{"mask-r-to":xe()}],"mask-image-r-from-color":[{"mask-r-from":re()}],"mask-image-r-to-color":[{"mask-r-to":re()}],"mask-image-b-from-pos":[{"mask-b-from":xe()}],"mask-image-b-to-pos":[{"mask-b-to":xe()}],"mask-image-b-from-color":[{"mask-b-from":re()}],"mask-image-b-to-color":[{"mask-b-to":re()}],"mask-image-l-from-pos":[{"mask-l-from":xe()}],"mask-image-l-to-pos":[{"mask-l-to":xe()}],"mask-image-l-from-color":[{"mask-l-from":re()}],"mask-image-l-to-color":[{"mask-l-to":re()}],"mask-image-x-from-pos":[{"mask-x-from":xe()}],"mask-image-x-to-pos":[{"mask-x-to":xe()}],"mask-image-x-from-color":[{"mask-x-from":re()}],"mask-image-x-to-color":[{"mask-x-to":re()}],"mask-image-y-from-pos":[{"mask-y-from":xe()}],"mask-image-y-to-pos":[{"mask-y-to":xe()}],"mask-image-y-from-color":[{"mask-y-from":re()}],"mask-image-y-to-color":[{"mask-y-to":re()}],"mask-image-radial":[{"mask-radial":[ge,he]}],"mask-image-radial-from-pos":[{"mask-radial-from":xe()}],"mask-image-radial-to-pos":[{"mask-radial-to":xe()}],"mask-image-radial-from-color":[{"mask-radial-from":re()}],"mask-image-radial-to-color":[{"mask-radial-to":re()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":Y()}],"mask-image-conic-pos":[{"mask-conic":[ze]}],"mask-image-conic-from-pos":[{"mask-conic-from":xe()}],"mask-image-conic-to-pos":[{"mask-conic-to":xe()}],"mask-image-conic-from-color":[{"mask-conic-from":re()}],"mask-image-conic-to-color":[{"mask-conic-to":re()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Ze()}],"mask-repeat":[{mask:F()}],"mask-size":[{mask:ue()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ge,he]}],filter:[{filter:["","none",ge,he]}],blur:[{blur:$e()}],brightness:[{brightness:[ze,ge,he]}],contrast:[{contrast:[ze,ge,he]}],"drop-shadow":[{"drop-shadow":["","none",_,Vl,$l]}],"drop-shadow-color":[{"drop-shadow":re()}],grayscale:[{grayscale:["",ze,ge,he]}],"hue-rotate":[{"hue-rotate":[ze,ge,he]}],invert:[{invert:["",ze,ge,he]}],saturate:[{saturate:[ze,ge,he]}],sepia:[{sepia:["",ze,ge,he]}],"backdrop-filter":[{"backdrop-filter":["","none",ge,he]}],"backdrop-blur":[{"backdrop-blur":$e()}],"backdrop-brightness":[{"backdrop-brightness":[ze,ge,he]}],"backdrop-contrast":[{"backdrop-contrast":[ze,ge,he]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ze,ge,he]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ze,ge,he]}],"backdrop-invert":[{"backdrop-invert":["",ze,ge,he]}],"backdrop-opacity":[{"backdrop-opacity":[ze,ge,he]}],"backdrop-saturate":[{"backdrop-saturate":[ze,ge,he]}],"backdrop-sepia":[{"backdrop-sepia":["",ze,ge,he]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":q()}],"border-spacing-x":[{"border-spacing-x":q()}],"border-spacing-y":[{"border-spacing-y":q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ge,he]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ze,"initial",ge,he]}],ease:[{ease:["linear","initial",R,ge,he]}],delay:[{delay:[ze,ge,he]}],animate:[{animate:["none",G,ge,he]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,ge,he]}],"perspective-origin":[{"perspective-origin":I()}],rotate:[{rotate:He()}],"rotate-x":[{"rotate-x":He()}],"rotate-y":[{"rotate-y":He()}],"rotate-z":[{"rotate-z":He()}],scale:[{scale:Dt()}],"scale-x":[{"scale-x":Dt()}],"scale-y":[{"scale-y":Dt()}],"scale-z":[{"scale-z":Dt()}],"scale-3d":["scale-3d"],skew:[{skew:Un()}],"skew-x":[{"skew-x":Un()}],"skew-y":[{"skew-y":Un()}],transform:[{transform:[ge,he,"","none","gpu","cpu"]}],"transform-origin":[{origin:I()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Rt()}],"translate-x":[{"translate-x":Rt()}],"translate-y":[{"translate-y":Rt()}],"translate-z":[{"translate-z":Rt()}],"translate-none":["translate-none"],accent:[{accent:re()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:re()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ge,he]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mbs":[{"scroll-mbs":q()}],"scroll-mbe":[{"scroll-mbe":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pbs":[{"scroll-pbs":q()}],"scroll-pbe":[{"scroll-pbe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ge,he]}],fill:[{fill:["none",...re()]}],"stroke-w":[{stroke:[ze,Yr,wi,$b]}],stroke:[{stroke:["none",...re()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},a3=MR(n3);function En(...e){return a3(vv(e))}const i3=iS("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 focus-visible:ring-offset-2 focus-visible:ring-offset-overlay-scrim disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-accent text-on-inverse hover:bg-mono-200",secondary:"border border-base bg-bg text-heading hover:bg-bg-elevated",ghost:"text-secondary hover:bg-bg-elevated hover:text-primary",outline:"border border-base bg-transparent text-heading hover:bg-bg-elevated",destructive:"bg-negative-600 text-on-emphasis hover:bg-negative-700"},size:{default:"h-10 px-4 md:h-9",sm:"h-9 px-3 text-xs md:h-8",icon:"size-10 md:size-9"}},defaultVariants:{variant:"default",size:"default"}}),Ue=L.forwardRef(({className:e,variant:n,size:i,asChild:r=!1,...l},c)=>{const d=r?Vw:"button";return f.jsx(d,{ref:c,className:En(i3({variant:n,size:i,className:e})),...l})});Ue.displayName="Button";const s3=iS("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium tracking-wide",{variants:{variant:{neutral:"border-base bg-bg text-neutral",success:"border-positive bg-positive-soft text-positive",warning:"border-caution-500/25 bg-caution-soft text-caution",destructive:"border-negative bg-negative-soft text-negative"}},defaultVariants:{variant:"neutral"}});function vS({className:e,variant:n,...i}){return f.jsx("div",{className:En(s3({variant:n}),e),...i})}const r3=220;function Pb({compact:e=!1,version:n,updateAvailable:i,onDismissUpdate:r}){const l=!e&&n&&n!=="unknown",[c,d]=L.useState(!1),h=!e&&i&&r,g=()=>{d(!0),window.setTimeout(()=>{r?.(),d(!1)},r3)};return e?f.jsxs(st,{to:"/",className:"brand-lockup brand-lockup-compact","aria-label":"Canonry home",children:[f.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"}),f.jsx("span",{className:"brand-copy",children:f.jsx("span",{className:"brand-mark",children:"Canonry"})})]}):f.jsxs("div",{className:"brand-lockup brand-lockup-wrapper",children:[f.jsx(st,{to:"/",className:"brand-icon-link","aria-label":"Canonry home",tabIndex:-1,children:f.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"})}),f.jsxs("div",{className:"brand-copy",children:[f.jsx(st,{to:"/",className:"brand-mark",children:"Canonry"}),h?f.jsxs("span",{className:`brand-update-bubble ${c?"brand-update-bubble-closing":""}`,role:"status","aria-live":"polite",children:[f.jsxs("a",{className:"brand-update-bubble-link",href:i.url,target:"_blank",rel:"noopener noreferrer",title:`Open release: ${i.upgradeCommand}`,"aria-label":`New version v${i.latest} available — open release page`,children:[f.jsxs("span",{className:"brand-update-bubble-from",children:["v",i.current]}),f.jsx(gA,{className:"brand-update-bubble-arrow size-3","aria-hidden":"true"}),f.jsxs("span",{className:"brand-update-bubble-to",children:["v",i.latest]})]}),f.jsx("button",{type:"button",className:"brand-update-bubble-dismiss",onClick:g,"aria-label":`Dismiss update notification for v${i.latest}`,children:f.jsx(Hs,{className:"size-3","aria-hidden":"true"})})]}):l?f.jsxs("span",{className:"brand-version",children:["v",n]}):null]})]})}function o3({provider:e}){const n={gemini:"border-blue-800/50 bg-blue-950/40 text-blue-300",openai:"border-green-800/50 bg-green-950/40 text-green-300",claude:"border-amber-800/50 bg-amber-950/40 text-amber-300",perplexity:"border-teal-800/50 bg-teal-950/40 text-teal-300",local:"border-purple-800/50 bg-purple-950/40 text-purple-300"},r=Object.hasOwn(n,e)?`provider-badge--${e} ${n[e]}`:"border-zinc-700 bg-zinc-800 text-zinc-300";return f.jsx("span",{className:`provider-badge inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide ${r}`,children:e})}function Bn({tone:e,children:n,...i}){const r=e==="positive"?"success":e==="caution"?"warning":e==="negative"?"destructive":"neutral";return f.jsx(vS,{variant:r,...i,children:n})}function _p({status:e}){return f.jsx(Bn,{tone:eS(e),children:e4(e)})}const l3=bv,c3=hv,SS=L.forwardRef(({className:e,...n},i)=>f.jsx(Qf,{ref:i,className:En("fixed inset-0 z-50 bg-overlay-scrim/70 backdrop-blur-sm",e),...n}));SS.displayName=Qf.displayName;const u3=400,d3=1200,f3=720,xS=L.forwardRef(({className:e,children:n,...i},r)=>{const[l,c]=L.useState(f3),d=L.useRef(!1),h=L.useRef(0),g=L.useRef(0),v=L.useCallback(N=>{d.current=!0,h.current=N.clientX,g.current=l,N.target.setPointerCapture(N.pointerId),N.preventDefault()},[l]),S=L.useCallback(N=>{if(!d.current)return;const _=h.current-N.clientX,O=Math.min(d3,Math.max(u3,g.current+_));c(O)},[]),x=L.useCallback(()=>{d.current=!1},[]);return f.jsxs(c3,{children:[f.jsx(SS,{}),f.jsxs(Kf,{ref:r,className:En("fixed z-50 flex flex-col bg-bg px-5 py-4 shadow-2xl overflow-hidden","max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:max-h-[88vh] max-md:rounded-t-2xl max-md:border-t","md:inset-y-0 md:right-0 md:h-full md:border-l","border-base",e),style:{width:`min(${l}px, 100vw)`},...i,children:[f.jsx("div",{className:"absolute inset-y-0 left-0 w-1.5 cursor-col-resize hover:bg-mono-700/50 active:bg-mono-600/50 transition-colors max-md:hidden",onPointerDown:v,onPointerMove:S,onPointerUp:x}),n,f.jsxs(gv,{className:"absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-bg-elevated hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",children:[f.jsx(Hs,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]})]})});xS.displayName=Kf.displayName;const p3=({className:e,...n})=>f.jsx("div",{className:En("flex flex-col gap-1.5 pr-10",e),...n}),wS=L.forwardRef(({className:e,...n},i)=>f.jsx(Zf,{ref:i,className:En("text-lg font-medium text-primary",e),...n}));wS.displayName=Zf.displayName;const jS=L.forwardRef(({className:e,...n},i)=>f.jsx(yv,{ref:i,className:En("text-sm text-muted",e),...n}));jS.displayName=yv.displayName;function m3({title:e,subtitle:n,children:i,open:r,onClose:l}){return f.jsx(l3,{open:r,onOpenChange:c=>c?void 0:l(),children:f.jsxs(xS,{children:[f.jsxs(p3,{className:"drawer-head",children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:n}),f.jsx(wS,{id:"drawer-title",children:e}),f.jsx(jS,{className:"sr-only",children:n})]}),f.jsx("div",{className:"drawer-body",children:i})]})})}function Xr({text:e}){const[n,i]=L.useState(null),r=L.useRef(null),l=L.useCallback(()=>{if(!r.current)return;const h=r.current.getBoundingClientRect();i({top:h.top,left:h.left+h.width/2})},[]),c=L.useCallback(()=>i(null),[]),d=L.useCallback(()=>{n===null?l():c()},[n,l,c]);return f.jsxs("span",{className:"info-tooltip-wrapper",onMouseEnter:l,onMouseLeave:c,children:[f.jsx("button",{ref:r,type:"button",className:"info-tooltip-trigger","aria-label":e,"aria-expanded":n!==null,onFocus:l,onBlur:c,onClick:d,onKeyDown:h=>{h.key==="Escape"&&c()},children:f.jsxs("svg",{className:"info-tooltip-icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[f.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),f.jsx("path",{d:"M8 7v4M8 5.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),n!==null&&Dw.createPortal(f.jsx("span",{"aria-hidden":"true",style:{position:"fixed",top:n.top,left:n.left,transform:"translateX(-50%) translateY(calc(-100% - 8px))",zIndex:9999,pointerEvents:"none",width:"14rem",padding:"0.5rem 0.75rem",fontSize:"11px",fontWeight:400,textTransform:"none",letterSpacing:"normal",lineHeight:"1rem",color:"var(--color-neutral-text)",backgroundColor:"var(--color-bg-elevated)",border:"1px solid color-mix(in oklab, var(--color-border-strong) 60%, transparent)",borderRadius:"0.5rem",boxShadow:"0 10px 15px -3px var(--color-shadow-tooltip), 0 4px 6px -4px var(--color-shadow-tooltip)"},children:e}),document.body)]})}const h3=/[\s\-_]+/;function g3(e){const n=e.split(h3).filter(Boolean);return n.length===0?null:n.map(i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\s\\-_]*")}function Gb(e,n){const i=y3(n),r=e.split(/(\*\*[^*]+\*\*)/).filter(Boolean).map(v=>v.startsWith("**")&&v.endsWith("**")?{type:"bold",value:v.slice(2,-2)}:{type:"text",value:v}),l=i.flatMap(v=>v.terms).filter(v=>v.trim().length>1);if(l.length===0)return r.map((v,S)=>v.type==="bold"?ks.createElement("strong",{key:`b-${S}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const d=[...l].sort((v,S)=>S.length-v.length).map(g3).filter(v=>!!v);if(d.length===0)return r.map((v,S)=>v.type==="bold"?ks.createElement("strong",{key:`b-${S}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const h=new RegExp(`(${d.join("|")})`,"gi"),g=new Map;for(const v of i)for(const S of v.terms){const x=lc(S);x&&!g.has(x)&&g.set(x,v.className)}return r.flatMap((v,S)=>v.value.split(h).map((N,_)=>{if(!N)return null;if(_%2===1){const k=g.get(lc(N))??"answer-highlight";return v.type==="bold"?ks.createElement("mark",{key:`hl-${S}-${_}`,className:k},ks.createElement("strong",{className:"text-strong font-semibold"},N)):ks.createElement("mark",{key:`hl-${S}-${_}`,className:k},N)}return v.type==="bold"?ks.createElement("strong",{key:`b-${S}-${_}`,className:"text-strong font-semibold"},N):N})).filter(Boolean)}function y3(e){return e.length===0?[]:typeof e[0]=="string"?[{terms:e,className:"answer-highlight"}]:e}function Mf(e){const n=(e??"").trim();return n&&(n.startsWith("/")||/^https?:\/\//i.test(n)||/^mailto:/i.test(n))?n:null}function pf(e,n){switch(e){case"new":return"First observation";case"emerging":return"First mention";case"lost":return"Lost since last run";default:return n==="mentioned"||n==="visible"?"Mentioned in latest run":n==="pending"?"Awaiting first run":"Not mentioned in latest run"}}function b3({evidence:e,project:n,onClose:i}){const[r,l]=L.useState(!1),[c,d]=L.useState("mentions"),[h,g]=L.useState(-1),[v,S]=L.useState(null),[x,N]=L.useState(!1),[_,O]=L.useState({}),k=XE(n.project),E=new Set(k.map(ic)),R=e.runHistory,G=R.length>1,[P,Y]=L.useState(null),I=L.useRef(!1);L.useEffect(()=>{if(I.current||e.answerSnippet&&(e.visibilityState!=null||e.answerMentioned!=null))return;const W=R.at(-1);W&&(I.current=!0,Wl(W.runId).then(de=>{const ne=de.snapshots?.find(Ne=>Ne.query===e.query&&Ne.provider===e.provider);ne&&Y({citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:W.visibilityTransition,provider:ne.provider,model:ne.model??e.model,answerSnippet:ne.answerText??e.answerSnippet,citedDomains:ne.citedDomains??e.citedDomains,competitorDomains:ne.competitorOverlap??e.competitorDomains,recommendedCompetitors:ne.recommendedCompetitors??e.recommendedCompetitors??[],matchedTerms:ne.matchedTerms??e.matchedTerms??[],groundingSources:ne.groundingSources??e.groundingSources,searchQueries:ne.searchQueries,evidenceUrls:[],changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary})}).catch(()=>{}))},[e,R]);const se=h>=0&&v!==null,z=se?v:P||{citationState:e.citationState,answerMentioned:e.answerMentioned,visibilityState:e.visibilityState,visibilityTransition:R.at(-1)?.visibilityTransition,provider:e.provider,model:e.model,answerSnippet:e.answerSnippet,citedDomains:e.citedDomains,competitorDomains:e.competitorDomains,recommendedCompetitors:e.recommendedCompetitors??[],matchedTerms:e.matchedTerms??[],groundingSources:e.groundingSources,searchQueries:e.searchQueries??[],evidenceUrls:e.evidenceUrls,changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary},q=z.visibilityState==="pending"||z.citationState==="pending",ie=q?!1:z.visibilityState!=null?z.visibilityState==="visible":z.answerMentioned!=null?z.answerMentioned:z.citationState===sc.cited||z.citationState==="emerging",_e=z.answerMentioned!=null||z.visibilityState!=null||z.recommendedCompetitors.length>0,De=z.citedDomains.length>0||z.groundingSources.length>0||z.evidenceUrls.length>0,ve=n.project.displayName||n.project.name,et=[...k.map(ic),ve,ve.split(" ").slice(0,2).join(" "),...z.matchedTerms].filter(W=>W.trim().length>2),le=[...z.competitorDomains.flatMap(W=>{const de=YE(W);return de.length>=4?[de]:[]}),...z.recommendedCompetitors].filter(W=>W.trim().length>2),fe=[{terms:et,className:"answer-highlight-brand"},...le.length>0?[{terms:le,className:"answer-highlight-competitor"}]:[]],$=q?"pending":z.visibilityTransition==="lost"?"lost":ie?"mentioned":"not-mentioned",J=L.useRef(0),pe=L.useCallback(async W=>{const de=++J.current;if(W===-1||W===R.length-1){g(-1),S(null),l(!1);return}g(W),l(!1);const ne=R[W],Ne=`${ne.runId}::${e.query}::${e.provider}`;if(_[Ne]){S(_[Ne]);return}N(!0);try{const tt=await Wl(ne.runId);if(de!==J.current)return;const xe=tt.snapshots?.find(He=>He.query===e.query&&He.provider===e.provider)??tt.snapshots?.find(He=>He.query===e.query),$e=xe?{citationState:xe.citationState,answerMentioned:xe.answerMentioned,visibilityState:xe.visibilityState,visibilityTransition:ne.visibilityTransition,provider:xe.provider,model:xe.model??null,answerSnippet:xe.answerText??"",citedDomains:xe.citedDomains,competitorDomains:xe.competitorOverlap,recommendedCompetitors:xe.recommendedCompetitors??[],matchedTerms:xe.matchedTerms??[],groundingSources:xe.groundingSources,searchQueries:xe.searchQueries,evidenceUrls:[],changeLabel:pf(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:""}:{citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:ne.visibilityTransition,provider:e.provider,model:ne.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:pf(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Snapshot data not available for this run."};O(He=>({...He,[Ne]:$e})),S($e)}catch{if(de!==J.current)return;S({citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:ne.visibilityTransition,provider:e.provider,model:ne.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:pf(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Failed to load historical run data."})}finally{de===J.current&&N(!1)}},[R,e.query,e.provider,_]),re=(se||e.historyScope!=="provider")&&z.model?`${z.provider} (${z.model}) · ${z.changeLabel.toLowerCase()}`:`${z.provider} · ${z.changeLabel.toLowerCase()}`,Ze=!se&&e.historyScope==="provider"?[e.model?`Current model: ${e.model}`:null,e.modelsSeen&&e.modelsSeen.length>1?`History spans ${e.modelsSeen.length} models`:null].filter(Boolean).join(" · "):"",F=ie?{label:"Mentioned in answer",title:"Your brand or domain is mentioned in this answer",meta:re}:z.visibilityTransition==="lost"?{label:"Mention lost",title:"Your brand no longer appears in this answer",meta:re}:q?{label:"Pending",title:"Awaiting first run",meta:"No provider data yet"}:{label:"Not mentioned in answer",title:"Your brand or domain was not mentioned in this answer",meta:re},ue=()=>{if(!z.answerSnippet)return null;const W=z.answerSnippet.split(`
|
|
58
|
-
`),de=[];let ne=[],Ne=0;const tt=()=>{if(ne.length===0)return;const xe=ne.join(" ").trim();xe&&de.push(f.jsx("p",{className:de.length>0?"mt-2.5":"",children:Gb(xe,fe)},Ne++)),ne=[]};for(const xe of W){const $e=xe.trim();if(/^[-\u2013\u2014]{3,}$/.test($e)){tt(),de.push(f.jsx("hr",{className:"border-default my-3"},Ne++));continue}const He=$e.match(/^(#{1,3})\s+(\S.*)$/);if(He){tt();const Dt=He[1].length,Un=He[2].replace(/^[\p{Emoji}\p{Emoji_Component}\s]+/u,"").trim()||He[2],Rt=Dt===1?"text-[13px] font-semibold text-heading mt-4 mb-1":Dt===2?"text-xs font-semibold text-strong mt-3 mb-0.5":"text-xs font-medium text-neutral mt-2";de.push(f.jsx("p",{className:Rt,children:Gb(Un,fe)},Ne++));continue}if($e===""){tt();continue}ne.push($e)}return tt(),de};return f.jsx(bv,{open:!0,onOpenChange:W=>{W||i()},children:f.jsxs(hv,{children:[f.jsx(Qf,{className:"fixed inset-0 z-50 bg-overlay-scrim/80 backdrop-blur-sm"}),f.jsxs(Kf,{className:"evidence-modal","aria-describedby":void 0,children:[f.jsxs("div",{className:"evidence-modal-header",children:[f.jsxs("div",{className:"min-w-0 flex-1",children:[f.jsxs("p",{className:"eyebrow eyebrow-soft",children:[n.project.name," ","·"," ",z.provider||"All providers"]}),f.jsx(Zf,{className:"text-lg font-semibold text-primary truncate",children:e.query})]}),f.jsxs(gv,{className:"inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-mono-800 hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 shrink-0",children:[f.jsx(Hs,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]}),G&&f.jsxs("div",{className:"evidence-modal-timeline",children:[f.jsx("p",{className:"drawer-section-label mb-1.5",children:"Run history"}),f.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-1",children:R.map((W,de)=>{const ne=h===-1&&de===R.length-1||h===de,Ne=W.visibilityState??(W.answerMentioned?"visible":"not-visible"),tt=W.visibilityTransition??Ne,xe=Ne==="visible"?"bg-positive-400":tt==="emerging"?"bg-caution-400":tt==="lost"?"bg-negative-400":"bg-mono-600",He=new Date(W.createdAt).toLocaleDateString(void 0,{month:"short",day:"numeric"}),Dt=!!(W.model&&de>0&&R[de-1]?.model&&R[de-1].model!==W.model);return f.jsxs("button",{type:"button",className:`evidence-run-dot ${ne?"evidence-run-dot--selected":""}`,onClick:()=>{pe(de===R.length-1?-1:de)},"aria-label":[`Run ${He}: ${Ne}`,W.model?`model ${W.model}`:null,Dt?"model changed":null].filter(Boolean).join(" — "),"aria-pressed":ne,children:[f.jsx("span",{className:`size-2 rounded-full ${xe} ${Dt?"ring-1 ring-caution-300/80 ring-offset-2 ring-offset-bg":""}`,"aria-hidden":"true"}),f.jsx("span",{className:"text-[10px] text-muted",children:He})]},de)})}),h>=0&&h<R.length&&f.jsxs("p",{className:"text-[11px] text-muted mt-1",children:["Viewing run from ",new Date(R[h].createdAt).toLocaleString()," ","—"," ",f.jsx("span",{className:"capitalize",children:R[h].visibilityState??(R[h].answerMentioned?"visible":"not-visible")}),f.jsxs("button",{type:"button",className:"text-secondary hover:text-strong ml-2",onClick:()=>{pe(-1)},children:["←"," Back to latest"]})]}),!se&&(e.modelTransitions?.length??0)>0&&f.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.modelTransitions.map(W=>f.jsx("span",{className:"inline-flex items-center rounded-full border border-caution-400/30 bg-caution-400/10 px-2 py-1 text-[10px] text-caution-100",children:`${W.fromModel??"unknown"} -> ${W.toModel??"unknown"} on ${new Date(W.createdAt).toLocaleDateString()}`},`${W.runId}:${W.toModel??"unknown"}`))})]}),f.jsxs("div",{className:"evidence-modal-body",children:[x&&f.jsxs("div",{className:"md:col-span-2 flex items-center justify-center py-12 text-muted text-sm",children:["Loading historical run data","…"]}),!x&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"evidence-modal-main",children:[f.jsxs("div",{className:`evidence-position-hero evidence-position-hero--${$}`,children:[f.jsx("p",{className:`evidence-position-label evidence-position-label--${$}`,children:F.label}),f.jsx("p",{className:`evidence-position-title evidence-position-title--${$}`,children:F.title}),f.jsx("p",{className:"evidence-position-meta",children:F.meta}),Ze&&f.jsx("p",{className:"mt-1 text-[11px] text-muted",children:Ze})]}),z.answerSnippet&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:"What the AI said"}),f.jsx("div",{className:`answer-snippet-block ${r?"evidence-answer-expanded":"evidence-answer-collapsed"}`,children:ue()}),z.answerSnippet.length>280&&f.jsx("button",{type:"button",className:"mt-1.5 text-xs text-muted hover:text-neutral transition-colors",onClick:()=>l(!r),children:r?"↑ Collapse":"↓ Show full answer"})]}),!z.answerSnippet&&!x&&f.jsx("div",{className:"rounded-lg border border-subtle bg-surface-subtle px-4 py-8 text-center text-faint text-sm",children:"No answer text recorded for this run"}),z.searchQueries.length>0&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Web searches the model ran"}),f.jsx(Xr,{text:"The search queries this AI model issued while researching your prompt. They reveal how the model reformulated the question — the phrasings worth optimizing your content for. Distinct from grounding sources (what it found) and citations (what it linked)."})]}),f.jsx("ul",{className:"grid gap-1",children:z.searchQueries.map((W,de)=>f.jsxs("li",{className:"flex items-start gap-2 text-sm text-neutral",children:[f.jsx(t_,{className:"size-3.5 mt-0.5 shrink-0 text-faint","aria-hidden":"true"}),f.jsx("span",{className:"break-words",children:W})]},`${de}-${W}`))})]}),!se&&e.relatedTechnicalSignals.length>0&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:ie?"Why you're visible":"What to fix"}),f.jsx("div",{className:"action-items-list",children:e.relatedTechnicalSignals.map((W,de)=>f.jsxs("div",{className:"action-item",children:[f.jsx("svg",{className:`action-item-icon ${ie?"text-positive-400":"text-caution-400"}`,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ie?f.jsx("path",{d:"M3 8l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}):f.jsxs(f.Fragment,{children:[f.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),f.jsx("path",{d:"M8 5v3.5M8 10.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),f.jsx("span",{className:"action-item-text",children:W})]},de))})]}),z.summary&&f.jsx("p",{className:"text-xs text-faint border-t border-subtle pt-3 mt-1",children:z.summary})]}),f.jsxs("div",{className:"evidence-modal-sidebar",children:[(_e||De)&&f.jsxs("div",{className:"sidebar-tabs",children:[f.jsx("button",{className:`sidebar-tab ${c==="mentions"?"sidebar-tab--active":""}`,onClick:()=>d("mentions"),type:"button",title:"Canonry's answer-level visibility assessment and any company names extracted from the answer text.",children:"Mentions"}),f.jsx("button",{className:`sidebar-tab ${c==="sources"?"sidebar-tab--active":""}`,onClick:()=>d("sources"),type:"button",title:"Grounding links the model used to build the answer. These are supporting sources, not the primary visibility signal.",children:"Sources"})]}),c==="mentions"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Mention in answer"}),f.jsx(Xr,{text:"Canonry scans the AI answer for your owned domains and project name. This is independent from grounding or citation sources."})]}),f.jsxs("div",{className:`mention-status mention-status--${ie?"mentioned":"not-mentioned"}`,children:[f.jsx("span",{className:"mention-status-icon",children:q?"…":ie?"✓":"—"}),f.jsx("span",{className:"mention-status-label",children:q?"Pending":ie?"Mentioned":"Not mentioned"})]}),z.matchedTerms.length>0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Matched in answer"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:z.matchedTerms.map(W=>f.jsx("span",{className:"mention-chip mention-chip--brand",children:W},W))})]}),!q&&!ie&&z.matchedTerms.length===0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Searched for"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:et.map(W=>f.jsx("span",{className:"mention-chip mention-chip--muted",children:W},W))}),f.jsx("p",{className:"text-[11px] text-faint mt-1.5",children:"None of these appear in the answer text."})]})]}),(z.recommendedCompetitors.length>0||z.competitorDomains.length>0)&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Competitors in answer"}),f.jsx(Xr,{text:"Competitors detected in the answer text or cited source links. Includes both tracked competitors and names extracted by Canonry."})]}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:(()=>{const W=z.competitorDomains.map(Ne=>Ne.replace(/^www\./,"")),de=new Set(W.map(Ne=>lc(Ne.replace(/\.[^.]+$/,""))));return[...z.recommendedCompetitors.filter(Ne=>!de.has(lc(Ne))),...W].map(Ne=>f.jsx("span",{className:"mention-chip mention-chip--competitor",children:Ne},Ne))})()})]})]}),c==="sources"&&f.jsxs(f.Fragment,{children:[z.citedDomains.length>0&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Domains from source links"}),f.jsx(Xr,{text:"These domains were extracted from grounding or citation URLs. They are supporting-source metadata, not proof that the answer text mentioned them."})]}),f.jsx("div",{className:"citation-leaderboard",children:z.citedDomains.map((W,de)=>{const ne=W.toLowerCase().replace(/^www\./,""),Ne=E.has(ne),tt=!Ne&&z.competitorDomains.some($e=>$e.toLowerCase().replace(/^www\./,"")===ne),xe=Ne?"you":tt?"competitor":"other";return f.jsxs("div",{className:`citation-leaderboard-item citation-leaderboard-item--${xe}`,children:[f.jsxs("span",{className:"citation-leaderboard-rank",children:["#",de+1]}),f.jsx("span",{className:"citation-leaderboard-domain",children:W}),Ne&&f.jsx("span",{className:"citation-leaderboard-tag",children:"You"}),tt&&f.jsx("span",{className:"citation-leaderboard-tag",children:"Competitor"})]},W)})})]}),z.groundingSources.length>0&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsxs("span",{children:["Grounding source links (",z.groundingSources.length,")"]}),f.jsx(Xr,{text:"Links the model used as grounding or supporting context while producing the answer. These are not the same thing as answer visibility."})]}),f.jsx("ul",{className:"grid gap-0.5",children:z.groundingSources.map((W,de)=>{const ne=Mf(W.uri),Ne=W.title||W.uri;return f.jsx("li",{className:"truncate text-sm",children:ne?f.jsx("a",{href:ne,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:Ne}):f.jsx("span",{className:"text-secondary",children:Ne})},de)})})]}),z.evidenceUrls.length>0&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:"Evidence URLs"}),f.jsx("ul",{className:"grid gap-1",children:z.evidenceUrls.map(W=>{const de=Mf(W);return f.jsx("li",{className:"truncate text-sm",children:de?f.jsx("a",{href:de,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:W}):f.jsx("span",{className:"text-secondary",children:W})},W)})})]}),z.citedDomains.length===0&&z.groundingSources.length===0&&z.evidenceUrls.length===0&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No source data ",se?"for this run":"yet"]})]}),!_e&&!De&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No answer visibility data ",se?"for this run":"yet"]})]})]})]})]})]})})}function v3(e){const n=e.match(/^\/projects\/([^/]+)/);if(!n)return null;try{return decodeURIComponent(n[1])}catch{return n[1]}}function S3(e,n){return e?n?.projects.find(r=>r.project.name===e||r.project.id===e)?.project.name??e:null}function x3(e,n){return S3(v3(e),n)}function Mn(e){const n=new Date("2026-02-20");return e.map((i,r)=>({runId:`run_mock_${r+1}`,citationState:i,createdAt:new Date(n.getTime()+r*2*24*60*60*1e3).toISOString()}))}const mf=[{id:"project_citypoint",name:"Citypoint Dental NYC",canonicalDomain:"citypointdental.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["local intent","priority"],labels:{},providers:[],locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_harbor",name:"Harbor Legal Group",canonicalDomain:"harborlegal.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["lead gen"],labels:{},providers:[],locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_northstar",name:"Northstar Orthopedics",canonicalDomain:"northstarortho.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["multi-location"],labels:{},providers:[],locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1}];function kc(e){return{id:e.id,projectId:e.projectId,projectName:e.projectName,kind:e.kind,kindLabel:e.kindLabel,status:e.status,trigger:e.trigger??"manual",createdAt:e.createdAt,startedAt:e.startedAt,duration:e.duration,statusDetail:e.statusDetail,summary:e.summary,triggerLabel:e.triggerLabel}}const w3=kc({id:"run_citypoint_visibility_20260308",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T12:15:00.000Z",startedAt:"Mar 8, 12:15 PM",duration:"6m 12s",statusDetail:"18 tracked queries checked; 3 citation losses detected on emergency-intent prompts.",summary:"Citation losses on emergency-intent prompts",triggerLabel:"Scheduled"}),j3=kc({id:"run_citypoint_queued_20260309",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"queued",createdAt:"2026-03-09T08:05:00.000Z",startedAt:"Mar 9, 8:05 AM",duration:"Waiting for slot",statusDetail:"Ready to enqueue after the next provider rate window clears.",summary:"Queued follow-up after local ranking movement",triggerLabel:"Manual"}),N3=kc({id:"run_harbor_visibility_20260308",projectId:"project_harbor",projectName:"Harbor Legal Group",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T11:05:00.000Z",startedAt:"Mar 8, 11:05 AM",duration:"5m 07s",statusDetail:"12 tracked queries checked; local-intent visibility held steady across branded prompts.",summary:"Branded prompts remain stable",triggerLabel:"Scheduled"}),k3=kc({id:"run_northstar_visibility_20260308",projectId:"project_northstar",projectName:"Northstar Orthopedics",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"running",createdAt:"2026-03-08T13:40:00.000Z",startedAt:"Mar 8, 1:40 PM",duration:"3m 10s",statusDetail:"Provider responses still in flight for 9 multi-location prompts.",summary:"Mid-run on treatment-location prompts",triggerLabel:"Manual"}),A3=[{id:"evidence_citypoint_emergency_gemini",query:"emergency dentist brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"lost",changeLabel:"Lost since Mar 5",answerSnippet:"For urgent dental care in Brooklyn, Downtown Smiles and Harbor Dental are now cited first for emergency availability and same-day booking.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:["https://downtownsmiles.com/emergency-dentist-brooklyn","https://harbordental.com/same-day-emergency-care"],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing on the emergency service page","llms.txt not found during latest site audit","Location pages link weakly into the emergency care hub"],summary:"AI answers now cite two competitors while your emergency page is no longer grounded.",runHistory:Mn(["cited","cited","cited","cited","cited","cited","cited","not-cited","not-cited"])},{id:"evidence_citypoint_emergency_openai",query:"emergency dentist brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"Cited for 6 runs",answerSnippet:"Citypoint Dental is listed as a top emergency dentist in Brooklyn for same-day appointments and walk-in availability.",citedDomains:["citypointdental.com","downtownsmiles.com"],evidenceUrls:["https://citypointdental.com/emergency-dentist-brooklyn"],competitorDomains:["downtownsmiles.com"],groundingSources:[],relatedTechnicalSignals:["Emergency page indexed with structured data"],summary:"OpenAI cites your emergency page consistently alongside one competitor.",runHistory:Mn(["not-cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_emergency_claude",query:"emergency dentist brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"Based on the search results, top-rated emergency dental practices in Brooklyn include Downtown Smiles and Harbor Dental.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:[],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing","llms.txt not found"],summary:"Claude does not cite your domain for this emergency query.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_invisalign_openai",query:"best invisalign dentist downtown brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"emerging",changeLabel:"First citation in 7 days",answerSnippet:"Citypoint Dental appears as an emerging recommendation for Invisalign in Downtown Brooklyn, supported by recent before-and-after case pages.",citedDomains:["citypointdental.com","clearlineortho.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn","https://citypointdental.com/case-studies/invisalign-open-bite"],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["Structured data now present on two case-study pages","Internal links from service pages to case studies improved crawl depth"],summary:"Fresh case-study content is starting to earn citations on Invisalign prompts.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","cited"])},{id:"evidence_citypoint_invisalign_gemini",query:"best invisalign dentist downtown brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"cited",changeLabel:"Cited for 8 runs",answerSnippet:"Citypoint Dental in Downtown Brooklyn is highlighted for its Invisalign expertise and patient outcomes.",citedDomains:["citypointdental.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn"],competitorDomains:[],groundingSources:[],relatedTechnicalSignals:["Case study pages well-indexed"],summary:"Gemini consistently cites your Invisalign page with no competitor overlap.",runHistory:Mn(["cited","cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_invisalign_claude",query:"best invisalign dentist downtown brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For Invisalign in Downtown Brooklyn, Clear Line Ortho and Brooklyn Smiles are frequently recommended for their experienced orthodontists.",citedDomains:["clearlineortho.com","brooklynsmiles.com"],evidenceUrls:[],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["No before/after schema on case study pages"],summary:"Claude does not surface your Invisalign content despite strong page quality.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_claude",query:"pediatric dentist brooklyn heights",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 4 runs",answerSnippet:"Answers cite neighborhood-specific pediatric practices with stronger family-focused FAQ content and clearer insurance details.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:["https://brightkidsdental.com/pediatric-dentist-brooklyn-heights","https://parkpediatricdental.com/insurance"],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric service page exists for Brooklyn Heights","Insurance content is buried three clicks deep"],summary:"Coverage gap is content-driven, not purely technical.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_gemini",query:"pediatric dentist brooklyn heights",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For pediatric dentistry in Brooklyn Heights, Bright Kids Dental and Park Pediatric Dental are cited for family-friendly care.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:[],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric page for Brooklyn Heights"],summary:"Gemini does not surface your domain for pediatric queries in this area.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_openai",query:"pediatric dentist brooklyn heights",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"First citation this month",answerSnippet:"Citypoint Dental is mentioned as offering pediatric services in Brooklyn, though specialized pediatric-only practices are also highlighted.",citedDomains:["citypointdental.com","brightkidsdental.com"],evidenceUrls:["https://citypointdental.com/family-dentistry"],competitorDomains:["brightkidsdental.com"],groundingSources:[],relatedTechnicalSignals:["Family dentistry page recently updated"],summary:"OpenAI recently started citing your family dentistry page for this query.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","cited"])}];mf[0],Math.round(1/9*100),Math.round(2/9*100),mf[1],Mn(["cited","cited","cited","cited","cited"]),mf[2],Math.round(2/7*100),Math.round(3/7*100),Mn(["not-cited","not-cited","not-cited","cited"]);function _3(e,n){return e.runs.find(i=>i.id===n)}function C3(e,n){for(const i of e.projects){const r=i.visibilityEvidence.find(l=>l.id===n);if(r)return{project:i,evidence:r}}}function T3(e,n,i){if(e){const r=e.visibilityEvidence.find(l=>l.id===i);if(r)return{project:e,evidence:r}}if(n)return C3(n,i)}const E3={regression:"negative",gain:"positive",opportunity:"caution","first-citation":"positive","provider-pickup":"positive","persistent-gap":"caution","competitor-gained":"negative","competitor-lost":"neutral","gbp-lodging-gap":"negative","gbp-listing-discrepancy":"negative","gbp-cta-gap":"caution","gbp-description-missing":"caution","gbp-metric-drop":"negative","gbp-keyword-drop":"negative"},O3={opportunity:"write","persistent-gap":"write","competitor-gained":"write","competitor-lost":"write",regression:"investigate",gain:"monitor","first-citation":"monitor","provider-pickup":"monitor","gbp-lodging-gap":"write","gbp-listing-discrepancy":"write","gbp-cta-gap":"write","gbp-description-missing":"write","gbp-metric-drop":"investigate","gbp-keyword-drop":"investigate"},z3={regression:"lost",gain:"emerging",opportunity:"not-cited","first-citation":"emerging","provider-pickup":"emerging","persistent-gap":"not-cited","competitor-gained":"cited","competitor-lost":"not-cited","gbp-lodging-gap":"not-cited","gbp-listing-discrepancy":"not-cited","gbp-cta-gap":"not-cited","gbp-description-missing":"not-cited","gbp-metric-drop":"lost","gbp-keyword-drop":"lost"},D3={regression:"Regression",gain:"Gain",opportunity:"Opportunity","first-citation":"First citation","provider-pickup":"Pickup","persistent-gap":"Gap","competitor-gained":"Competitor","competitor-lost":"Competitor","gbp-lodging-gap":"Lodging gap","gbp-listing-discrepancy":"Listing gap","gbp-cta-gap":"Booking CTA","gbp-description-missing":"Description gap","gbp-metric-drop":"Metric drop","gbp-keyword-drop":"Keyword drop"};function R3(e){return{id:e.id,tone:E3[e.type],title:e.title,detail:e.cause?.details??e.cause?.cause??"",actionLabel:e.recommendation?.action??D3[e.type],actionGroup:O3[e.type],affectedPhrases:[{query:e.query,evidenceId:"",provider:e.provider,citationState:z3[e.type]}]}}function M3(e){return e.filter(n=>!n.dismissed).map(R3)}function NS(e){return{id:e.id,name:e.name,displayName:e.displayName,canonicalDomain:e.canonicalDomain,ownedDomains:e.ownedDomains??[],aliases:e.aliases??[],country:e.country,language:e.language,tags:e.tags,labels:e.labels,providers:e.providers??[],locations:e.locations??[],defaultLocation:e.defaultLocation??null,autoExtractBacklinks:e.autoExtractBacklinks??!1,configSource:e.configSource,configRevision:e.configRevision,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Hb(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}function B3(e,n){if(!e)return"Waiting";if(!n)return"Running";const i=new Date(n).getTime()-new Date(e).getTime();if(i<1e3)return"<1s";const r=Math.floor(i/1e3);if(r<60)return`${r}s`;const l=Math.floor(r/60),c=r%60;return`${l}m ${c}s`}function kS(e){switch(e){case ke["answer-visibility"]:return"Answer visibility sweep";case ke["gsc-sync"]:return"GSC sync";case ke["inspect-sitemap"]:return"Sitemap inspection";case ke["ga-sync"]:return"GA sync";case ke["traffic-sync"]:return"Traffic sync";case ke["bing-inspect"]:return"Bing URL inspection";case ke["bing-inspect-sitemap"]:return"Bing sitemap inspection";case ke["site-audit"]:return"Site audit";case ke["backlink-extract"]:return"Backlink extract";case ke["aeo-discover-seed"]:return"Discovery (seed phase)";case ke["aeo-discover-probe"]:return"Discovery (probe phase)";case ke["gbp-sync"]:return"Business Profile sync";case ke["ads-sync"]:return"ChatGPT ads sync"}}function L3(e){return e===Ms.manual?"Manual":e===Ms.scheduled?"Scheduled":e===Ms["config-apply"]?"Config apply":e}function Cp(e,n){return{id:e.id,projectId:e.projectId,projectName:n,kind:e.kind,kindLabel:kS(e.kind),status:e.status,trigger:e.trigger??"manual",location:e.location??null,createdAt:e.createdAt,startedAt:e.startedAt?Hb(e.startedAt):Hb(e.createdAt),duration:B3(e.startedAt??null,e.finishedAt??null),statusDetail:e.error?AS(e.error):q3(e),summary:U3(e),triggerLabel:L3(e.trigger)}}function AS(e){const n=cp(e);return n.length>200?n.slice(0,200)+"…":n}function q3(e){switch(e.status){case Qt.queued:return"Waiting for execution slot.";case Qt.running:return"Provider queries in progress.";case Qt.completed:return"All queries checked.";case Qt.partial:return"Run completed with some queries skipped.";case Qt.failed:return e.error?AS(e.error):"Run failed.";case Qt.cancelled:return"Run was cancelled.";default:return""}}function U3(e){const n=kS(e.kind);switch(e.status){case Qt.queued:return`${n} queued`;case Qt.running:return`${n} in progress`;case Qt.completed:return`${n} completed`;case Qt.partial:return`${n} partially completed`;case Qt.failed:return`${n} failed`;case Qt.cancelled:return`${n} cancelled`;default:return e.status}}function $3(e,n,i,r){const l=[];let c=0;const d=new Set;if(i.length>0){const h=i.flatMap(O=>O.snapshots??[]),g=new Map;for(const O of h)if(O.query){const k=`${O.query}::${O.provider}::${O.location??""}`;g.set(k,O)}const v=new Set(h.map(O=>O.location??null));v.size===0&&v.add(null);const S=new Set(h.map(O=>O.provider)),x=new Set(n.flatMap(O=>Object.keys(O.providerRuns??{}))),N=[...new Set([...S,...x])].sort(),_=N.length>0?N:["gemini"];for(const O of n){if(O.runs.length===0)continue;d.add(O.query);const k=O.runs.at(-1),E=k?.transition??"not-cited";for(const R of _){const G=[...v].filter(I=>g.has(`${O.query}::${R}::${I??""}`)),P=(O.providerRuns?.[R]?.length??0)>0,Y=G.length>0?G:P?[null]:[];for(const I of Y){const se=I??"",z=g.get(`${O.query}::${R}::${se}`),q=z?.model??null,ie=q?`${R}:${q}`:null,_e=O.providerRuns?.[R],De=ie?O.modelRuns?.[ie]:void 0,ve=$e=>$e?.filter(He=>(He.location??null)===I),et=G.length>0?ve(_e):_e,le=G.length>0?ve(De):De,fe=(et?.length?et:null)??(le?.length?le:null),$=et?.length?"provider":le?.length?"model":"query",J=fe?fe.at(-1).transition:E,pe=fe?fe.at(-1).visibilityTransition??(fe.at(-1).visibilityState==="visible"?"visible":"not-visible"):k?.visibilityTransition??(k?.visibilityState==="visible"?"visible":"not-visible"),je=fe?.at(-1)?.citationState,re=fe?.at(-1)?.visibilityState,Ze=z?J==="lost"?"lost":J==="emerging"?"emerging":z.citationState===sc.cited?"cited":"not-cited":je===sc.cited?"cited":"not-cited",F=z?.visibilityState??(re==="visible"?"visible":re==="pending"?"pending":"not-visible"),ue=Qb(fe||O.runs),W=Kb(fe||O.runs),de=V3(O,R),ne=(fe??O.runs).map($e=>({runId:$e.runId,citationState:$e.citationState,createdAt:$e.createdAt,model:de.get($e.runId)??null,answerMentioned:$e.answerMentioned,visibilityState:$e.visibilityState,visibilityTransition:$e.visibilityTransition,mentionState:$e.mentionState,mentionTransition:$e.mentionTransition})),Ne=I3(ne),tt=$==="provider"&&Ne.length<=1?"model":$,xe=P3(ne);l.push({id:`evidence_${e}_${c++}`,query:O.query,provider:z?.provider??R,model:z?.model??null,location:z?.location??I,citationState:Ze,answerMentioned:z?.answerMentioned,visibilityState:F,visibilityChangeLabel:Zb(pe,W,{positive:"visible",negative:"not visible",first:"first visibility"}),changeLabel:Zb(J,ue),answerSnippet:z?.answerText??"",citedDomains:z?.citedDomains??[],evidenceUrls:[],competitorDomains:z?.competitorOverlap??[],recommendedCompetitors:z?.recommendedCompetitors??[],matchedTerms:z?.matchedTerms??[],relatedTechnicalSignals:[],groundingSources:z?.groundingSources??[],searchQueries:z?.searchQueries??[],summary:G3(F,pe,O.query),runHistory:ne,historyScope:tt,modelsSeen:Ne,modelTransitions:xe})}}}}for(const h of r)d.has(h.query)||l.push({id:`evidence_${e}_${c++}`,query:h.query,provider:"",model:null,location:null,citationState:"pending",visibilityState:"pending",visibilityChangeLabel:"Awaiting first run",changeLabel:"Awaiting first run",answerSnippet:"",citedDomains:[],evidenceUrls:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],relatedTechnicalSignals:[],groundingSources:[],searchQueries:[],summary:`"${h.query}" has been added but no visibility run has been triggered yet.`,runHistory:[],historyScope:"query",modelsSeen:[],modelTransitions:[]});return l}function V3(e,n){const i=new Map,r=`${n}:`;for(const[l,c]of Object.entries(e.modelRuns??{})){if(!l.startsWith(r))continue;const d=l.slice(r.length),h=d==="unknown"?null:d;for(const g of c)i.set(g.runId,h)}return i}function I3(e){const n=new Set;for(const i of e)i.model&&n.add(i.model);return[...n]}function P3(e){const n=[];let i=null;for(const r of e){const l=r.model??null;l!==i&&i!==null&&n.push({runId:r.runId,createdAt:r.createdAt,fromModel:i,toModel:l}),i=l}return n}function Qb(e){if(e.length===0)return 0;const n=e[e.length-1].citationState;let i=0;for(let r=e.length-1;r>=0&&e[r].citationState===n;r--)i++;return i}function Kb(e){if(e.length===0)return 0;const n=e[e.length-1].visibilityState??"not-visible";let i=0;for(let r=e.length-1;r>=0&&(e[r].visibilityState??"not-visible")===n;r--)i++;return i}function Zb(e,n,i){const r={positive:i?.positive??"cited",negative:i?.negative??"not cited",first:i?.first??"first citation"};switch(e){case"new":return"First observation";case"cited":case"visible":return n<=1?`${Fr(r.positive)} in latest run`:`${Fr(r.positive)} for ${n} runs`;case"lost":return"Lost since last run";case"emerging":return Fr(r.first);case"not-cited":case"not-visible":return n<=1?`${Fr(r.negative)} in latest run`:`${Fr(r.negative)} across ${n} runs`;default:return e}}function Fr(e){return e.charAt(0).toUpperCase()+e.slice(1)}function G3(e,n,i){switch(n){case"lost":return`Mention was lost for "${i}". Your brand no longer appeared in the latest answer.`;case"emerging":return`Your brand started appearing in AI answers for "${i}".`}switch(e){case"visible":return`Your brand or domain is mentioned in AI answers for "${i}".`;case"pending":return`"${i}" has been added but no run has been triggered yet.`;default:return`Your brand or domain was not mentioned in AI answers for "${i}".`}}function _S(e){const n=NS(e.project),i=$3(n.name,e.timeline,e.latestRunDetails,e.queries),l=[...e.runs].sort((c,d)=>d.createdAt.localeCompare(c.createdAt)).map(c=>Cp(c,e.project.displayName||e.project.name));return e.overview?H3(n,e.overview,i,l):Q3(n,i,l)}function H3(e,n,i,r){const l=M3(n.topInsights);for(const c of n.attentionItems)c.id.startsWith("insight_")||l.push({id:c.id,tone:c.tone,title:c.title,detail:c.detail,actionLabel:c.actionLabel,actionGroup:"investigate",affectedPhrases:[]});return{project:e,dateRangeLabel:n.dateRangeLabel,contextLabel:n.contextLabel,mentionSummary:n.scores.mention,visibilitySummary:n.scores.visibility,mentionShareSummary:n.scores.mentionShare,queryCounts:{cited:n.queryCounts.citedQueries,total:n.queryCounts.totalQueries},gapQueries:n.scores.gapQueries,mentionGaps:n.scores.mentionGaps,indexCoverage:n.scores.indexCoverage,providerScores:n.providerScores,competitorPressure:n.scores.competitorPressure,runStatus:n.scores.runStatus,citationMovement:n.citationMovement,mentionMovement:n.mentionMovement,movementComparison:n.movementComparison,insights:l,visibilityEvidence:i,competitors:n.competitors.map(c=>({id:c.id,domain:c.domain,citationCount:c.citationCount,totalQueries:c.totalQueries,pressureLabel:c.pressureLabel,citedQueries:c.citedQueries,movement:"",notes:""})),recentRuns:r.slice(0,5),suggestedQueries:n.suggestedQueries}}function Q3(e,n,i){const r={label:"",value:"No data",delta:"Loading…",tone:"neutral",description:"",tooltip:"",trend:[]};return{project:e,dateRangeLabel:"All time",contextLabel:`${e.country} / ${e.language.toUpperCase()}`,mentionSummary:{...r,label:"Mention Coverage"},visibilitySummary:{...r,label:"Citation Coverage"},mentionShareSummary:{...r,label:"Mention Share",breakdown:{projectMentionSnapshots:0,competitorMentionSnapshots:0,perCompetitor:[],snapshotsWithAnswerText:0,snapshotsTotal:0}},queryCounts:{cited:0,total:0},gapQueries:{...r,label:"Citation Gaps"},mentionGaps:{...r,label:"Mention Gaps"},indexCoverage:{...r,label:"Index Coverage"},providerScores:[],competitorPressure:{...r,label:"Competitor Pressure"},runStatus:{...r,label:"Run Status"},citationMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},mentionMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},movementComparison:{hasPreviousRun:!1,comparable:!1,querySetChanged:!1,previousRunAt:null,currentQueryCount:0,previousQueryCount:0,comparableQueryCount:0,addedQueryCount:0,removedQueryCount:0,addedQueries:[],removedQueries:[]},insights:[],visibilityEvidence:n,competitors:[],recentRuns:i.slice(0,5),suggestedQueries:{rows:[],totalCandidates:0,skippedAlreadyTracked:0}}}function K3(e){const n=NS(e.project),i=[...e.runs].sort((N,_)=>_.createdAt.localeCompare(N.createdAt)),r=i.find(N=>N.kind===ke["answer-visibility"])??i[0]??e.overview?.latestRun?.run??void 0,l=e.project.displayName||e.project.name,c=r?Cp(r,l):Z3(e.project.id,l),d=e.overview;if(!d)return{project:n,mentionScore:0,mentionDelta:"No data",mentionTone:"neutral",lastRun:c,insight:"No runs completed yet.",trend:[],competitorPressureLabel:"None"};const h=d.scores.mention,g=h.progress??0,v=d.queryCounts.mentionedQueries,S=d.queryCounts.totalQueries,x=d.providers.length;return{project:n,mentionScore:g,mentionDelta:S>0?`${v} of ${S} queries`:"No data",mentionTone:h.tone,providerCoverage:h.providerCoverage,lastRun:c,insight:S>0?`${v} of ${S} queries mentioned across ${x} provider${x===1?"":"s"}.`:"No runs completed yet.",trend:h.trend??[],competitorPressureLabel:d.scores.competitorPressure.value}}function Z3(e,n){return{id:"none",projectId:e,projectName:n,kind:ke["answer-visibility"],kindLabel:"No runs yet",status:Qt.queued,trigger:Ms.manual,createdAt:"",startedAt:"",duration:"",statusDetail:"",summary:"No runs yet",triggerLabel:""}}function Y3(e,n){const i=[],r=[],l=[];for(const d of e){r.push(_S(d)),l.push(K3(d));const h=[...d.runs].sort((g,v)=>v.createdAt.localeCompare(g.createdAt));for(const g of h)i.push(Cp(g,d.project.displayName||d.project.name))}i.sort((d,h)=>h.createdAt.localeCompare(d.createdAt));const c=e.length>0;return{portfolioOverview:{projects:l,attentionItems:c?X3(r):[{id:"attention_setup",tone:"neutral",title:"No projects yet",detail:"Create your first project using the setup wizard, CLI, or API.",actionLabel:"Open setup",href:"/setup"}],recentRuns:i.slice(0,5),systemHealth:[{id:"api",label:"API",tone:"positive",detail:"Connected",meta:"Real-time data"},{id:"provider",label:"Gemini",tone:"positive",detail:"Configured",meta:"Provider active"}],lastUpdatedAt:new Date().toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"}),...c?{}:{emptyState:{title:"No projects yet",detail:"Canonry becomes useful after one project, a small query set, and one competitor list are in place.",ctaLabel:"Launch setup",ctaHref:"/setup"}}},projects:r,runs:i,setup:{healthChecks:[{id:"api",label:"API reachable",detail:"API is responding.",state:"ready",guidance:"Required for project creation and run history."},{id:"provider",label:"Provider configured",detail:"Gemini key is configured.",state:"ready",guidance:"Required for answer-visibility sweeps."}],projectDraft:{name:"",canonicalDomain:"",country:"US",language:"en"},queryImportState:{mode:"paste",queryCount:0,preview:[]},competitorDraft:{domains:[],notes:"Use the CLI to add competitors."},launchState:{enabled:c,ctaLabel:c?"Trigger run":"Create a project first",summary:c?"Ready to run.":"Create a project first to launch a run."}},settings:{providerStatuses:(n?.providers??[]).map(d=>({name:d.name,displayName:d.displayName,keyUrl:d.keyUrl,modelHint:d.modelHint,model:d.model,defaultModel:d.defaultModel,state:d.configured?"ready":"needs-config",detail:d.configured?"Provider is configured.":"API key is missing.",quota:d.quota})),google:{state:n?.google?.configured?"ready":"needs-config",detail:n?.google?.configured?"Google OAuth app credentials are configured. Project-level GSC connections can be created from the dashboard.":"Google OAuth client ID and client secret are not configured yet."},bing:{state:n?.bing?.configured?"ready":"needs-config",detail:n?.bing?.configured?"Bing Webmaster Tools API key is configured. Project-level Bing connections can be created from the dashboard.":"Bing Webmaster Tools API key is not configured yet."},selfHostNotes:["Configuration is stored in ~/.canonry/config.yaml.","The local config file is the source of truth for authentication credentials.","Google OAuth app credentials and per-domain Google tokens are stored in local config, not the database.","Database is SQLite at ~/.canonry/data.db.","API key was auto-generated during canonry init."],bootstrapNote:"Use the UI, CLI, or ~/.canonry/config.yaml to manage settings. Authentication credentials persist to local config."}}}function X3(e){const n=[];for(const i of e){const r=i.visibilityEvidence.filter(c=>c.citationState==="lost");r.length>0&&n.push({id:`attention_${i.project.id}_lost`,tone:"negative",title:`${i.project.displayName||i.project.name} lost citations`,detail:`${r.length} quer${r.length>1?"ies":"y"} lost citation.`,actionLabel:"Open project",href:`/projects/${encodeURIComponent(i.project.name)}`});const l=i.recentRuns.filter(c=>c.status===Qt.running||c.status===Qt.queued);l.length>0&&n.push({id:`attention_${i.project.id}_active`,tone:"neutral",title:`${i.project.displayName||i.project.name} has active runs`,detail:`${l.length} run${l.length>1?"s":""} in progress.`,actionLabel:"View runs",href:"/runs"})}return n.length===0&&n.push({id:"attention_stable",tone:"positive",title:"All projects stable",detail:"No citation losses or active runs to flag."}),n}const CS=L.createContext(null);CS.Provider;function uo(){return L.useContext(CS)}function Ac(e,n={}){const r=uo()?.dashboard??null,l=n.includeSettings??!0,c=fn({...wc({client:ee}),enabled:!r,refetchInterval:sA}),d=fn({...J0({client:ee,query:{kind:"answer-visibility"}}),enabled:!r,staleTime:ao,refetchInterval:E=>E.state.data?.some(P=>P.status==="running"||P.status==="queued")?3e3:ao}),h=fn({...h4({client:ee}),enabled:!r&&l}),g=c.data??[],v=d.data??[],S=Rw({queries:g.map(E=>{const R=v.filter(Y=>Y.projectId===E.id),G=R.filter(Y=>(Y.status==="completed"||Y.status==="partial")&&Y.kind==="answer-visibility"&&Y.trigger!=="probe").sort((Y,I)=>I.createdAt.localeCompare(Y.createdAt)),P=G.length>0?G[0].id:"no-run";return{queryKey:["project-overview-slim",E.id,P],queryFn:async()=>{const Y=await Mv(E.name).catch(()=>null);return{project:E,runs:R,queries:[],competitors:[],timeline:[],latestRunDetails:[],previousRunDetails:[],gscCoverage:null,bingCoverage:null,dbInsights:null,overview:Y}},enabled:!r&&c.isSuccess&&d.isSuccess,staleTime:Af}})}),x=S.every(E=>E.isSuccess),N=L.useMemo(()=>{if(r)return r;if(!c.data||!d.data||g.length>0&&!x)return null;const E=S.map(R=>R.data?{...R.data,runs:v.filter(G=>G.projectId===R.data.project.id)}:null).filter(R=>R!=null);return Y3(E,h.data??null)},[r,c.data,d.data,h.data,x,S,g.length,v]),_=!r&&(c.isError||d.isError),O=!r&&!N&&!_,k=L.useCallback(async()=>{const E=[c.refetch(),d.refetch()];l&&E.push(h.refetch()),await Promise.all(E)},[l,c.refetch,d.refetch,h.refetch]);return{dashboard:N,isLoading:O,isError:_,refetch:k}}function F3(e){const n=uo(),i=L.useMemo(()=>!n||!e?null:n.dashboard.projects.find(O=>O.project.name===e)??null,[n,e]),r=fn({...u4({client:ee,path:{name:e??""}}),enabled:!!e&&!i,staleTime:Af,refetchOnWindowFocus:"always"}),l=fn({...f4({client:ee,path:{name:e??""},query:{kind:"answer-visibility"}}),enabled:!!e,staleTime:ao,refetchOnWindowFocus:"always",refetchInterval:O=>O.state.data?.some(R=>R.projectId===r.data?.id&&(R.status==="running"||R.status==="queued"))?3e3:ao}),c=r.data??null,d=L.useMemo(()=>c?(l.data??[]).filter(O=>O.projectId===c.id):[],[c,l.data]),{latestRunIds:h,previousRunIds:g,latestRunIdsKey:v}=L.useMemo(()=>{const O=d.filter(P=>(P.status==="completed"||P.status==="partial")&&P.kind==="answer-visibility"&&P.trigger!=="probe").sort((P,Y)=>Y.createdAt.localeCompare(P.createdAt)),k=O[0]?.createdAt??null,E=k?O.filter(P=>P.createdAt===k).map(P=>P.id):[],R=O.find(P=>P.createdAt!==k)?.createdAt??null,G=R?O.filter(P=>P.createdAt===R).map(P=>P.id):[];return{latestRunIds:E,previousRunIds:G,latestRunIdsKey:[...E].sort().join(",")}},[d]),S=fn({queryKey:["project-dashboard-full",c?.id??null,v||"none"],queryFn:async()=>{if(!c||!e)return null;const[O,k,E,R,G,P,Y,I,se]=await Promise.all([Tk(e).catch(()=>[]),Ek(e).catch(()=>[]),Ok(e).catch(()=>[]),h.length?Promise.all(h.map(z=>Wl(z).catch(()=>null))).then(z=>z.filter(q=>q!=null)):Promise.resolve([]),g.length?Promise.all(g.map(z=>Wl(z).catch(()=>null))).then(z=>z.filter(q=>q!=null)):Promise.resolve([]),Gk(e).catch(()=>null),Kk(e).catch(()=>null),Yk(e).catch(()=>null),Mv(e).catch(()=>null)]);return{project:c,runs:d,queries:O,competitors:k,timeline:E,latestRunDetails:R,previousRunDetails:G,gscCoverage:P,bingCoverage:Y,dbInsights:I,overview:se}},enabled:!!c&&!!e&&l.isSuccess,staleTime:Af,refetchOnWindowFocus:"always",refetchInterval:rA}),x=L.useMemo(()=>S.data?_S({...S.data,runs:d}):i||null,[S.data,d,i]),N=L.useCallback(async()=>{await Promise.all([r.refetch(),l.refetch(),S.refetch()])},[r.refetch,l.refetch,S.refetch]),_=!x&&(r.isLoading||l.isLoading||S.isLoading);return{commandCenter:x,project:c,isLoading:_,isError:r.isError||l.isError||S.isError,refetch:N}}const J3=["health"];async function W3(){const e=await Fk("/health","API"),n=e.state==="ok"?{label:"Worker",state:"ok",detail:"In-process job runner"}:{label:"Worker",state:e.state,detail:`Depends on API health check · ${e.detail}`,statusCode:e.statusCode,hint:e.hint?`Worker status is inferred from API health in this deployment mode. ${e.hint}`:"Worker status is inferred from API health in this deployment mode."};return{apiStatus:e,workerStatus:n}}function Tp(e,n){return fn({queryKey:J3,queryFn:W3,enabled:e,refetchInterval:15e3,initialData:n})}function eM(e){return fn({...W0({client:ee,path:{id:e??""}}),enabled:!!e,refetchInterval:n=>{const i=n.state.data?.status;return i==="running"||i==="queued"?3e3:!1}})}function Ep(){const e=fc(),n=Mw({strict:!1}),i=Bw({select:g=>g.location.pathname}),r=n.runId??null,l=n.evidenceId??null;return{runId:r,evidenceId:l,openRun:g=>{e({to:i,from:nn.to,search:v=>({...v,runId:g,evidenceId:void 0})})},openEvidence:g=>{e({to:i,from:nn.to,search:v=>({...v,evidenceId:g,runId:void 0})})},closeDrawer:()=>{e({to:i,from:nn.to,search:g=>({...g,runId:void 0,evidenceId:void 0})})}}}const tM={negative:"toast-card-negative",caution:"toast-card-caution",positive:"toast-card-positive",neutral:"toast-card-neutral"};function nM(e){if(e.cta)return`${e.cta.label}: ${e.title}`}function aM(){const e=L.useSyncExternalStore(aA,Xy,Xy),n=fc(),{openRun:i}=Ep(),r=L.useCallback(c=>{kf(c)},[]),l=L.useCallback(c=>{c.cta&&(c.cta.intent==="open-run-drawer"?i(c.cta.runId):n({to:"/runs"}),kf(c.id))},[n,i]);return e.length===0?null:f.jsx("div",{className:"toast-viewport","aria-label":"Notifications",children:e.map(c=>f.jsxs("section",{role:c.tone==="negative"?"alert":"status","aria-live":c.tone==="negative"?"assertive":"polite","data-state":c.state,className:`toast-card ${tM[c.tone]}`,children:[f.jsxs("div",{className:"toast-copy",children:[f.jsx("p",{className:"toast-title",children:c.title}),c.detail?f.jsx("p",{className:"toast-detail",children:c.detail}):null,c.cta?f.jsx("button",{type:"button",className:"toast-action",onClick:()=>l(c),"aria-label":nM(c),children:c.cta.label}):null]}),f.jsx("button",{type:"button",onClick:()=>r(c.id),className:"toast-dismiss","aria-label":"Dismiss",children:f.jsx(Hs,{className:"size-3.5"})})]},c.id))})}function iM(e,n={}){const{threshold:i=80}=n,r=L.useRef(null),l=L.useRef({scrollHeight:0,wasAtEnd:!0});function c(g){return g.scrollHeight-g.scrollTop-g.clientHeight}function d(){const g=r.current;return g?c(g)<=i:!0}function h(){const g=r.current;g&&(g.scrollTop=g.scrollHeight,l.current.wasAtEnd=!0,l.current.scrollHeight=g.scrollHeight)}return L.useEffect(()=>{const g=r.current;if(!g)return;const v=()=>{l.current.wasAtEnd=c(g)<=i};return g.addEventListener("scroll",v,{passive:!0}),()=>g.removeEventListener("scroll",v)},[i]),L.useLayoutEffect(()=>{const g=r.current;if(!g)return;const v=g.scrollHeight;v>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=v),l.current.scrollHeight=v},e),L.useEffect(()=>{const g=r.current;if(!g||typeof ResizeObserver>"u")return;const v=new ResizeObserver(()=>{const S=g.scrollHeight;S>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=S),l.current.scrollHeight=S});return v.observe(g),g.firstElementChild&&v.observe(g.firstElementChild),()=>v.disconnect()},[]),{ref:r,scrollToEnd:h,isAtEnd:d}}async function Op(e){try{return await e.json()}catch{return{}}}function sM(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const zp=sM();function Dp(e){e===401&&Ff()}async function Yb(e){const n=await fetch(`${zp}/projects/${encodeURIComponent(e)}/agent/transcript`,{credentials:"include"});if(!n.ok){Dp(n.status);const i=await Op(n);throw new Hn(i.error?.message??`transcript fetch failed: ${n.status}`,n.status,i.error?.code)}return await n.json()}async function rM(e){const n=await fetch(`${zp}/projects/${encodeURIComponent(e)}/agent/transcript`,{method:"DELETE",credentials:"include"});if(!n.ok){Dp(n.status);const i=await Op(n);throw new Hn(i.error?.message??`reset failed: ${n.status}`,n.status,i.error?.code)}}async function oM({project:e,prompt:n,provider:i,modelId:r,scope:l,profile:c,signal:d,onEvent:h}){const g={prompt:n};i&&(g.provider=i),r&&(g.modelId=r),l&&(g.scope=l),c&&(g.profile=c);const v=await fetch(`${zp}/projects/${encodeURIComponent(e)}/agent/prompt`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(g),signal:d});if(!v.ok||!v.body){Dp(v.status);const O=await Op(v);throw new Hn(O.error?.message??`prompt failed: ${v.status}`,v.status,O.error?.code)}const S=v.body.getReader(),x=new TextDecoder;let N="";const _=()=>{S.cancel().catch(()=>{})};d?.addEventListener("abort",_,{once:!0});try{for(;;){const{value:O,done:k}=await S.read();if(k)break;N+=x.decode(O,{stream:!0});let E=N.indexOf(`
|
|
56
|
+
`):"Run failed."}function t4(e){return e.split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function u6(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function d6(e){return e===null?"Unknown":e?"Pass":"Fail"}function Ob(e){return e===0?"12:00 AM":e<12?`${e}:00 AM`:e===12?"12:00 PM":`${e-12}:00 PM`}function f6(e,n){return e==="twice-daily"?"twice-daily":e.startsWith("weekly@")?`${e}@${n}`:`daily@${n}`}function p6(e,n){if(!e)return{freq:"custom",hour:6,customCron:n};if(e==="twice-daily")return{freq:"twice-daily",hour:6,customCron:""};const i=e.match(/^daily(?:@(\d+))?$/);if(i)return{freq:"daily",hour:i[1]?parseInt(i[1]):6,customCron:""};const r=e.match(/^(weekly@(?:mon|tue|wed|thu|fri|sat|sun))(?:@(\d+))?$/);return r?{freq:r[1],hour:r[2]?parseInt(r[2]):6,customCron:""}:{freq:"custom",hour:6,customCron:n}}function m6(e,n,i){const r=i==="UTC"?"UTC":i.split("/").pop()?.replace(/_/g," ")??i;if(!e)return`Custom: ${n} · ${r}`;if(e==="twice-daily")return`Twice a day (6am & 6pm) · ${r}`;const l=e.match(/^daily(?:@(\d+))?$/);if(l){const d=l[1]?parseInt(l[1]):6;return`Every day at ${Ob(d)} · ${r}`}const c=e.match(/^weekly@(mon|tue|wed|thu|fri|sat|sun)(?:@(\d+))?$/);if(c){const d={mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday",sun:"Sunday"},h=c[2]?parseInt(c[2]):6;return`Every ${d[c[1]]} at ${Ob(h)} · ${r}`}return`${e} · ${r}`}function n4(e,n){return n&&n!==e?`${e} · ${n}`:e}function h6(){const e=Intl.DateTimeFormat().resolvedOptions().timeZone,n=new Intl.DateTimeFormat("en-US",{timeZoneName:"short"}).formatToParts().find(i=>i.type==="timeZoneName")?.value;return n4(e,n)}function a4(e){const n=e.replace(/\/+$/,"")||"/";return n==="/"?"overview":n==="/projects"?"projects":n.startsWith("/projects/")?"project":n==="/runs"?"runs":n==="/traffic"||n.startsWith("/traffic/")?"traffic":n==="/backlinks"?"backlinks":n==="/settings"?"settings":n==="/setup"?"setup":"other"}function i4(e,n){return!n||n.includes(e)}function g6(e,n){return i4(e,n)||!n||n.length===0?e:n.includes("overview")?"overview":n[0]}const zb={bg:"--canonry-embed-bg",fg:"--canonry-embed-fg",accent:"--color-link"},s4=/^(?:#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|rgba?\([0-9.,%\s/]+\)|hsla?\([0-9.,%\s/a-z]+\))$/i,r4=/^[a-z0-9][a-z0-9 -]{0,48}$/i;function F0(e){const n=e?.font?.trim();return n&&r4.test(n)?n:void 0}function o4(e){const n=e?.mode?.trim();return n==="light"||n==="dark"?n:void 0}function l4(e){if(!e)return{};const n={};for(const[r,l]of Object.entries(e)){const c=Object.hasOwn(zb,r)?zb[r]:void 0;if(!c||typeof l!="string")continue;const d=l.trim();s4.test(d)&&(n[c]=d)}const i=F0(e);return i&&(n["--font-sans"]=`"${i}", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`),n}function c4(e){const n=F0(e);if(n)return`https://fonts.googleapis.com/css2?family=${n.replace(/ /g,"+")}:wght@400;500;600;700&display=swap`}const Ae=(e,n,i,r)=>{const l={_id:e,baseUrl:n?.baseUrl||(n?.client??Q).getConfig().baseUrl};return n?.body&&(l.body=n.body),n?.headers&&(l.headers=n.headers),n?.path&&(l.path=n.path),n?.query&&(l.query=n.query),[l]},u4=e=>Ae("getApiV1ProjectsByName",e),d4=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Av({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:u4(e)}),Oi=e=>Ae("getApiV1Projects",e),wc=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Oi(e)}),f4=e=>Ae("getApiV1ProjectsByNameRuns",e),p4=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await _v({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:f4(e)}),Np=e=>Ae("getApiV1Runs",e),J0=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Cj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Np(e)}),m4=e=>Ae("getApiV1RunsById",e),W0=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Cv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:m4(e)}),h4=e=>Ae("getApiV1Settings",e),g4=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Tv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:h4(e)}),y4=e=>Ae("getApiV1ProjectsByNameGoogleConnections",e),y6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Hj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:y4(e)}),b4=e=>Ae("getApiV1ProjectsByNameGoogleProperties",e),b6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Zj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:b4(e)}),v4=e=>Ae("getApiV1ProjectsByNameGoogleGscPerformance",e),v6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Jj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:v4(e)}),S4=e=>Ae("getApiV1ProjectsByNameGoogleGscPerformanceDaily",e),S6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Wj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:S4(e)}),x4=e=>Ae("getApiV1ProjectsByNameGoogleGscInspections",e),x6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await tN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:x4(e)}),w4=e=>Ae("getApiV1ProjectsByNameGoogleGscDeindexed",e),w6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await nN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:w4(e)}),j4=e=>Ae("getApiV1ProjectsByNameGoogleGscCoverage",e),j6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ev({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:j4(e)}),N4=e=>Ae("getApiV1ProjectsByNameGoogleGscCoverageHistory",e),N6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await aN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:N4(e)}),k6=e=>Ae("getApiV1ProjectsByNameGoogleGscSitemaps",e),k4=e=>Ae("getApiV1ProjectsByNameGbpLocations",e),A6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await lN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:k4(e)}),_6=e=>({mutationFn:async i=>{const{data:r}=await cN({...e,...i,throwOnError:!0});return r}}),C6=e=>({mutationFn:async i=>{const{data:r}=await uN({...e,...i,throwOnError:!0});return r}}),A4=e=>Ae("getApiV1ProjectsByNameGbpKeywords",e),T6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await dN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:A4(e)}),_4=e=>Ae("getApiV1ProjectsByNameGbpPlaceActions",e),E6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await fN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:_4(e)}),C4=e=>Ae("getApiV1ProjectsByNameGbpLodging",e),O6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:C4(e)}),T4=e=>Ae("getApiV1ProjectsByNameGbpPlaces",e),z6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await mN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:T4(e)}),E4=e=>Ae("getApiV1ProjectsByNameGbpSummary",e),D6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await hN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:E4(e)}),O4=e=>Ae("getApiV1ProjectsByNameBingStatus",e),R6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await bN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:O4(e)}),z4=e=>Ae("getApiV1ProjectsByNameBingSites",e),M6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await vN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:z4(e)}),D4=e=>Ae("getApiV1ProjectsByNameBingCoverage",e),B6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ov({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:D4(e)}),R4=e=>Ae("getApiV1ProjectsByNameBingInspections",e),L6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await xN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:R4(e)}),M4=e=>Ae("getApiV1ProjectsByNameBingPerformance",e),q6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await kN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:M4(e)}),B4=e=>Ae("getApiV1ProjectsByNameGaStatus",e),U6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await CN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:B4(e)}),L4=e=>Ae("getApiV1ProjectsByNameGaTraffic",e),$6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await EN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:L4(e)}),q4=e=>Ae("getApiV1ProjectsByNameGaAiReferralHistory",e),V6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ON({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:q4(e)}),U4=e=>Ae("getApiV1ProjectsByNameGaSocialReferralHistory",e),I6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await zN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:U4(e)}),$4=e=>Ae("getApiV1ProjectsByNameGaSessionHistory",e),P6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await DN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:$4(e)}),V4=e=>Ae("getApiV1ProjectsByNameReport",e),G6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await MN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:V4(e)}),I4=e=>Ae("getApiV1ProjectsByNameCitationsVisibility",e),H6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await BN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:I4(e)}),P4=e=>Ae("getApiV1ProjectsByNameTrafficSources",e),Q6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ik({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:P4(e)}),G4=e=>Ae("getApiV1ProjectsByNameTrafficStatus",e),K6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await sk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:G4(e)}),H4=e=>Ae("getApiV1ProjectsByNameTrafficSourcesById",e),Z6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await rk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:H4(e)}),Q4=e=>Ae("getApiV1ProjectsByNameTrafficEvents",e),Y6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ok({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Q4(e)}),K4=e=>Ae("getApiV1ProjectsByNameDiscoverSessions",e),X6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ck({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:K4(e)}),Z4=e=>Ae("getApiV1ProjectsByNameDiscoverSessionsById",e),F6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await uk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Z4(e)}),Y4=e=>Ae("getApiV1ProjectsByNameDiscoverSessionsByIdPromote",e),J6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await dk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Y4(e)}),X4=e=>Ae("getApiV1ProjectsByNameTechnicalAeo",e),W6=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:X4(e)}),F4=e=>Ae("getApiV1ProjectsByNameTechnicalAeoPages",e),eq=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await mk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:F4(e)}),J4=e=>Ae("getApiV1ProjectsByNameTechnicalAeoTrend",e),tq=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await hk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:J4(e)}),W4=e=>Ae("getApiV1ProjectsByNameAgentProviders",e),eR=e=>Te({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await yk({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:W4(e)});function Db(e){return e.state==="ok"?"positive":e.state==="checking"?"neutral":"negative"}function eS(e){switch(e){case"completed":return"positive";case"partial":return"caution";case"failed":return"negative";case"cancelled":return"caution";case"queued":case"running":return"neutral";default:return"neutral"}}function nq(e){switch(e){case"cited":return"positive";case"emerging":return"caution";case"not-cited":return"caution";case"lost":return"negative";case"pending":return"neutral";default:return"neutral"}}function aq(e){return e==="High"?"negative":e==="Moderate"?"caution":"neutral"}const iq={positive:"text-positive-400",caution:"text-caution-400",negative:"text-negative-400",neutral:"text-secondary"};function tR(e){return e.displayName??e.name.charAt(0).toUpperCase()+e.name.slice(1)}function $s(e){const n=[e.detail,e.hint].filter(Boolean);return n.length>0?n.join(`
|
|
57
|
+
`):void 0}function nR(e,n,i){return e.map(r=>{if(r.id==="api")return{...r,tone:Db(n.apiStatus),detail:n.apiStatus.state==="ok"?"Healthy":"Needs attention",meta:n.apiStatus.detail};if(r.id==="worker")return{...r,tone:Db(n.workerStatus),detail:n.workerStatus.state==="ok"?"Healthy":"Needs attention",meta:n.workerStatus.detail};const l=i.providerStatuses.filter(g=>g.state==="ready").length,c=i.providerStatuses.length,d=l>0,h=i.providerStatuses.filter(g=>g.state==="ready").map(g=>tR(g)).join(" · ");return{...r,label:"Providers",tone:d?"positive":"caution",detail:`${l} of ${c} configured`,meta:h||"None configured"}})}function aR(e,n){if(e.apiStatus.state!=="ok")return"Launch is blocked until the API responds cleanly.";if(e.apiStatus.databaseConfigured===!1)return"Launch is blocked until the API has a database connection configured.";if(e.workerStatus.state!=="ok")return"Launch is blocked until the worker is healthy and heartbeats are current.";if(!n.providerStatuses.some(i=>i.state==="ready"))return"Launch is blocked until at least one provider is configured."}function iR(e,n,i){const r=aR(n,i),l=structuredClone(e);return l.healthChecks=l.healthChecks.map(c=>{if(c.id==="api")return{...c,detail:n.apiStatus.detail,state:n.apiStatus.state==="ok"?"ready":"attention"};if(c.id==="worker")return{...c,detail:n.workerStatus.detail,state:n.workerStatus.state==="ok"?"ready":"attention"};const d=i.providerStatuses.some(h=>h.state==="ready");return{...c,detail:d?"At least one provider configured.":"No providers configured.",state:d?"ready":"attention"}}),l.launchState.enabled=r===void 0,l.launchState.blockedReason=r,l.launchState.summary=r??"Queue a visibility sweep first, then follow with a site audit to explain movement.",l}const tS="canonry.run-tracker",Df=new Set;let Rb=!1,sR=0,jc={runs:{},batches:{}};function rR(){const e=_i();for(const n of Df)n(e)}function oR(e){if(!e)return{runs:{},batches:{}};try{const n=JSON.parse(e);return{runs:n.runs??{},batches:n.batches??{}}}catch{return{runs:{},batches:{}}}}function lR(){typeof window>"u"||window.sessionStorage.setItem(tS,JSON.stringify(jc))}function nS(){Rb||(Rb=!0,!(typeof window>"u")&&(jc=oR(window.sessionStorage.getItem(tS))))}function Nc(e){jc=e,lR(),rR()}function _i(){return nS(),jc}function cR(e){return nS(),Df.add(e),()=>{Df.delete(e)}}function aS(e){const n=_i();Nc({...n,runs:{...n.runs,[e.id]:{runId:e.id,projectId:e.projectId,projectLabel:e.projectLabel,kind:e.kind,sourceAction:e.sourceAction,lastAnnouncedStatus:e.lastAnnouncedStatus??"queued",trackedAt:e.trackedAt??Date.now()}}})}function df(e){const n=_i();if(!n.runs[e])return;const{[e]:i,...r}=n.runs;Nc({...n,runs:r})}function uR(e){const n=_i(),i=`batch_${Date.now()}_${++sR}`;return Nc({...n,batches:{...n.batches,[i]:{batchId:i,runIds:e.runIds,queuedCount:e.queuedCount,skippedCount:e.skippedCount}}}),i}function dR(e){const n=_i();if(!n.batches[e])return;const{[e]:i,...r}=n.batches;Nc({...n,batches:r})}function fR(e){return e==="completed"||e==="partial"||e==="failed"||e==="cancelled"}const pR=10*6e4;function mR(e,n,i,r){return e.filter(l=>!n.has(l.runId)&&i-(l.trackedAt??0)>=r)}function hR(e,n){let i=0,r=0,l=0,c=0,d=0;for(const h of e){const g=n[h]?.status;g==="completed"?i+=1:g==="partial"?r+=1:g==="failed"?l+=1:g==="cancelled"?c+=1:d+=1}return{completed:i,partial:r,failed:l,cancelled:c,pending:d,finished:d===0}}const Mb=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Bb=vv,iS=(e,n)=>i=>{var r;if(n?.variants==null)return Bb(e,i?.class,i?.className);const{variants:l,defaultVariants:c}=n,d=Object.keys(l).map(v=>{const S=i?.[v],x=c?.[v];if(S===null)return null;const N=Mb(S)||Mb(x);return l[v][N]}),h=i&&Object.entries(i).reduce((v,S)=>{let[x,N]=S;return N===void 0||(v[x]=N),v},{}),g=n==null||(r=n.compoundVariants)===null||r===void 0?void 0:r.reduce((v,S)=>{let{class:x,className:N,..._}=S;return Object.entries(_).every(O=>{let[k,E]=O;return Array.isArray(E)?E.includes({...c,...h}[k]):{...c,...h}[k]===E})?[...v,x,N]:v},[]);return Bb(e,d,g,i?.class,i?.className)},gR=(e,n)=>{const i=new Array(e.length+n.length);for(let r=0;r<e.length;r++)i[r]=e[r];for(let r=0;r<n.length;r++)i[e.length+r]=n[r];return i},yR=(e,n)=>({classGroupId:e,validator:n}),sS=(e=new Map,n=null,i)=>({nextPart:e,validators:n,classGroupId:i}),cc="-",Lb=[],bR="arbitrary..",vR=e=>{const n=xR(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return SR(d);const h=d.split(cc),g=h[0]===""&&h.length>1?1:0;return rS(h,g,n)},getConflictingClassGroupIds:(d,h)=>{if(h){const g=r[d],v=i[d];return g?v?gR(v,g):g:v||Lb}return i[d]||Lb}}},rS=(e,n,i)=>{if(e.length-n===0)return i.classGroupId;const l=e[n],c=i.nextPart.get(l);if(c){const v=rS(e,n+1,c);if(v)return v}const d=i.validators;if(d===null)return;const h=n===0?e.join(cc):e.slice(n).join(cc),g=d.length;for(let v=0;v<g;v++){const S=d[v];if(S.validator(h))return S.classGroupId}},SR=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const n=e.slice(1,-1),i=n.indexOf(":"),r=n.slice(0,i);return r?bR+r:void 0})(),xR=e=>{const{theme:n,classGroups:i}=e;return wR(i,n)},wR=(e,n)=>{const i=sS();for(const r in e){const l=e[r];kp(l,i,r,n)}return i},kp=(e,n,i,r)=>{const l=e.length;for(let c=0;c<l;c++){const d=e[c];jR(d,n,i,r)}},jR=(e,n,i,r)=>{if(typeof e=="string"){NR(e,n,i);return}if(typeof e=="function"){kR(e,n,i,r);return}AR(e,n,i,r)},NR=(e,n,i)=>{const r=e===""?n:oS(n,e);r.classGroupId=i},kR=(e,n,i,r)=>{if(_R(e)){kp(e(r),n,i,r);return}n.validators===null&&(n.validators=[]),n.validators.push(yR(i,e))},AR=(e,n,i,r)=>{const l=Object.entries(e),c=l.length;for(let d=0;d<c;d++){const[h,g]=l[d];kp(g,oS(n,h),i,r)}},oS=(e,n)=>{let i=e;const r=n.split(cc),l=r.length;for(let c=0;c<l;c++){const d=r[c];let h=i.nextPart.get(d);h||(h=sS(),i.nextPart.set(d,h)),i=h}return i},_R=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,CR=e=>{if(e<1)return{get:()=>{},set:()=>{}};let n=0,i=Object.create(null),r=Object.create(null);const l=(c,d)=>{i[c]=d,n++,n>e&&(n=0,r=i,i=Object.create(null))};return{get(c){let d=i[c];if(d!==void 0)return d;if((d=r[c])!==void 0)return l(c,d),d},set(c,d){c in i?i[c]=d:l(c,d)}}},Rf="!",qb=":",TR=[],Ub=(e,n,i,r,l)=>({modifiers:e,hasImportantModifier:n,baseClassName:i,maybePostfixModifierPosition:r,isExternal:l}),ER=e=>{const{prefix:n,experimentalParseClassName:i}=e;let r=l=>{const c=[];let d=0,h=0,g=0,v;const S=l.length;for(let k=0;k<S;k++){const E=l[k];if(d===0&&h===0){if(E===qb){c.push(l.slice(g,k)),g=k+1;continue}if(E==="/"){v=k;continue}}E==="["?d++:E==="]"?d--:E==="("?h++:E===")"&&h--}const x=c.length===0?l:l.slice(g);let N=x,_=!1;x.endsWith(Rf)?(N=x.slice(0,-1),_=!0):x.startsWith(Rf)&&(N=x.slice(1),_=!0);const O=v&&v>g?v-g:void 0;return Ub(c,_,N,O)};if(n){const l=n+qb,c=r;r=d=>d.startsWith(l)?c(d.slice(l.length)):Ub(TR,!1,d,void 0,!0)}if(i){const l=r;r=c=>i({className:c,parseClassName:l})}return r},OR=e=>{const n=new Map;return e.orderSensitiveModifiers.forEach((i,r)=>{n.set(i,1e6+r)}),i=>{const r=[];let l=[];for(let c=0;c<i.length;c++){const d=i[c],h=d[0]==="[",g=n.has(d);h||g?(l.length>0&&(l.sort(),r.push(...l),l=[]),r.push(d)):l.push(d)}return l.length>0&&(l.sort(),r.push(...l)),r}},zR=e=>({cache:CR(e.cacheSize),parseClassName:ER(e),sortModifiers:OR(e),...vR(e)}),DR=/\s+/,RR=(e,n)=>{const{parseClassName:i,getClassGroupId:r,getConflictingClassGroupIds:l,sortModifiers:c}=n,d=[],h=e.trim().split(DR);let g="";for(let v=h.length-1;v>=0;v-=1){const S=h[v],{isExternal:x,modifiers:N,hasImportantModifier:_,baseClassName:O,maybePostfixModifierPosition:k}=i(S);if(x){g=S+(g.length>0?" "+g:g);continue}let E=!!k,R=r(E?O.substring(0,k):O);if(!R){if(!E){g=S+(g.length>0?" "+g:g);continue}if(R=r(O),!R){g=S+(g.length>0?" "+g:g);continue}E=!1}const G=N.length===0?"":N.length===1?N[0]:c(N).join(":"),P=_?G+Rf:G,Y=P+R;if(d.indexOf(Y)>-1)continue;d.push(Y);const I=l(R,E);for(let se=0;se<I.length;++se){const z=I[se];d.push(P+z)}g=S+(g.length>0?" "+g:g)}return g},MR=(...e)=>{let n=0,i,r,l="";for(;n<e.length;)(i=e[n++])&&(r=lS(i))&&(l&&(l+=" "),l+=r);return l},lS=e=>{if(typeof e=="string")return e;let n,i="";for(let r=0;r<e.length;r++)e[r]&&(n=lS(e[r]))&&(i&&(i+=" "),i+=n);return i},BR=(e,...n)=>{let i,r,l,c;const d=g=>{const v=n.reduce((S,x)=>x(S),e());return i=zR(v),r=i.cache.get,l=i.cache.set,c=h,h(g)},h=g=>{const v=r(g);if(v)return v;const S=RR(g,i);return l(g,S),S};return c=d,(...g)=>c(MR(...g))},LR=[],Tt=e=>{const n=i=>i[e]||LR;return n.isThemeGetter=!0,n},cS=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,uS=/^\((?:(\w[\w-]*):)?(.+)\)$/i,qR=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,UR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,$R=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,VR=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,IR=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,PR=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ha=e=>qR.test(e),ze=e=>!!e&&!Number.isNaN(Number(e)),Qa=e=>!!e&&Number.isInteger(Number(e)),ff=e=>e.endsWith("%")&&ze(e.slice(0,-1)),ma=e=>UR.test(e),dS=()=>!0,GR=e=>$R.test(e)&&!VR.test(e),Ap=()=>!1,HR=e=>IR.test(e),QR=e=>PR.test(e),KR=e=>!he(e)&&!ge(e),ZR=e=>ni(e,mS,Ap),he=e=>cS.test(e),wi=e=>ni(e,hS,GR),$b=e=>ni(e,n3,ze),YR=e=>ni(e,yS,dS),XR=e=>ni(e,gS,Ap),Vb=e=>ni(e,fS,Ap),FR=e=>ni(e,pS,QR),$l=e=>ni(e,bS,HR),ge=e=>uS.test(e),Yr=e=>zi(e,hS),JR=e=>zi(e,gS),Ib=e=>zi(e,fS),WR=e=>zi(e,mS),e3=e=>zi(e,pS),Vl=e=>zi(e,bS,!0),t3=e=>zi(e,yS,!0),ni=(e,n,i)=>{const r=cS.exec(e);return r?r[1]?n(r[1]):i(r[2]):!1},zi=(e,n,i=!1)=>{const r=uS.exec(e);return r?r[1]?n(r[1]):i:!1},fS=e=>e==="position"||e==="percentage",pS=e=>e==="image"||e==="url",mS=e=>e==="length"||e==="size"||e==="bg-size",hS=e=>e==="length",n3=e=>e==="number",gS=e=>e==="family-name",yS=e=>e==="number"||e==="weight",bS=e=>e==="shadow",a3=()=>{const e=Tt("color"),n=Tt("font"),i=Tt("text"),r=Tt("font-weight"),l=Tt("tracking"),c=Tt("leading"),d=Tt("breakpoint"),h=Tt("container"),g=Tt("spacing"),v=Tt("radius"),S=Tt("shadow"),x=Tt("inset-shadow"),N=Tt("text-shadow"),_=Tt("drop-shadow"),O=Tt("blur"),k=Tt("perspective"),E=Tt("aspect"),R=Tt("ease"),G=Tt("animate"),P=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Y=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],I=()=>[...Y(),ge,he],se=()=>["auto","hidden","clip","visible","scroll"],z=()=>["auto","contain","none"],q=()=>[ge,he,g],ie=()=>[Ha,"full","auto",...q()],_e=()=>[Qa,"none","subgrid",ge,he],De=()=>["auto",{span:["full",Qa,ge,he]},Qa,ge,he],ve=()=>[Qa,"auto",ge,he],et=()=>["auto","min","max","fr",ge,he],le=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],fe=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...q()],J=()=>[Ha,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...q()],pe=()=>[Ha,"screen","full","dvw","lvw","svw","min","max","fit",...q()],je=()=>[Ha,"screen","full","lh","dvh","lvh","svh","min","max","fit",...q()],re=()=>[e,ge,he],Ze=()=>[...Y(),Ib,Vb,{position:[ge,he]}],F=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ue=()=>["auto","cover","contain",WR,ZR,{size:[ge,he]}],W=()=>[ff,Yr,wi],de=()=>["","none","full",v,ge,he],ne=()=>["",ze,Yr,wi],Ne=()=>["solid","dashed","dotted","double"],tt=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],xe=()=>[ze,ff,Ib,Vb],$e=()=>["","none",O,ge,he],He=()=>["none",ze,ge,he],Dt=()=>["none",ze,ge,he],Un=()=>[ze,ge,he],Rt=()=>[Ha,"full",...q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ma],breakpoint:[ma],color:[dS],container:[ma],"drop-shadow":[ma],ease:["in","out","in-out"],font:[KR],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ma],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ma],shadow:[ma],spacing:["px",ze],text:[ma],"text-shadow":[ma],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ha,he,ge,E]}],container:["container"],columns:[{columns:[ze,he,ge,h]}],"break-after":[{"break-after":P()}],"break-before":[{"break-before":P()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:I()}],overflow:[{overflow:se()}],"overflow-x":[{"overflow-x":se()}],"overflow-y":[{"overflow-y":se()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:ie()}],"inset-x":[{"inset-x":ie()}],"inset-y":[{"inset-y":ie()}],start:[{"inset-s":ie(),start:ie()}],end:[{"inset-e":ie(),end:ie()}],"inset-bs":[{"inset-bs":ie()}],"inset-be":[{"inset-be":ie()}],top:[{top:ie()}],right:[{right:ie()}],bottom:[{bottom:ie()}],left:[{left:ie()}],visibility:["visible","invisible","collapse"],z:[{z:[Qa,"auto",ge,he]}],basis:[{basis:[Ha,"full","auto",h,...q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ze,Ha,"auto","initial","none",he]}],grow:[{grow:["",ze,ge,he]}],shrink:[{shrink:["",ze,ge,he]}],order:[{order:[Qa,"first","last","none",ge,he]}],"grid-cols":[{"grid-cols":_e()}],"col-start-end":[{col:De()}],"col-start":[{"col-start":ve()}],"col-end":[{"col-end":ve()}],"grid-rows":[{"grid-rows":_e()}],"row-start-end":[{row:De()}],"row-start":[{"row-start":ve()}],"row-end":[{"row-end":ve()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":et()}],"auto-rows":[{"auto-rows":et()}],gap:[{gap:q()}],"gap-x":[{"gap-x":q()}],"gap-y":[{"gap-y":q()}],"justify-content":[{justify:[...le(),"normal"]}],"justify-items":[{"justify-items":[...fe(),"normal"]}],"justify-self":[{"justify-self":["auto",...fe()]}],"align-content":[{content:["normal",...le()]}],"align-items":[{items:[...fe(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...fe(),{baseline:["","last"]}]}],"place-content":[{"place-content":le()}],"place-items":[{"place-items":[...fe(),"baseline"]}],"place-self":[{"place-self":["auto",...fe()]}],p:[{p:q()}],px:[{px:q()}],py:[{py:q()}],ps:[{ps:q()}],pe:[{pe:q()}],pbs:[{pbs:q()}],pbe:[{pbe:q()}],pt:[{pt:q()}],pr:[{pr:q()}],pb:[{pb:q()}],pl:[{pl:q()}],m:[{m:$()}],mx:[{mx:$()}],my:[{my:$()}],ms:[{ms:$()}],me:[{me:$()}],mbs:[{mbs:$()}],mbe:[{mbe:$()}],mt:[{mt:$()}],mr:[{mr:$()}],mb:[{mb:$()}],ml:[{ml:$()}],"space-x":[{"space-x":q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":q()}],"space-y-reverse":["space-y-reverse"],size:[{size:J()}],"inline-size":[{inline:["auto",...pe()]}],"min-inline-size":[{"min-inline":["auto",...pe()]}],"max-inline-size":[{"max-inline":["none",...pe()]}],"block-size":[{block:["auto",...je()]}],"min-block-size":[{"min-block":["auto",...je()]}],"max-block-size":[{"max-block":["none",...je()]}],w:[{w:[h,"screen",...J()]}],"min-w":[{"min-w":[h,"screen","none",...J()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[d]},...J()]}],h:[{h:["screen","lh",...J()]}],"min-h":[{"min-h":["screen","lh","none",...J()]}],"max-h":[{"max-h":["screen","lh",...J()]}],"font-size":[{text:["base",i,Yr,wi]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,t3,YR]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ff,he]}],"font-family":[{font:[JR,XR,n]}],"font-features":[{"font-features":[he]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,ge,he]}],"line-clamp":[{"line-clamp":[ze,"none",ge,$b]}],leading:[{leading:[c,...q()]}],"list-image":[{"list-image":["none",ge,he]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ge,he]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:re()}],"text-color":[{text:re()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[ze,"from-font","auto",ge,wi]}],"text-decoration-color":[{decoration:re()}],"underline-offset":[{"underline-offset":[ze,"auto",ge,he]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ge,he]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ge,he]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Ze()}],"bg-repeat":[{bg:F()}],"bg-size":[{bg:ue()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Qa,ge,he],radial:["",ge,he],conic:[Qa,ge,he]},e3,FR]}],"bg-color":[{bg:re()}],"gradient-from-pos":[{from:W()}],"gradient-via-pos":[{via:W()}],"gradient-to-pos":[{to:W()}],"gradient-from":[{from:re()}],"gradient-via":[{via:re()}],"gradient-to":[{to:re()}],rounded:[{rounded:de()}],"rounded-s":[{"rounded-s":de()}],"rounded-e":[{"rounded-e":de()}],"rounded-t":[{"rounded-t":de()}],"rounded-r":[{"rounded-r":de()}],"rounded-b":[{"rounded-b":de()}],"rounded-l":[{"rounded-l":de()}],"rounded-ss":[{"rounded-ss":de()}],"rounded-se":[{"rounded-se":de()}],"rounded-ee":[{"rounded-ee":de()}],"rounded-es":[{"rounded-es":de()}],"rounded-tl":[{"rounded-tl":de()}],"rounded-tr":[{"rounded-tr":de()}],"rounded-br":[{"rounded-br":de()}],"rounded-bl":[{"rounded-bl":de()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-bs":[{"border-bs":ne()}],"border-w-be":[{"border-be":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ne(),"hidden","none"]}],"divide-style":[{divide:[...Ne(),"hidden","none"]}],"border-color":[{border:re()}],"border-color-x":[{"border-x":re()}],"border-color-y":[{"border-y":re()}],"border-color-s":[{"border-s":re()}],"border-color-e":[{"border-e":re()}],"border-color-bs":[{"border-bs":re()}],"border-color-be":[{"border-be":re()}],"border-color-t":[{"border-t":re()}],"border-color-r":[{"border-r":re()}],"border-color-b":[{"border-b":re()}],"border-color-l":[{"border-l":re()}],"divide-color":[{divide:re()}],"outline-style":[{outline:[...Ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ze,ge,he]}],"outline-w":[{outline:["",ze,Yr,wi]}],"outline-color":[{outline:re()}],shadow:[{shadow:["","none",S,Vl,$l]}],"shadow-color":[{shadow:re()}],"inset-shadow":[{"inset-shadow":["none",x,Vl,$l]}],"inset-shadow-color":[{"inset-shadow":re()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:re()}],"ring-offset-w":[{"ring-offset":[ze,wi]}],"ring-offset-color":[{"ring-offset":re()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":re()}],"text-shadow":[{"text-shadow":["none",N,Vl,$l]}],"text-shadow-color":[{"text-shadow":re()}],opacity:[{opacity:[ze,ge,he]}],"mix-blend":[{"mix-blend":[...tt(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":tt()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ze]}],"mask-image-linear-from-pos":[{"mask-linear-from":xe()}],"mask-image-linear-to-pos":[{"mask-linear-to":xe()}],"mask-image-linear-from-color":[{"mask-linear-from":re()}],"mask-image-linear-to-color":[{"mask-linear-to":re()}],"mask-image-t-from-pos":[{"mask-t-from":xe()}],"mask-image-t-to-pos":[{"mask-t-to":xe()}],"mask-image-t-from-color":[{"mask-t-from":re()}],"mask-image-t-to-color":[{"mask-t-to":re()}],"mask-image-r-from-pos":[{"mask-r-from":xe()}],"mask-image-r-to-pos":[{"mask-r-to":xe()}],"mask-image-r-from-color":[{"mask-r-from":re()}],"mask-image-r-to-color":[{"mask-r-to":re()}],"mask-image-b-from-pos":[{"mask-b-from":xe()}],"mask-image-b-to-pos":[{"mask-b-to":xe()}],"mask-image-b-from-color":[{"mask-b-from":re()}],"mask-image-b-to-color":[{"mask-b-to":re()}],"mask-image-l-from-pos":[{"mask-l-from":xe()}],"mask-image-l-to-pos":[{"mask-l-to":xe()}],"mask-image-l-from-color":[{"mask-l-from":re()}],"mask-image-l-to-color":[{"mask-l-to":re()}],"mask-image-x-from-pos":[{"mask-x-from":xe()}],"mask-image-x-to-pos":[{"mask-x-to":xe()}],"mask-image-x-from-color":[{"mask-x-from":re()}],"mask-image-x-to-color":[{"mask-x-to":re()}],"mask-image-y-from-pos":[{"mask-y-from":xe()}],"mask-image-y-to-pos":[{"mask-y-to":xe()}],"mask-image-y-from-color":[{"mask-y-from":re()}],"mask-image-y-to-color":[{"mask-y-to":re()}],"mask-image-radial":[{"mask-radial":[ge,he]}],"mask-image-radial-from-pos":[{"mask-radial-from":xe()}],"mask-image-radial-to-pos":[{"mask-radial-to":xe()}],"mask-image-radial-from-color":[{"mask-radial-from":re()}],"mask-image-radial-to-color":[{"mask-radial-to":re()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":Y()}],"mask-image-conic-pos":[{"mask-conic":[ze]}],"mask-image-conic-from-pos":[{"mask-conic-from":xe()}],"mask-image-conic-to-pos":[{"mask-conic-to":xe()}],"mask-image-conic-from-color":[{"mask-conic-from":re()}],"mask-image-conic-to-color":[{"mask-conic-to":re()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Ze()}],"mask-repeat":[{mask:F()}],"mask-size":[{mask:ue()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ge,he]}],filter:[{filter:["","none",ge,he]}],blur:[{blur:$e()}],brightness:[{brightness:[ze,ge,he]}],contrast:[{contrast:[ze,ge,he]}],"drop-shadow":[{"drop-shadow":["","none",_,Vl,$l]}],"drop-shadow-color":[{"drop-shadow":re()}],grayscale:[{grayscale:["",ze,ge,he]}],"hue-rotate":[{"hue-rotate":[ze,ge,he]}],invert:[{invert:["",ze,ge,he]}],saturate:[{saturate:[ze,ge,he]}],sepia:[{sepia:["",ze,ge,he]}],"backdrop-filter":[{"backdrop-filter":["","none",ge,he]}],"backdrop-blur":[{"backdrop-blur":$e()}],"backdrop-brightness":[{"backdrop-brightness":[ze,ge,he]}],"backdrop-contrast":[{"backdrop-contrast":[ze,ge,he]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ze,ge,he]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ze,ge,he]}],"backdrop-invert":[{"backdrop-invert":["",ze,ge,he]}],"backdrop-opacity":[{"backdrop-opacity":[ze,ge,he]}],"backdrop-saturate":[{"backdrop-saturate":[ze,ge,he]}],"backdrop-sepia":[{"backdrop-sepia":["",ze,ge,he]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":q()}],"border-spacing-x":[{"border-spacing-x":q()}],"border-spacing-y":[{"border-spacing-y":q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ge,he]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ze,"initial",ge,he]}],ease:[{ease:["linear","initial",R,ge,he]}],delay:[{delay:[ze,ge,he]}],animate:[{animate:["none",G,ge,he]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,ge,he]}],"perspective-origin":[{"perspective-origin":I()}],rotate:[{rotate:He()}],"rotate-x":[{"rotate-x":He()}],"rotate-y":[{"rotate-y":He()}],"rotate-z":[{"rotate-z":He()}],scale:[{scale:Dt()}],"scale-x":[{"scale-x":Dt()}],"scale-y":[{"scale-y":Dt()}],"scale-z":[{"scale-z":Dt()}],"scale-3d":["scale-3d"],skew:[{skew:Un()}],"skew-x":[{"skew-x":Un()}],"skew-y":[{"skew-y":Un()}],transform:[{transform:[ge,he,"","none","gpu","cpu"]}],"transform-origin":[{origin:I()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Rt()}],"translate-x":[{"translate-x":Rt()}],"translate-y":[{"translate-y":Rt()}],"translate-z":[{"translate-z":Rt()}],"translate-none":["translate-none"],accent:[{accent:re()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:re()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ge,he]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mbs":[{"scroll-mbs":q()}],"scroll-mbe":[{"scroll-mbe":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pbs":[{"scroll-pbs":q()}],"scroll-pbe":[{"scroll-pbe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ge,he]}],fill:[{fill:["none",...re()]}],"stroke-w":[{stroke:[ze,Yr,wi,$b]}],stroke:[{stroke:["none",...re()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},i3=BR(a3);function En(...e){return i3(vv(e))}const s3=iS("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 focus-visible:ring-offset-2 focus-visible:ring-offset-overlay-scrim disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-accent text-on-inverse hover:bg-mono-200",secondary:"border border-base bg-bg text-heading hover:bg-bg-elevated",ghost:"text-secondary hover:bg-bg-elevated hover:text-primary",outline:"border border-base bg-transparent text-heading hover:bg-bg-elevated",destructive:"bg-negative-600 text-on-emphasis hover:bg-negative-700"},size:{default:"h-10 px-4 md:h-9",sm:"h-9 px-3 text-xs md:h-8",icon:"size-10 md:size-9"}},defaultVariants:{variant:"default",size:"default"}}),Ue=L.forwardRef(({className:e,variant:n,size:i,asChild:r=!1,...l},c)=>{const d=r?Vw:"button";return f.jsx(d,{ref:c,className:En(s3({variant:n,size:i,className:e})),...l})});Ue.displayName="Button";const r3=iS("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium tracking-wide",{variants:{variant:{neutral:"border-base bg-bg text-neutral",success:"border-positive bg-positive-soft text-positive",warning:"border-caution-500/25 bg-caution-soft text-caution",destructive:"border-negative bg-negative-soft text-negative"}},defaultVariants:{variant:"neutral"}});function vS({className:e,variant:n,...i}){return f.jsx("div",{className:En(r3({variant:n}),e),...i})}const o3=220;function Pb({compact:e=!1,version:n,updateAvailable:i,onDismissUpdate:r}){const l=!e&&n&&n!=="unknown",[c,d]=L.useState(!1),h=!e&&i&&r,g=()=>{d(!0),window.setTimeout(()=>{r?.(),d(!1)},o3)};return e?f.jsxs(st,{to:"/",className:"brand-lockup brand-lockup-compact","aria-label":"Canonry home",children:[f.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"}),f.jsx("span",{className:"brand-copy",children:f.jsx("span",{className:"brand-mark",children:"Canonry"})})]}):f.jsxs("div",{className:"brand-lockup brand-lockup-wrapper",children:[f.jsx(st,{to:"/",className:"brand-icon-link","aria-label":"Canonry home",tabIndex:-1,children:f.jsx("img",{className:"brand-icon",src:"./favicon.svg",alt:"","aria-hidden":"true"})}),f.jsxs("div",{className:"brand-copy",children:[f.jsx(st,{to:"/",className:"brand-mark",children:"Canonry"}),h?f.jsxs("span",{className:`brand-update-bubble ${c?"brand-update-bubble-closing":""}`,role:"status","aria-live":"polite",children:[f.jsxs("a",{className:"brand-update-bubble-link",href:i.url,target:"_blank",rel:"noopener noreferrer",title:`Open release: ${i.upgradeCommand}`,"aria-label":`New version v${i.latest} available — open release page`,children:[f.jsxs("span",{className:"brand-update-bubble-from",children:["v",i.current]}),f.jsx(yA,{className:"brand-update-bubble-arrow size-3","aria-hidden":"true"}),f.jsxs("span",{className:"brand-update-bubble-to",children:["v",i.latest]})]}),f.jsx("button",{type:"button",className:"brand-update-bubble-dismiss",onClick:g,"aria-label":`Dismiss update notification for v${i.latest}`,children:f.jsx(Hs,{className:"size-3","aria-hidden":"true"})})]}):l?f.jsxs("span",{className:"brand-version",children:["v",n]}):null]})]})}function l3({provider:e}){const n={gemini:"border-blue-800/50 bg-blue-950/40 text-blue-300",openai:"border-green-800/50 bg-green-950/40 text-green-300",claude:"border-amber-800/50 bg-amber-950/40 text-amber-300",perplexity:"border-teal-800/50 bg-teal-950/40 text-teal-300",local:"border-purple-800/50 bg-purple-950/40 text-purple-300"},r=Object.hasOwn(n,e)?`provider-badge--${e} ${n[e]}`:"border-zinc-700 bg-zinc-800 text-zinc-300";return f.jsx("span",{className:`provider-badge inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide ${r}`,children:e})}function Bn({tone:e,children:n,...i}){const r=e==="positive"?"success":e==="caution"?"warning":e==="negative"?"destructive":"neutral";return f.jsx(vS,{variant:r,...i,children:n})}function _p({status:e}){return f.jsx(Bn,{tone:eS(e),children:t4(e)})}const c3=bv,u3=hv,SS=L.forwardRef(({className:e,...n},i)=>f.jsx(Qf,{ref:i,className:En("fixed inset-0 z-50 bg-overlay-scrim/70 backdrop-blur-sm",e),...n}));SS.displayName=Qf.displayName;const d3=400,f3=1200,p3=720,xS=L.forwardRef(({className:e,children:n,...i},r)=>{const[l,c]=L.useState(p3),d=L.useRef(!1),h=L.useRef(0),g=L.useRef(0),v=L.useCallback(N=>{d.current=!0,h.current=N.clientX,g.current=l,N.target.setPointerCapture(N.pointerId),N.preventDefault()},[l]),S=L.useCallback(N=>{if(!d.current)return;const _=h.current-N.clientX,O=Math.min(f3,Math.max(d3,g.current+_));c(O)},[]),x=L.useCallback(()=>{d.current=!1},[]);return f.jsxs(u3,{children:[f.jsx(SS,{}),f.jsxs(Kf,{ref:r,className:En("fixed z-50 flex flex-col bg-bg px-5 py-4 shadow-2xl overflow-hidden","max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:max-h-[88vh] max-md:rounded-t-2xl max-md:border-t","md:inset-y-0 md:right-0 md:h-full md:border-l","border-base",e),style:{width:`min(${l}px, 100vw)`},...i,children:[f.jsx("div",{className:"absolute inset-y-0 left-0 w-1.5 cursor-col-resize hover:bg-mono-700/50 active:bg-mono-600/50 transition-colors max-md:hidden",onPointerDown:v,onPointerMove:S,onPointerUp:x}),n,f.jsxs(gv,{className:"absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-bg-elevated hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400",children:[f.jsx(Hs,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]})]})});xS.displayName=Kf.displayName;const m3=({className:e,...n})=>f.jsx("div",{className:En("flex flex-col gap-1.5 pr-10",e),...n}),wS=L.forwardRef(({className:e,...n},i)=>f.jsx(Zf,{ref:i,className:En("text-lg font-medium text-primary",e),...n}));wS.displayName=Zf.displayName;const jS=L.forwardRef(({className:e,...n},i)=>f.jsx(yv,{ref:i,className:En("text-sm text-muted",e),...n}));jS.displayName=yv.displayName;function h3({title:e,subtitle:n,children:i,open:r,onClose:l}){return f.jsx(c3,{open:r,onOpenChange:c=>c?void 0:l(),children:f.jsxs(xS,{children:[f.jsxs(m3,{className:"drawer-head",children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:n}),f.jsx(wS,{id:"drawer-title",children:e}),f.jsx(jS,{className:"sr-only",children:n})]}),f.jsx("div",{className:"drawer-body",children:i})]})})}function Xr({text:e}){const[n,i]=L.useState(null),r=L.useRef(null),l=L.useCallback(()=>{if(!r.current)return;const h=r.current.getBoundingClientRect();i({top:h.top,left:h.left+h.width/2})},[]),c=L.useCallback(()=>i(null),[]),d=L.useCallback(()=>{n===null?l():c()},[n,l,c]);return f.jsxs("span",{className:"info-tooltip-wrapper",onMouseEnter:l,onMouseLeave:c,children:[f.jsx("button",{ref:r,type:"button",className:"info-tooltip-trigger","aria-label":e,"aria-expanded":n!==null,onFocus:l,onBlur:c,onClick:d,onKeyDown:h=>{h.key==="Escape"&&c()},children:f.jsxs("svg",{className:"info-tooltip-icon",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[f.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),f.jsx("path",{d:"M8 7v4M8 5.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),n!==null&&Dw.createPortal(f.jsx("span",{"aria-hidden":"true",style:{position:"fixed",top:n.top,left:n.left,transform:"translateX(-50%) translateY(calc(-100% - 8px))",zIndex:9999,pointerEvents:"none",width:"14rem",padding:"0.5rem 0.75rem",fontSize:"11px",fontWeight:400,textTransform:"none",letterSpacing:"normal",lineHeight:"1rem",color:"var(--color-neutral-text)",backgroundColor:"var(--color-bg-elevated)",border:"1px solid color-mix(in oklab, var(--color-border-strong) 60%, transparent)",borderRadius:"0.5rem",boxShadow:"0 10px 15px -3px var(--color-shadow-tooltip), 0 4px 6px -4px var(--color-shadow-tooltip)"},children:e}),document.body)]})}const g3=/[\s\-_]+/;function y3(e){const n=e.split(g3).filter(Boolean);return n.length===0?null:n.map(i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\s\\-_]*")}function Gb(e,n){const i=b3(n),r=e.split(/(\*\*[^*]+\*\*)/).filter(Boolean).map(v=>v.startsWith("**")&&v.endsWith("**")?{type:"bold",value:v.slice(2,-2)}:{type:"text",value:v}),l=i.flatMap(v=>v.terms).filter(v=>v.trim().length>1);if(l.length===0)return r.map((v,S)=>v.type==="bold"?ks.createElement("strong",{key:`b-${S}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const d=[...l].sort((v,S)=>S.length-v.length).map(y3).filter(v=>!!v);if(d.length===0)return r.map((v,S)=>v.type==="bold"?ks.createElement("strong",{key:`b-${S}`,className:"text-strong font-semibold"},v.value):v.value).filter(Boolean);const h=new RegExp(`(${d.join("|")})`,"gi"),g=new Map;for(const v of i)for(const S of v.terms){const x=lc(S);x&&!g.has(x)&&g.set(x,v.className)}return r.flatMap((v,S)=>v.value.split(h).map((N,_)=>{if(!N)return null;if(_%2===1){const k=g.get(lc(N))??"answer-highlight";return v.type==="bold"?ks.createElement("mark",{key:`hl-${S}-${_}`,className:k},ks.createElement("strong",{className:"text-strong font-semibold"},N)):ks.createElement("mark",{key:`hl-${S}-${_}`,className:k},N)}return v.type==="bold"?ks.createElement("strong",{key:`b-${S}-${_}`,className:"text-strong font-semibold"},N):N})).filter(Boolean)}function b3(e){return e.length===0?[]:typeof e[0]=="string"?[{terms:e,className:"answer-highlight"}]:e}function Mf(e){const n=(e??"").trim();return n&&(n.startsWith("/")||/^https?:\/\//i.test(n)||/^mailto:/i.test(n))?n:null}function pf(e,n){switch(e){case"new":return"First observation";case"emerging":return"First mention";case"lost":return"Lost since last run";default:return n==="mentioned"||n==="visible"?"Mentioned in latest run":n==="pending"?"Awaiting first run":"Not mentioned in latest run"}}function v3({evidence:e,project:n,onClose:i}){const[r,l]=L.useState(!1),[c,d]=L.useState("mentions"),[h,g]=L.useState(-1),[v,S]=L.useState(null),[x,N]=L.useState(!1),[_,O]=L.useState({}),k=FE(n.project),E=new Set(k.map(ic)),R=e.runHistory,G=R.length>1,[P,Y]=L.useState(null),I=L.useRef(!1);L.useEffect(()=>{if(I.current||e.answerSnippet&&(e.visibilityState!=null||e.answerMentioned!=null))return;const W=R.at(-1);W&&(I.current=!0,Wl(W.runId).then(de=>{const ne=de.snapshots?.find(Ne=>Ne.query===e.query&&Ne.provider===e.provider);ne&&Y({citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:W.visibilityTransition,provider:ne.provider,model:ne.model??e.model,answerSnippet:ne.answerText??e.answerSnippet,citedDomains:ne.citedDomains??e.citedDomains,competitorDomains:ne.competitorOverlap??e.competitorDomains,recommendedCompetitors:ne.recommendedCompetitors??e.recommendedCompetitors??[],matchedTerms:ne.matchedTerms??e.matchedTerms??[],groundingSources:ne.groundingSources??e.groundingSources,searchQueries:ne.searchQueries,evidenceUrls:[],changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary})}).catch(()=>{}))},[e,R]);const se=h>=0&&v!==null,z=se?v:P||{citationState:e.citationState,answerMentioned:e.answerMentioned,visibilityState:e.visibilityState,visibilityTransition:R.at(-1)?.visibilityTransition,provider:e.provider,model:e.model,answerSnippet:e.answerSnippet,citedDomains:e.citedDomains,competitorDomains:e.competitorDomains,recommendedCompetitors:e.recommendedCompetitors??[],matchedTerms:e.matchedTerms??[],groundingSources:e.groundingSources,searchQueries:e.searchQueries??[],evidenceUrls:e.evidenceUrls,changeLabel:e.visibilityChangeLabel??e.changeLabel,summary:e.summary},q=z.visibilityState==="pending"||z.citationState==="pending",ie=q?!1:z.visibilityState!=null?z.visibilityState==="visible":z.answerMentioned!=null?z.answerMentioned:z.citationState===sc.cited||z.citationState==="emerging",_e=z.answerMentioned!=null||z.visibilityState!=null||z.recommendedCompetitors.length>0,De=z.citedDomains.length>0||z.groundingSources.length>0||z.evidenceUrls.length>0,ve=n.project.displayName||n.project.name,et=[...k.map(ic),ve,ve.split(" ").slice(0,2).join(" "),...z.matchedTerms].filter(W=>W.trim().length>2),le=[...z.competitorDomains.flatMap(W=>{const de=XE(W);return de.length>=4?[de]:[]}),...z.recommendedCompetitors].filter(W=>W.trim().length>2),fe=[{terms:et,className:"answer-highlight-brand"},...le.length>0?[{terms:le,className:"answer-highlight-competitor"}]:[]],$=q?"pending":z.visibilityTransition==="lost"?"lost":ie?"mentioned":"not-mentioned",J=L.useRef(0),pe=L.useCallback(async W=>{const de=++J.current;if(W===-1||W===R.length-1){g(-1),S(null),l(!1);return}g(W),l(!1);const ne=R[W],Ne=`${ne.runId}::${e.query}::${e.provider}`;if(_[Ne]){S(_[Ne]);return}N(!0);try{const tt=await Wl(ne.runId);if(de!==J.current)return;const xe=tt.snapshots?.find(He=>He.query===e.query&&He.provider===e.provider)??tt.snapshots?.find(He=>He.query===e.query),$e=xe?{citationState:xe.citationState,answerMentioned:xe.answerMentioned,visibilityState:xe.visibilityState,visibilityTransition:ne.visibilityTransition,provider:xe.provider,model:xe.model??null,answerSnippet:xe.answerText??"",citedDomains:xe.citedDomains,competitorDomains:xe.competitorOverlap,recommendedCompetitors:xe.recommendedCompetitors??[],matchedTerms:xe.matchedTerms??[],groundingSources:xe.groundingSources,searchQueries:xe.searchQueries,evidenceUrls:[],changeLabel:pf(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:""}:{citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:ne.visibilityTransition,provider:e.provider,model:ne.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:pf(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Snapshot data not available for this run."};O(He=>({...He,[Ne]:$e})),S($e)}catch{if(de!==J.current)return;S({citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:ne.visibilityTransition,provider:e.provider,model:ne.model??null,answerSnippet:"",citedDomains:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],groundingSources:[],searchQueries:[],evidenceUrls:[],changeLabel:pf(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Failed to load historical run data."})}finally{de===J.current&&N(!1)}},[R,e.query,e.provider,_]),re=(se||e.historyScope!=="provider")&&z.model?`${z.provider} (${z.model}) · ${z.changeLabel.toLowerCase()}`:`${z.provider} · ${z.changeLabel.toLowerCase()}`,Ze=!se&&e.historyScope==="provider"?[e.model?`Current model: ${e.model}`:null,e.modelsSeen&&e.modelsSeen.length>1?`History spans ${e.modelsSeen.length} models`:null].filter(Boolean).join(" · "):"",F=ie?{label:"Mentioned in answer",title:"Your brand or domain is mentioned in this answer",meta:re}:z.visibilityTransition==="lost"?{label:"Mention lost",title:"Your brand no longer appears in this answer",meta:re}:q?{label:"Pending",title:"Awaiting first run",meta:"No provider data yet"}:{label:"Not mentioned in answer",title:"Your brand or domain was not mentioned in this answer",meta:re},ue=()=>{if(!z.answerSnippet)return null;const W=z.answerSnippet.split(`
|
|
58
|
+
`),de=[];let ne=[],Ne=0;const tt=()=>{if(ne.length===0)return;const xe=ne.join(" ").trim();xe&&de.push(f.jsx("p",{className:de.length>0?"mt-2.5":"",children:Gb(xe,fe)},Ne++)),ne=[]};for(const xe of W){const $e=xe.trim();if(/^[-\u2013\u2014]{3,}$/.test($e)){tt(),de.push(f.jsx("hr",{className:"border-default my-3"},Ne++));continue}const He=$e.match(/^(#{1,3})\s+(\S.*)$/);if(He){tt();const Dt=He[1].length,Un=He[2].replace(/^[\p{Emoji}\p{Emoji_Component}\s]+/u,"").trim()||He[2],Rt=Dt===1?"text-[13px] font-semibold text-heading mt-4 mb-1":Dt===2?"text-xs font-semibold text-strong mt-3 mb-0.5":"text-xs font-medium text-neutral mt-2";de.push(f.jsx("p",{className:Rt,children:Gb(Un,fe)},Ne++));continue}if($e===""){tt();continue}ne.push($e)}return tt(),de};return f.jsx(bv,{open:!0,onOpenChange:W=>{W||i()},children:f.jsxs(hv,{children:[f.jsx(Qf,{className:"fixed inset-0 z-50 bg-overlay-scrim/80 backdrop-blur-sm"}),f.jsxs(Kf,{className:"evidence-modal","aria-describedby":void 0,children:[f.jsxs("div",{className:"evidence-modal-header",children:[f.jsxs("div",{className:"min-w-0 flex-1",children:[f.jsxs("p",{className:"eyebrow eyebrow-soft",children:[n.project.name," ","·"," ",z.provider||"All providers"]}),f.jsx(Zf,{className:"text-lg font-semibold text-primary truncate",children:e.query})]}),f.jsxs(gv,{className:"inline-flex size-8 items-center justify-center rounded-md text-muted transition hover:bg-mono-800 hover:text-heading focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-mono-400 shrink-0",children:[f.jsx(Hs,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]}),G&&f.jsxs("div",{className:"evidence-modal-timeline",children:[f.jsx("p",{className:"drawer-section-label mb-1.5",children:"Run history"}),f.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-1",children:R.map((W,de)=>{const ne=h===-1&&de===R.length-1||h===de,Ne=W.visibilityState??(W.answerMentioned?"visible":"not-visible"),tt=W.visibilityTransition??Ne,xe=Ne==="visible"?"bg-positive-400":tt==="emerging"?"bg-caution-400":tt==="lost"?"bg-negative-400":"bg-mono-600",He=new Date(W.createdAt).toLocaleDateString(void 0,{month:"short",day:"numeric"}),Dt=!!(W.model&&de>0&&R[de-1]?.model&&R[de-1].model!==W.model);return f.jsxs("button",{type:"button",className:`evidence-run-dot ${ne?"evidence-run-dot--selected":""}`,onClick:()=>{pe(de===R.length-1?-1:de)},"aria-label":[`Run ${He}: ${Ne}`,W.model?`model ${W.model}`:null,Dt?"model changed":null].filter(Boolean).join(" — "),"aria-pressed":ne,children:[f.jsx("span",{className:`size-2 rounded-full ${xe} ${Dt?"ring-1 ring-caution-300/80 ring-offset-2 ring-offset-bg":""}`,"aria-hidden":"true"}),f.jsx("span",{className:"text-[10px] text-muted",children:He})]},de)})}),h>=0&&h<R.length&&f.jsxs("p",{className:"text-[11px] text-muted mt-1",children:["Viewing run from ",new Date(R[h].createdAt).toLocaleString()," ","—"," ",f.jsx("span",{className:"capitalize",children:R[h].visibilityState??(R[h].answerMentioned?"visible":"not-visible")}),f.jsxs("button",{type:"button",className:"text-secondary hover:text-strong ml-2",onClick:()=>{pe(-1)},children:["←"," Back to latest"]})]}),!se&&(e.modelTransitions?.length??0)>0&&f.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.modelTransitions.map(W=>f.jsx("span",{className:"inline-flex items-center rounded-full border border-caution-400/30 bg-caution-400/10 px-2 py-1 text-[10px] text-caution-100",children:`${W.fromModel??"unknown"} -> ${W.toModel??"unknown"} on ${new Date(W.createdAt).toLocaleDateString()}`},`${W.runId}:${W.toModel??"unknown"}`))})]}),f.jsxs("div",{className:"evidence-modal-body",children:[x&&f.jsxs("div",{className:"md:col-span-2 flex items-center justify-center py-12 text-muted text-sm",children:["Loading historical run data","…"]}),!x&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"evidence-modal-main",children:[f.jsxs("div",{className:`evidence-position-hero evidence-position-hero--${$}`,children:[f.jsx("p",{className:`evidence-position-label evidence-position-label--${$}`,children:F.label}),f.jsx("p",{className:`evidence-position-title evidence-position-title--${$}`,children:F.title}),f.jsx("p",{className:"evidence-position-meta",children:F.meta}),Ze&&f.jsx("p",{className:"mt-1 text-[11px] text-muted",children:Ze})]}),z.answerSnippet&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:"What the AI said"}),f.jsx("div",{className:`answer-snippet-block ${r?"evidence-answer-expanded":"evidence-answer-collapsed"}`,children:ue()}),z.answerSnippet.length>280&&f.jsx("button",{type:"button",className:"mt-1.5 text-xs text-muted hover:text-neutral transition-colors",onClick:()=>l(!r),children:r?"↑ Collapse":"↓ Show full answer"})]}),!z.answerSnippet&&!x&&f.jsx("div",{className:"rounded-lg border border-subtle bg-surface-subtle px-4 py-8 text-center text-faint text-sm",children:"No answer text recorded for this run"}),z.searchQueries.length>0&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Web searches the model ran"}),f.jsx(Xr,{text:"The search queries this AI model issued while researching your prompt. They reveal how the model reformulated the question — the phrasings worth optimizing your content for. Distinct from grounding sources (what it found) and citations (what it linked)."})]}),f.jsx("ul",{className:"grid gap-1",children:z.searchQueries.map((W,de)=>f.jsxs("li",{className:"flex items-start gap-2 text-sm text-neutral",children:[f.jsx(n_,{className:"size-3.5 mt-0.5 shrink-0 text-faint","aria-hidden":"true"}),f.jsx("span",{className:"break-words",children:W})]},`${de}-${W}`))})]}),!se&&e.relatedTechnicalSignals.length>0&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:ie?"Why you're visible":"What to fix"}),f.jsx("div",{className:"action-items-list",children:e.relatedTechnicalSignals.map((W,de)=>f.jsxs("div",{className:"action-item",children:[f.jsx("svg",{className:`action-item-icon ${ie?"text-positive-400":"text-caution-400"}`,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:ie?f.jsx("path",{d:"M3 8l3.5 3.5L13 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}):f.jsxs(f.Fragment,{children:[f.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),f.jsx("path",{d:"M8 5v3.5M8 10.5v0",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}),f.jsx("span",{className:"action-item-text",children:W})]},de))})]}),z.summary&&f.jsx("p",{className:"text-xs text-faint border-t border-subtle pt-3 mt-1",children:z.summary})]}),f.jsxs("div",{className:"evidence-modal-sidebar",children:[(_e||De)&&f.jsxs("div",{className:"sidebar-tabs",children:[f.jsx("button",{className:`sidebar-tab ${c==="mentions"?"sidebar-tab--active":""}`,onClick:()=>d("mentions"),type:"button",title:"Canonry's answer-level visibility assessment and any company names extracted from the answer text.",children:"Mentions"}),f.jsx("button",{className:`sidebar-tab ${c==="sources"?"sidebar-tab--active":""}`,onClick:()=>d("sources"),type:"button",title:"Grounding links the model used to build the answer. These are supporting sources, not the primary visibility signal.",children:"Sources"})]}),c==="mentions"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Mention in answer"}),f.jsx(Xr,{text:"Canonry scans the AI answer for your owned domains and project name. This is independent from grounding or citation sources."})]}),f.jsxs("div",{className:`mention-status mention-status--${ie?"mentioned":"not-mentioned"}`,children:[f.jsx("span",{className:"mention-status-icon",children:q?"…":ie?"✓":"—"}),f.jsx("span",{className:"mention-status-label",children:q?"Pending":ie?"Mentioned":"Not mentioned"})]}),z.matchedTerms.length>0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Matched in answer"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:z.matchedTerms.map(W=>f.jsx("span",{className:"mention-chip mention-chip--brand",children:W},W))})]}),!q&&!ie&&z.matchedTerms.length===0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted mb-1.5",children:"Searched for"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:et.map(W=>f.jsx("span",{className:"mention-chip mention-chip--muted",children:W},W))}),f.jsx("p",{className:"text-[11px] text-faint mt-1.5",children:"None of these appear in the answer text."})]})]}),(z.recommendedCompetitors.length>0||z.competitorDomains.length>0)&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Competitors in answer"}),f.jsx(Xr,{text:"Competitors detected in the answer text or cited source links. Includes both tracked competitors and names extracted by Canonry."})]}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:(()=>{const W=z.competitorDomains.map(Ne=>Ne.replace(/^www\./,"")),de=new Set(W.map(Ne=>lc(Ne.replace(/\.[^.]+$/,""))));return[...z.recommendedCompetitors.filter(Ne=>!de.has(lc(Ne))),...W].map(Ne=>f.jsx("span",{className:"mention-chip mention-chip--competitor",children:Ne},Ne))})()})]})]}),c==="sources"&&f.jsxs(f.Fragment,{children:[z.citedDomains.length>0&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsx("span",{children:"Domains from source links"}),f.jsx(Xr,{text:"These domains were extracted from grounding or citation URLs. They are supporting-source metadata, not proof that the answer text mentioned them."})]}),f.jsx("div",{className:"citation-leaderboard",children:z.citedDomains.map((W,de)=>{const ne=W.toLowerCase().replace(/^www\./,""),Ne=E.has(ne),tt=!Ne&&z.competitorDomains.some($e=>$e.toLowerCase().replace(/^www\./,"")===ne),xe=Ne?"you":tt?"competitor":"other";return f.jsxs("div",{className:`citation-leaderboard-item citation-leaderboard-item--${xe}`,children:[f.jsxs("span",{className:"citation-leaderboard-rank",children:["#",de+1]}),f.jsx("span",{className:"citation-leaderboard-domain",children:W}),Ne&&f.jsx("span",{className:"citation-leaderboard-tag",children:"You"}),tt&&f.jsx("span",{className:"citation-leaderboard-tag",children:"Competitor"})]},W)})})]}),z.groundingSources.length>0&&f.jsxs("div",{children:[f.jsxs("div",{className:"drawer-section-label flex items-center",children:[f.jsxs("span",{children:["Grounding source links (",z.groundingSources.length,")"]}),f.jsx(Xr,{text:"Links the model used as grounding or supporting context while producing the answer. These are not the same thing as answer visibility."})]}),f.jsx("ul",{className:"grid gap-0.5",children:z.groundingSources.map((W,de)=>{const ne=Mf(W.uri),Ne=W.title||W.uri;return f.jsx("li",{className:"truncate text-sm",children:ne?f.jsx("a",{href:ne,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:Ne}):f.jsx("span",{className:"text-secondary",children:Ne})},de)})})]}),z.evidenceUrls.length>0&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:"Evidence URLs"}),f.jsx("ul",{className:"grid gap-1",children:z.evidenceUrls.map(W=>{const de=Mf(W);return f.jsx("li",{className:"truncate text-sm",children:de?f.jsx("a",{href:de,target:"_blank",rel:"noopener noreferrer",className:"text-secondary hover:text-strong transition-colors",children:W}):f.jsx("span",{className:"text-secondary",children:W})},W)})})]}),z.citedDomains.length===0&&z.groundingSources.length===0&&z.evidenceUrls.length===0&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No source data ",se?"for this run":"yet"]})]}),!_e&&!De&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-faint text-sm",children:["No answer visibility data ",se?"for this run":"yet"]})]})]})]})]})]})})}function S3(e){const n=e.match(/^\/projects\/([^/]+)/);if(!n)return null;try{return decodeURIComponent(n[1])}catch{return n[1]}}function x3(e,n){return e?n?.projects.find(r=>r.project.name===e||r.project.id===e)?.project.name??e:null}function w3(e,n){return x3(S3(e),n)}function Mn(e){const n=new Date("2026-02-20");return e.map((i,r)=>({runId:`run_mock_${r+1}`,citationState:i,createdAt:new Date(n.getTime()+r*2*24*60*60*1e3).toISOString()}))}const mf=[{id:"project_citypoint",name:"Citypoint Dental NYC",canonicalDomain:"citypointdental.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["local intent","priority"],labels:{},providers:[],locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_harbor",name:"Harbor Legal Group",canonicalDomain:"harborlegal.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["lead gen"],labels:{},providers:[],locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1},{id:"project_northstar",name:"Northstar Orthopedics",canonicalDomain:"northstarortho.com",ownedDomains:[],aliases:[],country:"US",language:"en",tags:["multi-location"],labels:{},providers:[],locations:[],defaultLocation:null,autoExtractBacklinks:!1,configSource:"cli",configRevision:1}];function kc(e){return{id:e.id,projectId:e.projectId,projectName:e.projectName,kind:e.kind,kindLabel:e.kindLabel,status:e.status,trigger:e.trigger??"manual",createdAt:e.createdAt,startedAt:e.startedAt,duration:e.duration,statusDetail:e.statusDetail,summary:e.summary,triggerLabel:e.triggerLabel}}const j3=kc({id:"run_citypoint_visibility_20260308",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T12:15:00.000Z",startedAt:"Mar 8, 12:15 PM",duration:"6m 12s",statusDetail:"18 tracked queries checked; 3 citation losses detected on emergency-intent prompts.",summary:"Citation losses on emergency-intent prompts",triggerLabel:"Scheduled"}),N3=kc({id:"run_citypoint_queued_20260309",projectId:"project_citypoint",projectName:"Citypoint Dental NYC",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"queued",createdAt:"2026-03-09T08:05:00.000Z",startedAt:"Mar 9, 8:05 AM",duration:"Waiting for slot",statusDetail:"Ready to enqueue after the next provider rate window clears.",summary:"Queued follow-up after local ranking movement",triggerLabel:"Manual"}),k3=kc({id:"run_harbor_visibility_20260308",projectId:"project_harbor",projectName:"Harbor Legal Group",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"completed",createdAt:"2026-03-08T11:05:00.000Z",startedAt:"Mar 8, 11:05 AM",duration:"5m 07s",statusDetail:"12 tracked queries checked; local-intent visibility held steady across branded prompts.",summary:"Branded prompts remain stable",triggerLabel:"Scheduled"}),A3=kc({id:"run_northstar_visibility_20260308",projectId:"project_northstar",projectName:"Northstar Orthopedics",kind:"answer-visibility",kindLabel:"Answer visibility sweep",status:"running",createdAt:"2026-03-08T13:40:00.000Z",startedAt:"Mar 8, 1:40 PM",duration:"3m 10s",statusDetail:"Provider responses still in flight for 9 multi-location prompts.",summary:"Mid-run on treatment-location prompts",triggerLabel:"Manual"}),_3=[{id:"evidence_citypoint_emergency_gemini",query:"emergency dentist brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"lost",changeLabel:"Lost since Mar 5",answerSnippet:"For urgent dental care in Brooklyn, Downtown Smiles and Harbor Dental are now cited first for emergency availability and same-day booking.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:["https://downtownsmiles.com/emergency-dentist-brooklyn","https://harbordental.com/same-day-emergency-care"],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing on the emergency service page","llms.txt not found during latest site audit","Location pages link weakly into the emergency care hub"],summary:"AI answers now cite two competitors while your emergency page is no longer grounded.",runHistory:Mn(["cited","cited","cited","cited","cited","cited","cited","not-cited","not-cited"])},{id:"evidence_citypoint_emergency_openai",query:"emergency dentist brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"Cited for 6 runs",answerSnippet:"Citypoint Dental is listed as a top emergency dentist in Brooklyn for same-day appointments and walk-in availability.",citedDomains:["citypointdental.com","downtownsmiles.com"],evidenceUrls:["https://citypointdental.com/emergency-dentist-brooklyn"],competitorDomains:["downtownsmiles.com"],groundingSources:[],relatedTechnicalSignals:["Emergency page indexed with structured data"],summary:"OpenAI cites your emergency page consistently alongside one competitor.",runHistory:Mn(["not-cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_emergency_claude",query:"emergency dentist brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"Based on the search results, top-rated emergency dental practices in Brooklyn include Downtown Smiles and Harbor Dental.",citedDomains:["downtownsmiles.com","harbordental.com"],evidenceUrls:[],competitorDomains:["downtownsmiles.com","harbordental.com"],groundingSources:[],relatedTechnicalSignals:["FAQ schema missing","llms.txt not found"],summary:"Claude does not cite your domain for this emergency query.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_invisalign_openai",query:"best invisalign dentist downtown brooklyn",provider:"openai",model:"gpt-5.4",location:null,citationState:"emerging",changeLabel:"First citation in 7 days",answerSnippet:"Citypoint Dental appears as an emerging recommendation for Invisalign in Downtown Brooklyn, supported by recent before-and-after case pages.",citedDomains:["citypointdental.com","clearlineortho.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn","https://citypointdental.com/case-studies/invisalign-open-bite"],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["Structured data now present on two case-study pages","Internal links from service pages to case studies improved crawl depth"],summary:"Fresh case-study content is starting to earn citations on Invisalign prompts.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","cited"])},{id:"evidence_citypoint_invisalign_gemini",query:"best invisalign dentist downtown brooklyn",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"cited",changeLabel:"Cited for 8 runs",answerSnippet:"Citypoint Dental in Downtown Brooklyn is highlighted for its Invisalign expertise and patient outcomes.",citedDomains:["citypointdental.com"],evidenceUrls:["https://citypointdental.com/invisalign-downtown-brooklyn"],competitorDomains:[],groundingSources:[],relatedTechnicalSignals:["Case study pages well-indexed"],summary:"Gemini consistently cites your Invisalign page with no competitor overlap.",runHistory:Mn(["cited","cited","cited","cited","cited","cited","cited","cited"])},{id:"evidence_citypoint_invisalign_claude",query:"best invisalign dentist downtown brooklyn",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For Invisalign in Downtown Brooklyn, Clear Line Ortho and Brooklyn Smiles are frequently recommended for their experienced orthodontists.",citedDomains:["clearlineortho.com","brooklynsmiles.com"],evidenceUrls:[],competitorDomains:["clearlineortho.com"],groundingSources:[],relatedTechnicalSignals:["No before/after schema on case study pages"],summary:"Claude does not surface your Invisalign content despite strong page quality.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_claude",query:"pediatric dentist brooklyn heights",provider:"claude",model:"claude-sonnet-4-6",location:null,citationState:"not-cited",changeLabel:"No citation across 4 runs",answerSnippet:"Answers cite neighborhood-specific pediatric practices with stronger family-focused FAQ content and clearer insurance details.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:["https://brightkidsdental.com/pediatric-dentist-brooklyn-heights","https://parkpediatricdental.com/insurance"],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric service page exists for Brooklyn Heights","Insurance content is buried three clicks deep"],summary:"Coverage gap is content-driven, not purely technical.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_gemini",query:"pediatric dentist brooklyn heights",provider:"gemini",model:"gemini-2.5-flash",location:null,citationState:"not-cited",changeLabel:"No citation across 12 runs",answerSnippet:"For pediatric dentistry in Brooklyn Heights, Bright Kids Dental and Park Pediatric Dental are cited for family-friendly care.",citedDomains:["brightkidsdental.com","parkpediatricdental.com"],evidenceUrls:[],competitorDomains:["brightkidsdental.com","parkpediatricdental.com"],groundingSources:[],relatedTechnicalSignals:["No dedicated pediatric page for Brooklyn Heights"],summary:"Gemini does not surface your domain for pediatric queries in this area.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited","not-cited"])},{id:"evidence_citypoint_children_openai",query:"pediatric dentist brooklyn heights",provider:"openai",model:"gpt-5.4",location:null,citationState:"cited",changeLabel:"First citation this month",answerSnippet:"Citypoint Dental is mentioned as offering pediatric services in Brooklyn, though specialized pediatric-only practices are also highlighted.",citedDomains:["citypointdental.com","brightkidsdental.com"],evidenceUrls:["https://citypointdental.com/family-dentistry"],competitorDomains:["brightkidsdental.com"],groundingSources:[],relatedTechnicalSignals:["Family dentistry page recently updated"],summary:"OpenAI recently started citing your family dentistry page for this query.",runHistory:Mn(["not-cited","not-cited","not-cited","not-cited","not-cited","cited"])}];mf[0],Math.round(1/9*100),Math.round(2/9*100),mf[1],Mn(["cited","cited","cited","cited","cited"]),mf[2],Math.round(2/7*100),Math.round(3/7*100),Mn(["not-cited","not-cited","not-cited","cited"]);function C3(e,n){return e.runs.find(i=>i.id===n)}function T3(e,n){for(const i of e.projects){const r=i.visibilityEvidence.find(l=>l.id===n);if(r)return{project:i,evidence:r}}}function E3(e,n,i){if(e){const r=e.visibilityEvidence.find(l=>l.id===i);if(r)return{project:e,evidence:r}}if(n)return T3(n,i)}const O3={regression:"negative",gain:"positive",opportunity:"caution","first-citation":"positive","provider-pickup":"positive","persistent-gap":"caution","competitor-gained":"negative","competitor-lost":"neutral","gbp-lodging-gap":"negative","gbp-listing-discrepancy":"negative","gbp-cta-gap":"caution","gbp-description-missing":"caution","gbp-metric-drop":"negative","gbp-keyword-drop":"negative"},z3={opportunity:"write","persistent-gap":"write","competitor-gained":"write","competitor-lost":"write",regression:"investigate",gain:"monitor","first-citation":"monitor","provider-pickup":"monitor","gbp-lodging-gap":"write","gbp-listing-discrepancy":"write","gbp-cta-gap":"write","gbp-description-missing":"write","gbp-metric-drop":"investigate","gbp-keyword-drop":"investigate"},D3={regression:"lost",gain:"emerging",opportunity:"not-cited","first-citation":"emerging","provider-pickup":"emerging","persistent-gap":"not-cited","competitor-gained":"cited","competitor-lost":"not-cited","gbp-lodging-gap":"not-cited","gbp-listing-discrepancy":"not-cited","gbp-cta-gap":"not-cited","gbp-description-missing":"not-cited","gbp-metric-drop":"lost","gbp-keyword-drop":"lost"},R3={regression:"Regression",gain:"Gain",opportunity:"Opportunity","first-citation":"First citation","provider-pickup":"Pickup","persistent-gap":"Gap","competitor-gained":"Competitor","competitor-lost":"Competitor","gbp-lodging-gap":"Lodging gap","gbp-listing-discrepancy":"Listing gap","gbp-cta-gap":"Booking CTA","gbp-description-missing":"Description gap","gbp-metric-drop":"Metric drop","gbp-keyword-drop":"Keyword drop"};function M3(e){return{id:e.id,tone:O3[e.type],title:e.title,detail:e.cause?.details??e.cause?.cause??"",actionLabel:e.recommendation?.action??R3[e.type],actionGroup:z3[e.type],affectedPhrases:[{query:e.query,evidenceId:"",provider:e.provider,citationState:D3[e.type]}]}}function B3(e){return e.filter(n=>!n.dismissed).map(M3)}function NS(e){return{id:e.id,name:e.name,displayName:e.displayName,canonicalDomain:e.canonicalDomain,ownedDomains:e.ownedDomains??[],aliases:e.aliases??[],country:e.country,language:e.language,tags:e.tags,labels:e.labels,providers:e.providers??[],locations:e.locations??[],defaultLocation:e.defaultLocation??null,autoExtractBacklinks:e.autoExtractBacklinks??!1,configSource:e.configSource,configRevision:e.configRevision,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Hb(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}function L3(e,n){if(!e)return"Waiting";if(!n)return"Running";const i=new Date(n).getTime()-new Date(e).getTime();if(i<1e3)return"<1s";const r=Math.floor(i/1e3);if(r<60)return`${r}s`;const l=Math.floor(r/60),c=r%60;return`${l}m ${c}s`}function kS(e){switch(e){case ke["answer-visibility"]:return"Answer visibility sweep";case ke["gsc-sync"]:return"GSC sync";case ke["inspect-sitemap"]:return"Sitemap inspection";case ke["ga-sync"]:return"GA sync";case ke["traffic-sync"]:return"Traffic sync";case ke["bing-inspect"]:return"Bing URL inspection";case ke["bing-inspect-sitemap"]:return"Bing sitemap inspection";case ke["site-audit"]:return"Site audit";case ke["backlink-extract"]:return"Backlink extract";case ke["aeo-discover-seed"]:return"Discovery (seed phase)";case ke["aeo-discover-probe"]:return"Discovery (probe phase)";case ke["gbp-sync"]:return"Business Profile sync";case ke["ads-sync"]:return"ChatGPT ads sync"}}function q3(e){return e===Ms.manual?"Manual":e===Ms.scheduled?"Scheduled":e===Ms["config-apply"]?"Config apply":e}function Cp(e,n){return{id:e.id,projectId:e.projectId,projectName:n,kind:e.kind,kindLabel:kS(e.kind),status:e.status,trigger:e.trigger??"manual",location:e.location??null,createdAt:e.createdAt,startedAt:e.startedAt?Hb(e.startedAt):Hb(e.createdAt),duration:L3(e.startedAt??null,e.finishedAt??null),statusDetail:e.error?AS(e.error):U3(e),summary:$3(e),triggerLabel:q3(e.trigger)}}function AS(e){const n=cp(e);return n.length>200?n.slice(0,200)+"…":n}function U3(e){switch(e.status){case Qt.queued:return"Waiting for execution slot.";case Qt.running:return"Provider queries in progress.";case Qt.completed:return"All queries checked.";case Qt.partial:return"Run completed with some queries skipped.";case Qt.failed:return e.error?AS(e.error):"Run failed.";case Qt.cancelled:return"Run was cancelled.";default:return""}}function $3(e){const n=kS(e.kind);switch(e.status){case Qt.queued:return`${n} queued`;case Qt.running:return`${n} in progress`;case Qt.completed:return`${n} completed`;case Qt.partial:return`${n} partially completed`;case Qt.failed:return`${n} failed`;case Qt.cancelled:return`${n} cancelled`;default:return e.status}}function V3(e,n,i,r){const l=[];let c=0;const d=new Set;if(i.length>0){const h=i.flatMap(O=>O.snapshots??[]),g=new Map;for(const O of h)if(O.query){const k=`${O.query}::${O.provider}::${O.location??""}`;g.set(k,O)}const v=new Set(h.map(O=>O.location??null));v.size===0&&v.add(null);const S=new Set(h.map(O=>O.provider)),x=new Set(n.flatMap(O=>Object.keys(O.providerRuns??{}))),N=[...new Set([...S,...x])].sort(),_=N.length>0?N:["gemini"];for(const O of n){if(O.runs.length===0)continue;d.add(O.query);const k=O.runs.at(-1),E=k?.transition??"not-cited";for(const R of _){const G=[...v].filter(I=>g.has(`${O.query}::${R}::${I??""}`)),P=(O.providerRuns?.[R]?.length??0)>0,Y=G.length>0?G:P?[null]:[];for(const I of Y){const se=I??"",z=g.get(`${O.query}::${R}::${se}`),q=z?.model??null,ie=q?`${R}:${q}`:null,_e=O.providerRuns?.[R],De=ie?O.modelRuns?.[ie]:void 0,ve=$e=>$e?.filter(He=>(He.location??null)===I),et=G.length>0?ve(_e):_e,le=G.length>0?ve(De):De,fe=(et?.length?et:null)??(le?.length?le:null),$=et?.length?"provider":le?.length?"model":"query",J=fe?fe.at(-1).transition:E,pe=fe?fe.at(-1).visibilityTransition??(fe.at(-1).visibilityState==="visible"?"visible":"not-visible"):k?.visibilityTransition??(k?.visibilityState==="visible"?"visible":"not-visible"),je=fe?.at(-1)?.citationState,re=fe?.at(-1)?.visibilityState,Ze=z?J==="lost"?"lost":J==="emerging"?"emerging":z.citationState===sc.cited?"cited":"not-cited":je===sc.cited?"cited":"not-cited",F=z?.visibilityState??(re==="visible"?"visible":re==="pending"?"pending":"not-visible"),ue=Qb(fe||O.runs),W=Kb(fe||O.runs),de=I3(O,R),ne=(fe??O.runs).map($e=>({runId:$e.runId,citationState:$e.citationState,createdAt:$e.createdAt,model:de.get($e.runId)??null,answerMentioned:$e.answerMentioned,visibilityState:$e.visibilityState,visibilityTransition:$e.visibilityTransition,mentionState:$e.mentionState,mentionTransition:$e.mentionTransition})),Ne=P3(ne),tt=$==="provider"&&Ne.length<=1?"model":$,xe=G3(ne);l.push({id:`evidence_${e}_${c++}`,query:O.query,provider:z?.provider??R,model:z?.model??null,location:z?.location??I,citationState:Ze,answerMentioned:z?.answerMentioned,visibilityState:F,visibilityChangeLabel:Zb(pe,W,{positive:"visible",negative:"not visible",first:"first visibility"}),changeLabel:Zb(J,ue),answerSnippet:z?.answerText??"",citedDomains:z?.citedDomains??[],evidenceUrls:[],competitorDomains:z?.competitorOverlap??[],recommendedCompetitors:z?.recommendedCompetitors??[],matchedTerms:z?.matchedTerms??[],relatedTechnicalSignals:[],groundingSources:z?.groundingSources??[],searchQueries:z?.searchQueries??[],summary:H3(F,pe,O.query),runHistory:ne,historyScope:tt,modelsSeen:Ne,modelTransitions:xe})}}}}for(const h of r)d.has(h.query)||l.push({id:`evidence_${e}_${c++}`,query:h.query,provider:"",model:null,location:null,citationState:"pending",visibilityState:"pending",visibilityChangeLabel:"Awaiting first run",changeLabel:"Awaiting first run",answerSnippet:"",citedDomains:[],evidenceUrls:[],competitorDomains:[],recommendedCompetitors:[],matchedTerms:[],relatedTechnicalSignals:[],groundingSources:[],searchQueries:[],summary:`"${h.query}" has been added but no visibility run has been triggered yet.`,runHistory:[],historyScope:"query",modelsSeen:[],modelTransitions:[]});return l}function I3(e,n){const i=new Map,r=`${n}:`;for(const[l,c]of Object.entries(e.modelRuns??{})){if(!l.startsWith(r))continue;const d=l.slice(r.length),h=d==="unknown"?null:d;for(const g of c)i.set(g.runId,h)}return i}function P3(e){const n=new Set;for(const i of e)i.model&&n.add(i.model);return[...n]}function G3(e){const n=[];let i=null;for(const r of e){const l=r.model??null;l!==i&&i!==null&&n.push({runId:r.runId,createdAt:r.createdAt,fromModel:i,toModel:l}),i=l}return n}function Qb(e){if(e.length===0)return 0;const n=e[e.length-1].citationState;let i=0;for(let r=e.length-1;r>=0&&e[r].citationState===n;r--)i++;return i}function Kb(e){if(e.length===0)return 0;const n=e[e.length-1].visibilityState??"not-visible";let i=0;for(let r=e.length-1;r>=0&&(e[r].visibilityState??"not-visible")===n;r--)i++;return i}function Zb(e,n,i){const r={positive:i?.positive??"cited",negative:i?.negative??"not cited",first:i?.first??"first citation"};switch(e){case"new":return"First observation";case"cited":case"visible":return n<=1?`${Fr(r.positive)} in latest run`:`${Fr(r.positive)} for ${n} runs`;case"lost":return"Lost since last run";case"emerging":return Fr(r.first);case"not-cited":case"not-visible":return n<=1?`${Fr(r.negative)} in latest run`:`${Fr(r.negative)} across ${n} runs`;default:return e}}function Fr(e){return e.charAt(0).toUpperCase()+e.slice(1)}function H3(e,n,i){switch(n){case"lost":return`Mention was lost for "${i}". Your brand no longer appeared in the latest answer.`;case"emerging":return`Your brand started appearing in AI answers for "${i}".`}switch(e){case"visible":return`Your brand or domain is mentioned in AI answers for "${i}".`;case"pending":return`"${i}" has been added but no run has been triggered yet.`;default:return`Your brand or domain was not mentioned in AI answers for "${i}".`}}function _S(e){const n=NS(e.project),i=V3(n.name,e.timeline,e.latestRunDetails,e.queries),l=[...e.runs].sort((c,d)=>d.createdAt.localeCompare(c.createdAt)).map(c=>Cp(c,e.project.displayName||e.project.name));return e.overview?Q3(n,e.overview,i,l):K3(n,i,l)}function Q3(e,n,i,r){const l=B3(n.topInsights);for(const c of n.attentionItems)c.id.startsWith("insight_")||l.push({id:c.id,tone:c.tone,title:c.title,detail:c.detail,actionLabel:c.actionLabel,actionGroup:"investigate",affectedPhrases:[]});return{project:e,dateRangeLabel:n.dateRangeLabel,contextLabel:n.contextLabel,mentionSummary:n.scores.mention,visibilitySummary:n.scores.visibility,mentionShareSummary:n.scores.mentionShare,queryCounts:{cited:n.queryCounts.citedQueries,total:n.queryCounts.totalQueries},gapQueries:n.scores.gapQueries,mentionGaps:n.scores.mentionGaps,indexCoverage:n.scores.indexCoverage,providerScores:n.providerScores,competitorPressure:n.scores.competitorPressure,runStatus:n.scores.runStatus,citationMovement:n.citationMovement,mentionMovement:n.mentionMovement,movementComparison:n.movementComparison,insights:l,visibilityEvidence:i,competitors:n.competitors.map(c=>({id:c.id,domain:c.domain,citationCount:c.citationCount,totalQueries:c.totalQueries,pressureLabel:c.pressureLabel,citedQueries:c.citedQueries,movement:"",notes:""})),recentRuns:r.slice(0,5),suggestedQueries:n.suggestedQueries}}function K3(e,n,i){const r={label:"",value:"No data",delta:"Loading…",tone:"neutral",description:"",tooltip:"",trend:[]};return{project:e,dateRangeLabel:"All time",contextLabel:`${e.country} / ${e.language.toUpperCase()}`,mentionSummary:{...r,label:"Mention Coverage"},visibilitySummary:{...r,label:"Citation Coverage"},mentionShareSummary:{...r,label:"Mention Share",breakdown:{projectMentionSnapshots:0,competitorMentionSnapshots:0,perCompetitor:[],snapshotsWithAnswerText:0,snapshotsTotal:0}},queryCounts:{cited:0,total:0},gapQueries:{...r,label:"Citation Gaps"},mentionGaps:{...r,label:"Mention Gaps"},indexCoverage:{...r,label:"Index Coverage"},providerScores:[],competitorPressure:{...r,label:"Competitor Pressure"},runStatus:{...r,label:"Run Status"},citationMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},mentionMovement:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},movementComparison:{hasPreviousRun:!1,comparable:!1,querySetChanged:!1,previousRunAt:null,currentQueryCount:0,previousQueryCount:0,comparableQueryCount:0,addedQueryCount:0,removedQueryCount:0,addedQueries:[],removedQueries:[]},insights:[],visibilityEvidence:n,competitors:[],recentRuns:i.slice(0,5),suggestedQueries:{rows:[],totalCandidates:0,skippedAlreadyTracked:0}}}function Z3(e){const n=NS(e.project),i=[...e.runs].sort((N,_)=>_.createdAt.localeCompare(N.createdAt)),r=i.find(N=>N.kind===ke["answer-visibility"])??i[0]??e.overview?.latestRun?.run??void 0,l=e.project.displayName||e.project.name,c=r?Cp(r,l):Y3(e.project.id,l),d=e.overview;if(!d)return{project:n,mentionScore:0,mentionDelta:"No data",mentionTone:"neutral",lastRun:c,insight:"No runs completed yet.",trend:[],competitorPressureLabel:"None"};const h=d.scores.mention,g=h.progress??0,v=d.queryCounts.mentionedQueries,S=d.queryCounts.totalQueries,x=d.providers.length;return{project:n,mentionScore:g,mentionDelta:S>0?`${v} of ${S} queries`:"No data",mentionTone:h.tone,providerCoverage:h.providerCoverage,lastRun:c,insight:S>0?`${v} of ${S} queries mentioned across ${x} provider${x===1?"":"s"}.`:"No runs completed yet.",trend:h.trend??[],competitorPressureLabel:d.scores.competitorPressure.value}}function Y3(e,n){return{id:"none",projectId:e,projectName:n,kind:ke["answer-visibility"],kindLabel:"No runs yet",status:Qt.queued,trigger:Ms.manual,createdAt:"",startedAt:"",duration:"",statusDetail:"",summary:"No runs yet",triggerLabel:""}}function X3(e,n){const i=[],r=[],l=[];for(const d of e){r.push(_S(d)),l.push(Z3(d));const h=[...d.runs].sort((g,v)=>v.createdAt.localeCompare(g.createdAt));for(const g of h)i.push(Cp(g,d.project.displayName||d.project.name))}i.sort((d,h)=>h.createdAt.localeCompare(d.createdAt));const c=e.length>0;return{portfolioOverview:{projects:l,attentionItems:c?F3(r):[{id:"attention_setup",tone:"neutral",title:"No projects yet",detail:"Create your first project using the setup wizard, CLI, or API.",actionLabel:"Open setup",href:"/setup"}],recentRuns:i.slice(0,5),systemHealth:[{id:"api",label:"API",tone:"positive",detail:"Connected",meta:"Real-time data"},{id:"provider",label:"Gemini",tone:"positive",detail:"Configured",meta:"Provider active"}],lastUpdatedAt:new Date().toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"}),...c?{}:{emptyState:{title:"No projects yet",detail:"Canonry becomes useful after one project, a small query set, and one competitor list are in place.",ctaLabel:"Launch setup",ctaHref:"/setup"}}},projects:r,runs:i,setup:{healthChecks:[{id:"api",label:"API reachable",detail:"API is responding.",state:"ready",guidance:"Required for project creation and run history."},{id:"provider",label:"Provider configured",detail:"Gemini key is configured.",state:"ready",guidance:"Required for answer-visibility sweeps."}],projectDraft:{name:"",canonicalDomain:"",country:"US",language:"en"},queryImportState:{mode:"paste",queryCount:0,preview:[]},competitorDraft:{domains:[],notes:"Use the CLI to add competitors."},launchState:{enabled:c,ctaLabel:c?"Trigger run":"Create a project first",summary:c?"Ready to run.":"Create a project first to launch a run."}},settings:{providerStatuses:(n?.providers??[]).map(d=>({name:d.name,displayName:d.displayName,keyUrl:d.keyUrl,modelHint:d.modelHint,model:d.model,defaultModel:d.defaultModel,state:d.configured?"ready":"needs-config",detail:d.configured?"Provider is configured.":"API key is missing.",quota:d.quota})),google:{state:n?.google?.configured?"ready":"needs-config",detail:n?.google?.configured?"Google OAuth app credentials are configured. Project-level GSC connections can be created from the dashboard.":"Google OAuth client ID and client secret are not configured yet."},bing:{state:n?.bing?.configured?"ready":"needs-config",detail:n?.bing?.configured?"Bing Webmaster Tools API key is configured. Project-level Bing connections can be created from the dashboard.":"Bing Webmaster Tools API key is not configured yet."},selfHostNotes:["Configuration is stored in ~/.canonry/config.yaml.","The local config file is the source of truth for authentication credentials.","Google OAuth app credentials and per-domain Google tokens are stored in local config, not the database.","Database is SQLite at ~/.canonry/data.db.","API key was auto-generated during canonry init."],bootstrapNote:"Use the UI, CLI, or ~/.canonry/config.yaml to manage settings. Authentication credentials persist to local config."}}}function F3(e){const n=[];for(const i of e){const r=i.visibilityEvidence.filter(c=>c.citationState==="lost");r.length>0&&n.push({id:`attention_${i.project.id}_lost`,tone:"negative",title:`${i.project.displayName||i.project.name} lost citations`,detail:`${r.length} quer${r.length>1?"ies":"y"} lost citation.`,actionLabel:"Open project",href:`/projects/${encodeURIComponent(i.project.name)}`});const l=i.recentRuns.filter(c=>c.status===Qt.running||c.status===Qt.queued);l.length>0&&n.push({id:`attention_${i.project.id}_active`,tone:"neutral",title:`${i.project.displayName||i.project.name} has active runs`,detail:`${l.length} run${l.length>1?"s":""} in progress.`,actionLabel:"View runs",href:"/runs"})}return n.length===0&&n.push({id:"attention_stable",tone:"positive",title:"All projects stable",detail:"No citation losses or active runs to flag."}),n}const CS=L.createContext(null);CS.Provider;function uo(){return L.useContext(CS)}function Ac(e,n={}){const r=uo()?.dashboard??null,l=n.includeSettings??!0,c=fn({...wc({client:ee}),enabled:!r,refetchInterval:rA}),d=fn({...J0({client:ee,query:{kind:"answer-visibility"}}),enabled:!r,staleTime:ao,refetchInterval:E=>E.state.data?.some(P=>P.status==="running"||P.status==="queued")?3e3:ao}),h=fn({...g4({client:ee}),enabled:!r&&l}),g=c.data??[],v=d.data??[],S=Rw({queries:g.map(E=>{const R=v.filter(Y=>Y.projectId===E.id),G=R.filter(Y=>(Y.status==="completed"||Y.status==="partial")&&Y.kind==="answer-visibility"&&Y.trigger!=="probe").sort((Y,I)=>I.createdAt.localeCompare(Y.createdAt)),P=G.length>0?G[0].id:"no-run";return{queryKey:["project-overview-slim",E.id,P],queryFn:async()=>{const Y=await Mv(E.name).catch(()=>null);return{project:E,runs:R,queries:[],competitors:[],timeline:[],latestRunDetails:[],previousRunDetails:[],gscCoverage:null,bingCoverage:null,dbInsights:null,overview:Y}},enabled:!r&&c.isSuccess&&d.isSuccess,staleTime:Af}})}),x=S.every(E=>E.isSuccess),N=L.useMemo(()=>{if(r)return r;if(!c.data||!d.data||g.length>0&&!x)return null;const E=S.map(R=>R.data?{...R.data,runs:v.filter(G=>G.projectId===R.data.project.id)}:null).filter(R=>R!=null);return X3(E,h.data??null)},[r,c.data,d.data,h.data,x,S,g.length,v]),_=!r&&(c.isError||d.isError),O=!r&&!N&&!_,k=L.useCallback(async()=>{const E=[c.refetch(),d.refetch()];l&&E.push(h.refetch()),await Promise.all(E)},[l,c.refetch,d.refetch,h.refetch]);return{dashboard:N,isLoading:O,isError:_,refetch:k}}function J3(e){const n=uo(),i=L.useMemo(()=>!n||!e?null:n.dashboard.projects.find(O=>O.project.name===e)??null,[n,e]),r=fn({...d4({client:ee,path:{name:e??""}}),enabled:!!e&&!i,staleTime:Af,refetchOnWindowFocus:"always"}),l=fn({...p4({client:ee,path:{name:e??""},query:{kind:"answer-visibility"}}),enabled:!!e,staleTime:ao,refetchOnWindowFocus:"always",refetchInterval:O=>O.state.data?.some(R=>R.projectId===r.data?.id&&(R.status==="running"||R.status==="queued"))?3e3:ao}),c=r.data??null,d=L.useMemo(()=>c?(l.data??[]).filter(O=>O.projectId===c.id):[],[c,l.data]),{latestRunIds:h,previousRunIds:g,latestRunIdsKey:v}=L.useMemo(()=>{const O=d.filter(P=>(P.status==="completed"||P.status==="partial")&&P.kind==="answer-visibility"&&P.trigger!=="probe").sort((P,Y)=>Y.createdAt.localeCompare(P.createdAt)),k=O[0]?.createdAt??null,E=k?O.filter(P=>P.createdAt===k).map(P=>P.id):[],R=O.find(P=>P.createdAt!==k)?.createdAt??null,G=R?O.filter(P=>P.createdAt===R).map(P=>P.id):[];return{latestRunIds:E,previousRunIds:G,latestRunIdsKey:[...E].sort().join(",")}},[d]),S=fn({queryKey:["project-dashboard-full",c?.id??null,v||"none"],queryFn:async()=>{if(!c||!e)return null;const[O,k,E,R,G,P,Y,I,se]=await Promise.all([Ek(e).catch(()=>[]),Ok(e).catch(()=>[]),zk(e).catch(()=>[]),h.length?Promise.all(h.map(z=>Wl(z).catch(()=>null))).then(z=>z.filter(q=>q!=null)):Promise.resolve([]),g.length?Promise.all(g.map(z=>Wl(z).catch(()=>null))).then(z=>z.filter(q=>q!=null)):Promise.resolve([]),Hk(e).catch(()=>null),Zk(e).catch(()=>null),Xk(e).catch(()=>null),Mv(e).catch(()=>null)]);return{project:c,runs:d,queries:O,competitors:k,timeline:E,latestRunDetails:R,previousRunDetails:G,gscCoverage:P,bingCoverage:Y,dbInsights:I,overview:se}},enabled:!!c&&!!e&&l.isSuccess,staleTime:Af,refetchOnWindowFocus:"always",refetchInterval:oA}),x=L.useMemo(()=>S.data?_S({...S.data,runs:d}):i||null,[S.data,d,i]),N=L.useCallback(async()=>{await Promise.all([r.refetch(),l.refetch(),S.refetch()])},[r.refetch,l.refetch,S.refetch]),_=!x&&(r.isLoading||l.isLoading||S.isLoading);return{commandCenter:x,project:c,isLoading:_,isError:r.isError||l.isError||S.isError,refetch:N}}const W3=["health"];async function eM(){const e=await Jk("/health","API"),n=e.state==="ok"?{label:"Worker",state:"ok",detail:"In-process job runner"}:{label:"Worker",state:e.state,detail:`Depends on API health check · ${e.detail}`,statusCode:e.statusCode,hint:e.hint?`Worker status is inferred from API health in this deployment mode. ${e.hint}`:"Worker status is inferred from API health in this deployment mode."};return{apiStatus:e,workerStatus:n}}function Tp(e,n){return fn({queryKey:W3,queryFn:eM,enabled:e,refetchInterval:15e3,initialData:n})}function tM(e){return fn({...W0({client:ee,path:{id:e??""}}),enabled:!!e,refetchInterval:n=>{const i=n.state.data?.status;return i==="running"||i==="queued"?3e3:!1}})}function Ep(){const e=fc(),n=Mw({strict:!1}),i=Bw({select:g=>g.location.pathname}),r=n.runId??null,l=n.evidenceId??null;return{runId:r,evidenceId:l,openRun:g=>{e({to:i,from:nn.to,search:v=>({...v,runId:g,evidenceId:void 0})})},openEvidence:g=>{e({to:i,from:nn.to,search:v=>({...v,evidenceId:g,runId:void 0})})},closeDrawer:()=>{e({to:i,from:nn.to,search:g=>({...g,runId:void 0,evidenceId:void 0})})}}}const nM={negative:"toast-card-negative",caution:"toast-card-caution",positive:"toast-card-positive",neutral:"toast-card-neutral"};function aM(e){if(e.cta)return`${e.cta.label}: ${e.title}`}function iM(){const e=L.useSyncExternalStore(iA,Xy,Xy),n=fc(),{openRun:i}=Ep(),r=L.useCallback(c=>{kf(c)},[]),l=L.useCallback(c=>{c.cta&&(c.cta.intent==="open-run-drawer"?i(c.cta.runId):n({to:"/runs"}),kf(c.id))},[n,i]);return e.length===0?null:f.jsx("div",{className:"toast-viewport","aria-label":"Notifications",children:e.map(c=>f.jsxs("section",{role:c.tone==="negative"?"alert":"status","aria-live":c.tone==="negative"?"assertive":"polite","data-state":c.state,className:`toast-card ${nM[c.tone]}`,children:[f.jsxs("div",{className:"toast-copy",children:[f.jsx("p",{className:"toast-title",children:c.title}),c.detail?f.jsx("p",{className:"toast-detail",children:c.detail}):null,c.cta?f.jsx("button",{type:"button",className:"toast-action",onClick:()=>l(c),"aria-label":aM(c),children:c.cta.label}):null]}),f.jsx("button",{type:"button",onClick:()=>r(c.id),className:"toast-dismiss","aria-label":"Dismiss",children:f.jsx(Hs,{className:"size-3.5"})})]},c.id))})}function sM(e,n={}){const{threshold:i=80}=n,r=L.useRef(null),l=L.useRef({scrollHeight:0,wasAtEnd:!0});function c(g){return g.scrollHeight-g.scrollTop-g.clientHeight}function d(){const g=r.current;return g?c(g)<=i:!0}function h(){const g=r.current;g&&(g.scrollTop=g.scrollHeight,l.current.wasAtEnd=!0,l.current.scrollHeight=g.scrollHeight)}return L.useEffect(()=>{const g=r.current;if(!g)return;const v=()=>{l.current.wasAtEnd=c(g)<=i};return g.addEventListener("scroll",v,{passive:!0}),()=>g.removeEventListener("scroll",v)},[i]),L.useLayoutEffect(()=>{const g=r.current;if(!g)return;const v=g.scrollHeight;v>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=v),l.current.scrollHeight=v},e),L.useEffect(()=>{const g=r.current;if(!g||typeof ResizeObserver>"u")return;const v=new ResizeObserver(()=>{const S=g.scrollHeight;S>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=S),l.current.scrollHeight=S});return v.observe(g),g.firstElementChild&&v.observe(g.firstElementChild),()=>v.disconnect()},[]),{ref:r,scrollToEnd:h,isAtEnd:d}}async function Op(e){try{return await e.json()}catch{return{}}}function rM(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const zp=rM();function Dp(e){e===401&&Ff()}async function Yb(e){const n=await fetch(`${zp}/projects/${encodeURIComponent(e)}/agent/transcript`,{credentials:"include"});if(!n.ok){Dp(n.status);const i=await Op(n);throw new Hn(i.error?.message??`transcript fetch failed: ${n.status}`,n.status,i.error?.code)}return await n.json()}async function oM(e){const n=await fetch(`${zp}/projects/${encodeURIComponent(e)}/agent/transcript`,{method:"DELETE",credentials:"include"});if(!n.ok){Dp(n.status);const i=await Op(n);throw new Hn(i.error?.message??`reset failed: ${n.status}`,n.status,i.error?.code)}}async function lM({project:e,prompt:n,provider:i,modelId:r,scope:l,profile:c,signal:d,onEvent:h}){const g={prompt:n};i&&(g.provider=i),r&&(g.modelId=r),l&&(g.scope=l),c&&(g.profile=c);const v=await fetch(`${zp}/projects/${encodeURIComponent(e)}/agent/prompt`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(g),signal:d});if(!v.ok||!v.body){Dp(v.status);const O=await Op(v);throw new Hn(O.error?.message??`prompt failed: ${v.status}`,v.status,O.error?.code)}const S=v.body.getReader(),x=new TextDecoder;let N="";const _=()=>{S.cancel().catch(()=>{})};d?.addEventListener("abort",_,{once:!0});try{for(;;){const{value:O,done:k}=await S.read();if(k)break;N+=x.decode(O,{stream:!0});let E=N.indexOf(`
|
|
59
59
|
|
|
60
60
|
`);for(;E!==-1;){const R=N.slice(0,E);N=N.slice(E+2);for(const G of R.split(`
|
|
61
61
|
`)){if(!G.startsWith("data:"))continue;const P=G.slice(5).trim();if(P)try{h(JSON.parse(P))}catch{}}E=N.indexOf(`
|
|
62
62
|
|
|
63
|
-
`)}}}finally{d?.removeEventListener("abort",_);try{S.releaseLock()}catch{}}}function TS(e){return!e||e.role!=="assistant"?"":e.content.filter(n=>n.type==="text").map(n=>n.text).join("")}const lM=[{label:"Status",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{label:"Top insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{label:"Last failed run",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{label:"Schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"}],cM=[{command:"/status",label:"Status",hint:"Latest runs, health, anything unusual",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{command:"/insights",label:"Top insights",hint:"Walk through the most severe active insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{command:"/last-run",label:"Last run",hint:"Summarize the latest sweep",prompt:"Summarize the latest run for this project — provider mix, visibility changes, and anything that moved."},{command:"/last-failed",label:"Last failed run",hint:"Diagnose the most recent failure",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{command:"/run-sweep",label:"Run sweep now",hint:"Trigger a new visibility sweep",prompt:"Run a new answer-visibility sweep for this project now and tell me when it lands."},{command:"/schedule",label:"Schedule",hint:"Review the sweep schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"},{command:"/queries",label:"Queries",hint:"List tracked queries",prompt:"List the tracked queries for this project and flag any that are obvious duplicates or underperformers."},{command:"/competitors",label:"Competitors",hint:"List tracked competitors",prompt:"List this project's tracked competitors and call out which ones are showing up in answer citations."},{command:"/clear",label:"Clear conversation",hint:"Wipe transcript and start fresh",action:"clear"}],Il=e=>`canonry:aero:provider:${e}`,Xb=e=>`canonry:aero:scope:${e}`;function uM({projectName:e}){const[n,i]=L.useState(!1),[r,l]=L.useState(!1),[c,d]=L.useState([]),[h,g]=L.useState(""),[v,S]=L.useState(!1),[x,N]=L.useState([]),[_,O]=L.useState(""),[k,E]=L.useState(null),[R,G]=L.useState(()=>typeof window>"u"?null:window.localStorage.getItem(Il(e))??null),[P,Y]=L.useState(()=>typeof window>"u"?"read-only":window.localStorage.getItem(Xb(e))==="all"?"all":"read-only"),I=L.useRef(null),{ref:se}=iM([c,_,x]),z=L.useRef(null),[q,ie]=L.useState(0),_e=L.useMemo(()=>{const F=h.trimStart();if(!F.startsWith("/"))return[];if(/\s/.test(F))return[];const ue=F.toLowerCase();return cM.filter(W=>W.command.startsWith(ue)||W.label.toLowerCase().includes(ue.slice(1)))},[h]);L.useEffect(()=>{ie(F=>_e.length===0?0:Math.min(F,_e.length-1))},[_e.length]);const De=fn({...W4({client:ee,path:{name:e}}),enabled:n,staleTime:6e4}),ve=L.useMemo(()=>{const F=De.data?.providers??[];if(R){const W=F.find(de=>de.id===R&&de.configured);if(W)return W}const ue=De.data?.defaultProvider;return ue?F.find(W=>W.id===ue)??null:null},[R,De.data]);L.useEffect(()=>{if(!De.data||!R)return;De.data.providers.find(ue=>ue.id===R&&ue.configured)||(G(null),window.localStorage.removeItem(Il(e)))},[De.data,R,e]);const et=L.useCallback(F=>{G(F),!(typeof window>"u")&&(F?window.localStorage.setItem(Il(e),F):window.localStorage.removeItem(Il(e)))},[e]),le=L.useCallback(()=>{Y(F=>{const ue=F==="all"?"read-only":"all";return typeof window<"u"&&window.localStorage.setItem(Xb(e),ue),ue})},[e]);L.useEffect(()=>{if(!n)return;const F=ue=>{ue.key==="Escape"&&(r?l(!1):i(!1))};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[n,r]),L.useEffect(()=>{if(!n)return;let F=!1;E(null);const ue=()=>{F||v||Yb(e).then(ne=>{F||d(ne.messages)}).catch(ne=>{F||E(ne instanceof Error?ne.message:"Failed to load transcript")})};ue();const de=window.setInterval(ue,15e3);return()=>{F=!0,window.clearInterval(de)}},[n,e,v]),L.useEffect(()=>()=>{I.current?.abort()},[e]);async function fe(F){const ue=F.trim();if(!ue||v)return;E(null),g(""),S(!0),O(""),N([]);const W={role:"user",content:ue,timestamp:Date.now()};d(ne=>[...ne,W]);const de=new AbortController;I.current=de;try{await oM({project:e,prompt:ue,provider:R??void 0,scope:P,signal:de.signal,onEvent:$});const ne=await Yb(e);d(ne.messages)}catch(ne){ne.name!=="AbortError"&&E(ne instanceof Error?ne.message:"Prompt failed")}finally{S(!1),O(""),I.current=null}}function $(F){switch(F.type){case"message_update":O(TS(F.message));break;case"message_end":F.message.role==="assistant"&&O("");break;case"tool_execution_start":N(ue=>[...ue,{id:F.toolCallId,name:F.toolName,args:F.args,startedAt:Date.now()}]);break;case"tool_execution_end":N(ue=>ue.map(W=>W.id===F.toolCallId?{...W,endedAt:Date.now(),isError:F.isError,result:F.result}:W));break;case"error":E(F.message);break}}async function J(){I.current?.abort();try{await rM(e),d([]),E(null)}catch(F){E(F instanceof Error?F.message:"Reset failed")}}const pe=c.length===0,je=n&&r?"pointer-events-auto fixed inset-0 z-40 flex items-stretch justify-center bg-bg/70 p-4 sm:p-8 backdrop-blur-sm":"pointer-events-none fixed inset-x-0 bottom-0 z-40 flex justify-center p-3",re=r?"pointer-events-auto flex h-full w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-2xl":"pointer-events-auto w-full max-w-3xl",Ze=r?"flex-1 overflow-y-auto px-6 py-5 text-sm text-strong":"max-h-[40vh] min-h-[120px] overflow-y-auto px-4 py-3 text-sm text-strong";return f.jsx("div",{className:je,onClick:F=>{r&&F.target===F.currentTarget&&l(!1)},children:f.jsx("div",{className:re,children:n?f.jsxs("div",{className:r?"flex h-full flex-col":"flex flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-xl backdrop-blur",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-mono-800/70 px-4 py-2.5",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(eb,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),f.jsx("span",{className:"text-sm font-medium text-heading",children:"Aero"}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-muted",children:v?"working…":e})]}),f.jsxs("div",{className:"flex items-center gap-1",children:[f.jsx(dM,{providers:De.data?.providers??[],active:ve,override:R,onPick:et,disabled:v}),f.jsx("button",{type:"button",onClick:Nn(J),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Reset conversation",title:"Reset conversation",children:f.jsx(Uv,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),f.jsx("button",{type:"button",onClick:()=>l(F=>!F),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":r?"Collapse":"Expand",title:r?"Collapse":"Expand",children:r?f.jsx(GA,{className:"h-3.5 w-3.5","aria-hidden":"true"}):f.jsx($A,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),f.jsx("button",{type:"button",onClick:()=>{l(!1),i(!1)},className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Close Aero",children:f.jsx(Hs,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),f.jsxs("div",{ref:se,className:Ze,children:[k&&f.jsx("div",{className:"mb-2 rounded-md border border-negative-700/40 bg-negative-950/40 px-3 py-2 text-xs text-negative-200",children:k}),pe&&!v&&f.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[f.jsxs("p",{className:"text-xs text-muted",children:["Ask anything about ",f.jsx("span",{className:"text-neutral",children:e}),", or start with:"]}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:lM.map(F=>f.jsx("button",{type:"button",onClick:()=>{fe(F.prompt)},className:"rounded-full border border-base bg-bg-elevated/70 px-3 py-1 text-xs text-neutral transition hover:border-strong hover:bg-mono-800/70 hover:text-heading",children:F.label},F.label))})]}),gM(c,e,R,P),x.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:x.map(F=>f.jsx(ES,{trail:F},F.id))}),v&&_&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),f.jsx(OS,{content:_})]}),v&&!_&&x.every(F=>F.endedAt!==void 0)&&f.jsx(SM,{})]}),f.jsx(fM,{projectName:e,activeProvider:ve,scope:P,onToggleScope:le,disabled:v}),f.jsxs("div",{className:"relative",children:[_e.length>0&&f.jsx(pM,{matches:_e,selectedIndex:q,onHover:ie,onPick:F=>{g(""),z.current?.focus(),F.action==="clear"?J():fe(F.prompt)}}),f.jsxs("form",{className:"flex items-end gap-2 border-t border-mono-800/70 bg-bg/80 px-3 py-2.5",onSubmit:F=>{if(F.preventDefault(),_e.length>0){const ue=_e[q];g(""),ue.action==="clear"?J():fe(ue.prompt);return}fe(h)},children:[f.jsx("textarea",{ref:z,value:h,onChange:F=>g(F.target.value),onKeyDown:F=>{if(_e.length>0){if(F.key==="ArrowDown"){F.preventDefault(),ie(ue=>(ue+1)%_e.length);return}if(F.key==="ArrowUp"){F.preventDefault(),ie(ue=>(ue-1+_e.length)%_e.length);return}if(F.key==="Tab"){F.preventDefault();const ue=_e[q];g(`${ue.command} `);return}if(F.key==="Escape"){F.preventDefault(),g("");return}}if(F.key==="Enter"&&!F.shiftKey)if(F.preventDefault(),_e.length>0){const ue=_e[q];g(""),ue.action==="clear"?J():fe(ue.prompt)}else fe(h)},placeholder:"Ask Aero, or / for commands…",disabled:v,rows:r?3:1,className:"flex-1 resize-none bg-transparent text-sm text-heading placeholder:text-mono-600 focus:outline-none disabled:opacity-60"}),f.jsx("button",{type:"submit",disabled:v||!h.trim(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-positive-500 text-accent-fg transition hover:bg-positive-400 disabled:opacity-40","aria-label":"Send",children:f.jsx(bA,{className:"h-3.5 w-3.5","aria-hidden":"true"})})]})]})]}):f.jsxs("button",{type:"button",onClick:()=>i(!0),className:"flex w-full items-center justify-between rounded-full border border-mono-800/80 bg-bg/95 px-4 py-2 text-left text-sm text-secondary shadow-lg backdrop-blur transition hover:border-strong hover:bg-bg-elevated/90 hover:text-strong",children:[f.jsxs("span",{className:"flex items-center gap-2",children:[f.jsx(eb,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),"Ask Aero about ",e,"…"]}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-faint",children:"Enter"})]})})})}function dM({providers:e,active:n,override:i,onPick:r,disabled:l}){const[c,d]=L.useState(!1),h=L.useRef(null);if(L.useEffect(()=>{if(!c)return;const S=N=>{h.current?.contains(N.target)||d(!1)},x=N=>{N.key==="Escape"&&d(!1)};return window.addEventListener("mousedown",S),window.addEventListener("keydown",x),()=>{window.removeEventListener("mousedown",S),window.removeEventListener("keydown",x)}},[c]),e.length===0)return null;const g=n?.label.replace(/\s+\(.+\)$/,"")??"No provider",v=n?.defaultModel;return f.jsxs("div",{ref:h,className:"relative",children:[f.jsxs("button",{type:"button",onClick:()=>d(S=>!S),disabled:l,className:"flex items-center gap-1 rounded-md px-1.5 py-1 text-[11px] text-secondary transition hover:bg-surface-inset hover:text-strong disabled:opacity-50","aria-label":"Switch agent model","aria-haspopup":"listbox","aria-expanded":c,title:n?`${n.label} · ${n.defaultModel}`:"Pick a provider",children:[f.jsx("span",{className:"font-medium text-strong",children:g}),v&&f.jsx("span",{className:"hidden font-mono text-[10px] text-muted sm:inline",children:v}),f.jsx(jA,{className:"h-3 w-3","aria-hidden":"true"})]}),c&&f.jsxs("div",{role:"listbox",className:"absolute right-0 top-full z-50 mt-1 w-64 overflow-hidden rounded-lg border border-base bg-bg shadow-xl",children:[f.jsx("div",{className:"border-b border-default px-3 py-2 text-[10px] uppercase tracking-wider text-muted",children:"Aero provider"}),f.jsx("ul",{className:"max-h-72 overflow-y-auto py-1",children:e.map(S=>{const x=n?.id===S.id,N=i===S.id;return f.jsx("li",{children:f.jsxs("button",{type:"button",role:"option","aria-selected":x,disabled:!S.configured,onClick:()=>{S.configured&&(r(N?null:S.id),d(!1))},className:"flex w-full items-start gap-2 px-3 py-2 text-left text-xs transition enabled:hover:bg-bg-elevated disabled:cursor-not-allowed disabled:opacity-50",children:[f.jsx("span",{className:"mt-0.5 flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:x?f.jsx(qv,{className:"h-3 w-3 text-positive-400","aria-hidden":"true"}):null}),f.jsxs("span",{className:"flex-1",children:[f.jsxs("span",{className:"flex items-center gap-1.5",children:[f.jsx("span",{className:"font-medium text-heading",children:S.label}),N&&f.jsx("span",{className:"rounded-full border border-positive-800/60 bg-positive-950/60 px-1.5 text-[9px] uppercase tracking-wider text-positive",children:"Pinned"}),!S.configured&&f.jsx("span",{className:"rounded-full border border-base px-1.5 text-[9px] uppercase tracking-wider text-muted",children:"Key missing"})]}),f.jsx("span",{className:"mt-0.5 block font-mono text-[10px] text-muted",children:S.defaultModel}),S.keySource==="env"&&f.jsx("span",{className:"mt-0.5 block text-[10px] text-faint",children:"via env var"}),!S.configured&&f.jsxs("span",{className:"mt-0.5 block text-[10px] text-faint",children:["Add key in config.yaml or export"," ",f.jsx("code",{className:"font-mono text-secondary",children:mM(S.id)})]})]})]})},S.id)})}),i&&f.jsx("button",{type:"button",onClick:()=>{r(null),d(!1)},className:"w-full border-t border-default px-3 py-2 text-left text-[11px] text-secondary transition hover:bg-bg-elevated hover:text-heading",children:"Reset to auto-detected default"})]})]})}function fM({projectName:e,activeProvider:n,scope:i,onToggleScope:r,disabled:l}){const c=n?.label.replace(/\s+\(.+\)$/,"")??null,d=i==="all";return f.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 border-t border-mono-800/70 bg-bg/80 px-3 pt-2",children:[f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-base bg-bg-elevated/70 px-2 py-0.5 text-[10px] text-secondary",children:[f.jsx("span",{className:"text-faint",children:"project"}),f.jsx("span",{className:"font-medium text-strong",children:e})]}),c&&f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-base bg-bg-elevated/70 px-2 py-0.5 text-[10px] text-secondary",children:[f.jsx("span",{className:"text-faint",children:"model"}),f.jsx("span",{className:"font-medium text-strong",children:c})]}),f.jsxs("button",{type:"button",onClick:r,disabled:l,className:`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[10px] transition disabled:opacity-50 ${d?"border-caution-800/60 bg-caution-950/40 text-caution hover:border-caution-700 hover:text-caution-200":"border-base bg-bg-elevated/70 text-secondary hover:border-strong hover:text-strong"}`,title:d?"Aero can invoke write tools (run sweep, dismiss insight, etc). Click to restrict.":"Aero is restricted to read-only tools. Click to allow writes.",children:[f.jsx("span",{className:d?"text-caution-500":"text-faint",children:"scope"}),f.jsx("span",{className:"font-medium",children:d?"all tools":"read-only"})]})]})}function pM({matches:e,selectedIndex:n,onHover:i,onPick:r}){return f.jsxs("div",{className:"absolute inset-x-3 bottom-full mb-2 overflow-hidden rounded-lg border border-base bg-bg/98 shadow-2xl",children:[f.jsx("div",{className:"border-b border-default px-3 py-1.5 text-[10px] uppercase tracking-wider text-muted",children:"Commands"}),f.jsx("ul",{role:"listbox",className:"max-h-72 overflow-y-auto py-1",children:e.map((l,c)=>{const d=c===n;return f.jsx("li",{children:f.jsxs("button",{type:"button",role:"option","aria-selected":d,onMouseEnter:()=>i(c),onClick:()=>r(l),className:`flex w-full items-center gap-3 px-3 py-1.5 text-left text-xs transition ${d?"bg-bg-elevated text-heading":"text-neutral hover:bg-bg-elevated/60"}`,children:[f.jsx("span",{className:"font-mono text-[11px] text-positive-400",children:l.command}),f.jsx("span",{className:"font-medium",children:l.label}),f.jsx("span",{className:"ml-auto text-[10px] text-muted",children:l.hint})]})},l.command)})}),f.jsxs("div",{className:"border-t border-default px-3 py-1.5 text-[10px] text-faint",children:[f.jsx("span",{className:"mr-3",children:"↑↓ to select"}),f.jsx("span",{className:"mr-3",children:"Enter to run"}),f.jsx("span",{children:"Tab to autocomplete"})]})]})}function mM(e){switch(e){case"claude":return"ANTHROPIC_API_KEY";case"openai":return"OPENAI_API_KEY";case"gemini":return"GOOGLE_API_KEY";case"zai":return"ZAI_API_KEY";case"deepinfra":return"DEEPINFRA_TOKEN"}}function hM(e,n){const i=e.timestamp??0;return`${e.role}:${i}:${n}`}function gM(e,n,i,r){const l=[];for(let c=0;c<e.length;c++){const d=e[c],h=hM(d,c);if(d.role==="user"){const g=typeof d.content=="string"?d.content:JSON.stringify(d.content);if(g.startsWith("[system]"))continue;l.push(f.jsx(yM,{text:g,projectName:n,providerOverride:i,scope:r},h));continue}if(d.role==="assistant"){const g=new Map;let v=c+1;for(;v<e.length&&e[v].role==="toolResult";){const N=e[v];g.set(N.toolCallId,N),v++}const S=vM(d,g,d.timestamp??0),x=TS(d);l.push(f.jsxs(L.Fragment,{children:[S.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:S.map(N=>f.jsx(ES,{trail:N},N.id))}),x.trim()&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),f.jsx(OS,{content:x})]})]},h)),c=v-1;continue}}return l}function yM({text:e,projectName:n,providerOverride:i,scope:r}){const[l,c]=L.useState(!1),d=L.useMemo(()=>bM(n,e,i,r),[n,e,i,r]);async function h(){try{await navigator.clipboard.writeText(d),c(!0),window.setTimeout(()=>c(!1),1500)}catch{}}return f.jsxs("div",{className:"group relative mt-3 rounded-md bg-bg-elevated/60 px-3 py-2 text-strong",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted",children:"You"}),f.jsx("button",{type:"button",onClick:Nn(h),className:"inline-flex items-center gap-1 rounded border border-mono-800/70 bg-bg/60 px-1.5 py-0.5 text-[10px] text-secondary opacity-0 transition hover:border-strong hover:text-heading group-hover:opacity-100 focus:opacity-100","aria-label":"Copy as CLI command",title:d,children:l?f.jsxs(f.Fragment,{children:[f.jsx(qv,{className:"h-2.5 w-2.5 text-positive-400","aria-hidden":"true"}),"Copied"]}):f.jsxs(f.Fragment,{children:[f.jsx(AA,{className:"h-2.5 w-2.5","aria-hidden":"true"}),"Copy as CLI"]})})]}),f.jsx("div",{className:"whitespace-pre-wrap",children:e})]})}function bM(e,n,i,r){const l=["canonry","agent","ask",Fb(e),Fb(n)];return i&&l.push("--provider",i),r==="read-only"&&l.push("--scope","read-only"),l.join(" ")}function Fb(e){return`'${e.replace(/'/g,"'\\''")}'`}function vM(e,n,i){const r=[];for(const l of e.content){if(l.type!=="toolCall")continue;const c=l,d=n.get(c.id);r.push({id:c.id,name:c.name,args:c.arguments,startedAt:i,endedAt:d?.timestamp,isError:d?.isError,result:d?.content})}return r}function ES({trail:e}){const[n,i]=L.useState(!1),r=e.endedAt===void 0,l=!r&&e.isError===!0,c=e.endedAt!=null?e.endedAt-e.startedAt:null,d=c==null||c<0?null:c<1e3?`${c}ms`:`${(c/1e3).toFixed(1)}s`,h=l?"border-negative-800/50":r?"border-positive-800/50":"border-mono-800/70",g=l?"bg-negative-950/20":r?"bg-positive-950/20":"bg-surface-hover";return f.jsxs("div",{className:`rounded-md border ${h} ${g} font-mono`,children:[f.jsxs("button",{type:"button",onClick:()=>i(v=>!v),className:"flex w-full items-center gap-2 px-2.5 py-1.5 text-left","aria-expanded":n,children:[f.jsx("span",{className:"flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:r?f.jsx(qA,{className:"h-3 w-3 animate-spin text-positive-400","aria-hidden":"true"}):l?f.jsx($v,{className:"h-3 w-3 text-negative-400","aria-hidden":"true"}):f.jsx(r_,{className:"h-3 w-3 text-muted","aria-hidden":"true"})}),f.jsx("span",{className:"text-[11px] font-semibold text-heading",children:e.name}),f.jsxs("span",{className:"ml-auto flex items-center gap-2 text-[10px] text-muted",children:[r?f.jsx("span",{className:"text-positive-400",children:"running…"}):f.jsxs(f.Fragment,{children:[f.jsx("span",{children:l?"failed":"ok"}),d&&f.jsx("span",{children:d})]}),f.jsx(tp,{className:`h-3 w-3 transition-transform ${n?"rotate-90":""}`,"aria-hidden":"true"})]})]}),n&&f.jsxs("div",{className:"border-t border-default px-2.5 py-2 text-[11px] text-secondary",children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:"Args"}),f.jsx("pre",{className:"mb-2 overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:Jb(e.args)}),!r&&e.result!==void 0&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:l?"Error":"Result"}),f.jsx("pre",{className:"overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:Jb(e.result)})]})]})]})}function Jb(e){try{const n=typeof e=="string"?e:JSON.stringify(e,null,2);return n.length>2e3?`${n.slice(0,2e3)}
|
|
64
|
-
… (${n.length-2e3} more chars)`:n}catch{return String(e)}}function OS({content:e}){return f.jsx("div",{className:"aero-markdown text-heading",children:f.jsx(Iw,{components:{h1:n=>f.jsx("h1",{...n,className:"mt-3 mb-2 text-base font-semibold text-primary"}),h2:n=>f.jsx("h2",{...n,className:"mt-3 mb-2 text-sm font-semibold text-primary"}),h3:n=>f.jsx("h3",{...n,className:"mt-3 mb-1.5 text-sm font-semibold text-heading"}),h4:n=>f.jsx("h4",{...n,className:"mt-2 mb-1 text-xs font-semibold uppercase tracking-wide text-neutral"}),p:n=>f.jsx("p",{...n,className:"mb-2 leading-relaxed"}),ul:n=>f.jsx("ul",{...n,className:"mb-2 ml-4 list-disc space-y-1"}),ol:n=>f.jsx("ol",{...n,className:"mb-2 ml-4 list-decimal space-y-1"}),li:n=>f.jsx("li",{...n,className:"marker:text-mono-600"}),strong:n=>f.jsx("strong",{...n,className:"font-semibold text-primary"}),em:n=>f.jsx("em",{...n,className:"text-strong"}),code:({children:n,...i})=>f.jsx("code",{...i,className:"rounded bg-mono-800/70 px-1 py-0.5 font-mono text-[12px] text-positive-200",children:n}),pre:n=>f.jsx("pre",{...n,className:"mb-2 overflow-x-auto rounded-md border border-base bg-bg-elevated/70 p-3 font-mono text-xs text-strong"}),a:n=>f.jsx("a",{...n,className:"text-positive-400 underline decoration-positive-700 hover:decoration-positive-400",target:"_blank",rel:"noopener noreferrer"}),table:n=>f.jsx("div",{className:"mb-2 overflow-x-auto",children:f.jsx("table",{...n,className:"w-full border-collapse text-xs"})}),thead:n=>f.jsx("thead",{...n,className:"border-b border-base"}),th:n=>f.jsx("th",{...n,className:"px-2 py-1 text-left font-semibold text-neutral"}),tr:n=>f.jsx("tr",{...n,className:"border-b border-mono-900"}),td:n=>f.jsx("td",{...n,className:"px-2 py-1 text-strong"}),blockquote:n=>f.jsx("blockquote",{...n,className:"mb-2 border-l-2 border-strong pl-3 italic text-secondary"}),hr:()=>f.jsx("hr",{className:"my-3 border-base"})},children:e})})}function SM(){return f.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),f.jsxs("div",{className:"flex items-center gap-1","aria-label":"Aero is thinking",children:[f.jsx("span",{className:"aero-dot h-1.5 w-1.5 rounded-full bg-positive-400/80"}),f.jsx("span",{className:"aero-dot aero-dot-2 h-1.5 w-1.5 rounded-full bg-positive-400/60"}),f.jsx("span",{className:"aero-dot aero-dot-3 h-1.5 w-1.5 rounded-full bg-positive-400/40"})]})]})}function xM(){const e=mv(),n=/^\/projects\/([^/]+)/.exec(e.pathname),i=n?decodeURIComponent(n[1]):null,r=fn({...wc({client:ee}),enabled:i!==null,staleTime:6e4});if(!i)return null;const l=r.data??[],c=l.find(d=>d.id===i)??l.find(d=>d.name===i);return c?f.jsx(uM,{projectName:c.name},c.name):null}function Ka(e,n){e.invalidateQueries({predicate:i=>{const r=i.queryKey[0];return typeof r?._id=="string"&&r._id.startsWith(n)}})}function ro(e,n,i){switch(e.invalidateQueries({queryKey:Np({client:ee})}),e.invalidateQueries({queryKey:Oi({client:ee})}),Ka(e,"getApiV1ProjectsByNameRuns"),n){case ke["answer-visibility"]:case ke["site-audit"]:case ke["backlink-extract"]:return;case ke["gsc-sync"]:case ke["inspect-sitemap"]:Ka(e,"getApiV1ProjectsByNameGoogleGsc");return;case ke["ga-sync"]:Ka(e,"getApiV1ProjectsByNameGa");return;case ke["traffic-sync"]:Ka(e,"getApiV1ProjectsByNameGa"),Ka(e,"getApiV1ProjectsByNameTraffic");return;case ke["bing-inspect"]:case ke["bing-inspect-sitemap"]:Ka(e,"getApiV1ProjectsByNameBing");return;case ke["aeo-discover-seed"]:case ke["aeo-discover-probe"]:return;case ke["gbp-sync"]:Ka(e,"getApiV1ProjectsByNameGbp");return;case ke["ads-sync"]:Ka(e,"getApiV1ProjectsByNameAds");return;default:return n}}const Wb=[{label:"GitHub",href:"https://github.com/Canonry/canonry",Icon:EA},{label:"Docs",href:"https://github.com/Canonry/canonry/tree/main/docs",Icon:SA},{label:"Changelog",href:"https://github.com/Canonry/canonry/releases",Icon:CA}],ev=e=>({label:e,state:"checking",detail:"Checking service health"}),wM={apiStatus:ev("API"),workerStatus:ev("Worker")};function zS(e){switch(e){case ke["answer-visibility"]:return"Visibility sweep";case ke["gsc-sync"]:return"GSC sync";case ke["inspect-sitemap"]:return"Sitemap inspection";case ke["ga-sync"]:return"GA sync";case ke["traffic-sync"]:return"Traffic sync";case ke["bing-inspect"]:return"Bing URL inspection";case ke["bing-inspect-sitemap"]:return"Bing sitemap inspection";case ke["site-audit"]:return"Site audit";case ke["backlink-extract"]:return"Backlink extract";case ke["aeo-discover-seed"]:return"Discovery (seed phase)";case ke["aeo-discover-probe"]:return"Discovery (probe phase)";case ke["gbp-sync"]:return"Business Profile sync";case ke["ads-sync"]:return"ChatGPT ads sync"}}function jM(e){return e==="completed"?"positive":e==="partial"?"caution":"negative"}function NM(e){const n=zS(e.kind);return e.status==="completed"?`${n} completed`:e.status==="partial"?`${n} completed with partial results`:e.status==="cancelled"?`${n} cancelled`:`${n} failed`}function kM(e,n){return e.error?`${n}: ${cp(e.error)}`:e.location?`${n} · ${e.location}`:n}function tv(e,n,i){if(n)return n;const r=i.find(l=>l.id===e);return r?.displayName||r?.name||e}function AM(e,n){return[e.completed>0?`${e.completed} completed`:null,e.partial>0?`${e.partial} partial`:null,e.failed>0?`${e.failed} failed`:null,e.cancelled>0?`${e.cancelled} cancelled`:null,n>0?`${n} skipped at queue time`:null].filter(Boolean).join(", ")}function _M(e){return e.failed>0||e.cancelled>0?"negative":e.partial>0?"caution":"positive"}function CM(){const e=Wa(),n=L.useSyncExternalStore(lR,_i,_i),i=Object.keys(n.runs).length>0||Object.keys(n.batches).length>0,r=fn({...J0({client:ee}),enabled:i,staleTime:ao,refetchInterval:3e3}),l=fn({...wc({client:ee}),enabled:i}),c=L.useRef({}),d=L.useCallback(()=>{r.refetch()},[r.refetch]);return L.useEffect(()=>{i&&d()},[i,d]),L.useEffect(()=>{if(!i||typeof window>"u")return;const h=()=>{document.visibilityState==="visible"&&d()};return window.addEventListener("focus",d),document.addEventListener("visibilitychange",h),()=>{window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",h)}},[i,d]),L.useEffect(()=>{const h=r.data??[],g=l.data??[],v=Object.fromEntries(h.map(x=>[x.id,x])),S=Object.fromEntries(h.map(x=>[x.id,x.status]));for(const x of Object.values(n.runs)){const N=v[x.runId];if(!N||!dR(N.status)||(c.current[N.id]??x.lastAnnouncedStatus)===N.status)continue;const O=g.find(E=>E.id===N.projectId);if(O&&ro(e,N.kind,O.name),x.sourceAction==="run-all"){df(N.id);continue}const k=tv(N.projectId,x.projectLabel,g);tn({title:NM(N),detail:kM(N,k),tone:jM(N.status),dedupeKey:`run:${N.id}`,dedupeMode:"replace",cta:{label:"View run",intent:"open-run-drawer",runId:N.id}}),df(N.id)}if(r.data!==void 0){const x=new Set(h.map(_=>_.id)),N=pR(Object.values(n.runs),x,Date.now(),fR);for(const _ of N){const O=g.find(k=>k.id===_.projectId);O&&ro(e,_.kind,O.name),_.sourceAction!=="run-all"&&tn({title:`${zS(_.kind)} status unavailable`,detail:tv(_.projectId,_.projectLabel,g),tone:"neutral",dedupeKey:`run-stale:${_.runId}`,dedupeMode:"replace"}),df(_.runId)}}for(const x of Object.values(n.batches)){const N=mR(x.runIds,v);N.finished&&(tn({title:"Run-all batch finished",detail:AM(N,x.skippedCount),tone:_M(N),dedupeKey:`batch:${x.batchId}`,dedupeMode:"replace",cta:{label:"View runs",intent:"go-to-runs"}}),uR(x.batchId))}c.current=S},[l.data,r.data,n,e]),null}function TM(){const e=uo(),n=L.useMemo(()=>zv(),[]),{dashboard:i,isLoading:r,refetch:l}=Ac(void 0,{includeSettings:!n}),h=Tp(!e,e?.health).data??e?.health??wM,g=mv(),{runId:v,evidenceId:S,closeDrawer:x}=Ep(),[N,_]=L.useState(!1),[O,k]=L.useState(()=>{if(typeof window>"u")return null;try{return window.localStorage.getItem("canonry:dismissedUpdateVersion")}catch{return null}}),[E]=L.useState(()=>typeof window>"u"?null:new URLSearchParams(window.location.search).get("force-update")),R=E?{current:h.apiStatus.version??"0.0.0",latest:E,url:"https://www.npmjs.com/package/@canonry/canonry",upgradeCommand:"npm install -g @canonry/canonry"}:h.apiStatus.updateAvailable,G=R&&R.latest!==O,P=()=>{if(R){try{window.localStorage.setItem("canonry:dismissedUpdateVersion",R.latest)}catch{}k(R.latest)}},Y=eM(v),I=Y.data??null,se=Y.isLoading;L.useEffect(()=>{I&&I.status!=="running"&&I.status!=="queued"&&l()},[I?.status,l]),L.useEffect(()=>{_(!1)},[g.pathname]),L.useEffect(()=>{if(typeof window>"u"||!v&&!S)return;const le=fe=>{fe.key==="Escape"&&x()};return window.addEventListener("keydown",le),()=>{window.removeEventListener("keydown",le)}},[v,S,x]);const z=i??e?.dashboard??null,q=g.pathname==="/setup"&&z!==null&&z.portfolioOverview.projects.length===0,ie=v&&z?_3(z,v):void 0,_e=L.useMemo(()=>x3(g.pathname,z),[g.pathname,z]),{commandCenter:De}=F3(_e),ve=L.useMemo(()=>{if(S)return T3(De,z,S)},[S,De,z]),et=(()=>{const le=g.pathname;if(le==="/")return"Portfolio";if(le==="/projects")return"Projects";if(le==="/runs")return"Runs";if(le==="/settings")return"Settings";if(le==="/setup")return"Setup";if(le==="/backlinks")return"Backlinks";if(le==="/traffic"||le.startsWith("/traffic/"))return"Server traffic";if(le.startsWith("/projects/")){const $=le.split("/").filter(Boolean)[1];if($&&z){const J=z.projects.find(pe=>pe.project.id===$);if(J)return J.project.name}return"Project"}return"Not found"})();if(L.useEffect(()=>{const le=l4(n?.theme);if(!le)return;const fe=document.createElement("link");return fe.rel="stylesheet",fe.href=le,document.head.appendChild(fe),()=>{document.head.removeChild(fe)}},[n]),n){const le=!n.views||n.views.includes(n4(g.pathname));return f.jsxs("div",{className:"app-shell app-shell-embed","data-theme":r4(n.theme),style:o4(n.theme),children:[f.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),f.jsx("main",{id:"content",className:"page-shell",children:le?f.jsx(xf,{}):f.jsx("div",{className:"embed-view-unavailable",role:"status",children:"This view is not available in embed mode."})})]})}return f.jsxs("div",{className:`app-shell ${q?"app-shell-focus":""}`,children:[f.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),!q&&f.jsxs("aside",{className:"sidebar","aria-label":"Primary navigation",children:[f.jsx("div",{className:"sidebar-brand",children:f.jsx(Pb,{version:h.apiStatus.version,updateAvailable:G?R:null,onDismissUpdate:P})}),f.jsxs("nav",{className:"sidebar-nav",children:[f.jsxs(st,{to:"/",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(RA,{className:"sidebar-icon"}),f.jsx("span",{children:"Overview"})]}),f.jsxs(st,{to:"/projects",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(zA,{className:"sidebar-icon"}),f.jsx("span",{children:"Projects"})]}),f.jsxs(st,{to:"/runs",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(QA,{className:"sidebar-icon"}),f.jsx("span",{children:"Runs"})]}),f.jsxs(st,{to:"/traffic",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(YA,{className:"sidebar-icon"}),f.jsx("span",{children:"Server traffic"})]}),f.jsxs(st,{to:"/backlinks",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(BA,{className:"sidebar-icon"}),f.jsx("span",{children:"Backlinks"})]}),f.jsxs(st,{to:"/settings",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(a_,{className:"sidebar-icon"}),f.jsx("span",{children:"Settings"})]}),r?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),[1,2,3].map(le=>f.jsxs("div",{className:"sidebar-skeleton-item",children:[f.jsx("span",{className:"skeleton-circle size-2"}),f.jsx("span",{className:"skeleton-text flex-1",style:{width:`${50+le*15}%`}})]},le))]}):z&&z.projects.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),z.projects.map(le=>{const fe=le.visibilitySummary.tone;return f.jsxs(st,{to:"/projects/$projectName",params:{projectName:le.project.name},className:"sidebar-project",activeProps:{className:"sidebar-project sidebar-project-active"},children:[f.jsx("span",{className:`sidebar-dot sidebar-dot-${fe}`}),f.jsx("span",{children:le.project.displayName||le.project.name})]},le.project.id)})]}):r?null:f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Resources"}),f.jsxs(st,{to:"/setup",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(JA,{className:"sidebar-icon"}),f.jsx("span",{children:"Setup"})]})]})]}),f.jsx("div",{className:"sidebar-footer",children:Wb.map(({label:le,href:fe,Icon:$})=>f.jsx("a",{className:"sidebar-footer-icon",href:fe,target:"_blank",rel:"noopener noreferrer",title:le,"aria-label":le,children:f.jsx($,{className:"size-4"})},fe))})]}),f.jsxs("div",{className:"main-area",children:[f.jsxs("header",{className:"topbar",children:[f.jsxs("div",{className:"topbar-left",children:[f.jsx("div",{className:"topbar-brand-mobile",children:f.jsx(Pb,{compact:!0})}),f.jsxs("nav",{className:"breadcrumb","aria-label":"Breadcrumb",children:[f.jsx(st,{to:"/",children:"Home"}),f.jsx(tp,{className:"breadcrumb-sep size-3"}),f.jsx("span",{className:"breadcrumb-current",children:et})]})]}),f.jsxs("div",{className:"topbar-actions",children:[f.jsxs("div",{className:"health-pill-row",children:[f.jsxs("span",{className:`health-pill health-pill-${h.apiStatus.state}`,title:$s(h.apiStatus),children:["API ",h.apiStatus.state==="ok"?"ok":h.apiStatus.state]}),f.jsxs("span",{className:`health-pill health-pill-${h.workerStatus.state}`,title:$s(h.workerStatus),children:["Worker ",h.workerStatus.state==="ok"?"ok":h.workerStatus.state]})]}),f.jsxs(Ue,{className:"nav-toggle",variant:"secondary",size:"icon",type:"button","aria-expanded":N,"aria-controls":"mobile-nav",onClick:()=>_(le=>!le),children:[f.jsx(IA,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Open navigation"})]})]})]}),f.jsxs("div",{id:"mobile-nav",className:`mobile-nav ${N?"mobile-nav-open":""}`,children:[f.jsxs(Ue,{className:"mobile-nav-close",variant:"ghost",size:"icon",type:"button",onClick:()=>_(!1),children:[f.jsx(Hs,{className:"size-5"}),f.jsx("span",{className:"sr-only",children:"Close navigation"})]}),f.jsx(st,{to:"/",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Overview"}),f.jsx(st,{to:"/projects",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Projects"}),f.jsx(st,{to:"/runs",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Runs"}),f.jsx(st,{to:"/traffic",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Server traffic"}),f.jsx(st,{to:"/settings",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Settings"}),z&&z.projects.length>0?f.jsxs("div",{className:"mobile-nav-section",children:[f.jsx("p",{className:"mobile-nav-section-title",children:"Projects"}),z.projects.map(le=>f.jsx(st,{to:"/projects/$projectName",params:{projectName:le.project.name},className:"mobile-nav-link",children:le.project.name},le.project.id))]}):null]}),f.jsx("main",{id:"content",className:"page-shell",children:r&&!e?f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-40"}),f.jsx("div",{className:"skeleton-text-sm w-72"})]}),f.jsx("div",{className:"page-skeleton-grid",children:[1,2,3].map(le=>f.jsxs("div",{className:"page-skeleton-card",children:[f.jsx("div",{className:"skeleton-text w-24"}),f.jsx("div",{className:"skeleton-text w-full"}),f.jsx("div",{className:"skeleton-text-sm w-3/4"})]},le))}),f.jsx("div",{className:"page-skeleton-grid",style:{gridTemplateColumns:"1fr 1fr"},children:[1,2].map(le=>f.jsxs("div",{className:"page-skeleton-card",children:[f.jsx("div",{className:"skeleton-text w-20"}),f.jsx("div",{className:"space-y-2",children:[1,2,3].map(fe=>f.jsx("div",{className:"skeleton-text-sm w-full"},fe))})]},le))})]}):f.jsx(xf,{})}),f.jsxs("footer",{className:"footer",children:[f.jsxs("span",{className:"footer-brand",children:[f.jsx("span",{children:f.jsx("a",{href:"https://canonry.ai",children:"Canonry"})}),h.apiStatus.version&&h.apiStatus.version!=="unknown"?f.jsxs("span",{className:"footer-version",children:["v",h.apiStatus.version]}):null]}),f.jsx("div",{className:"footer-links",children:Wb.map(({label:le,href:fe,Icon:$})=>f.jsx("a",{href:fe,target:"_blank",rel:"noopener noreferrer",title:le,"aria-label":le,className:"footer-icon",children:f.jsx($,{className:"size-3.5"})},fe))})]})]}),ie?f.jsxs(m3,{open:!0,title:ie.summary,subtitle:`${ie.projectName} · ${ie.kindLabel}`,onClose:x,children:[f.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-1 text-sm",children:[f.jsx(_p,{status:ie.status}),f.jsx("span",{className:"text-secondary",children:ie.startedAt}),f.jsx("span",{className:"text-muted",children:ie.duration}),f.jsx("span",{className:"text-faint",children:ie.triggerLabel})]}),ie.status==="failed"&&ie.statusDetail&&f.jsx("p",{className:"text-sm text-negative/80 mt-2",children:ie.statusDetail}),f.jsxs("div",{className:"mt-4",children:[f.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted mb-2",children:"Activity Log"}),se?f.jsx("p",{className:"text-sm text-muted",children:"Loading run details..."}):I?.snapshots&&I.snapshots.length>0?f.jsxs("div",{className:"space-y-2",children:[I.snapshots.map(le=>f.jsxs("div",{className:"rounded-lg border border-default bg-surface p-3",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[f.jsx("p",{className:"text-sm font-medium text-strong truncate",children:le.query??"Unknown query"}),f.jsxs("div",{className:"flex items-center gap-1.5",children:[f.jsx(o3,{provider:le.provider}),f.jsx(vS,{variant:le.citationState===sc.cited?"success":"neutral",children:le.citationState})]})]}),le.model&&f.jsx("p",{className:"text-[11px] text-muted font-mono",children:le.model}),le.citedDomains.length>0&&f.jsxs("p",{className:"text-xs text-muted mt-1",children:[f.jsx("span",{className:"text-secondary",children:"Sources:"})," ",le.citedDomains.join(", ")]}),le.competitorOverlap.length>0&&f.jsxs("p",{className:"text-xs text-negative-400/80 mt-0.5",children:["Competitor cited: ",le.competitorOverlap.join(", ")]}),le.groundingSources&&le.groundingSources.length>0&&f.jsxs("details",{className:"mt-2",children:[f.jsxs("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:[le.groundingSources.length," grounding source",le.groundingSources.length!==1?"s":""]}),f.jsx("ul",{className:"mt-1 space-y-0.5",children:le.groundingSources.map((fe,$)=>{const J=Mf(fe.uri),pe=fe.title||fe.uri;return f.jsx("li",{className:"text-xs text-muted truncate",children:J?f.jsx("a",{href:J,target:"_blank",rel:"noopener noreferrer",className:"hover:text-neutral",children:pe}):f.jsx("span",{children:pe})},$)})})]}),le.answerText&&f.jsxs("details",{className:"mt-1",children:[f.jsx("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:"Answer preview"}),f.jsx("p",{className:"mt-1 text-xs text-secondary leading-relaxed whitespace-pre-wrap",children:le.answerText})]})]},le.id)),I.status==="running"&&f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Running remaining queries..."]})]}):I&&I.status==="running"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Waiting for first query result..."]}):I&&I.status==="queued"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-mono-500 animate-pulse"}),"Run queued, waiting for execution slot..."]}):I&&I.error?f.jsxs("div",{className:"rounded-lg border border-negative-800/40 bg-negative-950/20 p-3",children:[f.jsx("p",{className:"text-sm font-medium text-negative mb-2",children:"Run failed"}),f.jsx("pre",{className:"text-xs text-negative/80 whitespace-pre-wrap break-words max-h-48 overflow-y-auto font-mono leading-5",children:WD(I.error)})]}):f.jsx("p",{className:"text-sm text-muted",children:"No snapshot data available."})]})]}):null,ve?f.jsx(b3,{evidence:ve.evidence,project:ve.project,onClose:x}):null,f.jsx(CM,{}),f.jsx(aM,{}),f.jsx(xM,{})]})}class EM extends L.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,i){console.error("[ErrorBoundary]",n,i.componentStack)}handleReset=()=>{this.setState({error:null})};render(){return this.state.error?f.jsx("div",{className:"page-container",children:f.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 py-20 text-center",children:[f.jsx("div",{className:"rounded-full bg-negative-950/40 p-3",children:f.jsx($v,{className:"size-6 text-negative-400"})}),f.jsx("h2",{className:"text-lg font-semibold text-heading",children:"Something went wrong"}),f.jsx("p",{className:"text-sm text-secondary max-w-md",children:this.state.error.message||"An unexpected error occurred while rendering this page."}),f.jsxs("div",{className:"flex gap-3 mt-2",children:[f.jsxs(Ue,{variant:"secondary",size:"sm",onClick:this.handleReset,children:[f.jsx(Uv,{className:"size-3.5 mr-1.5"}),"Try again"]}),f.jsx(Ue,{variant:"secondary",size:"sm",onClick:()=>{const n=window.__CANONRY_CONFIG__?.basePath?.replace(/\/$/,"")??"";window.location.href=n||"/"},children:"Go home"})]})]})}):this.props.children}}const kn=L.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:En("rounded-xl border border-base bg-bg/75 shadow-[0_0_0_1px_var(--color-shadow-hairline)]",e),...n}));kn.displayName="Card";const Bf=L.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:En("flex flex-col gap-1.5 p-5",e),...n}));Bf.displayName="CardHeader";const Lf=L.forwardRef(({className:e,...n},i)=>f.jsx("h3",{ref:i,className:En("font-medium tracking-tight text-primary",e),...n}));Lf.displayName="CardTitle";const qf=L.forwardRef(({className:e,...n},i)=>f.jsx("p",{ref:i,className:En("text-sm text-muted",e),...n}));qf.displayName="CardDescription";const Yl=L.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:En("p-5 pt-0",e),...n}));Yl.displayName="CardContent";function OM({points:e,tone:n}){const i=L.useId();if(e.length===0)return null;const r=42,l=132,c=5,d=Math.min(...e),g=Math.max(...e)-d||1,v=l-c*2,S=r-c*2,x=e.map((N,_)=>{const O=c+_/Math.max(e.length-1,1)*v,k=c+(1-(N-d)/g)*S;return`${O},${k}`}).join(" ");return f.jsxs("svg",{className:`sparkline sparkline-${n}`,viewBox:`0 0 ${l} ${r}`,"aria-hidden":"true",children:[f.jsx("defs",{children:f.jsx("clipPath",{id:i,children:f.jsx("rect",{x:c,y:c,width:v,height:S,rx:"8"})})}),f.jsx("line",{className:"sparkline-guide",x1:c,x2:l-c,y1:r-c,y2:r-c}),f.jsx("polyline",{clipPath:`url(#${i})`,points:x,vectorEffect:"non-scaling-stroke"})]})}function zM({project:e}){return f.jsxs(st,{to:"/projects/$projectName",params:{projectName:e.project.name},className:"project-row cursor-pointer",children:[f.jsx("div",{className:"project-row-chart",children:f.jsx(OM,{points:e.trend,tone:eS(e.lastRun.status)})}),f.jsxs("div",{className:"project-row-primary",children:[f.jsxs("div",{children:[f.jsx("p",{className:"project-name",children:e.project.name}),f.jsx("p",{className:"project-domain",children:e.project.canonicalDomain})]}),f.jsx("p",{className:"project-insight",children:e.insight})]}),f.jsx("div",{className:"project-row-stat",children:f.jsxs("div",{className:"metric-inline-block",children:[f.jsx("p",{className:"metric-inline-label",children:"Mentioned"}),f.jsx("p",{className:`metric-inline-value ${e.mentionTone==="caution"?"text-caution-400":""}`,children:e.mentionScore}),f.jsx("p",{className:"metric-inline-delta",children:e.mentionDelta}),e.providerCoverage&&f.jsx("p",{className:"text-[10px] font-medium text-caution-400/80",children:e.providerCoverage})]})}),f.jsx("div",{className:"project-row-stat",children:f.jsxs("div",{className:"metric-inline-block",children:[f.jsx("p",{className:"metric-inline-label",children:"Competitor Pressure"}),f.jsx("p",{className:"metric-inline-value",children:e.competitorPressureLabel})]})}),f.jsx("span",{className:"project-row-link",children:f.jsx(tp,{className:"h-4 w-4 text-muted"})})]})}function DM(){const e=uo(),{dashboard:n,isLoading:i}=Ac(),r=n??e?.dashboard;if(!r||i)return f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-32"}),f.jsx("div",{className:"skeleton-text-sm w-64"})]}),f.jsx("div",{className:"space-y-3",children:[1,2,3].map(S=>f.jsxs("div",{className:"rounded-xl border border-default bg-surface p-4 flex items-center gap-4",children:[f.jsxs("div",{className:"flex-1 space-y-2",children:[f.jsx("div",{className:"skeleton-text w-36"}),f.jsx("div",{className:"skeleton-text-sm w-48"})]}),f.jsx("div",{className:"skeleton-text w-16"}),f.jsx("div",{className:"skeleton-text w-16"}),f.jsx("div",{className:"skeleton h-8 w-20 rounded"})]},S))})]});const l=r.portfolioOverview,h=Tp(!e,e?.health).data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},g=tR(l.systemHealth,h,r.settings),{openRun:v}=Ep();return f.jsxs("div",{className:"page-container",children:[f.jsxs("div",{className:"page-header",children:[f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Portfolio"}),f.jsx("p",{className:"page-subtitle",children:"Visibility and execution state across all projects"})]}),f.jsx("div",{className:"page-header-right",children:f.jsx("p",{className:"text-[11px] text-faint",children:l.lastUpdatedAt})})]}),l.projects.length>0?f.jsx("div",{className:"project-list project-list-scrollable",children:l.projects.map(S=>f.jsx(zM,{project:S},S.project.id))}):f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h3",{children:l.emptyState?.title??"No projects yet"}),f.jsx("p",{className:"supporting-copy",children:l.emptyState?.detail}),f.jsx(Ue,{size:"sm",asChild:!0,children:f.jsx(st,{to:l.emptyState?.ctaHref==="/setup"||!l.emptyState?.ctaHref?"/setup":"/",children:l.emptyState?.ctaLabel??"Launch setup"})})]}),f.jsxs("div",{className:"overview-secondary-grid",children:[l.attentionItems.length>0&&f.jsxs("section",{className:"overview-secondary-section",children:[f.jsx("div",{className:"section-head section-head-inline",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Needs attention"}),f.jsx("h2",{className:"section-title-sm",children:"What changed"})]})}),f.jsx("div",{className:"attention-list attention-list-scrollable",children:l.attentionItems.map(S=>S.href?f.jsxs(st,{to:S.href,className:`attention-item attention-item-${S.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:S.title}),f.jsx("p",{className:"attention-detail",children:S.detail})]}),S.actionLabel&&f.jsx("span",{className:"attention-action",children:S.actionLabel})]},S.id):f.jsxs("div",{className:`attention-item attention-item-static attention-item-${S.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:S.title}),f.jsx("p",{className:"attention-detail",children:S.detail})]}),S.actionLabel&&f.jsx("span",{className:"attention-action",children:S.actionLabel})]},S.id))})]}),f.jsxs("section",{className:"overview-secondary-section",children:[f.jsx("div",{className:"section-head section-head-inline",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Recent runs"}),f.jsx("h2",{className:"section-title-sm",children:"Activity"})]})}),f.jsx("div",{className:"compact-stack compact-stack-scrollable",children:l.recentRuns.length>0?l.recentRuns.map(S=>f.jsxs("button",{className:"compact-run",type:"button",onClick:()=>v(S.id),children:[f.jsxs("div",{children:[f.jsx("p",{className:"compact-run-title",children:S.projectName}),f.jsx("p",{className:"compact-run-detail",children:S.summary})]}),f.jsx(_p,{status:S.status})]},S.id)):f.jsx("p",{className:"supporting-copy",children:"Run history appears here after the first launch."})})]})]}),f.jsxs("section",{className:"page-section",children:[f.jsx("div",{className:"section-head section-head-inline",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"System health"}),f.jsx("h2",{className:"section-title-sm",children:"Infrastructure"})]})}),f.jsx("div",{className:"health-grid",children:g.map(S=>f.jsxs(kn,{className:"surface-card compact-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:S.label}),f.jsx("h3",{children:S.detail})]}),f.jsx(Bn,{tone:S.tone,title:S.id==="api"?$s(h.apiStatus):S.id==="worker"?$s(h.workerStatus):void 0,children:S.label})]}),f.jsx("p",{className:"supporting-copy",children:S.meta})]},S.id))})]})]})}const Rp=Symbol.for("yaml.alias"),Uf=Symbol.for("yaml.document"),Xa=Symbol.for("yaml.map"),DS=Symbol.for("yaml.pair"),Qn=Symbol.for("yaml.scalar"),Xs=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),Di=e=>!!e&&typeof e=="object"&&e[Cn]===Rp,_c=e=>!!e&&typeof e=="object"&&e[Cn]===Uf,fo=e=>!!e&&typeof e=="object"&&e[Cn]===Xa,xt=e=>!!e&&typeof e=="object"&&e[Cn]===DS,nt=e=>!!e&&typeof e=="object"&&e[Cn]===Qn,po=e=>!!e&&typeof e=="object"&&e[Cn]===Xs;function bt(e){if(e&&typeof e=="object")switch(e[Cn]){case Xa:case Xs:return!0}return!1}function St(e){if(e&&typeof e=="object")switch(e[Cn]){case Rp:case Xa:case Qn:case Xs:return!0}return!1}const RS=e=>(nt(e)||bt(e))&&!!e.anchor,ji=Symbol("break visit"),RM=Symbol("skip children"),to=Symbol("remove node");function Fs(e,n){const i=MM(n);_c(e)?Os(null,e.contents,i,Object.freeze([e]))===to&&(e.contents=null):Os(null,e,i,Object.freeze([]))}Fs.BREAK=ji;Fs.SKIP=RM;Fs.REMOVE=to;function Os(e,n,i,r){const l=BM(e,n,i,r);if(St(l)||xt(l))return LM(e,r,l),Os(e,l,i,r);if(typeof l!="symbol"){if(bt(n)){r=Object.freeze(r.concat(n));for(let c=0;c<n.items.length;++c){const d=Os(c,n.items[c],i,r);if(typeof d=="number")c=d-1;else{if(d===ji)return ji;d===to&&(n.items.splice(c,1),c-=1)}}}else if(xt(n)){r=Object.freeze(r.concat(n));const c=Os("key",n.key,i,r);if(c===ji)return ji;c===to&&(n.key=null);const d=Os("value",n.value,i,r);if(d===ji)return ji;d===to&&(n.value=null)}}return l}function MM(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function BM(e,n,i,r){if(typeof i=="function")return i(e,n,r);if(fo(n))return i.Map?.(e,n,r);if(po(n))return i.Seq?.(e,n,r);if(xt(n))return i.Pair?.(e,n,r);if(nt(n))return i.Scalar?.(e,n,r);if(Di(n))return i.Alias?.(e,n,r)}function LM(e,n,i){const r=n[n.length-1];if(bt(r))r.items[e]=i;else if(xt(r))e==="key"?r.key=i:r.value=i;else if(_c(r))r.contents=i;else{const l=Di(r)?"alias":"scalar";throw new Error(`Cannot replace node with ${l} parent`)}}const qM={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},UM=e=>e.replace(/[!,[\]{}]/g,n=>qM[n]);class Ht{constructor(n,i){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ht.defaultYaml,n),this.tags=Object.assign({},Ht.defaultTags,i)}clone(){const n=new Ht(this.yaml,this.tags);return n.docStart=this.docStart,n}atDocument(){const n=new Ht(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ht.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ht.defaultTags);break}return n}add(n,i){this.atNextDocument&&(this.yaml={explicit:Ht.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ht.defaultTags),this.atNextDocument=!1);const r=n.trim().split(/[ \t]+/),l=r.shift();switch(l){case"%TAG":{if(r.length!==2&&(i(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[c,d]=r;return this.tags[c]=d,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return i(0,"%YAML directive should contain exactly one part"),!1;const[c]=r;if(c==="1.1"||c==="1.2")return this.yaml.version=c,!0;{const d=/^\d+\.\d+$/.test(c);return i(6,`Unsupported YAML version ${c}`,d),!1}}default:return i(0,`Unknown directive ${l}`,!0),!1}}tagName(n,i){if(n==="!")return"!";if(n[0]!=="!")return i(`Not a valid tag: ${n}`),null;if(n[1]==="<"){const d=n.slice(2,-1);return d==="!"||d==="!!"?(i(`Verbatim tags aren't resolved, so ${n} is invalid.`),null):(n[n.length-1]!==">"&&i("Verbatim tags must end with a >"),d)}const[,r,l]=n.match(/^(.*!)([^!]*)$/s);l||i(`The ${n} tag has no suffix`);const c=this.tags[r];if(c)try{return c+decodeURIComponent(l)}catch(d){return i(String(d)),null}return r==="!"?n:(i(`Could not resolve tag: ${n}`),null)}tagString(n){for(const[i,r]of Object.entries(this.tags))if(n.startsWith(r))return i+UM(n.substring(r.length));return n[0]==="!"?n:`!<${n}>`}toString(n){const i=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let l;if(n&&r.length>0&&St(n.contents)){const c={};Fs(n.contents,(d,h)=>{St(h)&&h.tag&&(c[h.tag]=!0)}),l=Object.keys(c)}else l=[];for(const[c,d]of r)c==="!!"&&d==="tag:yaml.org,2002:"||(!n||l.some(h=>h.startsWith(d)))&&i.push(`%TAG ${c} ${d}`);return i.join(`
|
|
65
|
-
`)}}Ht.defaultYaml={explicit:!1,version:"1.2"};Ht.defaultTags={"!!":"tag:yaml.org,2002:"};function MS(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const i=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(i)}return!0}function BS(e){const n=new Set;return Fs(e,{Value(i,r){r.anchor&&n.add(r.anchor)}}),n}function LS(e,n){for(let i=1;;++i){const r=`${e}${i}`;if(!n.has(r))return r}}function
|
|
63
|
+
`)}}}finally{d?.removeEventListener("abort",_);try{S.releaseLock()}catch{}}}function TS(e){return!e||e.role!=="assistant"?"":e.content.filter(n=>n.type==="text").map(n=>n.text).join("")}const cM=[{label:"Status",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{label:"Top insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{label:"Last failed run",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{label:"Schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"}],uM=[{command:"/status",label:"Status",hint:"Latest runs, health, anything unusual",prompt:"Quick status overview for this project — latest runs, current health, anything unusual."},{command:"/insights",label:"Top insights",hint:"Walk through the most severe active insights",prompt:"Walk me through the 3 most severe active insights and what to do about each."},{command:"/last-run",label:"Last run",hint:"Summarize the latest sweep",prompt:"Summarize the latest run for this project — provider mix, visibility changes, and anything that moved."},{command:"/last-failed",label:"Last failed run",hint:"Diagnose the most recent failure",prompt:"If the latest run failed, dig into it and tell me what went wrong plus how to fix it."},{command:"/run-sweep",label:"Run sweep now",hint:"Trigger a new visibility sweep",prompt:"Run a new answer-visibility sweep for this project now and tell me when it lands."},{command:"/schedule",label:"Schedule",hint:"Review the sweep schedule",prompt:"What is the current sweep schedule, and is it appropriate given recent volatility?"},{command:"/queries",label:"Queries",hint:"List tracked queries",prompt:"List the tracked queries for this project and flag any that are obvious duplicates or underperformers."},{command:"/competitors",label:"Competitors",hint:"List tracked competitors",prompt:"List this project's tracked competitors and call out which ones are showing up in answer citations."},{command:"/clear",label:"Clear conversation",hint:"Wipe transcript and start fresh",action:"clear"}],Il=e=>`canonry:aero:provider:${e}`,Xb=e=>`canonry:aero:scope:${e}`;function dM({projectName:e}){const[n,i]=L.useState(!1),[r,l]=L.useState(!1),[c,d]=L.useState([]),[h,g]=L.useState(""),[v,S]=L.useState(!1),[x,N]=L.useState([]),[_,O]=L.useState(""),[k,E]=L.useState(null),[R,G]=L.useState(()=>typeof window>"u"?null:window.localStorage.getItem(Il(e))??null),[P,Y]=L.useState(()=>typeof window>"u"?"read-only":window.localStorage.getItem(Xb(e))==="all"?"all":"read-only"),I=L.useRef(null),{ref:se}=sM([c,_,x]),z=L.useRef(null),[q,ie]=L.useState(0),_e=L.useMemo(()=>{const F=h.trimStart();if(!F.startsWith("/"))return[];if(/\s/.test(F))return[];const ue=F.toLowerCase();return uM.filter(W=>W.command.startsWith(ue)||W.label.toLowerCase().includes(ue.slice(1)))},[h]);L.useEffect(()=>{ie(F=>_e.length===0?0:Math.min(F,_e.length-1))},[_e.length]);const De=fn({...eR({client:ee,path:{name:e}}),enabled:n,staleTime:6e4}),ve=L.useMemo(()=>{const F=De.data?.providers??[];if(R){const W=F.find(de=>de.id===R&&de.configured);if(W)return W}const ue=De.data?.defaultProvider;return ue?F.find(W=>W.id===ue)??null:null},[R,De.data]);L.useEffect(()=>{if(!De.data||!R)return;De.data.providers.find(ue=>ue.id===R&&ue.configured)||(G(null),window.localStorage.removeItem(Il(e)))},[De.data,R,e]);const et=L.useCallback(F=>{G(F),!(typeof window>"u")&&(F?window.localStorage.setItem(Il(e),F):window.localStorage.removeItem(Il(e)))},[e]),le=L.useCallback(()=>{Y(F=>{const ue=F==="all"?"read-only":"all";return typeof window<"u"&&window.localStorage.setItem(Xb(e),ue),ue})},[e]);L.useEffect(()=>{if(!n)return;const F=ue=>{ue.key==="Escape"&&(r?l(!1):i(!1))};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[n,r]),L.useEffect(()=>{if(!n)return;let F=!1;E(null);const ue=()=>{F||v||Yb(e).then(ne=>{F||d(ne.messages)}).catch(ne=>{F||E(ne instanceof Error?ne.message:"Failed to load transcript")})};ue();const de=window.setInterval(ue,15e3);return()=>{F=!0,window.clearInterval(de)}},[n,e,v]),L.useEffect(()=>()=>{I.current?.abort()},[e]);async function fe(F){const ue=F.trim();if(!ue||v)return;E(null),g(""),S(!0),O(""),N([]);const W={role:"user",content:ue,timestamp:Date.now()};d(ne=>[...ne,W]);const de=new AbortController;I.current=de;try{await lM({project:e,prompt:ue,provider:R??void 0,scope:P,signal:de.signal,onEvent:$});const ne=await Yb(e);d(ne.messages)}catch(ne){ne.name!=="AbortError"&&E(ne instanceof Error?ne.message:"Prompt failed")}finally{S(!1),O(""),I.current=null}}function $(F){switch(F.type){case"message_update":O(TS(F.message));break;case"message_end":F.message.role==="assistant"&&O("");break;case"tool_execution_start":N(ue=>[...ue,{id:F.toolCallId,name:F.toolName,args:F.args,startedAt:Date.now()}]);break;case"tool_execution_end":N(ue=>ue.map(W=>W.id===F.toolCallId?{...W,endedAt:Date.now(),isError:F.isError,result:F.result}:W));break;case"error":E(F.message);break}}async function J(){I.current?.abort();try{await oM(e),d([]),E(null)}catch(F){E(F instanceof Error?F.message:"Reset failed")}}const pe=c.length===0,je=n&&r?"pointer-events-auto fixed inset-0 z-40 flex items-stretch justify-center bg-bg/70 p-4 sm:p-8 backdrop-blur-sm":"pointer-events-none fixed inset-x-0 bottom-0 z-40 flex justify-center p-3",re=r?"pointer-events-auto flex h-full w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-2xl":"pointer-events-auto w-full max-w-3xl",Ze=r?"flex-1 overflow-y-auto px-6 py-5 text-sm text-strong":"max-h-[40vh] min-h-[120px] overflow-y-auto px-4 py-3 text-sm text-strong";return f.jsx("div",{className:je,onClick:F=>{r&&F.target===F.currentTarget&&l(!1)},children:f.jsx("div",{className:re,children:n?f.jsxs("div",{className:r?"flex h-full flex-col":"flex flex-col overflow-hidden rounded-2xl border border-mono-800/80 bg-bg/95 shadow-xl backdrop-blur",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-mono-800/70 px-4 py-2.5",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(eb,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),f.jsx("span",{className:"text-sm font-medium text-heading",children:"Aero"}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-muted",children:v?"working…":e})]}),f.jsxs("div",{className:"flex items-center gap-1",children:[f.jsx(fM,{providers:De.data?.providers??[],active:ve,override:R,onPick:et,disabled:v}),f.jsx("button",{type:"button",onClick:Nn(J),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Reset conversation",title:"Reset conversation",children:f.jsx(Uv,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),f.jsx("button",{type:"button",onClick:()=>l(F=>!F),className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":r?"Collapse":"Expand",title:r?"Collapse":"Expand",children:r?f.jsx(HA,{className:"h-3.5 w-3.5","aria-hidden":"true"}):f.jsx(VA,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),f.jsx("button",{type:"button",onClick:()=>{l(!1),i(!1)},className:"rounded-md p-1.5 text-muted transition hover:bg-surface-inset hover:text-strong","aria-label":"Close Aero",children:f.jsx(Hs,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),f.jsxs("div",{ref:se,className:Ze,children:[k&&f.jsx("div",{className:"mb-2 rounded-md border border-negative-700/40 bg-negative-950/40 px-3 py-2 text-xs text-negative-200",children:k}),pe&&!v&&f.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[f.jsxs("p",{className:"text-xs text-muted",children:["Ask anything about ",f.jsx("span",{className:"text-neutral",children:e}),", or start with:"]}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:cM.map(F=>f.jsx("button",{type:"button",onClick:()=>{fe(F.prompt)},className:"rounded-full border border-base bg-bg-elevated/70 px-3 py-1 text-xs text-neutral transition hover:border-strong hover:bg-mono-800/70 hover:text-heading",children:F.label},F.label))})]}),yM(c,e,R,P),x.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:x.map(F=>f.jsx(ES,{trail:F},F.id))}),v&&_&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),f.jsx(OS,{content:_})]}),v&&!_&&x.every(F=>F.endedAt!==void 0)&&f.jsx(xM,{})]}),f.jsx(pM,{projectName:e,activeProvider:ve,scope:P,onToggleScope:le,disabled:v}),f.jsxs("div",{className:"relative",children:[_e.length>0&&f.jsx(mM,{matches:_e,selectedIndex:q,onHover:ie,onPick:F=>{g(""),z.current?.focus(),F.action==="clear"?J():fe(F.prompt)}}),f.jsxs("form",{className:"flex items-end gap-2 border-t border-mono-800/70 bg-bg/80 px-3 py-2.5",onSubmit:F=>{if(F.preventDefault(),_e.length>0){const ue=_e[q];g(""),ue.action==="clear"?J():fe(ue.prompt);return}fe(h)},children:[f.jsx("textarea",{ref:z,value:h,onChange:F=>g(F.target.value),onKeyDown:F=>{if(_e.length>0){if(F.key==="ArrowDown"){F.preventDefault(),ie(ue=>(ue+1)%_e.length);return}if(F.key==="ArrowUp"){F.preventDefault(),ie(ue=>(ue-1+_e.length)%_e.length);return}if(F.key==="Tab"){F.preventDefault();const ue=_e[q];g(`${ue.command} `);return}if(F.key==="Escape"){F.preventDefault(),g("");return}}if(F.key==="Enter"&&!F.shiftKey)if(F.preventDefault(),_e.length>0){const ue=_e[q];g(""),ue.action==="clear"?J():fe(ue.prompt)}else fe(h)},placeholder:"Ask Aero, or / for commands…",disabled:v,rows:r?3:1,className:"flex-1 resize-none bg-transparent text-sm text-heading placeholder:text-mono-600 focus:outline-none disabled:opacity-60"}),f.jsx("button",{type:"submit",disabled:v||!h.trim(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-positive-500 text-accent-fg transition hover:bg-positive-400 disabled:opacity-40","aria-label":"Send",children:f.jsx(vA,{className:"h-3.5 w-3.5","aria-hidden":"true"})})]})]})]}):f.jsxs("button",{type:"button",onClick:()=>i(!0),className:"flex w-full items-center justify-between rounded-full border border-mono-800/80 bg-bg/95 px-4 py-2 text-left text-sm text-secondary shadow-lg backdrop-blur transition hover:border-strong hover:bg-bg-elevated/90 hover:text-strong",children:[f.jsxs("span",{className:"flex items-center gap-2",children:[f.jsx(eb,{className:"h-4 w-4 text-positive-400","aria-hidden":"true"}),"Ask Aero about ",e,"…"]}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-faint",children:"Enter"})]})})})}function fM({providers:e,active:n,override:i,onPick:r,disabled:l}){const[c,d]=L.useState(!1),h=L.useRef(null);if(L.useEffect(()=>{if(!c)return;const S=N=>{h.current?.contains(N.target)||d(!1)},x=N=>{N.key==="Escape"&&d(!1)};return window.addEventListener("mousedown",S),window.addEventListener("keydown",x),()=>{window.removeEventListener("mousedown",S),window.removeEventListener("keydown",x)}},[c]),e.length===0)return null;const g=n?.label.replace(/\s+\(.+\)$/,"")??"No provider",v=n?.defaultModel;return f.jsxs("div",{ref:h,className:"relative",children:[f.jsxs("button",{type:"button",onClick:()=>d(S=>!S),disabled:l,className:"flex items-center gap-1 rounded-md px-1.5 py-1 text-[11px] text-secondary transition hover:bg-surface-inset hover:text-strong disabled:opacity-50","aria-label":"Switch agent model","aria-haspopup":"listbox","aria-expanded":c,title:n?`${n.label} · ${n.defaultModel}`:"Pick a provider",children:[f.jsx("span",{className:"font-medium text-strong",children:g}),v&&f.jsx("span",{className:"hidden font-mono text-[10px] text-muted sm:inline",children:v}),f.jsx(NA,{className:"h-3 w-3","aria-hidden":"true"})]}),c&&f.jsxs("div",{role:"listbox",className:"absolute right-0 top-full z-50 mt-1 w-64 overflow-hidden rounded-lg border border-base bg-bg shadow-xl",children:[f.jsx("div",{className:"border-b border-default px-3 py-2 text-[10px] uppercase tracking-wider text-muted",children:"Aero provider"}),f.jsx("ul",{className:"max-h-72 overflow-y-auto py-1",children:e.map(S=>{const x=n?.id===S.id,N=i===S.id;return f.jsx("li",{children:f.jsxs("button",{type:"button",role:"option","aria-selected":x,disabled:!S.configured,onClick:()=>{S.configured&&(r(N?null:S.id),d(!1))},className:"flex w-full items-start gap-2 px-3 py-2 text-left text-xs transition enabled:hover:bg-bg-elevated disabled:cursor-not-allowed disabled:opacity-50",children:[f.jsx("span",{className:"mt-0.5 flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:x?f.jsx(qv,{className:"h-3 w-3 text-positive-400","aria-hidden":"true"}):null}),f.jsxs("span",{className:"flex-1",children:[f.jsxs("span",{className:"flex items-center gap-1.5",children:[f.jsx("span",{className:"font-medium text-heading",children:S.label}),N&&f.jsx("span",{className:"rounded-full border border-positive-800/60 bg-positive-950/60 px-1.5 text-[9px] uppercase tracking-wider text-positive",children:"Pinned"}),!S.configured&&f.jsx("span",{className:"rounded-full border border-base px-1.5 text-[9px] uppercase tracking-wider text-muted",children:"Key missing"})]}),f.jsx("span",{className:"mt-0.5 block font-mono text-[10px] text-muted",children:S.defaultModel}),S.keySource==="env"&&f.jsx("span",{className:"mt-0.5 block text-[10px] text-faint",children:"via env var"}),!S.configured&&f.jsxs("span",{className:"mt-0.5 block text-[10px] text-faint",children:["Add key in config.yaml or export"," ",f.jsx("code",{className:"font-mono text-secondary",children:hM(S.id)})]})]})]})},S.id)})}),i&&f.jsx("button",{type:"button",onClick:()=>{r(null),d(!1)},className:"w-full border-t border-default px-3 py-2 text-left text-[11px] text-secondary transition hover:bg-bg-elevated hover:text-heading",children:"Reset to auto-detected default"})]})]})}function pM({projectName:e,activeProvider:n,scope:i,onToggleScope:r,disabled:l}){const c=n?.label.replace(/\s+\(.+\)$/,"")??null,d=i==="all";return f.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 border-t border-mono-800/70 bg-bg/80 px-3 pt-2",children:[f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-base bg-bg-elevated/70 px-2 py-0.5 text-[10px] text-secondary",children:[f.jsx("span",{className:"text-faint",children:"project"}),f.jsx("span",{className:"font-medium text-strong",children:e})]}),c&&f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-base bg-bg-elevated/70 px-2 py-0.5 text-[10px] text-secondary",children:[f.jsx("span",{className:"text-faint",children:"model"}),f.jsx("span",{className:"font-medium text-strong",children:c})]}),f.jsxs("button",{type:"button",onClick:r,disabled:l,className:`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[10px] transition disabled:opacity-50 ${d?"border-caution-800/60 bg-caution-950/40 text-caution hover:border-caution-700 hover:text-caution-200":"border-base bg-bg-elevated/70 text-secondary hover:border-strong hover:text-strong"}`,title:d?"Aero can invoke write tools (run sweep, dismiss insight, etc). Click to restrict.":"Aero is restricted to read-only tools. Click to allow writes.",children:[f.jsx("span",{className:d?"text-caution-500":"text-faint",children:"scope"}),f.jsx("span",{className:"font-medium",children:d?"all tools":"read-only"})]})]})}function mM({matches:e,selectedIndex:n,onHover:i,onPick:r}){return f.jsxs("div",{className:"absolute inset-x-3 bottom-full mb-2 overflow-hidden rounded-lg border border-base bg-bg/98 shadow-2xl",children:[f.jsx("div",{className:"border-b border-default px-3 py-1.5 text-[10px] uppercase tracking-wider text-muted",children:"Commands"}),f.jsx("ul",{role:"listbox",className:"max-h-72 overflow-y-auto py-1",children:e.map((l,c)=>{const d=c===n;return f.jsx("li",{children:f.jsxs("button",{type:"button",role:"option","aria-selected":d,onMouseEnter:()=>i(c),onClick:()=>r(l),className:`flex w-full items-center gap-3 px-3 py-1.5 text-left text-xs transition ${d?"bg-bg-elevated text-heading":"text-neutral hover:bg-bg-elevated/60"}`,children:[f.jsx("span",{className:"font-mono text-[11px] text-positive-400",children:l.command}),f.jsx("span",{className:"font-medium",children:l.label}),f.jsx("span",{className:"ml-auto text-[10px] text-muted",children:l.hint})]})},l.command)})}),f.jsxs("div",{className:"border-t border-default px-3 py-1.5 text-[10px] text-faint",children:[f.jsx("span",{className:"mr-3",children:"↑↓ to select"}),f.jsx("span",{className:"mr-3",children:"Enter to run"}),f.jsx("span",{children:"Tab to autocomplete"})]})]})}function hM(e){switch(e){case"claude":return"ANTHROPIC_API_KEY";case"openai":return"OPENAI_API_KEY";case"gemini":return"GOOGLE_API_KEY";case"zai":return"ZAI_API_KEY";case"deepinfra":return"DEEPINFRA_TOKEN"}}function gM(e,n){const i=e.timestamp??0;return`${e.role}:${i}:${n}`}function yM(e,n,i,r){const l=[];for(let c=0;c<e.length;c++){const d=e[c],h=gM(d,c);if(d.role==="user"){const g=typeof d.content=="string"?d.content:JSON.stringify(d.content);if(g.startsWith("[system]"))continue;l.push(f.jsx(bM,{text:g,projectName:n,providerOverride:i,scope:r},h));continue}if(d.role==="assistant"){const g=new Map;let v=c+1;for(;v<e.length&&e[v].role==="toolResult";){const N=e[v];g.set(N.toolCallId,N),v++}const S=SM(d,g,d.timestamp??0),x=TS(d);l.push(f.jsxs(L.Fragment,{children:[S.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:S.map(N=>f.jsx(ES,{trail:N},N.id))}),x.trim()&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),f.jsx(OS,{content:x})]})]},h)),c=v-1;continue}}return l}function bM({text:e,projectName:n,providerOverride:i,scope:r}){const[l,c]=L.useState(!1),d=L.useMemo(()=>vM(n,e,i,r),[n,e,i,r]);async function h(){try{await navigator.clipboard.writeText(d),c(!0),window.setTimeout(()=>c(!1),1500)}catch{}}return f.jsxs("div",{className:"group relative mt-3 rounded-md bg-bg-elevated/60 px-3 py-2 text-strong",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted",children:"You"}),f.jsx("button",{type:"button",onClick:Nn(h),className:"inline-flex items-center gap-1 rounded border border-mono-800/70 bg-bg/60 px-1.5 py-0.5 text-[10px] text-secondary opacity-0 transition hover:border-strong hover:text-heading group-hover:opacity-100 focus:opacity-100","aria-label":"Copy as CLI command",title:d,children:l?f.jsxs(f.Fragment,{children:[f.jsx(qv,{className:"h-2.5 w-2.5 text-positive-400","aria-hidden":"true"}),"Copied"]}):f.jsxs(f.Fragment,{children:[f.jsx(_A,{className:"h-2.5 w-2.5","aria-hidden":"true"}),"Copy as CLI"]})})]}),f.jsx("div",{className:"whitespace-pre-wrap",children:e})]})}function vM(e,n,i,r){const l=["canonry","agent","ask",Fb(e),Fb(n)];return i&&l.push("--provider",i),r==="read-only"&&l.push("--scope","read-only"),l.join(" ")}function Fb(e){return`'${e.replace(/'/g,"'\\''")}'`}function SM(e,n,i){const r=[];for(const l of e.content){if(l.type!=="toolCall")continue;const c=l,d=n.get(c.id);r.push({id:c.id,name:c.name,args:c.arguments,startedAt:i,endedAt:d?.timestamp,isError:d?.isError,result:d?.content})}return r}function ES({trail:e}){const[n,i]=L.useState(!1),r=e.endedAt===void 0,l=!r&&e.isError===!0,c=e.endedAt!=null?e.endedAt-e.startedAt:null,d=c==null||c<0?null:c<1e3?`${c}ms`:`${(c/1e3).toFixed(1)}s`,h=l?"border-negative-800/50":r?"border-positive-800/50":"border-mono-800/70",g=l?"bg-negative-950/20":r?"bg-positive-950/20":"bg-surface-hover";return f.jsxs("div",{className:`rounded-md border ${h} ${g} font-mono`,children:[f.jsxs("button",{type:"button",onClick:()=>i(v=>!v),className:"flex w-full items-center gap-2 px-2.5 py-1.5 text-left","aria-expanded":n,children:[f.jsx("span",{className:"flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:r?f.jsx(UA,{className:"h-3 w-3 animate-spin text-positive-400","aria-hidden":"true"}):l?f.jsx($v,{className:"h-3 w-3 text-negative-400","aria-hidden":"true"}):f.jsx(o_,{className:"h-3 w-3 text-muted","aria-hidden":"true"})}),f.jsx("span",{className:"text-[11px] font-semibold text-heading",children:e.name}),f.jsxs("span",{className:"ml-auto flex items-center gap-2 text-[10px] text-muted",children:[r?f.jsx("span",{className:"text-positive-400",children:"running…"}):f.jsxs(f.Fragment,{children:[f.jsx("span",{children:l?"failed":"ok"}),d&&f.jsx("span",{children:d})]}),f.jsx(tp,{className:`h-3 w-3 transition-transform ${n?"rotate-90":""}`,"aria-hidden":"true"})]})]}),n&&f.jsxs("div",{className:"border-t border-default px-2.5 py-2 text-[11px] text-secondary",children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:"Args"}),f.jsx("pre",{className:"mb-2 overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:Jb(e.args)}),!r&&e.result!==void 0&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-faint",children:l?"Error":"Result"}),f.jsx("pre",{className:"overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-neutral",children:Jb(e.result)})]})]})]})}function Jb(e){try{const n=typeof e=="string"?e:JSON.stringify(e,null,2);return n.length>2e3?`${n.slice(0,2e3)}
|
|
64
|
+
… (${n.length-2e3} more chars)`:n}catch{return String(e)}}function OS({content:e}){return f.jsx("div",{className:"aero-markdown text-heading",children:f.jsx(Iw,{components:{h1:n=>f.jsx("h1",{...n,className:"mt-3 mb-2 text-base font-semibold text-primary"}),h2:n=>f.jsx("h2",{...n,className:"mt-3 mb-2 text-sm font-semibold text-primary"}),h3:n=>f.jsx("h3",{...n,className:"mt-3 mb-1.5 text-sm font-semibold text-heading"}),h4:n=>f.jsx("h4",{...n,className:"mt-2 mb-1 text-xs font-semibold uppercase tracking-wide text-neutral"}),p:n=>f.jsx("p",{...n,className:"mb-2 leading-relaxed"}),ul:n=>f.jsx("ul",{...n,className:"mb-2 ml-4 list-disc space-y-1"}),ol:n=>f.jsx("ol",{...n,className:"mb-2 ml-4 list-decimal space-y-1"}),li:n=>f.jsx("li",{...n,className:"marker:text-mono-600"}),strong:n=>f.jsx("strong",{...n,className:"font-semibold text-primary"}),em:n=>f.jsx("em",{...n,className:"text-strong"}),code:({children:n,...i})=>f.jsx("code",{...i,className:"rounded bg-mono-800/70 px-1 py-0.5 font-mono text-[12px] text-positive-200",children:n}),pre:n=>f.jsx("pre",{...n,className:"mb-2 overflow-x-auto rounded-md border border-base bg-bg-elevated/70 p-3 font-mono text-xs text-strong"}),a:n=>f.jsx("a",{...n,className:"text-positive-400 underline decoration-positive-700 hover:decoration-positive-400",target:"_blank",rel:"noopener noreferrer"}),table:n=>f.jsx("div",{className:"mb-2 overflow-x-auto",children:f.jsx("table",{...n,className:"w-full border-collapse text-xs"})}),thead:n=>f.jsx("thead",{...n,className:"border-b border-base"}),th:n=>f.jsx("th",{...n,className:"px-2 py-1 text-left font-semibold text-neutral"}),tr:n=>f.jsx("tr",{...n,className:"border-b border-mono-900"}),td:n=>f.jsx("td",{...n,className:"px-2 py-1 text-strong"}),blockquote:n=>f.jsx("blockquote",{...n,className:"mb-2 border-l-2 border-strong pl-3 italic text-secondary"}),hr:()=>f.jsx("hr",{className:"my-3 border-base"})},children:e})})}function xM(){return f.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-positive-400",children:"Aero"}),f.jsxs("div",{className:"flex items-center gap-1","aria-label":"Aero is thinking",children:[f.jsx("span",{className:"aero-dot h-1.5 w-1.5 rounded-full bg-positive-400/80"}),f.jsx("span",{className:"aero-dot aero-dot-2 h-1.5 w-1.5 rounded-full bg-positive-400/60"}),f.jsx("span",{className:"aero-dot aero-dot-3 h-1.5 w-1.5 rounded-full bg-positive-400/40"})]})]})}function wM(){const e=mv(),n=/^\/projects\/([^/]+)/.exec(e.pathname),i=n?decodeURIComponent(n[1]):null,r=fn({...wc({client:ee}),enabled:i!==null,staleTime:6e4});if(!i)return null;const l=r.data??[],c=l.find(d=>d.id===i)??l.find(d=>d.name===i);return c?f.jsx(dM,{projectName:c.name},c.name):null}function Ka(e,n){e.invalidateQueries({predicate:i=>{const r=i.queryKey[0];return typeof r?._id=="string"&&r._id.startsWith(n)}})}function ro(e,n,i){switch(e.invalidateQueries({queryKey:Np({client:ee})}),e.invalidateQueries({queryKey:Oi({client:ee})}),Ka(e,"getApiV1ProjectsByNameRuns"),n){case ke["answer-visibility"]:case ke["site-audit"]:case ke["backlink-extract"]:return;case ke["gsc-sync"]:case ke["inspect-sitemap"]:Ka(e,"getApiV1ProjectsByNameGoogleGsc");return;case ke["ga-sync"]:Ka(e,"getApiV1ProjectsByNameGa");return;case ke["traffic-sync"]:Ka(e,"getApiV1ProjectsByNameGa"),Ka(e,"getApiV1ProjectsByNameTraffic");return;case ke["bing-inspect"]:case ke["bing-inspect-sitemap"]:Ka(e,"getApiV1ProjectsByNameBing");return;case ke["aeo-discover-seed"]:case ke["aeo-discover-probe"]:return;case ke["gbp-sync"]:Ka(e,"getApiV1ProjectsByNameGbp");return;case ke["ads-sync"]:Ka(e,"getApiV1ProjectsByNameAds");return;default:return n}}const Wb=[{label:"GitHub",href:"https://github.com/Canonry/canonry",Icon:OA},{label:"Docs",href:"https://github.com/Canonry/canonry/tree/main/docs",Icon:xA},{label:"Changelog",href:"https://github.com/Canonry/canonry/releases",Icon:TA}],ev=e=>({label:e,state:"checking",detail:"Checking service health"}),jM={apiStatus:ev("API"),workerStatus:ev("Worker")};function zS(e){switch(e){case ke["answer-visibility"]:return"Visibility sweep";case ke["gsc-sync"]:return"GSC sync";case ke["inspect-sitemap"]:return"Sitemap inspection";case ke["ga-sync"]:return"GA sync";case ke["traffic-sync"]:return"Traffic sync";case ke["bing-inspect"]:return"Bing URL inspection";case ke["bing-inspect-sitemap"]:return"Bing sitemap inspection";case ke["site-audit"]:return"Site audit";case ke["backlink-extract"]:return"Backlink extract";case ke["aeo-discover-seed"]:return"Discovery (seed phase)";case ke["aeo-discover-probe"]:return"Discovery (probe phase)";case ke["gbp-sync"]:return"Business Profile sync";case ke["ads-sync"]:return"ChatGPT ads sync"}}function NM(e){return e==="completed"?"positive":e==="partial"?"caution":"negative"}function kM(e){const n=zS(e.kind);return e.status==="completed"?`${n} completed`:e.status==="partial"?`${n} completed with partial results`:e.status==="cancelled"?`${n} cancelled`:`${n} failed`}function AM(e,n){return e.error?`${n}: ${cp(e.error)}`:e.location?`${n} · ${e.location}`:n}function tv(e,n,i){if(n)return n;const r=i.find(l=>l.id===e);return r?.displayName||r?.name||e}function _M(e,n){return[e.completed>0?`${e.completed} completed`:null,e.partial>0?`${e.partial} partial`:null,e.failed>0?`${e.failed} failed`:null,e.cancelled>0?`${e.cancelled} cancelled`:null,n>0?`${n} skipped at queue time`:null].filter(Boolean).join(", ")}function CM(e){return e.failed>0||e.cancelled>0?"negative":e.partial>0?"caution":"positive"}function TM(){const e=Wa(),n=L.useSyncExternalStore(cR,_i,_i),i=Object.keys(n.runs).length>0||Object.keys(n.batches).length>0,r=fn({...J0({client:ee}),enabled:i,staleTime:ao,refetchInterval:3e3}),l=fn({...wc({client:ee}),enabled:i}),c=L.useRef({}),d=L.useCallback(()=>{r.refetch()},[r.refetch]);return L.useEffect(()=>{i&&d()},[i,d]),L.useEffect(()=>{if(!i||typeof window>"u")return;const h=()=>{document.visibilityState==="visible"&&d()};return window.addEventListener("focus",d),document.addEventListener("visibilitychange",h),()=>{window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",h)}},[i,d]),L.useEffect(()=>{const h=r.data??[],g=l.data??[],v=Object.fromEntries(h.map(x=>[x.id,x])),S=Object.fromEntries(h.map(x=>[x.id,x.status]));for(const x of Object.values(n.runs)){const N=v[x.runId];if(!N||!fR(N.status)||(c.current[N.id]??x.lastAnnouncedStatus)===N.status)continue;const O=g.find(E=>E.id===N.projectId);if(O&&ro(e,N.kind,O.name),x.sourceAction==="run-all"){df(N.id);continue}const k=tv(N.projectId,x.projectLabel,g);tn({title:kM(N),detail:AM(N,k),tone:NM(N.status),dedupeKey:`run:${N.id}`,dedupeMode:"replace",cta:{label:"View run",intent:"open-run-drawer",runId:N.id}}),df(N.id)}if(r.data!==void 0){const x=new Set(h.map(_=>_.id)),N=mR(Object.values(n.runs),x,Date.now(),pR);for(const _ of N){const O=g.find(k=>k.id===_.projectId);O&&ro(e,_.kind,O.name),_.sourceAction!=="run-all"&&tn({title:`${zS(_.kind)} status unavailable`,detail:tv(_.projectId,_.projectLabel,g),tone:"neutral",dedupeKey:`run-stale:${_.runId}`,dedupeMode:"replace"}),df(_.runId)}}for(const x of Object.values(n.batches)){const N=hR(x.runIds,v);N.finished&&(tn({title:"Run-all batch finished",detail:_M(N,x.skippedCount),tone:CM(N),dedupeKey:`batch:${x.batchId}`,dedupeMode:"replace",cta:{label:"View runs",intent:"go-to-runs"}}),dR(x.batchId))}c.current=S},[l.data,r.data,n,e]),null}function EM(){const e=uo(),n=L.useMemo(()=>zv(),[]),{dashboard:i,isLoading:r,refetch:l}=Ac(void 0,{includeSettings:!n}),h=Tp(!e,e?.health).data??e?.health??jM,g=mv(),{runId:v,evidenceId:S,closeDrawer:x}=Ep(),[N,_]=L.useState(!1),[O,k]=L.useState(()=>{if(typeof window>"u")return null;try{return window.localStorage.getItem("canonry:dismissedUpdateVersion")}catch{return null}}),[E]=L.useState(()=>typeof window>"u"?null:new URLSearchParams(window.location.search).get("force-update")),R=E?{current:h.apiStatus.version??"0.0.0",latest:E,url:"https://www.npmjs.com/package/@canonry/canonry",upgradeCommand:"npm install -g @canonry/canonry"}:h.apiStatus.updateAvailable,G=R&&R.latest!==O,P=()=>{if(R){try{window.localStorage.setItem("canonry:dismissedUpdateVersion",R.latest)}catch{}k(R.latest)}},Y=tM(v),I=Y.data??null,se=Y.isLoading;L.useEffect(()=>{I&&I.status!=="running"&&I.status!=="queued"&&l()},[I?.status,l]),L.useEffect(()=>{_(!1)},[g.pathname]),L.useEffect(()=>{if(typeof window>"u"||!v&&!S)return;const le=fe=>{fe.key==="Escape"&&x()};return window.addEventListener("keydown",le),()=>{window.removeEventListener("keydown",le)}},[v,S,x]);const z=i??e?.dashboard??null,q=g.pathname==="/setup"&&z!==null&&z.portfolioOverview.projects.length===0,ie=v&&z?C3(z,v):void 0,_e=L.useMemo(()=>w3(g.pathname,z),[g.pathname,z]),{commandCenter:De}=J3(_e),ve=L.useMemo(()=>{if(S)return E3(De,z,S)},[S,De,z]),et=(()=>{const le=g.pathname;if(le==="/")return"Portfolio";if(le==="/projects")return"Projects";if(le==="/runs")return"Runs";if(le==="/settings")return"Settings";if(le==="/setup")return"Setup";if(le==="/backlinks")return"Backlinks";if(le==="/traffic"||le.startsWith("/traffic/"))return"Server traffic";if(le.startsWith("/projects/")){const $=le.split("/").filter(Boolean)[1];if($&&z){const J=z.projects.find(pe=>pe.project.id===$);if(J)return J.project.name}return"Project"}return"Not found"})();if(L.useEffect(()=>{const le=c4(n?.theme);if(!le)return;const fe=document.createElement("link");return fe.rel="stylesheet",fe.href=le,document.head.appendChild(fe),()=>{document.head.removeChild(fe)}},[n]),n){const le=!n.views||n.views.includes(a4(g.pathname));return f.jsxs("div",{className:"app-shell app-shell-embed","data-theme":o4(n.theme),style:l4(n.theme),children:[f.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),f.jsx("main",{id:"content",className:"page-shell",children:le?f.jsx(xf,{}):f.jsx("div",{className:"embed-view-unavailable",role:"status",children:"This view is not available in embed mode."})})]})}return f.jsxs("div",{className:`app-shell ${q?"app-shell-focus":""}`,children:[f.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),!q&&f.jsxs("aside",{className:"sidebar","aria-label":"Primary navigation",children:[f.jsx("div",{className:"sidebar-brand",children:f.jsx(Pb,{version:h.apiStatus.version,updateAvailable:G?R:null,onDismissUpdate:P})}),f.jsxs("nav",{className:"sidebar-nav",children:[f.jsxs(st,{to:"/",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(MA,{className:"sidebar-icon"}),f.jsx("span",{children:"Overview"})]}),f.jsxs(st,{to:"/projects",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(DA,{className:"sidebar-icon"}),f.jsx("span",{children:"Projects"})]}),f.jsxs(st,{to:"/runs",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(KA,{className:"sidebar-icon"}),f.jsx("span",{children:"Runs"})]}),f.jsxs(st,{to:"/traffic",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(XA,{className:"sidebar-icon"}),f.jsx("span",{children:"Server traffic"})]}),f.jsxs(st,{to:"/backlinks",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(LA,{className:"sidebar-icon"}),f.jsx("span",{children:"Backlinks"})]}),f.jsxs(st,{to:"/settings",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(i_,{className:"sidebar-icon"}),f.jsx("span",{children:"Settings"})]}),r?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),[1,2,3].map(le=>f.jsxs("div",{className:"sidebar-skeleton-item",children:[f.jsx("span",{className:"skeleton-circle size-2"}),f.jsx("span",{className:"skeleton-text flex-1",style:{width:`${50+le*15}%`}})]},le))]}):z&&z.projects.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),z.projects.map(le=>{const fe=le.visibilitySummary.tone;return f.jsxs(st,{to:"/projects/$projectName",params:{projectName:le.project.name},className:"sidebar-project",activeProps:{className:"sidebar-project sidebar-project-active"},children:[f.jsx("span",{className:`sidebar-dot sidebar-dot-${fe}`}),f.jsx("span",{children:le.project.displayName||le.project.name})]},le.project.id)})]}):r?null:f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Resources"}),f.jsxs(st,{to:"/setup",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(WA,{className:"sidebar-icon"}),f.jsx("span",{children:"Setup"})]})]})]}),f.jsx("div",{className:"sidebar-footer",children:Wb.map(({label:le,href:fe,Icon:$})=>f.jsx("a",{className:"sidebar-footer-icon",href:fe,target:"_blank",rel:"noopener noreferrer",title:le,"aria-label":le,children:f.jsx($,{className:"size-4"})},fe))})]}),f.jsxs("div",{className:"main-area",children:[f.jsxs("header",{className:"topbar",children:[f.jsxs("div",{className:"topbar-left",children:[f.jsx("div",{className:"topbar-brand-mobile",children:f.jsx(Pb,{compact:!0})}),f.jsxs("nav",{className:"breadcrumb","aria-label":"Breadcrumb",children:[f.jsx(st,{to:"/",children:"Home"}),f.jsx(tp,{className:"breadcrumb-sep size-3"}),f.jsx("span",{className:"breadcrumb-current",children:et})]})]}),f.jsxs("div",{className:"topbar-actions",children:[f.jsxs("div",{className:"health-pill-row",children:[f.jsxs("span",{className:`health-pill health-pill-${h.apiStatus.state}`,title:$s(h.apiStatus),children:["API ",h.apiStatus.state==="ok"?"ok":h.apiStatus.state]}),f.jsxs("span",{className:`health-pill health-pill-${h.workerStatus.state}`,title:$s(h.workerStatus),children:["Worker ",h.workerStatus.state==="ok"?"ok":h.workerStatus.state]})]}),f.jsxs(Ue,{className:"nav-toggle",variant:"secondary",size:"icon",type:"button","aria-expanded":N,"aria-controls":"mobile-nav",onClick:()=>_(le=>!le),children:[f.jsx(PA,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Open navigation"})]})]})]}),f.jsxs("div",{id:"mobile-nav",className:`mobile-nav ${N?"mobile-nav-open":""}`,children:[f.jsxs(Ue,{className:"mobile-nav-close",variant:"ghost",size:"icon",type:"button",onClick:()=>_(!1),children:[f.jsx(Hs,{className:"size-5"}),f.jsx("span",{className:"sr-only",children:"Close navigation"})]}),f.jsx(st,{to:"/",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Overview"}),f.jsx(st,{to:"/projects",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Projects"}),f.jsx(st,{to:"/runs",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Runs"}),f.jsx(st,{to:"/traffic",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Server traffic"}),f.jsx(st,{to:"/settings",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Settings"}),z&&z.projects.length>0?f.jsxs("div",{className:"mobile-nav-section",children:[f.jsx("p",{className:"mobile-nav-section-title",children:"Projects"}),z.projects.map(le=>f.jsx(st,{to:"/projects/$projectName",params:{projectName:le.project.name},className:"mobile-nav-link",children:le.project.name},le.project.id))]}):null]}),f.jsx("main",{id:"content",className:"page-shell",children:r&&!e?f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-40"}),f.jsx("div",{className:"skeleton-text-sm w-72"})]}),f.jsx("div",{className:"page-skeleton-grid",children:[1,2,3].map(le=>f.jsxs("div",{className:"page-skeleton-card",children:[f.jsx("div",{className:"skeleton-text w-24"}),f.jsx("div",{className:"skeleton-text w-full"}),f.jsx("div",{className:"skeleton-text-sm w-3/4"})]},le))}),f.jsx("div",{className:"page-skeleton-grid",style:{gridTemplateColumns:"1fr 1fr"},children:[1,2].map(le=>f.jsxs("div",{className:"page-skeleton-card",children:[f.jsx("div",{className:"skeleton-text w-20"}),f.jsx("div",{className:"space-y-2",children:[1,2,3].map(fe=>f.jsx("div",{className:"skeleton-text-sm w-full"},fe))})]},le))})]}):f.jsx(xf,{})}),f.jsxs("footer",{className:"footer",children:[f.jsxs("span",{className:"footer-brand",children:[f.jsx("span",{children:f.jsx("a",{href:"https://canonry.ai",children:"Canonry"})}),h.apiStatus.version&&h.apiStatus.version!=="unknown"?f.jsxs("span",{className:"footer-version",children:["v",h.apiStatus.version]}):null]}),f.jsx("div",{className:"footer-links",children:Wb.map(({label:le,href:fe,Icon:$})=>f.jsx("a",{href:fe,target:"_blank",rel:"noopener noreferrer",title:le,"aria-label":le,className:"footer-icon",children:f.jsx($,{className:"size-3.5"})},fe))})]})]}),ie?f.jsxs(h3,{open:!0,title:ie.summary,subtitle:`${ie.projectName} · ${ie.kindLabel}`,onClose:x,children:[f.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-1 text-sm",children:[f.jsx(_p,{status:ie.status}),f.jsx("span",{className:"text-secondary",children:ie.startedAt}),f.jsx("span",{className:"text-muted",children:ie.duration}),f.jsx("span",{className:"text-faint",children:ie.triggerLabel})]}),ie.status==="failed"&&ie.statusDetail&&f.jsx("p",{className:"text-sm text-negative/80 mt-2",children:ie.statusDetail}),f.jsxs("div",{className:"mt-4",children:[f.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted mb-2",children:"Activity Log"}),se?f.jsx("p",{className:"text-sm text-muted",children:"Loading run details..."}):I?.snapshots&&I.snapshots.length>0?f.jsxs("div",{className:"space-y-2",children:[I.snapshots.map(le=>f.jsxs("div",{className:"rounded-lg border border-default bg-surface p-3",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[f.jsx("p",{className:"text-sm font-medium text-strong truncate",children:le.query??"Unknown query"}),f.jsxs("div",{className:"flex items-center gap-1.5",children:[f.jsx(l3,{provider:le.provider}),f.jsx(vS,{variant:le.citationState===sc.cited?"success":"neutral",children:le.citationState})]})]}),le.model&&f.jsx("p",{className:"text-[11px] text-muted font-mono",children:le.model}),le.citedDomains.length>0&&f.jsxs("p",{className:"text-xs text-muted mt-1",children:[f.jsx("span",{className:"text-secondary",children:"Sources:"})," ",le.citedDomains.join(", ")]}),le.competitorOverlap.length>0&&f.jsxs("p",{className:"text-xs text-negative-400/80 mt-0.5",children:["Competitor cited: ",le.competitorOverlap.join(", ")]}),le.groundingSources&&le.groundingSources.length>0&&f.jsxs("details",{className:"mt-2",children:[f.jsxs("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:[le.groundingSources.length," grounding source",le.groundingSources.length!==1?"s":""]}),f.jsx("ul",{className:"mt-1 space-y-0.5",children:le.groundingSources.map((fe,$)=>{const J=Mf(fe.uri),pe=fe.title||fe.uri;return f.jsx("li",{className:"text-xs text-muted truncate",children:J?f.jsx("a",{href:J,target:"_blank",rel:"noopener noreferrer",className:"hover:text-neutral",children:pe}):f.jsx("span",{children:pe})},$)})})]}),le.answerText&&f.jsxs("details",{className:"mt-1",children:[f.jsx("summary",{className:"text-xs text-muted cursor-pointer hover:text-secondary",children:"Answer preview"}),f.jsx("p",{className:"mt-1 text-xs text-secondary leading-relaxed whitespace-pre-wrap",children:le.answerText})]})]},le.id)),I.status==="running"&&f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Running remaining queries..."]})]}):I&&I.status==="running"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-caution-500 animate-pulse"}),"Waiting for first query result..."]}):I&&I.status==="queued"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-muted",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-mono-500 animate-pulse"}),"Run queued, waiting for execution slot..."]}):I&&I.error?f.jsxs("div",{className:"rounded-lg border border-negative-800/40 bg-negative-950/20 p-3",children:[f.jsx("p",{className:"text-sm font-medium text-negative mb-2",children:"Run failed"}),f.jsx("pre",{className:"text-xs text-negative/80 whitespace-pre-wrap break-words max-h-48 overflow-y-auto font-mono leading-5",children:e4(I.error)})]}):f.jsx("p",{className:"text-sm text-muted",children:"No snapshot data available."})]})]}):null,ve?f.jsx(v3,{evidence:ve.evidence,project:ve.project,onClose:x}):null,f.jsx(TM,{}),f.jsx(iM,{}),f.jsx(wM,{})]})}class OM extends L.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,i){console.error("[ErrorBoundary]",n,i.componentStack)}handleReset=()=>{this.setState({error:null})};render(){return this.state.error?f.jsx("div",{className:"page-container",children:f.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 py-20 text-center",children:[f.jsx("div",{className:"rounded-full bg-negative-950/40 p-3",children:f.jsx($v,{className:"size-6 text-negative-400"})}),f.jsx("h2",{className:"text-lg font-semibold text-heading",children:"Something went wrong"}),f.jsx("p",{className:"text-sm text-secondary max-w-md",children:this.state.error.message||"An unexpected error occurred while rendering this page."}),f.jsxs("div",{className:"flex gap-3 mt-2",children:[f.jsxs(Ue,{variant:"secondary",size:"sm",onClick:this.handleReset,children:[f.jsx(Uv,{className:"size-3.5 mr-1.5"}),"Try again"]}),f.jsx(Ue,{variant:"secondary",size:"sm",onClick:()=>{const n=window.__CANONRY_CONFIG__?.basePath?.replace(/\/$/,"")??"";window.location.href=n||"/"},children:"Go home"})]})]})}):this.props.children}}const kn=L.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:En("rounded-xl border border-base bg-bg/75 shadow-[0_0_0_1px_var(--color-shadow-hairline)]",e),...n}));kn.displayName="Card";const Bf=L.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:En("flex flex-col gap-1.5 p-5",e),...n}));Bf.displayName="CardHeader";const Lf=L.forwardRef(({className:e,...n},i)=>f.jsx("h3",{ref:i,className:En("font-medium tracking-tight text-primary",e),...n}));Lf.displayName="CardTitle";const qf=L.forwardRef(({className:e,...n},i)=>f.jsx("p",{ref:i,className:En("text-sm text-muted",e),...n}));qf.displayName="CardDescription";const Yl=L.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:En("p-5 pt-0",e),...n}));Yl.displayName="CardContent";function zM({points:e,tone:n}){const i=L.useId();if(e.length===0)return null;const r=42,l=132,c=5,d=Math.min(...e),g=Math.max(...e)-d||1,v=l-c*2,S=r-c*2,x=e.map((N,_)=>{const O=c+_/Math.max(e.length-1,1)*v,k=c+(1-(N-d)/g)*S;return`${O},${k}`}).join(" ");return f.jsxs("svg",{className:`sparkline sparkline-${n}`,viewBox:`0 0 ${l} ${r}`,"aria-hidden":"true",children:[f.jsx("defs",{children:f.jsx("clipPath",{id:i,children:f.jsx("rect",{x:c,y:c,width:v,height:S,rx:"8"})})}),f.jsx("line",{className:"sparkline-guide",x1:c,x2:l-c,y1:r-c,y2:r-c}),f.jsx("polyline",{clipPath:`url(#${i})`,points:x,vectorEffect:"non-scaling-stroke"})]})}function DM({project:e}){return f.jsxs(st,{to:"/projects/$projectName",params:{projectName:e.project.name},className:"project-row cursor-pointer",children:[f.jsx("div",{className:"project-row-chart",children:f.jsx(zM,{points:e.trend,tone:eS(e.lastRun.status)})}),f.jsxs("div",{className:"project-row-primary",children:[f.jsxs("div",{children:[f.jsx("p",{className:"project-name",children:e.project.name}),f.jsx("p",{className:"project-domain",children:e.project.canonicalDomain})]}),f.jsx("p",{className:"project-insight",children:e.insight})]}),f.jsx("div",{className:"project-row-stat",children:f.jsxs("div",{className:"metric-inline-block",children:[f.jsx("p",{className:"metric-inline-label",children:"Mentioned"}),f.jsx("p",{className:`metric-inline-value ${e.mentionTone==="caution"?"text-caution-400":""}`,children:e.mentionScore}),f.jsx("p",{className:"metric-inline-delta",children:e.mentionDelta}),e.providerCoverage&&f.jsx("p",{className:"text-[10px] font-medium text-caution-400/80",children:e.providerCoverage})]})}),f.jsx("div",{className:"project-row-stat",children:f.jsxs("div",{className:"metric-inline-block",children:[f.jsx("p",{className:"metric-inline-label",children:"Competitor Pressure"}),f.jsx("p",{className:"metric-inline-value",children:e.competitorPressureLabel})]})}),f.jsx("span",{className:"project-row-link",children:f.jsx(tp,{className:"h-4 w-4 text-muted"})})]})}function RM(){const e=uo(),{dashboard:n,isLoading:i}=Ac(),r=n??e?.dashboard;if(!r||i)return f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-32"}),f.jsx("div",{className:"skeleton-text-sm w-64"})]}),f.jsx("div",{className:"space-y-3",children:[1,2,3].map(S=>f.jsxs("div",{className:"rounded-xl border border-default bg-surface p-4 flex items-center gap-4",children:[f.jsxs("div",{className:"flex-1 space-y-2",children:[f.jsx("div",{className:"skeleton-text w-36"}),f.jsx("div",{className:"skeleton-text-sm w-48"})]}),f.jsx("div",{className:"skeleton-text w-16"}),f.jsx("div",{className:"skeleton-text w-16"}),f.jsx("div",{className:"skeleton h-8 w-20 rounded"})]},S))})]});const l=r.portfolioOverview,h=Tp(!e,e?.health).data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},g=nR(l.systemHealth,h,r.settings),{openRun:v}=Ep();return f.jsxs("div",{className:"page-container",children:[f.jsxs("div",{className:"page-header",children:[f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Portfolio"}),f.jsx("p",{className:"page-subtitle",children:"Visibility and execution state across all projects"})]}),f.jsx("div",{className:"page-header-right",children:f.jsx("p",{className:"text-[11px] text-faint",children:l.lastUpdatedAt})})]}),l.projects.length>0?f.jsx("div",{className:"project-list project-list-scrollable",children:l.projects.map(S=>f.jsx(DM,{project:S},S.project.id))}):f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h3",{children:l.emptyState?.title??"No projects yet"}),f.jsx("p",{className:"supporting-copy",children:l.emptyState?.detail}),f.jsx(Ue,{size:"sm",asChild:!0,children:f.jsx(st,{to:l.emptyState?.ctaHref==="/setup"||!l.emptyState?.ctaHref?"/setup":"/",children:l.emptyState?.ctaLabel??"Launch setup"})})]}),f.jsxs("div",{className:"overview-secondary-grid",children:[l.attentionItems.length>0&&f.jsxs("section",{className:"overview-secondary-section",children:[f.jsx("div",{className:"section-head section-head-inline",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Needs attention"}),f.jsx("h2",{className:"section-title-sm",children:"What changed"})]})}),f.jsx("div",{className:"attention-list attention-list-scrollable",children:l.attentionItems.map(S=>S.href?f.jsxs(st,{to:S.href,className:`attention-item attention-item-${S.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:S.title}),f.jsx("p",{className:"attention-detail",children:S.detail})]}),S.actionLabel&&f.jsx("span",{className:"attention-action",children:S.actionLabel})]},S.id):f.jsxs("div",{className:`attention-item attention-item-static attention-item-${S.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:S.title}),f.jsx("p",{className:"attention-detail",children:S.detail})]}),S.actionLabel&&f.jsx("span",{className:"attention-action",children:S.actionLabel})]},S.id))})]}),f.jsxs("section",{className:"overview-secondary-section",children:[f.jsx("div",{className:"section-head section-head-inline",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Recent runs"}),f.jsx("h2",{className:"section-title-sm",children:"Activity"})]})}),f.jsx("div",{className:"compact-stack compact-stack-scrollable",children:l.recentRuns.length>0?l.recentRuns.map(S=>f.jsxs("button",{className:"compact-run",type:"button",onClick:()=>v(S.id),children:[f.jsxs("div",{children:[f.jsx("p",{className:"compact-run-title",children:S.projectName}),f.jsx("p",{className:"compact-run-detail",children:S.summary})]}),f.jsx(_p,{status:S.status})]},S.id)):f.jsx("p",{className:"supporting-copy",children:"Run history appears here after the first launch."})})]})]}),f.jsxs("section",{className:"page-section",children:[f.jsx("div",{className:"section-head section-head-inline",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"System health"}),f.jsx("h2",{className:"section-title-sm",children:"Infrastructure"})]})}),f.jsx("div",{className:"health-grid",children:g.map(S=>f.jsxs(kn,{className:"surface-card compact-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:S.label}),f.jsx("h3",{children:S.detail})]}),f.jsx(Bn,{tone:S.tone,title:S.id==="api"?$s(h.apiStatus):S.id==="worker"?$s(h.workerStatus):void 0,children:S.label})]}),f.jsx("p",{className:"supporting-copy",children:S.meta})]},S.id))})]})]})}const Rp=Symbol.for("yaml.alias"),Uf=Symbol.for("yaml.document"),Xa=Symbol.for("yaml.map"),DS=Symbol.for("yaml.pair"),Qn=Symbol.for("yaml.scalar"),Xs=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),Di=e=>!!e&&typeof e=="object"&&e[Cn]===Rp,_c=e=>!!e&&typeof e=="object"&&e[Cn]===Uf,fo=e=>!!e&&typeof e=="object"&&e[Cn]===Xa,xt=e=>!!e&&typeof e=="object"&&e[Cn]===DS,nt=e=>!!e&&typeof e=="object"&&e[Cn]===Qn,po=e=>!!e&&typeof e=="object"&&e[Cn]===Xs;function bt(e){if(e&&typeof e=="object")switch(e[Cn]){case Xa:case Xs:return!0}return!1}function St(e){if(e&&typeof e=="object")switch(e[Cn]){case Rp:case Xa:case Qn:case Xs:return!0}return!1}const RS=e=>(nt(e)||bt(e))&&!!e.anchor,ji=Symbol("break visit"),MM=Symbol("skip children"),to=Symbol("remove node");function Fs(e,n){const i=BM(n);_c(e)?Os(null,e.contents,i,Object.freeze([e]))===to&&(e.contents=null):Os(null,e,i,Object.freeze([]))}Fs.BREAK=ji;Fs.SKIP=MM;Fs.REMOVE=to;function Os(e,n,i,r){const l=LM(e,n,i,r);if(St(l)||xt(l))return qM(e,r,l),Os(e,l,i,r);if(typeof l!="symbol"){if(bt(n)){r=Object.freeze(r.concat(n));for(let c=0;c<n.items.length;++c){const d=Os(c,n.items[c],i,r);if(typeof d=="number")c=d-1;else{if(d===ji)return ji;d===to&&(n.items.splice(c,1),c-=1)}}}else if(xt(n)){r=Object.freeze(r.concat(n));const c=Os("key",n.key,i,r);if(c===ji)return ji;c===to&&(n.key=null);const d=Os("value",n.value,i,r);if(d===ji)return ji;d===to&&(n.value=null)}}return l}function BM(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function LM(e,n,i,r){if(typeof i=="function")return i(e,n,r);if(fo(n))return i.Map?.(e,n,r);if(po(n))return i.Seq?.(e,n,r);if(xt(n))return i.Pair?.(e,n,r);if(nt(n))return i.Scalar?.(e,n,r);if(Di(n))return i.Alias?.(e,n,r)}function qM(e,n,i){const r=n[n.length-1];if(bt(r))r.items[e]=i;else if(xt(r))e==="key"?r.key=i:r.value=i;else if(_c(r))r.contents=i;else{const l=Di(r)?"alias":"scalar";throw new Error(`Cannot replace node with ${l} parent`)}}const UM={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},$M=e=>e.replace(/[!,[\]{}]/g,n=>UM[n]);class Ht{constructor(n,i){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ht.defaultYaml,n),this.tags=Object.assign({},Ht.defaultTags,i)}clone(){const n=new Ht(this.yaml,this.tags);return n.docStart=this.docStart,n}atDocument(){const n=new Ht(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ht.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ht.defaultTags);break}return n}add(n,i){this.atNextDocument&&(this.yaml={explicit:Ht.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ht.defaultTags),this.atNextDocument=!1);const r=n.trim().split(/[ \t]+/),l=r.shift();switch(l){case"%TAG":{if(r.length!==2&&(i(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[c,d]=r;return this.tags[c]=d,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return i(0,"%YAML directive should contain exactly one part"),!1;const[c]=r;if(c==="1.1"||c==="1.2")return this.yaml.version=c,!0;{const d=/^\d+\.\d+$/.test(c);return i(6,`Unsupported YAML version ${c}`,d),!1}}default:return i(0,`Unknown directive ${l}`,!0),!1}}tagName(n,i){if(n==="!")return"!";if(n[0]!=="!")return i(`Not a valid tag: ${n}`),null;if(n[1]==="<"){const d=n.slice(2,-1);return d==="!"||d==="!!"?(i(`Verbatim tags aren't resolved, so ${n} is invalid.`),null):(n[n.length-1]!==">"&&i("Verbatim tags must end with a >"),d)}const[,r,l]=n.match(/^(.*!)([^!]*)$/s);l||i(`The ${n} tag has no suffix`);const c=this.tags[r];if(c)try{return c+decodeURIComponent(l)}catch(d){return i(String(d)),null}return r==="!"?n:(i(`Could not resolve tag: ${n}`),null)}tagString(n){for(const[i,r]of Object.entries(this.tags))if(n.startsWith(r))return i+$M(n.substring(r.length));return n[0]==="!"?n:`!<${n}>`}toString(n){const i=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let l;if(n&&r.length>0&&St(n.contents)){const c={};Fs(n.contents,(d,h)=>{St(h)&&h.tag&&(c[h.tag]=!0)}),l=Object.keys(c)}else l=[];for(const[c,d]of r)c==="!!"&&d==="tag:yaml.org,2002:"||(!n||l.some(h=>h.startsWith(d)))&&i.push(`%TAG ${c} ${d}`);return i.join(`
|
|
65
|
+
`)}}Ht.defaultYaml={explicit:!1,version:"1.2"};Ht.defaultTags={"!!":"tag:yaml.org,2002:"};function MS(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const i=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(i)}return!0}function BS(e){const n=new Set;return Fs(e,{Value(i,r){r.anchor&&n.add(r.anchor)}}),n}function LS(e,n){for(let i=1;;++i){const r=`${e}${i}`;if(!n.has(r))return r}}function VM(e,n){const i=[],r=new Map;let l=null;return{onAnchor:c=>{i.push(c),l??(l=BS(e));const d=LS(n,l);return l.add(d),d},setAnchors:()=>{for(const c of i){const d=r.get(c);if(typeof d=="object"&&d.anchor&&(nt(d.node)||bt(d.node)))d.node.anchor=d.anchor;else{const h=new Error("Failed to resolve repeated object (this should not happen)");throw h.source=c,h}}},sourceObjects:r}}function zs(e,n,i,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let l=0,c=r.length;l<c;++l){const d=r[l],h=zs(e,r,String(l),d);h===void 0?delete r[l]:h!==d&&(r[l]=h)}else if(r instanceof Map)for(const l of Array.from(r.keys())){const c=r.get(l),d=zs(e,r,l,c);d===void 0?r.delete(l):d!==c&&r.set(l,d)}else if(r instanceof Set)for(const l of Array.from(r)){const c=zs(e,r,l,l);c===void 0?r.delete(l):c!==l&&(r.delete(l),r.add(c))}else for(const[l,c]of Object.entries(r)){const d=zs(e,r,l,c);d===void 0?delete r[l]:d!==c&&(r[l]=d)}return e.call(n,i,r)}function _n(e,n,i){if(Array.isArray(e))return e.map((r,l)=>_n(r,String(l),i));if(e&&typeof e.toJSON=="function"){if(!i||!RS(e))return e.toJSON(n,i);const r={aliasCount:0,count:1,res:void 0};i.anchors.set(e,r),i.onCreate=c=>{r.res=c,delete i.onCreate};const l=e.toJSON(n,i);return i.onCreate&&i.onCreate(l),l}return typeof e=="bigint"&&!i?.keep?Number(e):e}class Mp{constructor(n){Object.defineProperty(this,Cn,{value:n})}clone(){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(n.range=this.range.slice()),n}toJS(n,{mapAsMap:i,maxAliasCount:r,onAnchor:l,reviver:c}={}){if(!_c(n))throw new TypeError("A document argument is required");const d={anchors:new Map,doc:n,keep:!0,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},h=_n(this,"",d);if(typeof l=="function")for(const{count:g,res:v}of d.anchors.values())l(v,g);return typeof c=="function"?zs(c,{"":h},"",h):h}}class Bp extends Mp{constructor(n){super(Rp),this.source=n,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(n,i){let r;i?.aliasResolveCache?r=i.aliasResolveCache:(r=[],Fs(n,{Node:(c,d)=>{(Di(d)||RS(d))&&r.push(d)}}),i&&(i.aliasResolveCache=r));let l;for(const c of r){if(c===this)break;c.anchor===this.source&&(l=c)}return l}toJSON(n,i){if(!i)return{source:this.source};const{anchors:r,doc:l,maxAliasCount:c}=i,d=this.resolve(l,i);if(!d){const g=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(g)}let h=r.get(d);if(h||(_n(d,null,i),h=r.get(d)),h?.res===void 0){const g="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(g)}if(c>=0&&(h.count+=1,h.aliasCount===0&&(h.aliasCount=Xl(l,d,r)),h.count*h.aliasCount>c)){const g="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(g)}return h.res}toString(n,i,r){const l=`*${this.source}`;if(n){if(MS(this.source),n.options.verifyAliasOrder&&!n.anchors.has(this.source)){const c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(c)}if(n.implicitKey)return`${l} `}return l}}function Xl(e,n,i){if(Di(n)){const r=n.resolve(e),l=i&&r&&i.get(r);return l?l.count*l.aliasCount:0}else if(bt(n)){let r=0;for(const l of n.items){const c=Xl(e,l,i);c>r&&(r=c)}return r}else if(xt(n)){const r=Xl(e,n.key,i),l=Xl(e,n.value,i);return Math.max(r,l)}return 1}const qS=e=>!e||typeof e!="function"&&typeof e!="object";class Ce extends Mp{constructor(n){super(Qn),this.value=n}toJSON(n,i){return i?.keep?this.value:_n(this.value,n,i)}toString(){return String(this.value)}}Ce.BLOCK_FOLDED="BLOCK_FOLDED";Ce.BLOCK_LITERAL="BLOCK_LITERAL";Ce.PLAIN="PLAIN";Ce.QUOTE_DOUBLE="QUOTE_DOUBLE";Ce.QUOTE_SINGLE="QUOTE_SINGLE";const IM="tag:yaml.org,2002:";function PM(e,n,i){if(n){const r=i.filter(c=>c.tag===n),l=r.find(c=>!c.format)??r[0];if(!l)throw new Error(`Tag ${n} not found`);return l}return i.find(r=>r.identify?.(e)&&!r.format)}function oo(e,n,i){if(_c(e)&&(e=e.contents),St(e))return e;if(xt(e)){const x=i.schema[Xa].createNode?.(i.schema,null,i);return x.items.push(e),x}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:r,onAnchor:l,onTagObj:c,schema:d,sourceObjects:h}=i;let g;if(r&&e&&typeof e=="object"){if(g=h.get(e),g)return g.anchor??(g.anchor=l(e)),new Bp(g.anchor);g={anchor:null,node:null},h.set(e,g)}n?.startsWith("!!")&&(n=IM+n.slice(2));let v=PM(e,n,d.tags);if(!v){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const x=new Ce(e);return g&&(g.node=x),x}v=e instanceof Map?d[Xa]:Symbol.iterator in Object(e)?d[Xs]:d[Xa]}c&&(c(v),delete i.onTagObj);const S=v?.createNode?v.createNode(i.schema,e,i):typeof v?.nodeClass?.from=="function"?v.nodeClass.from(i.schema,e,i):new Ce(e);return n?S.tag=n:v.default||(S.tag=v.tag),g&&(g.node=S),S}function uc(e,n,i){let r=i;for(let l=n.length-1;l>=0;--l){const c=n[l];if(typeof c=="number"&&Number.isInteger(c)&&c>=0){const d=[];d[c]=r,r=d}else r=new Map([[c,r]])}return oo(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const eo=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class US extends Mp{constructor(n,i){super(n),Object.defineProperty(this,"schema",{value:i,configurable:!0,enumerable:!1,writable:!0})}clone(n){const i=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return n&&(i.schema=n),i.items=i.items.map(r=>St(r)||xt(r)?r.clone(n):r),this.range&&(i.range=this.range.slice()),i}addIn(n,i){if(eo(n))this.add(i);else{const[r,...l]=n,c=this.get(r,!0);if(bt(c))c.addIn(l,i);else if(c===void 0&&this.schema)this.set(r,uc(this.schema,l,i));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${l}`)}}deleteIn(n){const[i,...r]=n;if(r.length===0)return this.delete(i);const l=this.get(i,!0);if(bt(l))return l.deleteIn(r);throw new Error(`Expected YAML collection at ${i}. Remaining path: ${r}`)}getIn(n,i){const[r,...l]=n,c=this.get(r,!0);return l.length===0?!i&&nt(c)?c.value:c:bt(c)?c.getIn(l,i):void 0}hasAllNullValues(n){return this.items.every(i=>{if(!xt(i))return!1;const r=i.value;return r==null||n&&nt(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(n){const[i,...r]=n;if(r.length===0)return this.has(i);const l=this.get(i,!0);return bt(l)?l.hasIn(r):!1}setIn(n,i){const[r,...l]=n;if(l.length===0)this.set(r,i);else{const c=this.get(r,!0);if(bt(c))c.setIn(l,i);else if(c===void 0&&this.schema)this.set(r,uc(this.schema,l,i));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${l}`)}}}const GM=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function ha(e,n){return/^\n+$/.test(e)?e.substring(1):n?e.replace(/^(?! *$)/gm,n):e}const Ni=(e,n,i)=>e.endsWith(`
|
|
66
66
|
`)?ha(i,n):i.includes(`
|
|
67
67
|
`)?`
|
|
68
68
|
`+ha(i,n):(e.endsWith(" ")?"":" ")+i,$S="flow",$f="block",Fl="quoted";function Cc(e,n,i="flow",{indentAtStart:r,lineWidth:l=80,minContentWidth:c=20,onFold:d,onOverflow:h}={}){if(!l||l<0)return e;l<c&&(c=0);const g=Math.max(1+c,1+l-n.length);if(e.length<=g)return e;const v=[],S={};let x=l-n.length;typeof r=="number"&&(r>l-Math.max(2,c)?v.push(0):x=l-r);let N,_,O=!1,k=-1,E=-1,R=-1;i===$f&&(k=nv(e,k,n.length),k!==-1&&(x=k+g));for(let P;P=e[k+=1];){if(i===Fl&&P==="\\"){switch(E=k,e[k+1]){case"x":k+=3;break;case"u":k+=5;break;case"U":k+=9;break;default:k+=1}R=k}if(P===`
|
|
@@ -71,7 +71,7 @@ ${JSON.stringify(r.raw,null,2)}`):n.push(l)}return n.length>0?n.join(`
|
|
|
71
71
|
`&&Y!==" "&&(N=k)}if(k>=x)if(N)v.push(N),x=N+g,N=void 0;else if(i===Fl){for(;_===" "||_===" ";)_=P,P=e[k+=1],O=!0;const Y=k>R+1?k-2:E-1;if(S[Y])return e;v.push(Y),S[Y]=!0,x=Y+g,N=void 0}else O=!0}_=P}if(O&&h&&h(),v.length===0)return e;d&&d();let G=e.slice(0,v[0]);for(let P=0;P<v.length;++P){const Y=v[P],I=v[P+1]||e.length;Y===0?G=`
|
|
72
72
|
${n}${e.slice(0,I)}`:(i===Fl&&S[Y]&&(G+=`${e[Y]}\\`),G+=`
|
|
73
73
|
${n}${e.slice(Y+1,I)}`)}return G}function nv(e,n,i){let r=n,l=n+1,c=e[l];for(;c===" "||c===" ";)if(n<l+i)c=e[++n];else{do c=e[++n];while(c&&c!==`
|
|
74
|
-
`);r=n,l=n+1,c=e[l]}return r}const Tc=(e,n)=>({indentAtStart:n?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ec=e=>/^(%|---|\.\.\.)/m.test(e);function
|
|
74
|
+
`);r=n,l=n+1,c=e[l]}return r}const Tc=(e,n)=>({indentAtStart:n?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ec=e=>/^(%|---|\.\.\.)/m.test(e);function HM(e,n,i){if(!n||n<0)return!1;const r=n-i,l=e.length;if(l<=r)return!1;for(let c=0,d=0;c<l;++c)if(e[c]===`
|
|
75
75
|
`){if(c-d>r)return!0;if(d=c+1,l-d<=r)return!1}return!0}function no(e,n){const i=JSON.stringify(e);if(n.options.doubleQuotedAsJSON)return i;const{implicitKey:r}=n,l=n.options.doubleQuotedMinMultiLineLength,c=n.indent||(Ec(e)?" ":"");let d="",h=0;for(let g=0,v=i[g];v;v=i[++g])if(v===" "&&i[g+1]==="\\"&&i[g+2]==="n"&&(d+=i.slice(h,g)+"\\ ",g+=1,h=g,v="\\"),v==="\\")switch(i[g+1]){case"u":{d+=i.slice(h,g);const S=i.substr(g+2,4);switch(S){case"0000":d+="\\0";break;case"0007":d+="\\a";break;case"000b":d+="\\v";break;case"001b":d+="\\e";break;case"0085":d+="\\N";break;case"00a0":d+="\\_";break;case"2028":d+="\\L";break;case"2029":d+="\\P";break;default:S.substr(0,2)==="00"?d+="\\x"+S.substr(2):d+=i.substr(g,6)}g+=5,h=g+1}break;case"n":if(r||i[g+2]==='"'||i.length<l)g+=1;else{for(d+=i.slice(h,g)+`
|
|
76
76
|
|
|
77
77
|
`;i[g+2]==="\\"&&i[g+3]==="n"&&i[g+4]!=='"';)d+=`
|
|
@@ -80,7 +80,7 @@ ${n}${e.slice(Y+1,I)}`)}return G}function nv(e,n,i){let r=n,l=n+1,c=e[l];for(;c=
|
|
|
80
80
|
${i}`)+"'";return n.implicitKey?r:Cc(r,i,$S,Tc(n,!1))}function Ds(e,n){const{singleQuote:i}=n.options;let r;if(i===!1)r=no;else{const l=e.includes('"'),c=e.includes("'");l&&!c?r=Vf:c&&!l?r=no:r=i?Vf:no}return r(e,n)}let If;try{If=new RegExp(`(^|(?<!
|
|
81
81
|
))
|
|
82
82
|
+(?!
|
|
83
|
-
|$)`,"g")}catch{If=/\n+(?!\n|$)/g}function Jl({comment:e,type:n,value:i},r,l,c){const{blockQuote:d,commentString:h,lineWidth:g}=r.options;if(!d||/\n[\t ]+$/.test(i))return Ds(i,r);const v=r.indent||(r.forceBlockIndent||Ec(i)?" ":""),S=d==="literal"?!0:d==="folded"||n===Ce.BLOCK_FOLDED?!1:n===Ce.BLOCK_LITERAL?!0:!
|
|
83
|
+
|$)`,"g")}catch{If=/\n+(?!\n|$)/g}function Jl({comment:e,type:n,value:i},r,l,c){const{blockQuote:d,commentString:h,lineWidth:g}=r.options;if(!d||/\n[\t ]+$/.test(i))return Ds(i,r);const v=r.indent||(r.forceBlockIndent||Ec(i)?" ":""),S=d==="literal"?!0:d==="folded"||n===Ce.BLOCK_FOLDED?!1:n===Ce.BLOCK_LITERAL?!0:!HM(i,g,v.length);if(!i)return S?`|
|
|
84
84
|
`:`>
|
|
85
85
|
`;let x,N;for(N=i.length;N>0;--N){const I=i[N-1];if(I!==`
|
|
86
86
|
`&&I!==" "&&I!==" ")break}let _=i.substring(N);const O=_.indexOf(`
|
|
@@ -89,12 +89,12 @@ ${i}`)+"'";return n.implicitKey?r:Cc(r,i,$S,Tc(n,!1))}function Ds(e,n){const{sin
|
|
|
89
89
|
`)R=E;else break}let G=i.substring(0,R<E?R+1:E);G&&(i=i.substring(G.length),G=G.replace(/\n+/g,`$&${v}`));let Y=(k?v?"2":"1":"")+x;if(e&&(Y+=" "+h(e.replace(/ ?[\r\n]+/g," ")),l&&l()),!S){const I=i.replace(/\n+/g,`
|
|
90
90
|
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${v}`);let se=!1;const z=Tc(r,!0);d!=="folded"&&n!==Ce.BLOCK_FOLDED&&(z.onOverflow=()=>{se=!0});const q=Cc(`${G}${I}${_}`,v,$f,z);if(!se)return`>${Y}
|
|
91
91
|
${v}${q}`}return i=i.replace(/\n+/g,`$&${v}`),`|${Y}
|
|
92
|
-
${v}${G}${i}${_}`}function
|
|
92
|
+
${v}${G}${i}${_}`}function QM(e,n,i,r){const{type:l,value:c}=e,{actualString:d,implicitKey:h,indent:g,indentStep:v,inFlow:S}=n;if(h&&c.includes(`
|
|
93
93
|
`)||S&&/[[\]{},]/.test(c))return Ds(c,n);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(c))return h||S||!c.includes(`
|
|
94
94
|
`)?Ds(c,n):Jl(e,n,i,r);if(!h&&!S&&l!==Ce.PLAIN&&c.includes(`
|
|
95
95
|
`))return Jl(e,n,i,r);if(Ec(c)){if(g==="")return n.forceBlockIndent=!0,Jl(e,n,i,r);if(h&&g===v)return Ds(c,n)}const x=c.replace(/\n+/g,`$&
|
|
96
|
-
${g}`);if(d){const N=k=>k.default&&k.tag!=="tag:yaml.org,2002:str"&&k.test?.test(x),{compat:_,tags:O}=n.doc.schema;if(O.some(N)||_?.some(N))return Ds(c,n)}return h?x:Cc(x,g,$S,Tc(n,!1))}function Lp(e,n,i,r){const{implicitKey:l,inFlow:c}=n,d=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:h}=e;h!==Ce.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(d.value)&&(h=Ce.QUOTE_DOUBLE);const g=S=>{switch(S){case Ce.BLOCK_FOLDED:case Ce.BLOCK_LITERAL:return l||c?Ds(d.value,n):Jl(d,n,i,r);case Ce.QUOTE_DOUBLE:return no(d.value,n);case Ce.QUOTE_SINGLE:return Vf(d.value,n);case Ce.PLAIN:return
|
|
97
|
-
${n.indent}${h}`:h}function
|
|
96
|
+
${g}`);if(d){const N=k=>k.default&&k.tag!=="tag:yaml.org,2002:str"&&k.test?.test(x),{compat:_,tags:O}=n.doc.schema;if(O.some(N)||_?.some(N))return Ds(c,n)}return h?x:Cc(x,g,$S,Tc(n,!1))}function Lp(e,n,i,r){const{implicitKey:l,inFlow:c}=n,d=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:h}=e;h!==Ce.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(d.value)&&(h=Ce.QUOTE_DOUBLE);const g=S=>{switch(S){case Ce.BLOCK_FOLDED:case Ce.BLOCK_LITERAL:return l||c?Ds(d.value,n):Jl(d,n,i,r);case Ce.QUOTE_DOUBLE:return no(d.value,n);case Ce.QUOTE_SINGLE:return Vf(d.value,n);case Ce.PLAIN:return QM(d,n,i,r);default:return null}};let v=g(h);if(v===null){const{defaultKeyType:S,defaultStringType:x}=n.options,N=l&&S||x;if(v=g(N),v===null)throw new Error(`Unsupported default string type ${N}`)}return v}function VS(e,n){const i=Object.assign({blockQuote:!0,commentString:GM,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,n);let r;switch(i.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:i.flowCollectionPadding?" ":"",indent:"",indentStep:typeof i.indent=="number"?" ".repeat(i.indent):" ",inFlow:r,options:i}}function KM(e,n){if(n.tag){const l=e.filter(c=>c.tag===n.tag);if(l.length>0)return l.find(c=>c.format===n.format)??l[0]}let i,r;if(nt(n)){r=n.value;let l=e.filter(c=>c.identify?.(r));if(l.length>1){const c=l.filter(d=>d.test);c.length>0&&(l=c)}i=l.find(c=>c.format===n.format)??l.find(c=>!c.format)}else r=n,i=e.find(l=>l.nodeClass&&r instanceof l.nodeClass);if(!i){const l=r?.constructor?.name??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${l} value`)}return i}function ZM(e,n,{anchors:i,doc:r}){if(!r.directives)return"";const l=[],c=(nt(e)||bt(e))&&e.anchor;c&&MS(c)&&(i.add(c),l.push(`&${c}`));const d=e.tag??(n.default?null:n.tag);return d&&l.push(r.directives.tagString(d)),l.join(" ")}function Vs(e,n,i,r){if(xt(e))return e.toString(n,i,r);if(Di(e)){if(n.doc.directives)return e.toString(n);if(n.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");n.resolvedAliases?n.resolvedAliases.add(e):n.resolvedAliases=new Set([e]),e=e.resolve(n.doc)}let l;const c=St(e)?e:n.doc.createNode(e,{onTagObj:g=>l=g});l??(l=KM(n.doc.schema.tags,c));const d=ZM(c,l,n);d.length>0&&(n.indentAtStart=(n.indentAtStart??0)+d.length+1);const h=typeof l.stringify=="function"?l.stringify(c,n,i,r):nt(c)?Lp(c,n,i,r):c.toString(n,i,r);return d?nt(c)||h[0]==="{"||h[0]==="["?`${d} ${h}`:`${d}
|
|
97
|
+
${n.indent}${h}`:h}function YM({key:e,value:n},i,r,l){const{allNullValues:c,doc:d,indent:h,indentStep:g,options:{commentString:v,indentSeq:S,simpleKeys:x}}=i;let N=St(e)&&e.comment||null;if(x){if(N)throw new Error("With simple keys, key nodes cannot have comments");if(bt(e)||!St(e)&&typeof e=="object"){const z="With simple keys, collection cannot be used as a key value";throw new Error(z)}}let _=!x&&(!e||N&&n==null&&!i.inFlow||bt(e)||(nt(e)?e.type===Ce.BLOCK_FOLDED||e.type===Ce.BLOCK_LITERAL:typeof e=="object"));i=Object.assign({},i,{allNullValues:!1,implicitKey:!_&&(x||!c),indent:h+g});let O=!1,k=!1,E=Vs(e,i,()=>O=!0,()=>k=!0);if(!_&&!i.inFlow&&E.length>1024){if(x)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");_=!0}if(i.inFlow){if(c||n==null)return O&&r&&r(),E===""?"?":_?`? ${E}`:E}else if(c&&!x||n==null&&_)return E=`? ${E}`,N&&!O?E+=Ni(E,i.indent,v(N)):k&&l&&l(),E;O&&(N=null),_?(N&&(E+=Ni(E,i.indent,v(N))),E=`? ${E}
|
|
98
98
|
${h}:`):(E=`${E}:`,N&&(E+=Ni(E,i.indent,v(N))));let R,G,P;St(n)?(R=!!n.spaceBefore,G=n.commentBefore,P=n.comment):(R=!1,G=null,P=null,n&&typeof n=="object"&&(n=d.createNode(n))),i.implicitKey=!1,!_&&!N&&nt(n)&&(i.indentAtStart=E.length+1),k=!1,!S&&g.length>=2&&!i.inFlow&&!_&&po(n)&&!n.flow&&!n.tag&&!n.anchor&&(i.indent=i.indent.substring(2));let Y=!1;const I=Vs(n,i,()=>Y=!0,()=>k=!0);let se=" ";if(N||R||G){if(se=R?`
|
|
99
99
|
`:"",G){const z=v(G);se+=`
|
|
100
100
|
${ha(z,i.indent)}`}I===""&&!i.inFlow?se===`
|
|
@@ -104,32 +104,32 @@ ${ha(z,i.indent)}`}I===""&&!i.inFlow?se===`
|
|
|
104
104
|
${i.indent}`}else if(!_&&bt(n)){const z=I[0],q=I.indexOf(`
|
|
105
105
|
`),ie=q!==-1,_e=i.inFlow??n.flow??n.items.length===0;if(ie||!_e){let De=!1;if(ie&&(z==="&"||z==="!")){let ve=I.indexOf(" ");z==="&"&&ve!==-1&&ve<q&&I[ve+1]==="!"&&(ve=I.indexOf(" ",ve+1)),(ve===-1||q<ve)&&(De=!0)}De||(se=`
|
|
106
106
|
${i.indent}`)}}else(I===""||I[0]===`
|
|
107
|
-
`)&&(se="");return E+=se+I,i.inFlow?Y&&r&&r():P&&!Y?E+=Ni(E,i.indent,v(P)):k&&l&&l(),E}function
|
|
107
|
+
`)&&(se="");return E+=se+I,i.inFlow?Y&&r&&r():P&&!Y?E+=Ni(E,i.indent,v(P)):k&&l&&l(),E}function XM(e,n){(e==="debug"||e==="warn")&&console.warn(n)}const Pl="<<",ga={identify:e=>e===Pl||typeof e=="symbol"&&e.description===Pl,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ce(Symbol(Pl)),{addToJSMap:IS}),stringify:()=>Pl},FM=(e,n)=>(ga.identify(n)||nt(n)&&(!n.type||n.type===Ce.PLAIN)&&ga.identify(n.value))&&e?.doc.schema.tags.some(i=>i.tag===ga.tag&&i.default);function IS(e,n,i){if(i=e&&Di(i)?i.resolve(e.doc):i,po(i))for(const r of i.items)hf(e,n,r);else if(Array.isArray(i))for(const r of i)hf(e,n,r);else hf(e,n,i)}function hf(e,n,i){const r=e&&Di(i)?i.resolve(e.doc):i;if(!fo(r))throw new Error("Merge sources must be maps or map aliases");const l=r.toJSON(null,e,Map);for(const[c,d]of l)n instanceof Map?n.has(c)||n.set(c,d):n instanceof Set?n.add(c):Object.prototype.hasOwnProperty.call(n,c)||Object.defineProperty(n,c,{value:d,writable:!0,enumerable:!0,configurable:!0});return n}function PS(e,n,{key:i,value:r}){if(St(i)&&i.addToJSMap)i.addToJSMap(e,n,r);else if(FM(e,i))IS(e,n,r);else{const l=_n(i,"",e);if(n instanceof Map)n.set(l,_n(r,l,e));else if(n instanceof Set)n.add(l);else{const c=JM(i,l,e),d=_n(r,c,e);c in n?Object.defineProperty(n,c,{value:d,writable:!0,enumerable:!0,configurable:!0}):n[c]=d}}return n}function JM(e,n,i){if(n===null)return"";if(typeof n!="object")return String(n);if(St(e)&&i?.doc){const r=VS(i.doc,{});r.anchors=new Set;for(const c of i.anchors.keys())r.anchors.add(c.anchor);r.inFlow=!0,r.inStringifyKey=!0;const l=e.toString(r);if(!i.mapKeyWarned){let c=JSON.stringify(l);c.length>40&&(c=c.substring(0,36)+'..."'),XM(i.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${c}. Set mapAsMap: true to use object keys.`),i.mapKeyWarned=!0}return l}return JSON.stringify(n)}function qp(e,n,i){const r=oo(e,void 0,i),l=oo(n,void 0,i);return new Kt(r,l)}class Kt{constructor(n,i=null){Object.defineProperty(this,Cn,{value:DS}),this.key=n,this.value=i}clone(n){let{key:i,value:r}=this;return St(i)&&(i=i.clone(n)),St(r)&&(r=r.clone(n)),new Kt(i,r)}toJSON(n,i){const r=i?.mapAsMap?new Map:{};return PS(i,r,this)}toString(n,i,r){return n?.doc?YM(this,n,i,r):JSON.stringify(this)}}function GS(e,n,i){return(n.inFlow??e.flow?eB:WM)(e,n,i)}function WM({comment:e,items:n},i,{blockItemPrefix:r,flowChars:l,itemIndent:c,onChompKeep:d,onComment:h}){const{indent:g,options:{commentString:v}}=i,S=Object.assign({},i,{indent:c,type:null});let x=!1;const N=[];for(let O=0;O<n.length;++O){const k=n[O];let E=null;if(St(k))!x&&k.spaceBefore&&N.push(""),dc(i,N,k.commentBefore,x),k.comment&&(E=k.comment);else if(xt(k)){const G=St(k.key)?k.key:null;G&&(!x&&G.spaceBefore&&N.push(""),dc(i,N,G.commentBefore,x))}x=!1;let R=Vs(k,S,()=>E=null,()=>x=!0);E&&(R+=Ni(R,c,v(E))),x&&E&&(x=!1),N.push(r+R)}let _;if(N.length===0)_=l.start+l.end;else{_=N[0];for(let O=1;O<N.length;++O){const k=N[O];_+=k?`
|
|
108
108
|
${g}${k}`:`
|
|
109
109
|
`}}return e?(_+=`
|
|
110
|
-
`+ha(v(e),g),h&&h()):x&&d&&d(),_}function
|
|
110
|
+
`+ha(v(e),g),h&&h()):x&&d&&d(),_}function eB({items:e},n,{flowChars:i,itemIndent:r}){const{indent:l,indentStep:c,flowCollectionPadding:d,options:{commentString:h}}=n;r+=c;const g=Object.assign({},n,{indent:r,inFlow:!0,type:null});let v=!1,S=0;const x=[];for(let O=0;O<e.length;++O){const k=e[O];let E=null;if(St(k))k.spaceBefore&&x.push(""),dc(n,x,k.commentBefore,!1),k.comment&&(E=k.comment);else if(xt(k)){const G=St(k.key)?k.key:null;G&&(G.spaceBefore&&x.push(""),dc(n,x,G.commentBefore,!1),G.comment&&(v=!0));const P=St(k.value)?k.value:null;P?(P.comment&&(E=P.comment),P.commentBefore&&(v=!0)):k.value==null&&G?.comment&&(E=G.comment)}E&&(v=!0);let R=Vs(k,g,()=>E=null);O<e.length-1&&(R+=","),E&&(R+=Ni(R,r,h(E))),!v&&(x.length>S||R.includes(`
|
|
111
111
|
`))&&(v=!0),x.push(R),S=x.length}const{start:N,end:_}=i;if(x.length===0)return N+_;if(!v){const O=x.reduce((k,E)=>k+E.length+2,2);v=n.options.lineWidth>0&&O>n.options.lineWidth}if(v){let O=N;for(const k of x)O+=k?`
|
|
112
112
|
${c}${l}${k}`:`
|
|
113
113
|
`;return`${O}
|
|
114
|
-
${l}${_}`}else return`${N}${d}${x.join(" ")}${d}${_}`}function dc({indent:e,options:{commentString:n}},i,r,l){if(r&&l&&(r=r.replace(/^\n+/,"")),r){const c=ha(n(r),e);i.push(c.trimStart())}}function ki(e,n){const i=nt(n)?n.value:n;for(const r of e)if(xt(r)&&(r.key===n||r.key===i||nt(r.key)&&r.key.value===i))return r}class An extends US{static get tagName(){return"tag:yaml.org,2002:map"}constructor(n){super(Xa,n),this.items=[]}static from(n,i,r){const{keepUndefined:l,replacer:c}=r,d=new this(n),h=(g,v)=>{if(typeof c=="function")v=c.call(i,g,v);else if(Array.isArray(c)&&!c.includes(g))return;(v!==void 0||l)&&d.items.push(qp(g,v,r))};if(i instanceof Map)for(const[g,v]of i)h(g,v);else if(i&&typeof i=="object")for(const g of Object.keys(i))h(g,i[g]);return typeof n.sortMapEntries=="function"&&d.items.sort(n.sortMapEntries),d}add(n,i){let r;xt(n)?r=n:!n||typeof n!="object"||!("key"in n)?r=new Kt(n,n?.value):r=new Kt(n.key,n.value);const l=ki(this.items,r.key),c=this.schema?.sortMapEntries;if(l){if(!i)throw new Error(`Key ${r.key} already set`);nt(l.value)&&qS(r.value)?l.value.value=r.value:l.value=r.value}else if(c){const d=this.items.findIndex(h=>c(r,h)<0);d===-1?this.items.push(r):this.items.splice(d,0,r)}else this.items.push(r)}delete(n){const i=ki(this.items,n);return i?this.items.splice(this.items.indexOf(i),1).length>0:!1}get(n,i){const l=ki(this.items,n)?.value;return(!i&&nt(l)?l.value:l)??void 0}has(n){return!!ki(this.items,n)}set(n,i){this.add(new Kt(n,i),!0)}toJSON(n,i,r){const l=r?new r:i?.mapAsMap?new Map:{};i?.onCreate&&i.onCreate(l);for(const c of this.items)PS(i,l,c);return l}toString(n,i,r){if(!n)return JSON.stringify(this);for(const l of this.items)if(!xt(l))throw new Error(`Map items must all be pairs; found ${JSON.stringify(l)} instead`);return!n.allNullValues&&this.hasAllNullValues(!1)&&(n=Object.assign({},n,{allNullValues:!0})),GS(this,n,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:n.indent||"",onChompKeep:r,onComment:i})}}const Js={collection:"map",default:!0,nodeClass:An,tag:"tag:yaml.org,2002:map",resolve(e,n){return fo(e)||n("Expected a mapping for this tag"),e},createNode:(e,n,i)=>An.from(e,n,i)};class Ci extends US{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(n){super(Xs,n),this.items=[]}add(n){this.items.push(n)}delete(n){const i=Gl(n);return typeof i!="number"?!1:this.items.splice(i,1).length>0}get(n,i){const r=Gl(n);if(typeof r!="number")return;const l=this.items[r];return!i&&nt(l)?l.value:l}has(n){const i=Gl(n);return typeof i=="number"&&i<this.items.length}set(n,i){const r=Gl(n);if(typeof r!="number")throw new Error(`Expected a valid index, not ${n}.`);const l=this.items[r];nt(l)&&qS(i)?l.value=i:this.items[r]=i}toJSON(n,i){const r=[];i?.onCreate&&i.onCreate(r);let l=0;for(const c of this.items)r.push(_n(c,String(l++),i));return r}toString(n,i,r){return n?GS(this,n,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(n.indent||"")+" ",onChompKeep:r,onComment:i}):JSON.stringify(this)}static from(n,i,r){const{replacer:l}=r,c=new this(n);if(i&&Symbol.iterator in Object(i)){let d=0;for(let h of i){if(typeof l=="function"){const g=i instanceof Set?h:String(d++);h=l.call(i,g,h)}c.items.push(oo(h,void 0,r))}}return c}}function Gl(e){let n=nt(e)?e.value:e;return n&&typeof n=="string"&&(n=Number(n)),typeof n=="number"&&Number.isInteger(n)&&n>=0?n:null}const Ws={collection:"seq",default:!0,nodeClass:Ci,tag:"tag:yaml.org,2002:seq",resolve(e,n){return po(e)||n("Expected a sequence for this tag"),e},createNode:(e,n,i)=>Ci.from(e,n,i)},Oc={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,n,i,r){return n=Object.assign({actualString:!0},n),Lp(e,n,i,r)}},zc={identify:e=>e==null,createNode:()=>new Ce(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ce(null),stringify:({source:e},n)=>typeof e=="string"&&zc.test.test(e)?e:n.options.nullStr},Up={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ce(e[0]==="t"||e[0]==="T"),stringify({source:e,value:n},i){if(e&&Up.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(n===r)return e}return n?i.options.trueStr:i.options.falseStr}};function qn({format:e,minFractionDigits:n,tag:i,value:r}){if(typeof r=="bigint")return String(r);const l=typeof r=="number"?r:Number(r);if(!isFinite(l))return isNaN(l)?".nan":l<0?"-.inf":".inf";let c=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&n&&(!i||i==="tag:yaml.org,2002:float")&&/^\d/.test(c)){let d=c.indexOf(".");d<0&&(d=c.length,c+=".");let h=n-(c.length-d-1);for(;h-- >0;)c+="0"}return c}const HS={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:qn},QS={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const n=Number(e.value);return isFinite(n)?n.toExponential():qn(e)}},KS={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const n=new Ce(parseFloat(e)),i=e.indexOf(".");return i!==-1&&e[e.length-1]==="0"&&(n.minFractionDigits=e.length-i-1),n},stringify:qn},Dc=e=>typeof e=="bigint"||Number.isInteger(e),$p=(e,n,i,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(n),i);function ZS(e,n,i){const{value:r}=e;return Dc(r)&&r>=0?i+r.toString(n):qn(e)}const YS={identify:e=>Dc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,n,i)=>$p(e,2,8,i),stringify:e=>ZS(e,8,"0o")},XS={identify:Dc,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,n,i)=>$p(e,0,10,i),stringify:qn},FS={identify:e=>Dc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,n,i)=>$p(e,2,16,i),stringify:e=>ZS(e,16,"0x")},
|
|
114
|
+
${l}${_}`}else return`${N}${d}${x.join(" ")}${d}${_}`}function dc({indent:e,options:{commentString:n}},i,r,l){if(r&&l&&(r=r.replace(/^\n+/,"")),r){const c=ha(n(r),e);i.push(c.trimStart())}}function ki(e,n){const i=nt(n)?n.value:n;for(const r of e)if(xt(r)&&(r.key===n||r.key===i||nt(r.key)&&r.key.value===i))return r}class An extends US{static get tagName(){return"tag:yaml.org,2002:map"}constructor(n){super(Xa,n),this.items=[]}static from(n,i,r){const{keepUndefined:l,replacer:c}=r,d=new this(n),h=(g,v)=>{if(typeof c=="function")v=c.call(i,g,v);else if(Array.isArray(c)&&!c.includes(g))return;(v!==void 0||l)&&d.items.push(qp(g,v,r))};if(i instanceof Map)for(const[g,v]of i)h(g,v);else if(i&&typeof i=="object")for(const g of Object.keys(i))h(g,i[g]);return typeof n.sortMapEntries=="function"&&d.items.sort(n.sortMapEntries),d}add(n,i){let r;xt(n)?r=n:!n||typeof n!="object"||!("key"in n)?r=new Kt(n,n?.value):r=new Kt(n.key,n.value);const l=ki(this.items,r.key),c=this.schema?.sortMapEntries;if(l){if(!i)throw new Error(`Key ${r.key} already set`);nt(l.value)&&qS(r.value)?l.value.value=r.value:l.value=r.value}else if(c){const d=this.items.findIndex(h=>c(r,h)<0);d===-1?this.items.push(r):this.items.splice(d,0,r)}else this.items.push(r)}delete(n){const i=ki(this.items,n);return i?this.items.splice(this.items.indexOf(i),1).length>0:!1}get(n,i){const l=ki(this.items,n)?.value;return(!i&&nt(l)?l.value:l)??void 0}has(n){return!!ki(this.items,n)}set(n,i){this.add(new Kt(n,i),!0)}toJSON(n,i,r){const l=r?new r:i?.mapAsMap?new Map:{};i?.onCreate&&i.onCreate(l);for(const c of this.items)PS(i,l,c);return l}toString(n,i,r){if(!n)return JSON.stringify(this);for(const l of this.items)if(!xt(l))throw new Error(`Map items must all be pairs; found ${JSON.stringify(l)} instead`);return!n.allNullValues&&this.hasAllNullValues(!1)&&(n=Object.assign({},n,{allNullValues:!0})),GS(this,n,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:n.indent||"",onChompKeep:r,onComment:i})}}const Js={collection:"map",default:!0,nodeClass:An,tag:"tag:yaml.org,2002:map",resolve(e,n){return fo(e)||n("Expected a mapping for this tag"),e},createNode:(e,n,i)=>An.from(e,n,i)};class Ci extends US{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(n){super(Xs,n),this.items=[]}add(n){this.items.push(n)}delete(n){const i=Gl(n);return typeof i!="number"?!1:this.items.splice(i,1).length>0}get(n,i){const r=Gl(n);if(typeof r!="number")return;const l=this.items[r];return!i&&nt(l)?l.value:l}has(n){const i=Gl(n);return typeof i=="number"&&i<this.items.length}set(n,i){const r=Gl(n);if(typeof r!="number")throw new Error(`Expected a valid index, not ${n}.`);const l=this.items[r];nt(l)&&qS(i)?l.value=i:this.items[r]=i}toJSON(n,i){const r=[];i?.onCreate&&i.onCreate(r);let l=0;for(const c of this.items)r.push(_n(c,String(l++),i));return r}toString(n,i,r){return n?GS(this,n,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(n.indent||"")+" ",onChompKeep:r,onComment:i}):JSON.stringify(this)}static from(n,i,r){const{replacer:l}=r,c=new this(n);if(i&&Symbol.iterator in Object(i)){let d=0;for(let h of i){if(typeof l=="function"){const g=i instanceof Set?h:String(d++);h=l.call(i,g,h)}c.items.push(oo(h,void 0,r))}}return c}}function Gl(e){let n=nt(e)?e.value:e;return n&&typeof n=="string"&&(n=Number(n)),typeof n=="number"&&Number.isInteger(n)&&n>=0?n:null}const Ws={collection:"seq",default:!0,nodeClass:Ci,tag:"tag:yaml.org,2002:seq",resolve(e,n){return po(e)||n("Expected a sequence for this tag"),e},createNode:(e,n,i)=>Ci.from(e,n,i)},Oc={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,n,i,r){return n=Object.assign({actualString:!0},n),Lp(e,n,i,r)}},zc={identify:e=>e==null,createNode:()=>new Ce(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ce(null),stringify:({source:e},n)=>typeof e=="string"&&zc.test.test(e)?e:n.options.nullStr},Up={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ce(e[0]==="t"||e[0]==="T"),stringify({source:e,value:n},i){if(e&&Up.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(n===r)return e}return n?i.options.trueStr:i.options.falseStr}};function qn({format:e,minFractionDigits:n,tag:i,value:r}){if(typeof r=="bigint")return String(r);const l=typeof r=="number"?r:Number(r);if(!isFinite(l))return isNaN(l)?".nan":l<0?"-.inf":".inf";let c=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&n&&(!i||i==="tag:yaml.org,2002:float")&&/^\d/.test(c)){let d=c.indexOf(".");d<0&&(d=c.length,c+=".");let h=n-(c.length-d-1);for(;h-- >0;)c+="0"}return c}const HS={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:qn},QS={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const n=Number(e.value);return isFinite(n)?n.toExponential():qn(e)}},KS={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const n=new Ce(parseFloat(e)),i=e.indexOf(".");return i!==-1&&e[e.length-1]==="0"&&(n.minFractionDigits=e.length-i-1),n},stringify:qn},Dc=e=>typeof e=="bigint"||Number.isInteger(e),$p=(e,n,i,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(n),i);function ZS(e,n,i){const{value:r}=e;return Dc(r)&&r>=0?i+r.toString(n):qn(e)}const YS={identify:e=>Dc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,n,i)=>$p(e,2,8,i),stringify:e=>ZS(e,8,"0o")},XS={identify:Dc,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,n,i)=>$p(e,0,10,i),stringify:qn},FS={identify:e=>Dc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,n,i)=>$p(e,2,16,i),stringify:e=>ZS(e,16,"0x")},tB=[Js,Ws,Oc,zc,Up,YS,XS,FS,HS,QS,KS];function av(e){return typeof e=="bigint"||Number.isInteger(e)}const Hl=({value:e})=>JSON.stringify(e),nB=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Hl},{identify:e=>e==null,createNode:()=>new Ce(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Hl},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Hl},{identify:av,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,n,{intAsBigInt:i})=>i?BigInt(e):parseInt(e,10),stringify:({value:e})=>av(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Hl}],aB={default:!0,tag:"",test:/^/,resolve(e,n){return n(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},iB=[Js,Ws].concat(nB,aB),Vp={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,n){if(typeof atob=="function"){const i=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(i.length);for(let l=0;l<i.length;++l)r[l]=i.charCodeAt(l);return r}else return n("This environment does not support reading binary tags; either Buffer or atob is required"),e},stringify({comment:e,type:n,value:i},r,l,c){if(!i)return"";const d=i;let h;if(typeof btoa=="function"){let g="";for(let v=0;v<d.length;++v)g+=String.fromCharCode(d[v]);h=btoa(g)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(n??(n=Ce.BLOCK_LITERAL),n!==Ce.QUOTE_DOUBLE){const g=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),v=Math.ceil(h.length/g),S=new Array(v);for(let x=0,N=0;x<v;++x,N+=g)S[x]=h.substr(N,g);h=S.join(n===Ce.BLOCK_LITERAL?`
|
|
115
115
|
`:" ")}return Lp({comment:e,type:n,value:h},r,l,c)}};function JS(e,n){if(po(e))for(let i=0;i<e.items.length;++i){let r=e.items[i];if(!xt(r)){if(fo(r)){r.items.length>1&&n("Each pair must have its own sequence indicator");const l=r.items[0]||new Kt(new Ce(null));if(r.commentBefore&&(l.key.commentBefore=l.key.commentBefore?`${r.commentBefore}
|
|
116
116
|
${l.key.commentBefore}`:r.commentBefore),r.comment){const c=l.value??l.key;c.comment=c.comment?`${r.comment}
|
|
117
|
-
${c.comment}`:r.comment}r=l}e.items[i]=xt(r)?r:new Kt(r)}}else n("Expected a sequence for this tag");return e}function WS(e,n,i){const{replacer:r}=i,l=new Ci(e);l.tag="tag:yaml.org,2002:pairs";let c=0;if(n&&Symbol.iterator in Object(n))for(let d of n){typeof r=="function"&&(d=r.call(n,String(c++),d));let h,g;if(Array.isArray(d))if(d.length===2)h=d[0],g=d[1];else throw new TypeError(`Expected [key, value] tuple: ${d}`);else if(d&&d instanceof Object){const v=Object.keys(d);if(v.length===1)h=v[0],g=d[h];else throw new TypeError(`Expected tuple with one key, not ${v.length} keys`)}else h=d;l.items.push(qp(h,g,i))}return l}const Ip={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:JS,createNode:WS};class Bs extends Ci{constructor(){super(),this.add=An.prototype.add.bind(this),this.delete=An.prototype.delete.bind(this),this.get=An.prototype.get.bind(this),this.has=An.prototype.has.bind(this),this.set=An.prototype.set.bind(this),this.tag=Bs.tag}toJSON(n,i){if(!i)return super.toJSON(n);const r=new Map;i?.onCreate&&i.onCreate(r);for(const l of this.items){let c,d;if(xt(l)?(c=_n(l.key,"",i),d=_n(l.value,c,i)):c=_n(l,"",i),r.has(c))throw new Error("Ordered maps must not include duplicate keys");r.set(c,d)}return r}static from(n,i,r){const l=WS(n,i,r),c=new this;return c.items=l.items,c}}Bs.tag="tag:yaml.org,2002:omap";const Pp={collection:"seq",identify:e=>e instanceof Map,nodeClass:Bs,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,n){const i=JS(e,n),r=[];for(const{key:l}of i.items)nt(l)&&(r.includes(l.value)?n(`Ordered maps must not include duplicate keys: ${l.value}`):r.push(l.value));return Object.assign(new Bs,i)},createNode:(e,n,i)=>Bs.from(e,n,i)};function e1({value:e,source:n},i){return n&&(e?t1:n1).test.test(n)?n:e?i.options.trueStr:i.options.falseStr}const t1={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Ce(!0),stringify:e1},n1={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Ce(!1),stringify:e1},
|
|
117
|
+
${c.comment}`:r.comment}r=l}e.items[i]=xt(r)?r:new Kt(r)}}else n("Expected a sequence for this tag");return e}function WS(e,n,i){const{replacer:r}=i,l=new Ci(e);l.tag="tag:yaml.org,2002:pairs";let c=0;if(n&&Symbol.iterator in Object(n))for(let d of n){typeof r=="function"&&(d=r.call(n,String(c++),d));let h,g;if(Array.isArray(d))if(d.length===2)h=d[0],g=d[1];else throw new TypeError(`Expected [key, value] tuple: ${d}`);else if(d&&d instanceof Object){const v=Object.keys(d);if(v.length===1)h=v[0],g=d[h];else throw new TypeError(`Expected tuple with one key, not ${v.length} keys`)}else h=d;l.items.push(qp(h,g,i))}return l}const Ip={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:JS,createNode:WS};class Bs extends Ci{constructor(){super(),this.add=An.prototype.add.bind(this),this.delete=An.prototype.delete.bind(this),this.get=An.prototype.get.bind(this),this.has=An.prototype.has.bind(this),this.set=An.prototype.set.bind(this),this.tag=Bs.tag}toJSON(n,i){if(!i)return super.toJSON(n);const r=new Map;i?.onCreate&&i.onCreate(r);for(const l of this.items){let c,d;if(xt(l)?(c=_n(l.key,"",i),d=_n(l.value,c,i)):c=_n(l,"",i),r.has(c))throw new Error("Ordered maps must not include duplicate keys");r.set(c,d)}return r}static from(n,i,r){const l=WS(n,i,r),c=new this;return c.items=l.items,c}}Bs.tag="tag:yaml.org,2002:omap";const Pp={collection:"seq",identify:e=>e instanceof Map,nodeClass:Bs,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,n){const i=JS(e,n),r=[];for(const{key:l}of i.items)nt(l)&&(r.includes(l.value)?n(`Ordered maps must not include duplicate keys: ${l.value}`):r.push(l.value));return Object.assign(new Bs,i)},createNode:(e,n,i)=>Bs.from(e,n,i)};function e1({value:e,source:n},i){return n&&(e?t1:n1).test.test(n)?n:e?i.options.trueStr:i.options.falseStr}const t1={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Ce(!0),stringify:e1},n1={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Ce(!1),stringify:e1},sB={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:qn},rB={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const n=Number(e.value);return isFinite(n)?n.toExponential():qn(e)}},oB={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const n=new Ce(parseFloat(e.replace(/_/g,""))),i=e.indexOf(".");if(i!==-1){const r=e.substring(i+1).replace(/_/g,"");r[r.length-1]==="0"&&(n.minFractionDigits=r.length)}return n},stringify:qn},mo=e=>typeof e=="bigint"||Number.isInteger(e);function Rc(e,n,i,{intAsBigInt:r}){const l=e[0];if((l==="-"||l==="+")&&(n+=1),e=e.substring(n).replace(/_/g,""),r){switch(i){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const d=BigInt(e);return l==="-"?BigInt(-1)*d:d}const c=parseInt(e,i);return l==="-"?-1*c:c}function Gp(e,n,i){const{value:r}=e;if(mo(r)){const l=r.toString(n);return r<0?"-"+i+l.substr(1):i+l}return qn(e)}const lB={identify:mo,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,n,i)=>Rc(e,2,2,i),stringify:e=>Gp(e,2,"0b")},cB={identify:mo,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,n,i)=>Rc(e,1,8,i),stringify:e=>Gp(e,8,"0")},uB={identify:mo,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,n,i)=>Rc(e,0,10,i),stringify:qn},dB={identify:mo,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,n,i)=>Rc(e,2,16,i),stringify:e=>Gp(e,16,"0x")};class Ls extends An{constructor(n){super(n),this.tag=Ls.tag}add(n){let i;xt(n)?i=n:n&&typeof n=="object"&&"key"in n&&"value"in n&&n.value===null?i=new Kt(n.key,null):i=new Kt(n,null),ki(this.items,i.key)||this.items.push(i)}get(n,i){const r=ki(this.items,n);return!i&&xt(r)?nt(r.key)?r.key.value:r.key:r}set(n,i){if(typeof i!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof i}`);const r=ki(this.items,n);r&&!i?this.items.splice(this.items.indexOf(r),1):!r&&i&&this.items.push(new Kt(n))}toJSON(n,i){return super.toJSON(n,i,Set)}toString(n,i,r){if(!n)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},n,{allNullValues:!0}),i,r);throw new Error("Set items must all have null values")}static from(n,i,r){const{replacer:l}=r,c=new this(n);if(i&&Symbol.iterator in Object(i))for(let d of i)typeof l=="function"&&(d=l.call(i,d,d)),c.items.push(qp(d,null,r));return c}}Ls.tag="tag:yaml.org,2002:set";const Hp={collection:"map",identify:e=>e instanceof Set,nodeClass:Ls,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,n,i)=>Ls.from(e,n,i),resolve(e,n){if(fo(e)){if(e.hasAllNullValues(!0))return Object.assign(new Ls,e);n("Set items must all have null values")}else n("Expected a mapping for this tag");return e}};function Qp(e,n){const i=e[0],r=i==="-"||i==="+"?e.substring(1):e,l=d=>n?BigInt(d):Number(d),c=r.replace(/_/g,"").split(":").reduce((d,h)=>d*l(60)+l(h),l(0));return i==="-"?l(-1)*c:c}function a1(e){let{value:n}=e,i=d=>d;if(typeof n=="bigint")i=d=>BigInt(d);else if(isNaN(n)||!isFinite(n))return qn(e);let r="";n<0&&(r="-",n*=i(-1));const l=i(60),c=[n%l];return n<60?c.unshift(0):(n=(n-c[0])/l,c.unshift(n%l),n>=60&&(n=(n-c[0])/l,c.unshift(n))),r+c.map(d=>String(d).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const i1={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,n,{intAsBigInt:i})=>Qp(e,i),stringify:a1},s1={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>Qp(e,!1),stringify:a1},Mc={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const n=e.match(Mc.test);if(!n)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,i,r,l,c,d,h]=n.map(Number),g=n[7]?Number((n[7]+"00").substr(1,3)):0;let v=Date.UTC(i,r-1,l,c||0,d||0,h||0,g);const S=n[8];if(S&&S!=="Z"){let x=Qp(S,!1);Math.abs(x)<30&&(x*=60),v-=6e4*x}return new Date(v)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""},iv=[Js,Ws,Oc,zc,t1,n1,lB,cB,uB,dB,sB,rB,oB,Vp,ga,Pp,Ip,Hp,i1,s1,Mc],sv=new Map([["core",tB],["failsafe",[Js,Ws,Oc]],["json",iB],["yaml11",iv],["yaml-1.1",iv]]),rv={binary:Vp,bool:Up,float:KS,floatExp:QS,floatNaN:HS,floatTime:s1,int:XS,intHex:FS,intOct:YS,intTime:i1,map:Js,merge:ga,null:zc,omap:Pp,pairs:Ip,seq:Ws,set:Hp,timestamp:Mc},fB={"tag:yaml.org,2002:binary":Vp,"tag:yaml.org,2002:merge":ga,"tag:yaml.org,2002:omap":Pp,"tag:yaml.org,2002:pairs":Ip,"tag:yaml.org,2002:set":Hp,"tag:yaml.org,2002:timestamp":Mc};function gf(e,n,i){const r=sv.get(n);if(r&&!e)return i&&!r.includes(ga)?r.concat(ga):r.slice();let l=r;if(!l)if(Array.isArray(e))l=[];else{const c=Array.from(sv.keys()).filter(d=>d!=="yaml11").map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown schema "${n}"; use one of ${c} or define customTags array`)}if(Array.isArray(e))for(const c of e)l=l.concat(c);else typeof e=="function"&&(l=e(l.slice()));return i&&(l=l.concat(ga)),l.reduce((c,d)=>{const h=typeof d=="string"?rv[d]:d;if(!h){const g=JSON.stringify(d),v=Object.keys(rv).map(S=>JSON.stringify(S)).join(", ");throw new Error(`Unknown custom tag ${g}; use one of ${v}`)}return c.includes(h)||c.push(h),c},[])}const pB=(e,n)=>e.key<n.key?-1:e.key>n.key?1:0;class Kp{constructor({compat:n,customTags:i,merge:r,resolveKnownTags:l,schema:c,sortMapEntries:d,toStringDefaults:h}){this.compat=Array.isArray(n)?gf(n,"compat"):n?gf(null,n):null,this.name=typeof c=="string"&&c||"core",this.knownTags=l?fB:{},this.tags=gf(i,this.name,r),this.toStringOptions=h??null,Object.defineProperty(this,Xa,{value:Js}),Object.defineProperty(this,Qn,{value:Oc}),Object.defineProperty(this,Xs,{value:Ws}),this.sortMapEntries=typeof d=="function"?d:d===!0?pB:null}clone(){const n=Object.create(Kp.prototype,Object.getOwnPropertyDescriptors(this));return n.tags=this.tags.slice(),n}}function mB(e,n){const i=[];let r=n.directives===!0;if(n.directives!==!1&&e.directives){const g=e.directives.toString(e);g?(i.push(g),r=!0):e.directives.docStart&&(r=!0)}r&&i.push("---");const l=VS(e,n),{commentString:c}=l.options;if(e.commentBefore){i.length!==1&&i.unshift("");const g=c(e.commentBefore);i.unshift(ha(g,""))}let d=!1,h=null;if(e.contents){if(St(e.contents)){if(e.contents.spaceBefore&&r&&i.push(""),e.contents.commentBefore){const S=c(e.contents.commentBefore);i.push(ha(S,""))}l.forceBlockIndent=!!e.comment,h=e.contents.comment}const g=h?void 0:()=>d=!0;let v=Vs(e.contents,l,()=>h=null,g);h&&(v+=Ni(v,"",c(h))),(v[0]==="|"||v[0]===">")&&i[i.length-1]==="---"?i[i.length-1]=`--- ${v}`:i.push(v)}else i.push(Vs(e.contents,l));if(e.directives?.docEnd)if(e.comment){const g=c(e.comment);g.includes(`
|
|
118
118
|
`)?(i.push("..."),i.push(ha(g,""))):i.push(`... ${g}`)}else i.push("...");else{let g=e.comment;g&&d&&(g=g.replace(/^\n+/,"")),g&&((!d||h)&&i[i.length-1]!==""&&i.push(""),i.push(ha(c(g),"")))}return i.join(`
|
|
119
119
|
`)+`
|
|
120
|
-
`}class Bc{constructor(n,i,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:Uf});let l=null;typeof i=="function"||Array.isArray(i)?l=i:r===void 0&&i&&(r=i,i=void 0);const c=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=c;let{version:d}=c;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(d=this.directives.yaml.version)):this.directives=new Ht({version:d}),this.setSchema(d,r),this.contents=n===void 0?null:this.createNode(n,l,r)}clone(){const n=Object.create(Bc.prototype,{[Cn]:{value:Uf}});return n.commentBefore=this.commentBefore,n.comment=this.comment,n.errors=this.errors.slice(),n.warnings=this.warnings.slice(),n.options=Object.assign({},this.options),this.directives&&(n.directives=this.directives.clone()),n.schema=this.schema.clone(),n.contents=St(this.contents)?this.contents.clone(n.schema):this.contents,this.range&&(n.range=this.range.slice()),n}add(n){_s(this.contents)&&this.contents.add(n)}addIn(n,i){_s(this.contents)&&this.contents.addIn(n,i)}createAlias(n,i){if(!n.anchor){const r=BS(this);n.anchor=!i||r.has(i)?LS(i||"a",r):i}return new Bp(n.anchor)}createNode(n,i,r){let l;if(typeof i=="function")n=i.call({"":n},"",n),l=i;else if(Array.isArray(i)){const E=G=>typeof G=="number"||G instanceof String||G instanceof Number,R=i.filter(E).map(String);R.length>0&&(i=i.concat(R)),l=i}else r===void 0&&i&&(r=i,i=void 0);const{aliasDuplicateObjects:c,anchorPrefix:d,flow:h,keepUndefined:g,onTagObj:v,tag:S}=r??{},{onAnchor:x,setAnchors:N,sourceObjects:_}
|
|
120
|
+
`}class Bc{constructor(n,i,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:Uf});let l=null;typeof i=="function"||Array.isArray(i)?l=i:r===void 0&&i&&(r=i,i=void 0);const c=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=c;let{version:d}=c;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(d=this.directives.yaml.version)):this.directives=new Ht({version:d}),this.setSchema(d,r),this.contents=n===void 0?null:this.createNode(n,l,r)}clone(){const n=Object.create(Bc.prototype,{[Cn]:{value:Uf}});return n.commentBefore=this.commentBefore,n.comment=this.comment,n.errors=this.errors.slice(),n.warnings=this.warnings.slice(),n.options=Object.assign({},this.options),this.directives&&(n.directives=this.directives.clone()),n.schema=this.schema.clone(),n.contents=St(this.contents)?this.contents.clone(n.schema):this.contents,this.range&&(n.range=this.range.slice()),n}add(n){_s(this.contents)&&this.contents.add(n)}addIn(n,i){_s(this.contents)&&this.contents.addIn(n,i)}createAlias(n,i){if(!n.anchor){const r=BS(this);n.anchor=!i||r.has(i)?LS(i||"a",r):i}return new Bp(n.anchor)}createNode(n,i,r){let l;if(typeof i=="function")n=i.call({"":n},"",n),l=i;else if(Array.isArray(i)){const E=G=>typeof G=="number"||G instanceof String||G instanceof Number,R=i.filter(E).map(String);R.length>0&&(i=i.concat(R)),l=i}else r===void 0&&i&&(r=i,i=void 0);const{aliasDuplicateObjects:c,anchorPrefix:d,flow:h,keepUndefined:g,onTagObj:v,tag:S}=r??{},{onAnchor:x,setAnchors:N,sourceObjects:_}=VM(this,d||"a"),O={aliasDuplicateObjects:c??!0,keepUndefined:g??!1,onAnchor:x,onTagObj:v,replacer:l,schema:this.schema,sourceObjects:_},k=oo(n,S,O);return h&&bt(k)&&(k.flow=!0),N(),k}createPair(n,i,r={}){const l=this.createNode(n,null,r),c=this.createNode(i,null,r);return new Kt(l,c)}delete(n){return _s(this.contents)?this.contents.delete(n):!1}deleteIn(n){return eo(n)?this.contents==null?!1:(this.contents=null,!0):_s(this.contents)?this.contents.deleteIn(n):!1}get(n,i){return bt(this.contents)?this.contents.get(n,i):void 0}getIn(n,i){return eo(n)?!i&&nt(this.contents)?this.contents.value:this.contents:bt(this.contents)?this.contents.getIn(n,i):void 0}has(n){return bt(this.contents)?this.contents.has(n):!1}hasIn(n){return eo(n)?this.contents!==void 0:bt(this.contents)?this.contents.hasIn(n):!1}set(n,i){this.contents==null?this.contents=uc(this.schema,[n],i):_s(this.contents)&&this.contents.set(n,i)}setIn(n,i){eo(n)?this.contents=i:this.contents==null?this.contents=uc(this.schema,Array.from(n),i):_s(this.contents)&&this.contents.setIn(n,i)}setSchema(n,i={}){typeof n=="number"&&(n=String(n));let r;switch(n){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ht({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=n:this.directives=new Ht({version:n}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const l=JSON.stringify(n);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${l}`)}}if(i.schema instanceof Object)this.schema=i.schema;else if(r)this.schema=new Kp(Object.assign(r,i));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:n,jsonArg:i,mapAsMap:r,maxAliasCount:l,onAnchor:c,reviver:d}={}){const h={anchors:new Map,doc:this,keep:!n,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof l=="number"?l:100},g=_n(this.contents,i??"",h);if(typeof c=="function")for(const{count:v,res:S}of h.anchors.values())c(S,v);return typeof d=="function"?zs(d,{"":g},"",g):g}toJSON(n,i){return this.toJS({json:!0,jsonArg:n,mapAsMap:!1,onAnchor:i})}toString(n={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in n&&(!Number.isInteger(n.indent)||Number(n.indent)<=0)){const i=JSON.stringify(n.indent);throw new Error(`"indent" option must be a positive integer, not ${i}`)}return mB(this,n)}}function _s(e){if(bt(e))return!0;throw new Error("Expected a YAML collection as document contents")}class r1 extends Error{constructor(n,i,r,l){super(),this.name=n,this.code=r,this.message=l,this.pos=i}}class Ql extends r1{constructor(n,i,r){super("YAMLParseError",n,i,r)}}class hB extends r1{constructor(n,i,r){super("YAMLWarning",n,i,r)}}const ov=(e,n)=>i=>{if(i.pos[0]===-1)return;i.linePos=i.pos.map(h=>n.linePos(h));const{line:r,col:l}=i.linePos[0];i.message+=` at line ${r}, column ${l}`;let c=l-1,d=e.substring(n.lineStarts[r-1],n.lineStarts[r]).replace(/[\n\r]+$/,"");if(c>=60&&d.length>80){const h=Math.min(c-39,d.length-79);d="…"+d.substring(h),c-=h-1}if(d.length>80&&(d=d.substring(0,79)+"…"),r>1&&/^ *$/.test(d.substring(0,c))){let h=e.substring(n.lineStarts[r-2],n.lineStarts[r-1]);h.length>80&&(h=h.substring(0,79)+`…
|
|
121
121
|
`),d=h+d}if(/[^ ]/.test(d)){let h=1;const g=i.linePos[1];g?.line===r&&g.col>l&&(h=Math.max(1,Math.min(g.col-l,80-c)));const v=" ".repeat(c)+"^".repeat(h);i.message+=`:
|
|
122
122
|
|
|
123
123
|
${d}
|
|
124
124
|
${v}
|
|
125
125
|
`}};function Is(e,{flow:n,indicator:i,next:r,offset:l,onError:c,parentIndent:d,startOnNewline:h}){let g=!1,v=h,S=h,x="",N="",_=!1,O=!1,k=null,E=null,R=null,G=null,P=null,Y=null,I=null;for(const q of e)switch(O&&(q.type!=="space"&&q.type!=="newline"&&q.type!=="comma"&&c(q.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),O=!1),k&&(v&&q.type!=="comment"&&q.type!=="newline"&&c(k,"TAB_AS_INDENT","Tabs are not allowed as indentation"),k=null),q.type){case"space":!n&&(i!=="doc-start"||r?.type!=="flow-collection")&&q.source.includes(" ")&&(k=q),S=!0;break;case"comment":{S||c(q,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const ie=q.source.substring(1)||" ";x?x+=N+ie:x=ie,N="",v=!1;break}case"newline":v?x?x+=q.source:(!Y||i!=="seq-item-ind")&&(g=!0):N+=q.source,v=!0,_=!0,(E||R)&&(G=q),S=!0;break;case"anchor":E&&c(q,"MULTIPLE_ANCHORS","A node can have at most one anchor"),q.source.endsWith(":")&&c(q.offset+q.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),E=q,I??(I=q.offset),v=!1,S=!1,O=!0;break;case"tag":{R&&c(q,"MULTIPLE_TAGS","A node can have at most one tag"),R=q,I??(I=q.offset),v=!1,S=!1,O=!0;break}case i:(E||R)&&c(q,"BAD_PROP_ORDER",`Anchors and tags must be after the ${q.source} indicator`),Y&&c(q,"UNEXPECTED_TOKEN",`Unexpected ${q.source} in ${n??"collection"}`),Y=q,v=i==="seq-item-ind"||i==="explicit-key-ind",S=!1;break;case"comma":if(n){P&&c(q,"UNEXPECTED_TOKEN",`Unexpected , in ${n}`),P=q,v=!1,S=!1;break}default:c(q,"UNEXPECTED_TOKEN",`Unexpected ${q.type} token`),v=!1,S=!1}const se=e[e.length-1],z=se?se.offset+se.source.length:l;return O&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&c(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),k&&(v&&k.indent<=d||r?.type==="block-map"||r?.type==="block-seq")&&c(k,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:P,found:Y,spaceBefore:g,comment:x,hasNewline:_,anchor:E,tag:R,newlineAfterProp:G,end:z,start:I??z}}function lo(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(`
|
|
126
|
-
`))return!0;if(e.end){for(const n of e.end)if(n.type==="newline")return!0}return!1;case"flow-collection":for(const n of e.items){for(const i of n.start)if(i.type==="newline")return!0;if(n.sep){for(const i of n.sep)if(i.type==="newline")return!0}if(lo(n.key)||lo(n.value))return!0}return!1;default:return!0}}function Pf(e,n,i){if(n?.type==="flow-collection"){const r=n.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&lo(n)&&i(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function o1(e,n,i){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const l=typeof r=="function"?r:(c,d)=>c===d||nt(c)&&nt(d)&&c.value===d.value;return n.some(c=>l(c.key,i))}const lv="All mapping items must start at the same column";function
|
|
126
|
+
`))return!0;if(e.end){for(const n of e.end)if(n.type==="newline")return!0}return!1;case"flow-collection":for(const n of e.items){for(const i of n.start)if(i.type==="newline")return!0;if(n.sep){for(const i of n.sep)if(i.type==="newline")return!0}if(lo(n.key)||lo(n.value))return!0}return!1;default:return!0}}function Pf(e,n,i){if(n?.type==="flow-collection"){const r=n.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&lo(n)&&i(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function o1(e,n,i){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const l=typeof r=="function"?r:(c,d)=>c===d||nt(c)&&nt(d)&&c.value===d.value;return n.some(c=>l(c.key,i))}const lv="All mapping items must start at the same column";function gB({composeNode:e,composeEmptyNode:n},i,r,l,c){const d=c?.nodeClass??An,h=new d(i.schema);i.atRoot&&(i.atRoot=!1);let g=r.offset,v=null;for(const S of r.items){const{start:x,key:N,sep:_,value:O}=S,k=Is(x,{indicator:"explicit-key-ind",next:N??_?.[0],offset:g,onError:l,parentIndent:r.indent,startOnNewline:!0}),E=!k.found;if(E){if(N&&(N.type==="block-seq"?l(g,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in N&&N.indent!==r.indent&&l(g,"BAD_INDENT",lv)),!k.anchor&&!k.tag&&!_){v=k.end,k.comment&&(h.comment?h.comment+=`
|
|
127
127
|
`+k.comment:h.comment=k.comment);continue}(k.newlineAfterProp||lo(N))&&l(N??x[x.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else k.found?.indent!==r.indent&&l(g,"BAD_INDENT",lv);i.atKey=!0;const R=k.end,G=N?e(i,N,k,l):n(i,R,x,null,k,l);i.schema.compat&&Pf(r.indent,N,l),i.atKey=!1,o1(i,h.items,G)&&l(R,"DUPLICATE_KEY","Map keys must be unique");const P=Is(_??[],{indicator:"map-value-ind",next:O,offset:G.range[2],onError:l,parentIndent:r.indent,startOnNewline:!N||N.type==="block-scalar"});if(g=P.end,P.found){E&&(O?.type==="block-map"&&!P.hasNewline&&l(g,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),i.options.strict&&k.start<P.found.offset-1024&&l(G.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));const Y=O?e(i,O,P,l):n(i,g,_,null,P,l);i.schema.compat&&Pf(r.indent,O,l),g=Y.range[2];const I=new Kt(G,Y);i.options.keepSourceTokens&&(I.srcToken=S),h.items.push(I)}else{E&&l(G.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),P.comment&&(G.comment?G.comment+=`
|
|
128
|
-
`+P.comment:G.comment=P.comment);const Y=new Kt(G);i.options.keepSourceTokens&&(Y.srcToken=S),h.items.push(Y)}}return v&&v<g&&l(v,"IMPOSSIBLE","Map comment with trailing content"),h.range=[r.offset,g,v??g],h}function
|
|
128
|
+
`+P.comment:G.comment=P.comment);const Y=new Kt(G);i.options.keepSourceTokens&&(Y.srcToken=S),h.items.push(Y)}}return v&&v<g&&l(v,"IMPOSSIBLE","Map comment with trailing content"),h.range=[r.offset,g,v??g],h}function yB({composeNode:e,composeEmptyNode:n},i,r,l,c){const d=c?.nodeClass??Ci,h=new d(i.schema);i.atRoot&&(i.atRoot=!1),i.atKey&&(i.atKey=!1);let g=r.offset,v=null;for(const{start:S,value:x}of r.items){const N=Is(S,{indicator:"seq-item-ind",next:x,offset:g,onError:l,parentIndent:r.indent,startOnNewline:!0});if(!N.found)if(N.anchor||N.tag||x)x?.type==="block-seq"?l(N.end,"BAD_INDENT","All sequence items must start at the same column"):l(g,"MISSING_CHAR","Sequence item without - indicator");else{v=N.end,N.comment&&(h.comment=N.comment);continue}const _=x?e(i,x,N,l):n(i,N.end,S,null,N,l);i.schema.compat&&Pf(r.indent,x,l),g=_.range[2],h.items.push(_)}return h.range=[r.offset,g,v??g],h}function ho(e,n,i,r){let l="";if(e){let c=!1,d="";for(const h of e){const{source:g,type:v}=h;switch(v){case"space":c=!0;break;case"comment":{i&&!c&&r(h,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const S=g.substring(1)||" ";l?l+=d+S:l=S,d="";break}case"newline":l&&(d+=g),c=!0;break;default:r(h,"UNEXPECTED_TOKEN",`Unexpected ${v} at node end`)}n+=g.length}}return{comment:l,offset:n}}const yf="Block collections are not allowed within flow collections",bf=e=>e&&(e.type==="block-map"||e.type==="block-seq");function bB({composeNode:e,composeEmptyNode:n},i,r,l,c){const d=r.start.source==="{",h=d?"flow map":"flow sequence",g=c?.nodeClass??(d?An:Ci),v=new g(i.schema);v.flow=!0;const S=i.atRoot;S&&(i.atRoot=!1),i.atKey&&(i.atKey=!1);let x=r.offset+r.start.source.length;for(let E=0;E<r.items.length;++E){const R=r.items[E],{start:G,key:P,sep:Y,value:I}=R,se=Is(G,{flow:h,indicator:"explicit-key-ind",next:P??Y?.[0],offset:x,onError:l,parentIndent:r.indent,startOnNewline:!1});if(!se.found){if(!se.anchor&&!se.tag&&!Y&&!I){E===0&&se.comma?l(se.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${h}`):E<r.items.length-1&&l(se.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${h}`),se.comment&&(v.comment?v.comment+=`
|
|
129
129
|
`+se.comment:v.comment=se.comment),x=se.end;continue}!d&&i.options.strict&&lo(P)&&l(P,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(E===0)se.comma&&l(se.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${h}`);else if(se.comma||l(se.start,"MISSING_CHAR",`Missing , between ${h} items`),se.comment){let z="";e:for(const q of G)switch(q.type){case"comma":case"space":break;case"comment":z=q.source.substring(1);break e;default:break e}if(z){let q=v.items[v.items.length-1];xt(q)&&(q=q.value??q.key),q.comment?q.comment+=`
|
|
130
130
|
`+z:q.comment=z,se.comment=se.comment.substring(z.length+1)}}if(!d&&!Y&&!se.found){const z=I?e(i,I,se,l):n(i,se.end,Y,null,se,l);v.items.push(z),x=z.range[2],bf(I)&&l(z.range,"BLOCK_IN_FLOW",yf)}else{i.atKey=!0;const z=se.end,q=P?e(i,P,se,l):n(i,z,G,null,se,l);bf(P)&&l(q.range,"BLOCK_IN_FLOW",yf),i.atKey=!1;const ie=Is(Y??[],{flow:h,indicator:"map-value-ind",next:I,offset:q.range[2],onError:l,parentIndent:r.indent,startOnNewline:!1});if(ie.found){if(!d&&!se.found&&i.options.strict){if(Y)for(const ve of Y){if(ve===ie.found)break;if(ve.type==="newline"){l(ve,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}se.start<ie.found.offset-1024&&l(ie.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else I&&("source"in I&&I.source?.[0]===":"?l(I,"MISSING_CHAR",`Missing space after : in ${h}`):l(ie.start,"MISSING_CHAR",`Missing , or : between ${h} items`));const _e=I?e(i,I,ie,l):ie.found?n(i,ie.end,Y,null,ie,l):null;_e?bf(I)&&l(_e.range,"BLOCK_IN_FLOW",yf):ie.comment&&(q.comment?q.comment+=`
|
|
131
131
|
`+ie.comment:q.comment=ie.comment);const De=new Kt(q,_e);if(i.options.keepSourceTokens&&(De.srcToken=R),d){const ve=v;o1(i,ve.items,q)&&l(z,"DUPLICATE_KEY","Map keys must be unique"),ve.items.push(De)}else{const ve=new An(i.schema);ve.flow=!0,ve.items.push(De);const et=(_e??q).range;ve.range=[q.range[0],et[1],et[2]],v.items.push(ve)}x=_e?_e.range[2]:ie.end}}const N=d?"}":"]",[_,...O]=r.end;let k=x;if(_?.source===N)k=_.offset+_.source.length;else{const E=h[0].toUpperCase()+h.substring(1),R=S?`${E} must end with a ${N}`:`${E} in block collection must be sufficiently indented and end with a ${N}`;l(x,S?"MISSING_CHAR":"BAD_INDENT",R),_&&_.source.length!==1&&O.unshift(_)}if(O.length>0){const E=ho(O,k,i.options.strict,l);E.comment&&(v.comment?v.comment+=`
|
|
132
|
-
`+E.comment:v.comment=E.comment),v.range=[r.offset,k,E.offset]}else v.range=[r.offset,k,k];return v}function vf(e,n,i,r,l,c){const d=i.type==="block-map"?
|
|
132
|
+
`+E.comment:v.comment=E.comment),v.range=[r.offset,k,E.offset]}else v.range=[r.offset,k,k];return v}function vf(e,n,i,r,l,c){const d=i.type==="block-map"?gB(e,n,i,r,c):i.type==="block-seq"?yB(e,n,i,r,c):bB(e,n,i,r,c),h=d.constructor;return l==="!"||l===h.tagName?(d.tag=h.tagName,d):(l&&(d.tag=l),d)}function vB(e,n,i,r,l){const c=r.tag,d=c?n.directives.tagName(c.source,N=>l(c,"TAG_RESOLVE_FAILED",N)):null;if(i.type==="block-seq"){const{anchor:N,newlineAfterProp:_}=r,O=N&&c?N.offset>c.offset?N:c:N??c;O&&(!_||_.offset<O.offset)&&l(O,"MISSING_CHAR","Missing newline after block sequence props")}const h=i.type==="block-map"?"map":i.type==="block-seq"?"seq":i.start.source==="{"?"map":"seq";if(!c||!d||d==="!"||d===An.tagName&&h==="map"||d===Ci.tagName&&h==="seq")return vf(e,n,i,l,d);let g=n.schema.tags.find(N=>N.tag===d&&N.collection===h);if(!g){const N=n.schema.knownTags[d];if(N?.collection===h)n.schema.tags.push(Object.assign({},N,{default:!1})),g=N;else return N?l(c,"BAD_COLLECTION_TYPE",`${N.tag} used for ${h} collection, but expects ${N.collection??"scalar"}`,!0):l(c,"TAG_RESOLVE_FAILED",`Unresolved tag: ${d}`,!0),vf(e,n,i,l,d)}const v=vf(e,n,i,l,d,g),S=g.resolve?.(v,N=>l(c,"TAG_RESOLVE_FAILED",N),n.options)??v,x=St(S)?S:new Ce(S);return x.range=v.range,x.tag=d,g?.format&&(x.format=g.format),x}function SB(e,n,i){const r=n.offset,l=xB(n,e.options.strict,i);if(!l)return{value:"",type:null,comment:"",range:[r,r,r]};const c=l.mode===">"?Ce.BLOCK_FOLDED:Ce.BLOCK_LITERAL,d=n.source?wB(n.source):[];let h=d.length;for(let k=d.length-1;k>=0;--k){const E=d[k][1];if(E===""||E==="\r")h=k;else break}if(h===0){const k=l.chomp==="+"&&d.length>0?`
|
|
133
133
|
`.repeat(Math.max(1,d.length-1)):"";let E=r+l.length;return n.source&&(E+=n.source.length),{value:k,type:c,comment:l.comment,range:[r,E,E]}}let g=n.indent+l.indent,v=n.offset+l.length,S=0;for(let k=0;k<h;++k){const[E,R]=d[k];if(R===""||R==="\r")l.indent===0&&E.length>g&&(g=E.length);else{E.length<g&&i(v+E.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),l.indent===0&&(g=E.length),S=k,g===0&&!e.atRoot&&i(v,"BAD_INDENT","Block scalar values in collections must be indented");break}v+=E.length+R.length+1}for(let k=d.length-1;k>=h;--k)d[k][0].length>g&&(h=k+1);let x="",N="",_=!1;for(let k=0;k<S;++k)x+=d[k][0].slice(g)+`
|
|
134
134
|
`;for(let k=S;k<h;++k){let[E,R]=d[k];v+=E.length+R.length+1;const G=R[R.length-1]==="\r";if(G&&(R=R.slice(0,-1)),R&&E.length<g){const Y=`Block scalar lines must not be less indented than their ${l.indent?"explicit indentation indicator":"first line"}`;i(v-R.length-(G?2:1),"BAD_INDENT",Y),E=""}c===Ce.BLOCK_LITERAL?(x+=N+E.slice(g)+R,N=`
|
|
135
135
|
`):E.length>g||R[0]===" "?(N===" "?N=`
|
|
@@ -144,33 +144,33 @@ ${v}
|
|
|
144
144
|
`+d[k][0].slice(g);x[x.length-1]!==`
|
|
145
145
|
`&&(x+=`
|
|
146
146
|
`);break;default:x+=`
|
|
147
|
-
`}const O=r+l.length+n.source.length;return{value:x,type:c,comment:l.comment,range:[r,O,O]}}function
|
|
147
|
+
`}const O=r+l.length+n.source.length;return{value:x,type:c,comment:l.comment,range:[r,O,O]}}function xB({offset:e,props:n},i,r){if(n[0].type!=="block-scalar-header")return r(n[0],"IMPOSSIBLE","Block scalar header not found"),null;const{source:l}=n[0],c=l[0];let d=0,h="",g=-1;for(let N=1;N<l.length;++N){const _=l[N];if(!h&&(_==="-"||_==="+"))h=_;else{const O=Number(_);!d&&O?d=O:g===-1&&(g=e+N)}}g!==-1&&r(g,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${l}`);let v=!1,S="",x=l.length;for(let N=1;N<n.length;++N){const _=n[N];switch(_.type){case"space":v=!0;case"newline":x+=_.source.length;break;case"comment":i&&!v&&r(_,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),x+=_.source.length,S=_.source.substring(1);break;case"error":r(_,"UNEXPECTED_TOKEN",_.message),x+=_.source.length;break;default:{const O=`Unexpected token in block scalar header: ${_.type}`;r(_,"UNEXPECTED_TOKEN",O);const k=_.source;k&&typeof k=="string"&&(x+=k.length)}}}return{mode:c,indent:d,chomp:h,comment:S,length:x}}function wB(e){const n=e.split(/\n( *)/),i=n[0],r=i.match(/^( *)/),c=[r?.[1]?[r[1],i.slice(r[1].length)]:["",i]];for(let d=1;d<n.length;d+=2)c.push([n[d],n[d+1]]);return c}function jB(e,n,i){const{offset:r,type:l,source:c,end:d}=e;let h,g;const v=(N,_,O)=>i(r+N,_,O);switch(l){case"scalar":h=Ce.PLAIN,g=NB(c,v);break;case"single-quoted-scalar":h=Ce.QUOTE_SINGLE,g=kB(c,v);break;case"double-quoted-scalar":h=Ce.QUOTE_DOUBLE,g=AB(c,v);break;default:return i(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${l}`),{value:"",type:null,comment:"",range:[r,r+c.length,r+c.length]}}const S=r+c.length,x=ho(d,S,n,i);return{value:g,type:h,comment:x.comment,range:[r,S,x.offset]}}function NB(e,n){let i="";switch(e[0]){case" ":i="a tab character";break;case",":i="flow indicator character ,";break;case"%":i="directive indicator character %";break;case"|":case">":{i=`block scalar indicator ${e[0]}`;break}case"@":case"`":{i=`reserved character ${e[0]}`;break}}return i&&n(0,"BAD_SCALAR_START",`Plain value cannot start with ${i}`),l1(e)}function kB(e,n){return(e[e.length-1]!=="'"||e.length===1)&&n(e.length,"MISSING_CHAR","Missing closing 'quote"),l1(e.slice(1,-1)).replace(/''/g,"'")}function l1(e){let n,i;try{n=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
148
148
|
`,"sy"),i=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
149
149
|
`,"sy")}catch{n=/(.*?)[ \t]*\r?\n/sy,i=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=n.exec(e);if(!r)return e;let l=r[1],c=" ",d=n.lastIndex;for(i.lastIndex=d;r=i.exec(e);)r[1]===""?c===`
|
|
150
150
|
`?l+=c:c=`
|
|
151
|
-
`:(l+=c+r[1],c=" "),d=i.lastIndex;const h=/[ \t]*(.*)/sy;return h.lastIndex=d,r=h.exec(e),l+c+(r?.[1]??"")}function
|
|
151
|
+
`:(l+=c+r[1],c=" "),d=i.lastIndex;const h=/[ \t]*(.*)/sy;return h.lastIndex=d,r=h.exec(e),l+c+(r?.[1]??"")}function AB(e,n){let i="";for(let r=1;r<e.length-1;++r){const l=e[r];if(!(l==="\r"&&e[r+1]===`
|
|
152
152
|
`))if(l===`
|
|
153
|
-
`){const{fold:c,offset:d}=
|
|
153
|
+
`){const{fold:c,offset:d}=_B(e,r);i+=c,r=d}else if(l==="\\"){let c=e[++r];const d=CB[c];if(d)i+=d;else if(c===`
|
|
154
154
|
`)for(c=e[r+1];c===" "||c===" ";)c=e[++r+1];else if(c==="\r"&&e[r+1]===`
|
|
155
|
-
`)for(c=e[++r+1];c===" "||c===" ";)c=e[++r+1];else if(c==="x"||c==="u"||c==="U"){const h={x:2,u:4,U:8}[c];i+=
|
|
155
|
+
`)for(c=e[++r+1];c===" "||c===" ";)c=e[++r+1];else if(c==="x"||c==="u"||c==="U"){const h={x:2,u:4,U:8}[c];i+=TB(e,r+1,h,n),r+=h}else{const h=e.substr(r-1,2);n(r-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${h}`),i+=h}}else if(l===" "||l===" "){const c=r;let d=e[r+1];for(;d===" "||d===" ";)d=e[++r+1];d!==`
|
|
156
156
|
`&&!(d==="\r"&&e[r+2]===`
|
|
157
|
-
`)&&(i+=r>c?e.slice(c,r+1):l)}else i+=l}return(e[e.length-1]!=='"'||e.length===1)&&n(e.length,"MISSING_CHAR",'Missing closing "quote'),i}function
|
|
157
|
+
`)&&(i+=r>c?e.slice(c,r+1):l)}else i+=l}return(e[e.length-1]!=='"'||e.length===1)&&n(e.length,"MISSING_CHAR",'Missing closing "quote'),i}function _B(e,n){let i="",r=e[n+1];for(;(r===" "||r===" "||r===`
|
|
158
158
|
`||r==="\r")&&!(r==="\r"&&e[n+2]!==`
|
|
159
159
|
`);)r===`
|
|
160
160
|
`&&(i+=`
|
|
161
|
-
`),n+=1,r=e[n+1];return i||(i=" "),{fold:i,offset:n}}const
|
|
162
|
-
`,r:"\r",t:" ",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
161
|
+
`),n+=1,r=e[n+1];return i||(i=" "),{fold:i,offset:n}}const CB={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
162
|
+
`,r:"\r",t:" ",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function TB(e,n,i,r){const l=e.substr(n,i),d=l.length===i&&/^[0-9a-fA-F]+$/.test(l)?parseInt(l,16):NaN;if(isNaN(d)){const h=e.substr(n-2,i+2);return r(n-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${h}`),h}return String.fromCodePoint(d)}function c1(e,n,i,r){const{value:l,type:c,comment:d,range:h}=n.type==="block-scalar"?SB(e,n,r):jB(n,e.options.strict,r),g=i?e.directives.tagName(i.source,x=>r(i,"TAG_RESOLVE_FAILED",x)):null;let v;e.options.stringKeys&&e.atKey?v=e.schema[Qn]:g?v=EB(e.schema,l,g,i,r):n.type==="scalar"?v=OB(e,l,n,r):v=e.schema[Qn];let S;try{const x=v.resolve(l,N=>r(i??n,"TAG_RESOLVE_FAILED",N),e.options);S=nt(x)?x:new Ce(x)}catch(x){const N=x instanceof Error?x.message:String(x);r(i??n,"TAG_RESOLVE_FAILED",N),S=new Ce(l)}return S.range=h,S.source=l,c&&(S.type=c),g&&(S.tag=g),v.format&&(S.format=v.format),d&&(S.comment=d),S}function EB(e,n,i,r,l){if(i==="!")return e[Qn];const c=[];for(const h of e.tags)if(!h.collection&&h.tag===i)if(h.default&&h.test)c.push(h);else return h;for(const h of c)if(h.test?.test(n))return h;const d=e.knownTags[i];return d&&!d.collection?(e.tags.push(Object.assign({},d,{default:!1,test:void 0})),d):(l(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${i}`,i!=="tag:yaml.org,2002:str"),e[Qn])}function OB({atKey:e,directives:n,schema:i},r,l,c){const d=i.tags.find(h=>(h.default===!0||e&&h.default==="key")&&h.test?.test(r))||i[Qn];if(i.compat){const h=i.compat.find(g=>g.default&&g.test?.test(r))??i[Qn];if(d.tag!==h.tag){const g=n.tagString(d.tag),v=n.tagString(h.tag),S=`Value may be parsed as either ${g} or ${v}`;c(l,"TAG_RESOLVE_FAILED",S,!0)}}return d}function zB(e,n,i){if(n){i??(i=n.length);for(let r=i-1;r>=0;--r){let l=n[r];switch(l.type){case"space":case"comment":case"newline":e-=l.source.length;continue}for(l=n[++r];l?.type==="space";)e+=l.source.length,l=n[++r];break}}return e}const DB={composeNode:u1,composeEmptyNode:Zp};function u1(e,n,i,r){const l=e.atKey,{spaceBefore:c,comment:d,anchor:h,tag:g}=i;let v,S=!0;switch(n.type){case"alias":v=RB(e,n,r),(h||g)&&r(n,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":v=c1(e,n,g,r),h&&(v.anchor=h.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":v=vB(DB,e,n,i,r),h&&(v.anchor=h.source.substring(1));break;default:{const x=n.type==="error"?n.message:`Unsupported token (type: ${n.type})`;r(n,"UNEXPECTED_TOKEN",x),v=Zp(e,n.offset,void 0,null,i,r),S=!1}}return h&&v.anchor===""&&r(h,"BAD_ALIAS","Anchor cannot be an empty string"),l&&e.options.stringKeys&&(!nt(v)||typeof v.value!="string"||v.tag&&v.tag!=="tag:yaml.org,2002:str")&&r(g??n,"NON_STRING_KEY","With stringKeys, all keys must be strings"),c&&(v.spaceBefore=!0),d&&(n.type==="scalar"&&n.source===""?v.comment=d:v.commentBefore=d),e.options.keepSourceTokens&&S&&(v.srcToken=n),v}function Zp(e,n,i,r,{spaceBefore:l,comment:c,anchor:d,tag:h,end:g},v){const S={type:"scalar",offset:zB(n,i,r),indent:-1,source:""},x=c1(e,S,h,v);return d&&(x.anchor=d.source.substring(1),x.anchor===""&&v(d,"BAD_ALIAS","Anchor cannot be an empty string")),l&&(x.spaceBefore=!0),c&&(x.comment=c,x.range[2]=g),x}function RB({options:e},{offset:n,source:i,end:r},l){const c=new Bp(i.substring(1));c.source===""&&l(n,"BAD_ALIAS","Alias cannot be an empty string"),c.source.endsWith(":")&&l(n+i.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const d=n+i.length,h=ho(r,d,e.strict,l);return c.range=[n,d,h.offset],h.comment&&(c.comment=h.comment),c}function MB(e,n,{offset:i,start:r,value:l,end:c},d){const h=Object.assign({_directives:n},e),g=new Bc(void 0,h),v={atKey:!1,atRoot:!0,directives:g.directives,options:g.options,schema:g.schema},S=Is(r,{indicator:"doc-start",next:l??c?.[0],offset:i,onError:d,parentIndent:0,startOnNewline:!0});S.found&&(g.directives.docStart=!0,l&&(l.type==="block-map"||l.type==="block-seq")&&!S.hasNewline&&d(S.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),g.contents=l?u1(v,l,S,d):Zp(v,S.end,r,null,S,d);const x=g.contents.range[2],N=ho(c,x,!1,d);return N.comment&&(g.comment=N.comment),g.range=[i,x,N.offset],g}function Jr(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:n,source:i}=e;return[n,n+(typeof i=="string"?i.length:1)]}function cv(e){let n="",i=!1,r=!1;for(let l=0;l<e.length;++l){const c=e[l];switch(c[0]){case"#":n+=(n===""?"":r?`
|
|
163
163
|
|
|
164
164
|
`:`
|
|
165
|
-
`)+(c.substring(1)||" "),i=!0,r=!1;break;case"%":e[l+1]?.[0]!=="#"&&(l+=1),i=!1;break;default:i||(r=!0),i=!1}}return{comment:n,afterEmptyLine:r}}class
|
|
165
|
+
`)+(c.substring(1)||" "),i=!0,r=!1;break;case"%":e[l+1]?.[0]!=="#"&&(l+=1),i=!1;break;default:i||(r=!0),i=!1}}return{comment:n,afterEmptyLine:r}}class BB{constructor(n={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(i,r,l,c)=>{const d=Jr(i);c?this.warnings.push(new hB(d,r,l)):this.errors.push(new Ql(d,r,l))},this.directives=new Ht({version:n.version||"1.2"}),this.options=n}decorate(n,i){const{comment:r,afterEmptyLine:l}=cv(this.prelude);if(r){const c=n.contents;if(i)n.comment=n.comment?`${n.comment}
|
|
166
166
|
${r}`:r;else if(l||n.directives.docStart||!c)n.commentBefore=r;else if(bt(c)&&!c.flow&&c.items.length>0){let d=c.items[0];xt(d)&&(d=d.key);const h=d.commentBefore;d.commentBefore=h?`${r}
|
|
167
167
|
${h}`:r}else{const d=c.commentBefore;c.commentBefore=d?`${r}
|
|
168
|
-
${d}`:r}}i?(Array.prototype.push.apply(n.errors,this.errors),Array.prototype.push.apply(n.warnings,this.warnings)):(n.errors=this.errors,n.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:cv(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(n,i=!1,r=-1){for(const l of n)yield*this.next(l);yield*this.end(i,r)}*next(n){switch(n.type){case"directive":this.directives.add(n.source,(i,r,l)=>{const c=Jr(n);c[0]+=i,this.onError(c,"BAD_DIRECTIVE",r,l)}),this.prelude.push(n.source),this.atDirectives=!0;break;case"document":{const i=
|
|
169
|
-
${i.comment}`:i.comment}this.doc.range[2]=i.offset;break}default:this.errors.push(new Ql(Jr(n),"UNEXPECTED_TOKEN",`Unsupported token ${n.type}`))}}*end(n=!1,i=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(n){const r=Object.assign({_directives:this.directives},this.options),l=new Bc(void 0,r);this.atDirectives&&this.onError(i,"MISSING_CHAR","Missing directives-end indicator line"),l.range=[0,i,i],this.decorate(l,!1),yield l}}}const d1="\uFEFF",f1="",p1="",Gf="";function
|
|
168
|
+
${d}`:r}}i?(Array.prototype.push.apply(n.errors,this.errors),Array.prototype.push.apply(n.warnings,this.warnings)):(n.errors=this.errors,n.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:cv(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(n,i=!1,r=-1){for(const l of n)yield*this.next(l);yield*this.end(i,r)}*next(n){switch(n.type){case"directive":this.directives.add(n.source,(i,r,l)=>{const c=Jr(n);c[0]+=i,this.onError(c,"BAD_DIRECTIVE",r,l)}),this.prelude.push(n.source),this.atDirectives=!0;break;case"document":{const i=MB(this.options,this.directives,n,this.onError);this.atDirectives&&!i.directives.docStart&&this.onError(n,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(i,!1),this.doc&&(yield this.doc),this.doc=i,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(n.source);break;case"error":{const i=n.source?`${n.message}: ${JSON.stringify(n.source)}`:n.message,r=new Ql(Jr(n),"UNEXPECTED_TOKEN",i);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const r="Unexpected doc-end without preceding document";this.errors.push(new Ql(Jr(n),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const i=ho(n.end,n.offset+n.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),i.comment){const r=this.doc.comment;this.doc.comment=r?`${r}
|
|
169
|
+
${i.comment}`:i.comment}this.doc.range[2]=i.offset;break}default:this.errors.push(new Ql(Jr(n),"UNEXPECTED_TOKEN",`Unsupported token ${n.type}`))}}*end(n=!1,i=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(n){const r=Object.assign({_directives:this.directives},this.options),l=new Bc(void 0,r);this.atDirectives&&this.onError(i,"MISSING_CHAR","Missing directives-end indicator line"),l.range=[0,i,i],this.decorate(l,!1),yield l}}}const d1="\uFEFF",f1="",p1="",Gf="";function LB(e){switch(e){case d1:return"byte-order-mark";case f1:return"doc-mode";case p1:return"flow-error-end";case Gf:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
170
170
|
`:case`\r
|
|
171
171
|
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Rn(e){switch(e){case void 0:case" ":case`
|
|
172
|
-
`:case"\r":case" ":return!0;default:return!1}}const uv=new Set("0123456789ABCDEFabcdef"),
|
|
173
|
-
\r `),Sf=e=>!e||
|
|
172
|
+
`:case"\r":case" ":return!0;default:return!1}}const uv=new Set("0123456789ABCDEFabcdef"),qB=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Kl=new Set(",[]{}"),UB=new Set(` ,[]{}
|
|
173
|
+
\r `),Sf=e=>!e||UB.has(e);class $B{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(n,i=!1){if(n){if(typeof n!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+n:n,this.lineEndPos=null}this.atEnd=!i;let r=this.next??"stream";for(;r&&(i||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let n=this.pos,i=this.buffer[n];for(;i===" "||i===" ";)i=this.buffer[++n];return!i||i==="#"||i===`
|
|
174
174
|
`?!0:i==="\r"?this.buffer[n+1]===`
|
|
175
175
|
`:!1}charAt(n){return this.buffer[this.pos+n]}continueScalar(n){let i=this.buffer[n];if(this.indentNext>0){let r=0;for(;i===" ";)i=this.buffer[++r+n];if(i==="\r"){const l=this.buffer[r+n+1];if(l===`
|
|
176
176
|
`||!l&&!this.atEnd)return n+r+1}return i===`
|
|
@@ -185,13 +185,13 @@ ${i.comment}`:i.comment}this.doc.range[2]=i.offset;break}default:this.errors.pus
|
|
|
185
185
|
`&&c>=this.pos&&c+1+i>h)n=c;else break}while(!0);return yield Gf,yield*this.pushToIndex(n+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const n=this.flowLevel>0;let i=this.pos-1,r=this.pos-1,l;for(;l=this.buffer[++r];)if(l===":"){const c=this.buffer[r+1];if(Rn(c)||n&&Kl.has(c))break;i=r}else if(Rn(l)){let c=this.buffer[r+1];if(l==="\r"&&(c===`
|
|
186
186
|
`?(r+=1,l=`
|
|
187
187
|
`,c=this.buffer[r+1]):i=r),c==="#"||n&&Kl.has(c))break;if(l===`
|
|
188
|
-
`){const d=this.continueScalar(r+1);if(d===-1)break;r=Math.max(r,d-2)}}else{if(n&&Kl.has(l))break;i=r}return!l&&!this.atEnd?this.setNext("plain-scalar"):(yield Gf,yield*this.pushToIndex(i+1,!0),n?"flow":"doc")}*pushCount(n){return n>0?(yield this.buffer.substr(this.pos,n),this.pos+=n,n):0}*pushToIndex(n,i){const r=this.buffer.slice(this.pos,n);return r?(yield r,this.pos+=r.length,r.length):(i&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(Sf))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const n=this.flowLevel>0,i=this.charAt(1);if(Rn(i)||n&&Kl.has(i))return n?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let n=this.pos+2,i=this.buffer[n];for(;!Rn(i)&&i!==">";)i=this.buffer[++n];return yield*this.pushToIndex(i===">"?n+1:n,!1)}else{let n=this.pos+1,i=this.buffer[n];for(;i;)if(
|
|
188
|
+
`){const d=this.continueScalar(r+1);if(d===-1)break;r=Math.max(r,d-2)}}else{if(n&&Kl.has(l))break;i=r}return!l&&!this.atEnd?this.setNext("plain-scalar"):(yield Gf,yield*this.pushToIndex(i+1,!0),n?"flow":"doc")}*pushCount(n){return n>0?(yield this.buffer.substr(this.pos,n),this.pos+=n,n):0}*pushToIndex(n,i){const r=this.buffer.slice(this.pos,n);return r?(yield r,this.pos+=r.length,r.length):(i&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(Sf))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const n=this.flowLevel>0,i=this.charAt(1);if(Rn(i)||n&&Kl.has(i))return n?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let n=this.pos+2,i=this.buffer[n];for(;!Rn(i)&&i!==">";)i=this.buffer[++n];return yield*this.pushToIndex(i===">"?n+1:n,!1)}else{let n=this.pos+1,i=this.buffer[n];for(;i;)if(qB.has(i))i=this.buffer[++n];else if(i==="%"&&uv.has(this.buffer[n+1])&&uv.has(this.buffer[n+2]))i=this.buffer[n+=3];else break;return yield*this.pushToIndex(n,!1)}}*pushNewline(){const n=this.buffer[this.pos];return n===`
|
|
189
189
|
`?yield*this.pushCount(1):n==="\r"&&this.charAt(1)===`
|
|
190
|
-
`?yield*this.pushCount(2):0}*pushSpaces(n){let i=this.pos-1,r;do r=this.buffer[++i];while(r===" "||n&&r===" ");const l=i-this.pos;return l>0&&(yield this.buffer.substr(this.pos,l),this.pos=i),l}*pushUntil(n){let i=this.pos,r=this.buffer[i];for(;!n(r);)r=this.buffer[++i];return yield*this.pushToIndex(i,!1)}}class
|
|
190
|
+
`?yield*this.pushCount(2):0}*pushSpaces(n){let i=this.pos-1,r;do r=this.buffer[++i];while(r===" "||n&&r===" ");const l=i-this.pos;return l>0&&(yield this.buffer.substr(this.pos,l),this.pos=i),l}*pushUntil(n){let i=this.pos,r=this.buffer[i];for(;!n(r);)r=this.buffer[++i];return yield*this.pushToIndex(i,!1)}}class VB{constructor(){this.lineStarts=[],this.addNewLine=n=>this.lineStarts.push(n),this.linePos=n=>{let i=0,r=this.lineStarts.length;for(;i<r;){const c=i+r>>1;this.lineStarts[c]<n?i=c+1:r=c}if(this.lineStarts[i]===n)return{line:i+1,col:1};if(i===0)return{line:0,col:n};const l=this.lineStarts[i-1];return{line:i,col:n-l+1}}}}function Ya(e,n){for(let i=0;i<e.length;++i)if(e[i].type===n)return!0;return!1}function dv(e){for(let n=0;n<e.length;++n)switch(e[n].type){case"space":case"comment":case"newline":break;default:return n}return-1}function m1(e){switch(e?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function Zl(e){switch(e.type){case"document":return e.start;case"block-map":{const n=e.items[e.items.length-1];return n.sep??n.start}case"block-seq":return e.items[e.items.length-1].start;default:return[]}}function Cs(e){if(e.length===0)return[];let n=e.length;e:for(;--n>=0;)switch(e[n].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;e[++n]?.type==="space";);return e.splice(n,e.length)}function fv(e){if(e.start.type==="flow-seq-start")for(const n of e.items)n.sep&&!n.value&&!Ya(n.start,"explicit-key-ind")&&!Ya(n.sep,"map-value-ind")&&(n.key&&(n.value=n.key),delete n.key,m1(n.value)?n.value.end?Array.prototype.push.apply(n.value.end,n.sep):n.value.end=n.sep:Array.prototype.push.apply(n.start,n.sep),delete n.sep)}class IB{constructor(n){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new $B,this.onNewLine=n}*parse(n,i=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(const r of this.lexer.lex(n,i))yield*this.next(r);i||(yield*this.end())}*next(n){if(this.source=n,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=n.length;return}const i=LB(n);if(i)if(i==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=i,yield*this.step(),i){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+n.length);break;case"space":this.atNewLine&&n[0]===" "&&(this.indent+=n.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=n.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=n.length}else{const r=`Not a YAML token: ${n}`;yield*this.pop({type:"error",offset:this.offset,message:r,source:n}),this.offset+=n.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const n=this.peek(1);if(this.type==="doc-end"&&n?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!n)return yield*this.stream();switch(n.type){case"document":return yield*this.document(n);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(n);case"block-scalar":return yield*this.blockScalar(n);case"block-map":return yield*this.blockMap(n);case"block-seq":return yield*this.blockSequence(n);case"flow-collection":return yield*this.flowCollection(n);case"doc-end":return yield*this.documentEnd(n)}yield*this.pop()}peek(n){return this.stack[this.stack.length-n]}*pop(n){const i=n??this.stack.pop();if(!i)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield i;else{const r=this.peek(1);switch(i.type==="block-scalar"?i.indent="indent"in r?r.indent:0:i.type==="flow-collection"&&r.type==="document"&&(i.indent=0),i.type==="flow-collection"&&fv(i),r.type){case"document":r.value=i;break;case"block-scalar":r.props.push(i);break;case"block-map":{const l=r.items[r.items.length-1];if(l.value){r.items.push({start:[],key:i,sep:[]}),this.onKeyLine=!0;return}else if(l.sep)l.value=i;else{Object.assign(l,{key:i,sep:[]}),this.onKeyLine=!l.explicitKey;return}break}case"block-seq":{const l=r.items[r.items.length-1];l.value?r.items.push({start:[],value:i}):l.value=i;break}case"flow-collection":{const l=r.items[r.items.length-1];!l||l.value?r.items.push({start:[],key:i,sep:[]}):l.sep?l.value=i:Object.assign(l,{key:i,sep:[]});return}default:yield*this.pop(),yield*this.pop(i)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(i.type==="block-map"||i.type==="block-seq")){const l=i.items[i.items.length-1];l&&!l.sep&&!l.value&&l.start.length>0&&dv(l.start)===-1&&(i.indent===0||l.start.every(c=>c.type!=="comment"||c.indent<i.indent))&&(r.type==="document"?r.end=l.start:r.items.push({start:l.start}),i.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{const n={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&n.start.push(this.sourceToken),this.stack.push(n);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(n){if(n.value)return yield*this.lineEnd(n);switch(this.type){case"doc-start":{dv(n.start)!==-1?(yield*this.pop(),yield*this.step()):n.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":n.start.push(this.sourceToken);return}const i=this.startBlockValue(n);i?this.stack.push(i):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(n){if(this.type==="map-value-ind"){const i=Zl(this.peek(2)),r=Cs(i);let l;n.end?(l=n.end,l.push(this.sourceToken),delete n.end):l=[this.sourceToken];const c={type:"block-map",offset:n.offset,indent:n.indent,items:[{start:r,key:n,sep:l}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=c}else yield*this.lineEnd(n)}*blockScalar(n){switch(this.type){case"space":case"comment":case"newline":n.props.push(this.sourceToken);return;case"scalar":if(n.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let i=this.source.indexOf(`
|
|
191
191
|
`)+1;for(;i!==0;)this.onNewLine(this.offset+i),i=this.source.indexOf(`
|
|
192
192
|
`,i)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(n){const i=n.items[n.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,i.value){const r="end"in i.value?i.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):n.items.push({start:[this.sourceToken]})}else i.sep?i.sep.push(this.sourceToken):i.start.push(this.sourceToken);return;case"space":case"comment":if(i.value)n.items.push({start:[this.sourceToken]});else if(i.sep)i.sep.push(this.sourceToken);else{if(this.atIndentedComment(i.start,n.indent)){const l=n.items[n.items.length-2]?.value?.end;if(Array.isArray(l)){Array.prototype.push.apply(l,i.start),l.push(this.sourceToken),n.items.pop();return}}i.start.push(this.sourceToken)}return}if(this.indent>=n.indent){const r=!this.onKeyLine&&this.indent===n.indent,l=r&&(i.sep||i.explicitKey)&&this.type!=="seq-item-ind";let c=[];if(l&&i.sep&&!i.value){const d=[];for(let h=0;h<i.sep.length;++h){const g=i.sep[h];switch(g.type){case"newline":d.push(h);break;case"space":break;case"comment":g.indent>n.indent&&(d.length=0);break;default:d.length=0}}d.length>=2&&(c=i.sep.splice(d[1]))}switch(this.type){case"anchor":case"tag":l||i.value?(c.push(this.sourceToken),n.items.push({start:c}),this.onKeyLine=!0):i.sep?i.sep.push(this.sourceToken):i.start.push(this.sourceToken);return;case"explicit-key-ind":!i.sep&&!i.explicitKey?(i.start.push(this.sourceToken),i.explicitKey=!0):l||i.value?(c.push(this.sourceToken),n.items.push({start:c,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(i.explicitKey)if(i.sep)if(i.value)n.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ya(i.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:c,key:null,sep:[this.sourceToken]}]});else if(m1(i.key)&&!Ya(i.sep,"newline")){const d=Cs(i.start),h=i.key,g=i.sep;g.push(this.sourceToken),delete i.key,delete i.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:d,key:h,sep:g}]})}else c.length>0?i.sep=i.sep.concat(c,this.sourceToken):i.sep.push(this.sourceToken);else if(Ya(i.start,"newline"))Object.assign(i,{key:null,sep:[this.sourceToken]});else{const d=Cs(i.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:d,key:null,sep:[this.sourceToken]}]})}else i.sep?i.value||l?n.items.push({start:c,key:null,sep:[this.sourceToken]}):Ya(i.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):i.sep.push(this.sourceToken):Object.assign(i,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const d=this.flowScalar(this.type);l||i.value?(n.items.push({start:c,key:d,sep:[]}),this.onKeyLine=!0):i.sep?this.stack.push(d):(Object.assign(i,{key:d,sep:[]}),this.onKeyLine=!0);return}default:{const d=this.startBlockValue(n);if(d){if(d.type==="block-seq"){if(!i.explicitKey&&i.sep&&!Ya(i.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else r&&n.items.push({start:c});this.stack.push(d);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(n){const i=n.items[n.items.length-1];switch(this.type){case"newline":if(i.value){const r="end"in i.value?i.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):n.items.push({start:[this.sourceToken]})}else i.start.push(this.sourceToken);return;case"space":case"comment":if(i.value)n.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(i.start,n.indent)){const l=n.items[n.items.length-2]?.value?.end;if(Array.isArray(l)){Array.prototype.push.apply(l,i.start),l.push(this.sourceToken),n.items.pop();return}}i.start.push(this.sourceToken)}return;case"anchor":case"tag":if(i.value||this.indent<=n.indent)break;i.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==n.indent)break;i.value||Ya(i.start,"seq-item-ind")?n.items.push({start:[this.sourceToken]}):i.start.push(this.sourceToken);return}if(this.indent>n.indent){const r=this.startBlockValue(n);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(n){const i=n.items[n.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while(r?.type==="flow-collection")}else if(n.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!i||i.sep?n.items.push({start:[this.sourceToken]}):i.start.push(this.sourceToken);return;case"map-value-ind":!i||i.value?n.items.push({start:[],key:null,sep:[this.sourceToken]}):i.sep?i.sep.push(this.sourceToken):Object.assign(i,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!i||i.value?n.items.push({start:[this.sourceToken]}):i.sep?i.sep.push(this.sourceToken):i.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const l=this.flowScalar(this.type);!i||i.value?n.items.push({start:[],key:l,sep:[]}):i.sep?this.stack.push(l):Object.assign(i,{key:l,sep:[]});return}case"flow-map-end":case"flow-seq-end":n.end.push(this.sourceToken);return}const r=this.startBlockValue(n);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{const r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===n.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){const l=Zl(r),c=Cs(l);fv(n);const d=n.end.splice(1,n.end.length);d.push(this.sourceToken);const h={type:"block-map",offset:n.offset,indent:n.indent,items:[{start:c,key:n,sep:d}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=h}else yield*this.lineEnd(n)}}flowScalar(n){if(this.onNewLine){let i=this.source.indexOf(`
|
|
193
193
|
`)+1;for(;i!==0;)this.onNewLine(this.offset+i),i=this.source.indexOf(`
|
|
194
|
-
`,i)+1}return{type:n,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(n){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const i=Zl(n),r=Cs(i);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const i=Zl(n),r=Cs(i);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(n,i){return this.type!=="comment"||this.indent<=i?!1:n.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(n){this.type!=="doc-mode"&&(n.end?n.end.push(this.sourceToken):n.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(n){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:n.end?n.end.push(this.sourceToken):n.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function
|
|
194
|
+
`,i)+1}return{type:n,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(n){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const i=Zl(n),r=Cs(i);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const i=Zl(n),r=Cs(i);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(n,i){return this.type!=="comment"||this.indent<=i?!1:n.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(n){this.type!=="doc-mode"&&(n.end?n.end.push(this.sourceToken):n.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(n){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:n.end?n.end.push(this.sourceToken):n.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function PB(e){const n=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||n&&new VB||null,prettyErrors:n}}function GB(e,n={}){const{lineCounter:i,prettyErrors:r}=PB(n),l=new IB(i?.addNewLine),c=new BB(n),d=Array.from(c.compose(l.parse(e)));if(r&&i)for(const h of d)h.errors.forEach(ov(e,i)),h.warnings.forEach(ov(e,i));return d.length>0?d:Object.assign([],{empty:!0},c.streamInfo())}function HB({onApplied:e}){const[n,i]=L.useState(""),[r,l]=L.useState(!1),[c,d]=L.useState([]),[h,g]=L.useState([]);if(xk())return null;const v=async()=>{if(!n.trim())return;l(!0),d([]),g([]);const S=GB(n),x=[],N=[];for(let _=0;_<S.length;_++){const O=S[_];if(O.errors.length>0){x.push(`Document ${_+1}: ${O.errors[0]?.message}`);continue}const k=O.toJSON();if(!(!k||typeof k!="object"))try{const E=await Ik(k);N.push(`Applied "${E.displayName||E.name}" (revision ${E.configRevision})`)}catch(E){x.push(`Document ${_+1}: ${E instanceof Error?E.message:String(E)}`)}}d(N),g(x),l(!1),N.length>0&&(tn({title:"YAML applied",detail:`Applied ${N.length} document${N.length===1?"":"s"} successfully.`,tone:x.length>0?"caution":"positive",dedupeKey:"yaml:apply",dedupeMode:"replace"}),e())};return f.jsxs("section",{className:"mt-8",children:[f.jsx("div",{className:"page-section-divider"}),f.jsx("div",{className:"section-head mt-6",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Config as code"}),f.jsx("h2",{className:"text-sm font-medium text-strong",children:"Apply YAML"})]})}),f.jsxs("p",{className:"text-muted text-sm mb-3",children:["Paste a ",f.jsx("code",{className:"text-secondary",children:"canonry.yaml"})," config (multi-document YAML with ",f.jsx("code",{className:"text-secondary",children:"---"})," separators supported)."]}),f.jsx("textarea",{className:"setup-input w-full font-mono text-xs",rows:10,placeholder:`apiVersion: canonry/v1
|
|
195
195
|
kind: Project
|
|
196
196
|
metadata:
|
|
197
197
|
name: my-project
|
|
@@ -199,12 +199,12 @@ spec:
|
|
|
199
199
|
canonicalDomain: example.com
|
|
200
200
|
country: US
|
|
201
201
|
language: en
|
|
202
|
-
queries: []`,value:n,onChange:S=>i(S.target.value)}),c.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:c.map((S,x)=>f.jsx("li",{className:"text-positive-400 text-sm",children:S},x))}),h.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:h.map((S,x)=>f.jsx("li",{className:"text-negative-400 text-sm",children:S},x))}),f.jsx("div",{className:"mt-3",children:f.jsx(Ue,{type:"button",disabled:!n.trim()||r,onClick:Nn(v),children:r?"Applying...":"Apply"})})]})}function HB(){const{dashboard:e,isLoading:n,refetch:i}=Ac();if(!e||n)return f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-28"}),f.jsx("div",{className:"skeleton-text-sm w-40"})]}),f.jsxs("div",{className:"rounded-xl border border-default bg-surface overflow-hidden",children:[f.jsx("div",{className:"p-3 border-b border-default flex gap-8",children:["Name","Domain","Mentions","Last run","Country"].map(z=>f.jsx("div",{className:"skeleton-text-sm w-16"},z))}),[1,2,3].map(z=>f.jsxs("div",{className:"p-3 border-b border-subtle flex gap-8 items-center",children:[f.jsxs("div",{className:"flex-1 space-y-1",children:[f.jsx("div",{className:"skeleton-text w-28"}),f.jsx("div",{className:"skeleton-text-sm w-16"})]}),f.jsx("div",{className:"skeleton-text w-24"}),f.jsx("div",{className:"skeleton h-5 w-14 rounded-full"}),f.jsx("div",{className:"skeleton h-5 w-16 rounded-full"}),f.jsx("div",{className:"skeleton-text-sm w-8"})]},z))]})]});const r=e.projects,l=fc(),[c,d]=L.useState(!1),[h,g]=L.useState(""),[v,S]=L.useState(""),[x,N]=L.useState(""),[_,O]=L.useState("US"),[k,E]=L.useState("en"),[R,G]=L.useState(!1),[P,Y]=L.useState(null),I=h.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),se=async()=>{if(!(!I||!x)){G(!0),Y(null);try{const z=await co(I,{displayName:v||h,canonicalDomain:x,country:_,language:k});tn({title:"Project created",detail:`${z.displayName||z.name} is ready to configure.`,tone:"positive",dedupeKey:`project:create:${z.name}`,dedupeMode:"drop"}),i(),g(""),S(""),N(""),O("US"),E("en"),d(!1),l({to:"/projects/$projectName",params:{projectName:z.name}})}catch(z){Y(z instanceof Error?z.message:"Failed to create project")}finally{G(!1)}}};return f.jsxs("div",{className:"page-container",children:[f.jsxs("div",{className:"page-header",children:[f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Projects"}),f.jsxs("p",{className:"page-subtitle",children:[r.length," project",r.length!==1?"s":""," tracked"]})]}),f.jsx("div",{className:"page-header-right",children:f.jsxs(Ue,{type:"button",onClick:()=>d(z=>!z),children:[f.jsx(Wy,{className:"size-4 mr-1.5"}),"Add project"]})})]}),c?f.jsxs(kn,{className:"surface-card mb-6",children:[f.jsx("div",{className:"section-head",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"New project"}),f.jsx("h2",{className:"text-sm font-medium text-strong",children:"Create a new monitoring project"})]})}),f.jsxs("div",{className:"compact-stack mt-4",children:[f.jsxs("div",{className:"setup-field-row",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-project-name",children:"Project name"}),f.jsx("input",{id:"new-project-name",className:"setup-input",type:"text",placeholder:"my-project",value:h,onChange:z=>g(z.target.value)}),I&&I!==h?f.jsxs("p",{className:"supporting-copy",children:["Slug: ",I]}):null]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-display-name",children:"Display name"}),f.jsx("input",{id:"new-display-name",className:"setup-input",type:"text",placeholder:"My Project",value:v,onChange:z=>S(z.target.value)})]})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-domain",children:"Canonical domain"}),f.jsx("input",{id:"new-domain",className:"setup-input",type:"text",placeholder:"example.com",value:x,onChange:z=>N(z.target.value)})]}),f.jsxs("div",{className:"setup-field-row",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-country",children:"Country"}),f.jsx("input",{id:"new-country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:_,onChange:z=>O(z.target.value.toUpperCase())})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-language",children:"Language"}),f.jsx("input",{id:"new-language",className:"setup-input",type:"text",placeholder:"en",maxLength:5,value:k,onChange:z=>E(z.target.value.toLowerCase())})]})]})]}),P?f.jsx("p",{className:"text-negative-400 text-sm mt-3",children:P}):null,f.jsxs("div",{className:"flex items-center gap-3 mt-4",children:[f.jsx(Ue,{type:"button",disabled:!I||!x||R,onClick:Nn(se),children:R?"Creating...":"Create project"}),f.jsx(Ue,{type:"button",variant:"ghost",onClick:()=>d(!1),children:"Cancel"})]})]}):null,r.length>0?f.jsx("div",{className:"data-table-wrapper",children:f.jsxs("table",{className:"data-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:"Name"}),f.jsx("th",{children:"Domain"}),f.jsx("th",{children:"Mentions"}),f.jsx("th",{children:"Last run"}),f.jsx("th",{className:"text-right",children:"Country"})]})}),f.jsx("tbody",{children:r.map(z=>{const q=z.recentRuns[0];return f.jsxs("tr",{className:"cursor-pointer",onClick:()=>{l({to:"/projects/$projectName",params:{projectName:z.project.name}})},children:[f.jsxs("td",{children:[f.jsx(st,{to:"/projects/$projectName",params:{projectName:z.project.name},className:"text-heading font-medium hover:underline",onClick:ie=>ie.stopPropagation(),children:z.project.displayName||z.project.name}),f.jsx("p",{className:"text-[11px] text-muted",children:z.project.name})]}),f.jsx("td",{className:"text-secondary",children:z.project.canonicalDomain}),f.jsx("td",{children:f.jsx(Bn,{tone:z.mentionSummary.tone,children:z.mentionSummary.value})}),f.jsx("td",{className:"text-muted text-sm",children:q?f.jsx(_p,{status:q.status}):f.jsx("span",{className:"text-faint",children:"No runs"})}),f.jsx("td",{className:"text-right text-muted",children:z.project.country})]},z.project.id)})})]})}):c?null:f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h3",{children:"No projects yet"}),f.jsx("p",{className:"supporting-copy",children:"Create your first monitoring project to start tracking AI visibility."}),f.jsxs(Ue,{type:"button",onClick:()=>d(!0),children:[f.jsx(Wy,{className:"size-4 mr-1.5"}),"Add project"]})]}),f.jsx(GB,{onApplied:()=>{i()}})]})}function h1(e){e.invalidateQueries({queryKey:Np({client:ee})}),e.invalidateQueries({queryKey:Oi({client:ee})})}function QB(e){return e==="gsc-sync"?"GSC sync queued":e==="inspect-sitemap"?"Sitemap inspection queued":"Visibility sweep queued"}function KB(e,n){const i=e??"Project";return n==="gsc-sync"?`${i} will refresh after the sync completes.`:n==="inspect-sitemap"?`${i} will notify you when sitemap inspection finishes.`:`${i} will notify you when the run finishes.`}function Lc(e,n){aS({id:e.id,projectId:e.projectId,kind:e.kind,projectLabel:n.projectLabel,sourceAction:n.sourceAction,lastAnnouncedStatus:"queued"}),tn({title:QB(e.kind),detail:KB(n.projectLabel,e.kind),tone:"neutral",dedupeKey:`run:${e.id}`,dedupeMode:"replace"})}function ZB(e){const n=e.filter(l=>l.status!=="conflict"),i=e.filter(l=>l.status==="conflict");if(n.length===0){tn({title:"No runs queued",detail:i.length>0?`${i.length} project${i.length===1?"":"s"} already had a run in progress.`:"No projects were available to queue.",tone:"caution",durationMs:8e3,dedupeKey:"run-all:conflict",dedupeMode:"replace"});return}for(const l of n)aS({id:l.id,projectId:l.projectId,kind:l.kind,projectLabel:l.projectName,sourceAction:"run-all",lastAnnouncedStatus:"queued"});const r=cR({runIds:n.map(l=>l.id),queuedCount:n.length,skippedCount:i.length});tn({title:"Run-all batch queued",detail:i.length>0?`${n.length} project${n.length===1?"":"s"} queued, ${i.length} skipped because a run is already active.`:`${n.length} project${n.length===1?"":"s"} queued.`,tone:i.length>0?"caution":"neutral",dedupeKey:`batch:${r}`,dedupeMode:"replace"})}function qc(e,n){if(e instanceof Hn&&e.code==="RUN_IN_PROGRESS"){tn({title:"Run already in progress",detail:n?.projectLabel?`${n.projectLabel} already has an active run. Wait for it to finish, then retry.`:"This project already has an active run. Wait for it to finish, then retry.",tone:"caution",durationMs:8e3,dedupeKey:`run-in-progress:${n?.projectKey??"project"}:${n?.sourceAction??"run"}`,dedupeMode:"replace"});return}tn({title:e instanceof Error?e.message:"Failed to queue run",tone:"negative"})}function YB(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>Bk(n,i),onSuccess:(n,i)=>{h1(e),Lc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})}})}function aq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:n=>Ik(n),onSuccess:n=>{h1(e),ZB(n)},onError:n=>{tn({title:n instanceof Error?n.message:"Failed to queue runs",tone:"negative"})}})}function iq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>Pk(n,i),onSuccess:(n,i)=>{ro(e,ke["gsc-sync"],i.projectName),Lc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})}})}function sq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n})=>Qk(n),onSuccess:(n,i)=>{ro(e,n.run.kind,i.projectName),Lc(n.run,{projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})}})}function rq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>Hk(n,i),onSuccess:(n,i)=>{ro(e,ke["inspect-sitemap"],i.projectName),Lc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})}})}function g1(e){if(!Array.isArray(e.queryKey)||e.queryKey.length<=1)return!1;const n=e.queryKey[0];return n==="projects"||n==="project-dashboard-full"}function oq(){const e=Wa();return Ti({mutationFn:({projectName:n,queries:i})=>Dk(n,i),onSuccess:()=>{e.invalidateQueries({queryKey:Oi({client:ee})}),e.invalidateQueries({predicate:g1})}})}function lq(){const e=Wa();return Ti({mutationFn:({projectName:n,body:i})=>Rk(n,i),onSuccess:()=>{e.invalidateQueries({predicate:n=>Array.isArray(n.queryKey)&&typeof n.queryKey[0]=="object"&&n.queryKey[0]!==null&&"_id"in n.queryKey[0]&&typeof n.queryKey[0]._id=="string"&&n.queryKey[0]._id.startsWith("getApiV1ProjectsByName")}),e.invalidateQueries({predicate:g1})}})}const XB=[{label:"System check",description:"Verify your instance is ready"},{label:"Create project",description:"Name, domain, and locale"},{label:"Queries",description:"Add queries to track"},{label:"Competitors",description:"Add competitor domains"},{label:"Launch",description:"Start your first visibility sweep"}];function FB({current:e,labels:n}){return f.jsx("div",{className:"setup-steps",role:"list","aria-label":"Setup progress",children:n.map((i,r)=>{const l=r<e,c=r===e;return f.jsxs("div",{className:`setup-step ${l?"setup-step-done":""} ${c?"setup-step-active":""}`,role:"listitem","aria-current":c?"step":void 0,children:[f.jsx("span",{className:"setup-step-number",children:l?"✓":r+1}),f.jsx("span",{className:"setup-step-label",children:i.label})]},i.label)})})}function JB(){const e=uo(),{dashboard:n,isLoading:i,refetch:r}=Ac(),l=n??e?.dashboard;if(!l||i)return f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-24"}),f.jsx("div",{className:"skeleton-text-sm w-80"})]}),f.jsxs("div",{className:"page-skeleton-card",children:[f.jsx("div",{className:"skeleton-text w-32"}),f.jsx("div",{className:"space-y-3 mt-3",children:[1,2,3].map(ae=>f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{className:"space-y-1 flex-1",children:[f.jsx("div",{className:"skeleton-text w-24"}),f.jsx("div",{className:"skeleton-text-sm w-48"})]}),f.jsx("div",{className:"skeleton h-6 w-16 rounded-full"})]},ae))})]})]});const c=l.settings,g=Tp(!e,e?.health).data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},v=aR(l.setup,g,c),S=fc(),[x,N]=L.useState(0),[_,O]=L.useState(""),[k,E]=L.useState(""),[R,G]=L.useState(""),[P,Y]=L.useState("US"),[I,se]=L.useState("en"),[z,q]=L.useState(!1),[ie,_e]=L.useState(null),[De,ve]=L.useState(null),[et,le]=L.useState(!1),[fe,$]=L.useState(""),[J,pe]=L.useState(!1),[je,re]=L.useState(null),[Ze,F]=L.useState(!1),ue=c.providerStatuses.filter(ae=>ae.state==="ready"),[W,de]=L.useState(ue[0]?.name??""),[ne,Ne]=L.useState(5),[tt,xe]=L.useState(!1),[$e,He]=L.useState(null),[Dt,Un]=L.useState(""),[Rt,er]=L.useState(!1),[Ri,go]=L.useState(null),[tr,Mi]=L.useState(!1),[Bi,nr]=L.useState(!1),[yo,bo]=L.useState(!1),[Vt,Uc]=L.useState(null),vo=YB(),So=fn({...W0({client:ee,path:{id:Vt??""}}),enabled:!!Vt,refetchInterval:({state:ae})=>{const ot=ae.data?.status;return ot==="completed"||ot==="partial"||ot==="failed"||ot==="cancelled"?!1:2e3},refetchIntervalInBackground:!0}),[va,xo]=L.useState(""),[Li,wo]=L.useState(!1),[jo,Sa]=L.useState(null),ht=_.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),Mt=fe.split(`
|
|
202
|
+
queries: []`,value:n,onChange:S=>i(S.target.value)}),c.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:c.map((S,x)=>f.jsx("li",{className:"text-positive-400 text-sm",children:S},x))}),h.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:h.map((S,x)=>f.jsx("li",{className:"text-negative-400 text-sm",children:S},x))}),f.jsx("div",{className:"mt-3",children:f.jsx(Ue,{type:"button",disabled:!n.trim()||r,onClick:Nn(v),children:r?"Applying...":"Apply"})})]})}function QB(){const{dashboard:e,isLoading:n,refetch:i}=Ac();if(!e||n)return f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-28"}),f.jsx("div",{className:"skeleton-text-sm w-40"})]}),f.jsxs("div",{className:"rounded-xl border border-default bg-surface overflow-hidden",children:[f.jsx("div",{className:"p-3 border-b border-default flex gap-8",children:["Name","Domain","Mentions","Last run","Country"].map(z=>f.jsx("div",{className:"skeleton-text-sm w-16"},z))}),[1,2,3].map(z=>f.jsxs("div",{className:"p-3 border-b border-subtle flex gap-8 items-center",children:[f.jsxs("div",{className:"flex-1 space-y-1",children:[f.jsx("div",{className:"skeleton-text w-28"}),f.jsx("div",{className:"skeleton-text-sm w-16"})]}),f.jsx("div",{className:"skeleton-text w-24"}),f.jsx("div",{className:"skeleton h-5 w-14 rounded-full"}),f.jsx("div",{className:"skeleton h-5 w-16 rounded-full"}),f.jsx("div",{className:"skeleton-text-sm w-8"})]},z))]})]});const r=e.projects,l=fc(),[c,d]=L.useState(!1),[h,g]=L.useState(""),[v,S]=L.useState(""),[x,N]=L.useState(""),[_,O]=L.useState("US"),[k,E]=L.useState("en"),[R,G]=L.useState(!1),[P,Y]=L.useState(null),I=h.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),se=async()=>{if(!(!I||!x)){G(!0),Y(null);try{const z=await co(I,{displayName:v||h,canonicalDomain:x,country:_,language:k});tn({title:"Project created",detail:`${z.displayName||z.name} is ready to configure.`,tone:"positive",dedupeKey:`project:create:${z.name}`,dedupeMode:"drop"}),i(),g(""),S(""),N(""),O("US"),E("en"),d(!1),l({to:"/projects/$projectName",params:{projectName:z.name}})}catch(z){Y(z instanceof Error?z.message:"Failed to create project")}finally{G(!1)}}};return f.jsxs("div",{className:"page-container",children:[f.jsxs("div",{className:"page-header",children:[f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Projects"}),f.jsxs("p",{className:"page-subtitle",children:[r.length," project",r.length!==1?"s":""," tracked"]})]}),f.jsx("div",{className:"page-header-right",children:f.jsxs(Ue,{type:"button",onClick:()=>d(z=>!z),children:[f.jsx(Wy,{className:"size-4 mr-1.5"}),"Add project"]})})]}),c?f.jsxs(kn,{className:"surface-card mb-6",children:[f.jsx("div",{className:"section-head",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"New project"}),f.jsx("h2",{className:"text-sm font-medium text-strong",children:"Create a new monitoring project"})]})}),f.jsxs("div",{className:"compact-stack mt-4",children:[f.jsxs("div",{className:"setup-field-row",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-project-name",children:"Project name"}),f.jsx("input",{id:"new-project-name",className:"setup-input",type:"text",placeholder:"my-project",value:h,onChange:z=>g(z.target.value)}),I&&I!==h?f.jsxs("p",{className:"supporting-copy",children:["Slug: ",I]}):null]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-display-name",children:"Display name"}),f.jsx("input",{id:"new-display-name",className:"setup-input",type:"text",placeholder:"My Project",value:v,onChange:z=>S(z.target.value)})]})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-domain",children:"Canonical domain"}),f.jsx("input",{id:"new-domain",className:"setup-input",type:"text",placeholder:"example.com",value:x,onChange:z=>N(z.target.value)})]}),f.jsxs("div",{className:"setup-field-row",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-country",children:"Country"}),f.jsx("input",{id:"new-country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:_,onChange:z=>O(z.target.value.toUpperCase())})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"new-language",children:"Language"}),f.jsx("input",{id:"new-language",className:"setup-input",type:"text",placeholder:"en",maxLength:5,value:k,onChange:z=>E(z.target.value.toLowerCase())})]})]})]}),P?f.jsx("p",{className:"text-negative-400 text-sm mt-3",children:P}):null,f.jsxs("div",{className:"flex items-center gap-3 mt-4",children:[f.jsx(Ue,{type:"button",disabled:!I||!x||R,onClick:Nn(se),children:R?"Creating...":"Create project"}),f.jsx(Ue,{type:"button",variant:"ghost",onClick:()=>d(!1),children:"Cancel"})]})]}):null,r.length>0?f.jsx("div",{className:"data-table-wrapper",children:f.jsxs("table",{className:"data-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:"Name"}),f.jsx("th",{children:"Domain"}),f.jsx("th",{children:"Mentions"}),f.jsx("th",{children:"Last run"}),f.jsx("th",{className:"text-right",children:"Country"})]})}),f.jsx("tbody",{children:r.map(z=>{const q=z.recentRuns[0];return f.jsxs("tr",{className:"cursor-pointer",onClick:()=>{l({to:"/projects/$projectName",params:{projectName:z.project.name}})},children:[f.jsxs("td",{children:[f.jsx(st,{to:"/projects/$projectName",params:{projectName:z.project.name},className:"text-heading font-medium hover:underline",onClick:ie=>ie.stopPropagation(),children:z.project.displayName||z.project.name}),f.jsx("p",{className:"text-[11px] text-muted",children:z.project.name})]}),f.jsx("td",{className:"text-secondary",children:z.project.canonicalDomain}),f.jsx("td",{children:f.jsx(Bn,{tone:z.mentionSummary.tone,children:z.mentionSummary.value})}),f.jsx("td",{className:"text-muted text-sm",children:q?f.jsx(_p,{status:q.status}):f.jsx("span",{className:"text-faint",children:"No runs"})}),f.jsx("td",{className:"text-right text-muted",children:z.project.country})]},z.project.id)})})]})}):c?null:f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h3",{children:"No projects yet"}),f.jsx("p",{className:"supporting-copy",children:"Create your first monitoring project to start tracking AI visibility."}),f.jsxs(Ue,{type:"button",onClick:()=>d(!0),children:[f.jsx(Wy,{className:"size-4 mr-1.5"}),"Add project"]})]}),f.jsx(HB,{onApplied:()=>{i()}})]})}function h1(e){e.invalidateQueries({queryKey:Np({client:ee})}),e.invalidateQueries({queryKey:Oi({client:ee})})}function KB(e){return e==="gsc-sync"?"GSC sync queued":e==="inspect-sitemap"?"Sitemap inspection queued":"Visibility sweep queued"}function ZB(e,n){const i=e??"Project";return n==="gsc-sync"?`${i} will refresh after the sync completes.`:n==="inspect-sitemap"?`${i} will notify you when sitemap inspection finishes.`:`${i} will notify you when the run finishes.`}function Lc(e,n){aS({id:e.id,projectId:e.projectId,kind:e.kind,projectLabel:n.projectLabel,sourceAction:n.sourceAction,lastAnnouncedStatus:"queued"}),tn({title:KB(e.kind),detail:ZB(n.projectLabel,e.kind),tone:"neutral",dedupeKey:`run:${e.id}`,dedupeMode:"replace"})}function YB(e){const n=e.filter(l=>l.status!=="conflict"),i=e.filter(l=>l.status==="conflict");if(n.length===0){tn({title:"No runs queued",detail:i.length>0?`${i.length} project${i.length===1?"":"s"} already had a run in progress.`:"No projects were available to queue.",tone:"caution",durationMs:8e3,dedupeKey:"run-all:conflict",dedupeMode:"replace"});return}for(const l of n)aS({id:l.id,projectId:l.projectId,kind:l.kind,projectLabel:l.projectName,sourceAction:"run-all",lastAnnouncedStatus:"queued"});const r=uR({runIds:n.map(l=>l.id),queuedCount:n.length,skippedCount:i.length});tn({title:"Run-all batch queued",detail:i.length>0?`${n.length} project${n.length===1?"":"s"} queued, ${i.length} skipped because a run is already active.`:`${n.length} project${n.length===1?"":"s"} queued.`,tone:i.length>0?"caution":"neutral",dedupeKey:`batch:${r}`,dedupeMode:"replace"})}function qc(e,n){if(e instanceof Hn&&e.code==="RUN_IN_PROGRESS"){tn({title:"Run already in progress",detail:n?.projectLabel?`${n.projectLabel} already has an active run. Wait for it to finish, then retry.`:"This project already has an active run. Wait for it to finish, then retry.",tone:"caution",durationMs:8e3,dedupeKey:`run-in-progress:${n?.projectKey??"project"}:${n?.sourceAction??"run"}`,dedupeMode:"replace"});return}tn({title:e instanceof Error?e.message:"Failed to queue run",tone:"negative"})}function XB(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>Lk(n,i),onSuccess:(n,i)=>{h1(e),Lc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})}})}function sq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:n=>Pk(n),onSuccess:n=>{h1(e),YB(n)},onError:n=>{tn({title:n instanceof Error?n.message:"Failed to queue runs",tone:"negative"})}})}function rq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>Gk(n,i),onSuccess:(n,i)=>{ro(e,ke["gsc-sync"],i.projectName),Lc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})}})}function oq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n})=>Kk(n),onSuccess:(n,i)=>{ro(e,n.run.kind,i.projectName),Lc(n.run,{projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})}})}function lq(){const e=Wa();return Ti({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>Qk(n,i),onSuccess:(n,i)=>{ro(e,ke["inspect-sitemap"],i.projectName),Lc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})},onError:(n,i)=>{qc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})}})}function g1(e){if(!Array.isArray(e.queryKey)||e.queryKey.length<=1)return!1;const n=e.queryKey[0];return n==="projects"||n==="project-dashboard-full"}function cq(){const e=Wa();return Ti({mutationFn:({projectName:n,queries:i})=>Rk(n,i),onSuccess:()=>{e.invalidateQueries({queryKey:Oi({client:ee})}),e.invalidateQueries({predicate:g1})}})}function uq(){const e=Wa();return Ti({mutationFn:({projectName:n,body:i})=>Mk(n,i),onSuccess:()=>{e.invalidateQueries({predicate:n=>Array.isArray(n.queryKey)&&typeof n.queryKey[0]=="object"&&n.queryKey[0]!==null&&"_id"in n.queryKey[0]&&typeof n.queryKey[0]._id=="string"&&n.queryKey[0]._id.startsWith("getApiV1ProjectsByName")}),e.invalidateQueries({predicate:g1})}})}const FB=[{label:"System check",description:"Verify your instance is ready"},{label:"Create project",description:"Name, domain, and locale"},{label:"Queries",description:"Add queries to track"},{label:"Competitors",description:"Add competitor domains"},{label:"Launch",description:"Start your first visibility sweep"}];function JB({current:e,labels:n}){return f.jsx("div",{className:"setup-steps",role:"list","aria-label":"Setup progress",children:n.map((i,r)=>{const l=r<e,c=r===e;return f.jsxs("div",{className:`setup-step ${l?"setup-step-done":""} ${c?"setup-step-active":""}`,role:"listitem","aria-current":c?"step":void 0,children:[f.jsx("span",{className:"setup-step-number",children:l?"✓":r+1}),f.jsx("span",{className:"setup-step-label",children:i.label})]},i.label)})})}function WB(){const e=uo(),{dashboard:n,isLoading:i,refetch:r}=Ac(),l=n??e?.dashboard;if(!l||i)return f.jsxs("div",{className:"page-skeleton",children:[f.jsxs("div",{className:"page-skeleton-header",children:[f.jsx("div",{className:"skeleton-text h-6 w-24"}),f.jsx("div",{className:"skeleton-text-sm w-80"})]}),f.jsxs("div",{className:"page-skeleton-card",children:[f.jsx("div",{className:"skeleton-text w-32"}),f.jsx("div",{className:"space-y-3 mt-3",children:[1,2,3].map(ae=>f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{className:"space-y-1 flex-1",children:[f.jsx("div",{className:"skeleton-text w-24"}),f.jsx("div",{className:"skeleton-text-sm w-48"})]}),f.jsx("div",{className:"skeleton h-6 w-16 rounded-full"})]},ae))})]})]});const c=l.settings,g=Tp(!e,e?.health).data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},v=iR(l.setup,g,c),S=fc(),[x,N]=L.useState(0),[_,O]=L.useState(""),[k,E]=L.useState(""),[R,G]=L.useState(""),[P,Y]=L.useState("US"),[I,se]=L.useState("en"),[z,q]=L.useState(!1),[ie,_e]=L.useState(null),[De,ve]=L.useState(null),[et,le]=L.useState(!1),[fe,$]=L.useState(""),[J,pe]=L.useState(!1),[je,re]=L.useState(null),[Ze,F]=L.useState(!1),ue=c.providerStatuses.filter(ae=>ae.state==="ready"),[W,de]=L.useState(ue[0]?.name??""),[ne,Ne]=L.useState(5),[tt,xe]=L.useState(!1),[$e,He]=L.useState(null),[Dt,Un]=L.useState(""),[Rt,er]=L.useState(!1),[Ri,go]=L.useState(null),[tr,Mi]=L.useState(!1),[Bi,nr]=L.useState(!1),[yo,bo]=L.useState(!1),[Vt,Uc]=L.useState(null),vo=XB(),So=fn({...W0({client:ee,path:{id:Vt??""}}),enabled:!!Vt,refetchInterval:({state:ae})=>{const ot=ae.data?.status;return ot==="completed"||ot==="partial"||ot==="failed"||ot==="cancelled"?!1:2e3},refetchIntervalInBackground:!0}),[va,xo]=L.useState(""),[Li,wo]=L.useState(!1),[jo,Sa]=L.useState(null),ht=_.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),Mt=fe.split(`
|
|
203
203
|
`).map(ae=>ae.trim()).filter(Boolean),_t=Dt.split(`
|
|
204
|
-
`).map(ae=>ae.trim()).filter(Boolean),$c=v.healthChecks.some(ae=>ae.id==="api"&&ae.state==="ready"),Vc=async()=>{if(!(!ht||!R)){le(!0),ve(null);try{const ae=await co(ht,{displayName:k||_,canonicalDomain:R,country:P,language:I,autoExtractBacklinks:z});_e(ht),tn({title:"Project created",detail:`${ae.displayName||ae.name} is ready for setup.`,tone:"positive",dedupeKey:`project:create:${ae.name}`,dedupeMode:"drop"}),await r(),N(2)}catch(ae){ve(ae instanceof Error?ae.message:"Failed to create project")}finally{le(!1)}}},Ic=async()=>{if(!ie)return;const ae=Mt;if(ae.length!==0){F(!0),re(null);try{await
|
|
204
|
+
`).map(ae=>ae.trim()).filter(Boolean),$c=v.healthChecks.some(ae=>ae.id==="api"&&ae.state==="ready"),Vc=async()=>{if(!(!ht||!R)){le(!0),ve(null);try{const ae=await co(ht,{displayName:k||_,canonicalDomain:R,country:P,language:I,autoExtractBacklinks:z});_e(ht),tn({title:"Project created",detail:`${ae.displayName||ae.name} is ready for setup.`,tone:"positive",dedupeKey:`project:create:${ae.name}`,dedupeMode:"drop"}),await r(),N(2)}catch(ae){ve(ae instanceof Error?ae.message:"Failed to create project")}finally{le(!1)}}},Ic=async()=>{if(!ie)return;const ae=Mt;if(ae.length!==0){F(!0),re(null);try{await Dk(ie,ae),pe(!0),await r(),N(3)}catch(ot){re(ot instanceof Error?ot.message:"Failed to save queries")}finally{F(!1)}}},qi=async()=>{if(!(!ie||!W)){xe(!0),He(null);try{const ae=await Vk(ie,W,ne);if(ae.queries.length>0){const ot=fe?fe.trimEnd()+`
|
|
205
205
|
`+ae.queries.join(`
|
|
206
206
|
`):ae.queries.join(`
|
|
207
|
-
`);$(ot)}}catch(ae){He(ae instanceof Error?ae.message:"Failed to generate queries")}finally{xe(!1)}}},Ui=async()=>{if(!ie)return;const ae=_t;if(ae.length!==0){Mi(!0),go(null);try{await
|
|
207
|
+
`);$(ot)}}catch(ae){He(ae instanceof Error?ae.message:"Failed to generate queries")}finally{xe(!1)}}},Ui=async()=>{if(!ie)return;const ae=_t;if(ae.length!==0){Mi(!0),go(null);try{await Bk(ie,ae),er(!0),await r(),N(4)}catch(ot){go(ot instanceof Error?ot.message:"Failed to save competitors")}finally{Mi(!1)}}},$i=async()=>{const ae=va.trim();if(ae){wo(!0),Sa(null);try{await $k("gemini",{apiKey:ae}),tn({title:"Gemini configured",detail:"Provider is ready — continuing setup.",tone:"positive",dedupeKey:"setup:gemini:configured",dedupeMode:"drop"}),xo(""),await r()}catch(ot){Sa(ot instanceof Error?ot.message:"Failed to save Gemini key")}finally{wo(!1)}}},Zn=async()=>{if(ie){bo(!0);try{const ae=await vo.mutateAsync({projectName:ie,projectLabel:k||_||ie,sourceAction:"setup-launch"});Uc(ae.id),nr(!0),await r()}catch{}finally{bo(!1)}}},pn=()=>N(ae=>Math.max(0,ae-1)),ai=(()=>{switch(x){case 0:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsx("div",{className:"section-head",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 1 of 5"}),f.jsx("h2",{children:"System ready"})]})}),f.jsx("p",{className:"supporting-copy",children:"Checking that your Canonry instance is configured and reachable."}),f.jsx("div",{className:"compact-stack",children:v.healthChecks.map(ae=>f.jsxs("div",{className:"health-check-row",children:[f.jsxs("div",{children:[f.jsx("p",{className:"run-row-title",children:ae.label}),f.jsx("p",{className:"supporting-copy",children:ae.detail}),ae.id==="provider"&&ae.state!=="ready"&&f.jsxs("div",{className:"mt-3 rounded-md border border-default bg-bg-elevated/40 p-3 space-y-2",children:[f.jsxs("p",{className:"text-xs text-secondary",children:["Paste a Gemini key to enable visibility checks (free at"," ",f.jsx("a",{href:"https://aistudio.google.com/apikey",target:"_blank",rel:"noreferrer",className:"text-positive-400 hover:text-positive underline underline-offset-2",children:"aistudio.google.com"}),")."]}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("input",{type:"password",value:va,onChange:ot=>xo(ot.target.value),placeholder:"AI... (paste here)",className:"flex-1 rounded-md border border-base bg-bg px-2.5 py-1.5 text-sm text-heading placeholder:text-faint focus:border-mono-600 focus:outline-none font-mono",disabled:Li}),f.jsx(Ue,{type:"button",size:"sm",disabled:Li||!va.trim(),onClick:Nn($i),children:Li?"Saving...":"Save"})]}),jo&&f.jsx("p",{className:"text-xs text-negative-400",children:jo}),f.jsxs("p",{className:"text-[11px] text-faint",children:["Other providers (OpenAI, Claude, Perplexity) configurable later via"," ",f.jsx(st,{to:"/settings",className:"text-muted hover:text-neutral underline underline-offset-2",children:"/settings"}),"."]})]})]}),f.jsx(Bn,{tone:ae.state==="ready"?"positive":"caution",title:ae.id==="api"?$s(g.apiStatus):ae.id==="worker"?$s(g.workerStatus):ae.detail,children:ae.state==="ready"?"Ready":"Attention"})]},ae.id))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",disabled:!$c,onClick:()=>N(1),children:"Continue"})]})]});case 1:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 2 of 5"}),f.jsx("h2",{children:"Create project"})]}),ie?f.jsx(Bn,{tone:"positive",children:"Created"}):null]}),ie?f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"text-neutral",children:["Project ",f.jsx("span",{className:"text-heading font-medium",children:ie})," created successfully."]}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>N(2),children:"Continue"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"project-name",children:"Project name"}),f.jsx("input",{id:"project-name",className:"setup-input",type:"text",placeholder:"my-website",value:_,onChange:ae=>O(ae.target.value)}),ht&&ht!==_?f.jsxs("p",{className:"supporting-copy",children:["Slug: ",ht]}):null]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"display-name",children:"Display name (optional)"}),f.jsx("input",{id:"display-name",className:"setup-input",type:"text",placeholder:"My Website",value:k,onChange:ae=>E(ae.target.value)})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"domain",children:"Canonical domain"}),f.jsx("input",{id:"domain",className:"setup-input",type:"text",placeholder:"example.com",value:R,onChange:ae=>G(ae.target.value)})]}),f.jsxs("div",{className:"setup-field-row",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"country",children:"Country"}),f.jsx("input",{id:"country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:P,onChange:ae=>Y(ae.target.value.toUpperCase())})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"language",children:"Language"}),f.jsx("input",{id:"language",className:"setup-input",type:"text",placeholder:"en",maxLength:5,value:I,onChange:ae=>se(ae.target.value.toLowerCase())})]})]}),f.jsxs("label",{className:"flex items-start gap-3 rounded-md border border-default bg-surface p-3 cursor-pointer hover:border-strong",children:[f.jsx("input",{type:"checkbox",className:"mt-0.5 h-4 w-4 rounded border-strong bg-bg",checked:z,onChange:ae=>q(ae.target.checked)}),f.jsxs("span",{className:"flex-1",children:[f.jsx("span",{className:"block text-sm text-heading",children:"Auto-extract backlinks"}),f.jsxs("span",{className:"block text-xs text-muted mt-0.5",children:["When a new Common Crawl release syncs, automatically extract backlinks for this project."," ",f.jsx(st,{to:"/backlinks",className:"text-positive-400 hover:text-positive underline underline-offset-2",children:"Manage backlinks"})]})]})]}),De?f.jsx("p",{className:"text-negative-400 text-sm",children:De}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:!ht||!R||et,onClick:Nn(Vc),children:et?"Creating...":"Create project"})]})]})]});case 2:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 3 of 5"}),f.jsx("h2",{children:"Add queries"})]}),J?f.jsxs(Bn,{tone:"positive",children:[Mt.length," saved"]}):f.jsxs(Bn,{tone:"neutral",children:[Mt.length," quer",Mt.length!==1?"ies":"y"]})]}),f.jsx("p",{className:"supporting-copy",children:"Enter the search queries you want to track. One per line."}),J?f.jsxs("div",{className:"compact-stack",children:[f.jsx("ul",{className:"detail-list",children:Mt.map(ae=>f.jsx("li",{children:ae},ae))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>N(3),children:"Continue"})]})]}):f.jsxs("div",{className:"compact-stack",children:[ue.length>0?f.jsxs("div",{className:"compact-stack",children:[f.jsxs("div",{className:"flex items-center gap-2 text-muted text-xs uppercase tracking-wide",children:[f.jsx("span",{className:"flex-1 border-t border-base"}),"auto-generate",f.jsx("span",{className:"flex-1 border-t border-base"})]}),f.jsxs("div",{className:"flex items-end gap-2",children:[f.jsxs("div",{className:"setup-field flex-1",children:[f.jsx("label",{className:"setup-label",htmlFor:"gen-provider",children:"Provider"}),f.jsx("select",{id:"gen-provider",className:"setup-input",value:W,onChange:ae=>de(ae.target.value),children:ue.map(ae=>f.jsxs("option",{value:ae.name,children:[ae.displayName??ae.name,ae.model?` (${ae.model})`:""]},ae.name))})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"gen-count",children:"Count"}),f.jsx("select",{id:"gen-count",className:"setup-input",value:ne,onChange:ae=>Ne(Number(ae.target.value)),children:[3,5,10,15,20].map(ae=>f.jsx("option",{value:ae,children:ae},ae))})]}),f.jsx(Ue,{type:"button",variant:"outline",disabled:tt||!W,onClick:Nn(qi),children:tt?"Analyzing site...":"Generate"})]}),$e?f.jsx("p",{className:"text-negative-400 text-sm",children:$e}):null]}):null,f.jsxs("div",{className:"flex items-center gap-2 text-muted text-xs uppercase tracking-wide",children:[f.jsx("span",{className:"flex-1 border-t border-base"}),"or type manually",f.jsx("span",{className:"flex-1 border-t border-base"})]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"queries",children:"Queries (one per line)"}),f.jsx("textarea",{id:"queries",className:"setup-textarea",rows:6,placeholder:`emergency dentist brooklyn
|
|
208
208
|
best invisalign downtown brooklyn
|
|
209
209
|
pediatric dentist brooklyn heights`,value:fe,onChange:ae=>$(ae.target.value)})]}),je?f.jsx("p",{className:"text-negative-400 text-sm",children:je}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:Mt.length===0||Ze,onClick:Nn(Ic),children:Ze?"Saving...":`Save ${Mt.length} quer${Mt.length!==1?"ies":"y"}`})]})]})]});case 3:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 4 of 5"}),f.jsx("h2",{children:"Add competitors"})]}),Rt?f.jsx(Bn,{tone:"positive",children:"Saved"}):null]}),f.jsx("p",{className:"supporting-copy",children:"Domains that compete for the same queries. One per line."}),Rt?f.jsxs("div",{className:"compact-stack",children:[f.jsx("ul",{className:"detail-list",children:_t.map(ae=>f.jsx("li",{children:ae},ae))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>N(4),children:"Continue"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"competitors",children:"Competitor domains (one per line)"}),f.jsx("textarea",{id:"competitors",className:"setup-textarea",rows:4,placeholder:`competitor1.com
|
|
210
|
-
competitor2.com`,value:Dt,onChange:ae=>Un(ae.target.value)})]}),Ri?f.jsx("p",{className:"text-negative-400 text-sm",children:Ri}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>N(4),children:"Skip"}),f.jsx(Ue,{type:"button",disabled:_t.length===0||tr,onClick:Nn(Ui),children:tr?"Saving...":`Save ${_t.length} competitor${_t.length!==1?"s":""}`})]})]})]})]});case 4:{const ae=So.data,ot=ae?.status==="completed"||ae?.status==="partial"||ae?.status==="failed"||ae?.status==="cancelled",Yn=ae?.snapshots??[],ii=Yn.filter($n=>$n.citationState==="cited").length,Pc=Yn.filter($n=>$n.answerMentioned===!0).length,ar=new Set(Yn.map($n=>$n.query).filter($n=>!!$n)).size,No=Bi?ot&&(ae?.status==="completed"||ae?.status==="partial")?f.jsx(Bn,{tone:"positive",children:"Complete"}):ot?f.jsx(Bn,{tone:"negative",children:"Failed"}):f.jsx(Bn,{tone:"caution",children:"Running"}):null;return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),f.jsx("h2",{children:"Launch first run"})]}),No]}),Bi?ot?ae?.status==="failed"?f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-negative-400",children:"Sweep failed. Inspect the run on the project page for the provider error and retry from there."}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",onClick:()=>{S({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"text-neutral",children:["Sweep complete. Your first answer-visibility snapshot for"," ",f.jsx("span",{className:"text-heading font-medium",children:ie}),":"]}),f.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[f.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted",children:"Mentioned"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Pc,f.jsxs("span",{className:"text-faint text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-muted mt-0.5",children:"queries with brand in answer"})]}),f.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted",children:"Cited"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[ii,f.jsxs("span",{className:"text-faint text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-muted mt-0.5",children:"queries with domain in sources"})]}),f.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted",children:"Snapshots"}),f.jsx("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:Yn.length}),f.jsx("p",{className:"text-[11px] text-muted mt-0.5",children:"total (query × provider)"})]})]}),f.jsx("p",{className:"text-[11px] text-muted mt-1",children:"Full evidence, per-provider breakdown, and suggested next queries on the project dashboard."}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",onClick:()=>{S({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project dashboard →"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-neutral",children:"Sweep running — typically 30-60s. Polling every 2s…"}),f.jsx("div",{className:"rounded-md border border-default bg-surface p-3 text-xs text-muted",children:f.jsxs("p",{children:["Status: ",f.jsx("span",{className:"text-neutral",children:ae?.status??"queued"})]})}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>{S({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Watch on project page"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"supporting-copy",children:["Everything is configured. Launch an answer-visibility sweep to start tracking citations for ",f.jsx("span",{className:"text-heading font-medium",children:ie}),"."]}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:yo,onClick:Nn(Zn),children:yo?"Launching...":"Launch visibility sweep"})]})]})]})}default:return null}})();return f.jsxs("div",{className:"page-container",children:[f.jsx("div",{className:"page-header",children:f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Setup"}),f.jsx("p",{className:"page-subtitle",children:"Create a project, add queries, add competitors, and launch the first run."})]})}),f.jsx(FB,{current:x,labels:XB}),f.jsx("section",{className:"setup-wizard",children:ai})]})}function WB(){return f.jsx("div",{className:"page-container",children:f.jsx("section",{className:"page-section",children:f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h1",{children:"Route not found"}),f.jsx("p",{children:"The current path does not map to a dashboard view."}),f.jsx(Ue,{asChild:!0,children:f.jsx(st,{to:"/",children:"Return to overview"})})]})})})}const ba=Ps(()=>Gs(()=>import("./ProjectPage-38ZIpkmq.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"ProjectPage"),eL=Ps(()=>Gs(()=>import("./RunsPage-CRoqsHH6.js"),__vite__mapDeps([9,1,2,7,5,8]),import.meta.url),"RunsPage"),tL=Ps(()=>Gs(()=>import("./SettingsPage-BEJ39Z1y.js"),__vite__mapDeps([10,1,7,5,8]),import.meta.url),"SettingsPage"),nL=Ps(()=>Gs(()=>import("./BacklinksPage-pxm5QdkH.js"),__vite__mapDeps([11,1,6,7,5,8]),import.meta.url),"BacklinksPage"),aL=Ps(()=>Gs(()=>import("./TrafficPage-DwlIys8k.js"),__vite__mapDeps([12,1,4,13,7,5,8]),import.meta.url),"TrafficPage"),iL=Ps(()=>Gs(()=>import("./TrafficSourceDetailPage-BxZdMbPs.js"),__vite__mapDeps([14,1,4,3,5,13,7,8]),import.meta.url),"TrafficSourceDetailPage");function sL(){return f.jsx(EM,{children:f.jsx(TM,{})})}const nn=Lw()({component:sL,validateSearch:e=>({runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0})}),rL=Et({getParentRoute:()=>nn,path:"/",component:DM,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Oi({client:ee}));if(n&&n.length===0)throw Hf({to:"/setup"})}}),oL=Et({getParentRoute:()=>nn,path:"/projects",component:HB}),lL=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Kn=Et({getParentRoute:()=>nn,path:"/projects/$projectName",component:()=>f.jsx(xf,{}),beforeLoad:async({context:e,params:n,location:i})=>{const r=n.projectName;if(!lL.test(r))return;let l=e.queryClient.getQueryData(Oi({client:ee}));if(!l)try{l=await e.queryClient.ensureQueryData(wc({client:ee}))}catch{return}const c=l.find(d=>d.id===r);if(c)throw Hf({to:i.pathname.replace(`/projects/${r}`,`/projects/${encodeURIComponent(c.name)}`),replace:!0})}}),cL=Et({getParentRoute:()=>Kn,path:"/",component:()=>f.jsx(ba,{tab:"overview"})}),uL=Et({getParentRoute:()=>Kn,path:"/search-console",component:()=>f.jsx(ba,{tab:"search-console"})}),dL=Et({getParentRoute:()=>Kn,path:"/local",component:()=>f.jsx(ba,{tab:"local"})}),fL=Et({getParentRoute:()=>Kn,path:"/discovery",component:()=>f.jsx(ba,{tab:"discovery"})}),pL=Et({getParentRoute:()=>Kn,path:"/report",component:()=>f.jsx(ba,{tab:"report"})}),mL=Et({getParentRoute:()=>Kn,path:"/activity",component:()=>f.jsx(ba,{tab:"activity"})}),hL=Et({getParentRoute:()=>Kn,path:"/backlinks",component:()=>f.jsx(ba,{tab:"backlinks"})}),gL=Et({getParentRoute:()=>Kn,path:"/technical-aeo",component:()=>f.jsx(ba,{tab:"technical-aeo"})}),yL=Et({getParentRoute:()=>Kn,path:"/settings",component:()=>f.jsx(ba,{tab:"settings"})}),bL=Et({getParentRoute:()=>nn,path:"/runs",component:eL}),vL=Et({getParentRoute:()=>nn,path:"/settings",component:tL,beforeLoad:({context:e})=>{}}),SL=Et({getParentRoute:()=>nn,path:"/setup",component:JB,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Oi({client:ee}));if(n&&n.length>0)throw Hf({to:"/"})}}),xL=Et({getParentRoute:()=>nn,path:"/backlinks",component:nL}),wL=Et({getParentRoute:()=>nn,path:"/traffic",component:aL}),jL=Et({getParentRoute:()=>nn,path:"/traffic/$projectName/$sourceId",component:iL}),NL=Et({getParentRoute:()=>nn,path:"*",component:WB}),kL=nn.addChildren([rL,oL,Kn.addChildren([cL,uL,dL,fL,pL,mL,hL,gL,yL]),bL,vL,SL,xL,wL,jL,NL]);function AL(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const pv=AL(),_L=pv==="/"?"":pv.replace(/\/$/,"");function CL(e,n){return qw({routeTree:kL,basepath:_L||"/",context:{queryClient:e},...n?.initialEntries})}const TL=6e4;function EL(){const[e,n]=L.useState(rf()?"ready":"checking"),[i,r]=L.useState(""),[l,c]=L.useState(""),[d,h]=L.useState(null),[g,v]=L.useState(!1),[S,x]=L.useState(!1),N=L.useRef(null),_=L.useRef(null),O=()=>{if(!N.current){const R=oA();_.current=R,N.current=CL(R)}return{queryClient:_.current,router:N.current}};L.useEffect(()=>{if(rf())return;let R=!1;return Zy().then(G=>{R||(G.authenticated?n("ready"):n(G.setupRequired?"setup":"login"))}).catch(G=>{R||(h(G instanceof Error?G.message:"Failed to reach the Canonry API"),n("login"))}),()=>{R=!0}},[]),L.useEffect(()=>{if(e!=="ready"||rf())return;const R=setInterval(()=>{Zy().then(G=>{G.authenticated||(x(!0),n(G.setupRequired?"setup":"login"))}).catch(()=>{})},TL);return Ky(()=>{x(!0),n("login")}),()=>{clearInterval(R),Ky(null)}},[e]);const k=async R=>{if(R.preventDefault(),!i.trim()||i.trim().length<8){h("Password must be at least 8 characters");return}if(i!==l){h("Passwords do not match");return}v(!0),h(null);try{if(!(await Lk(i.trim())).authenticated){h("Setup failed");return}r(""),c(""),x(!1),n("ready")}catch(G){h(G instanceof Hn||G instanceof Error?G.message:"Setup failed")}finally{v(!1)}},E=async R=>{if(R.preventDefault(),!!i.trim()){v(!0),h(null);try{if(!(await qk(i.trim())).authenticated){h("Incorrect password");return}r(""),x(!1),n("ready")}catch(G){h(G instanceof Hn||G instanceof Error?G.message:"Authentication failed")}finally{v(!1)}}};if(e==="ready"){const{queryClient:R,router:G}=O();return f.jsx(Uw,{client:R,children:f.jsx($w,{router:G})})}return f.jsx("div",{className:"min-h-screen bg-bg px-4 py-8",children:f.jsx("div",{className:"mx-auto flex min-h-[calc(100vh-4rem)] max-w-md items-center justify-center",children:f.jsx(kn,{className:"surface-card w-full",children:e==="checking"?f.jsx(Yl,{className:"py-8",children:f.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="setup"?f.jsxs(f.Fragment,{children:[f.jsxs(Bf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),f.jsx(Lf,{children:"Create a dashboard password"}),f.jsx(qf,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),f.jsx(Yl,{children:f.jsxs("form",{className:"space-y-4",onSubmit:Nn(k),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:i,onChange:R=>r(R.target.value),placeholder:"At least 8 characters"})]}),f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-secondary",children:"Confirm password"}),f.jsx("input",{className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:l,onChange:R=>c(R.target.value),placeholder:"Re-enter password"})]}),d?f.jsx("p",{className:"text-sm text-negative-400",children:d}):null,f.jsx(Ue,{type:"submit",disabled:g||!i.trim()||!l.trim(),children:g?"Setting up…":"Create password & open dashboard"})]})})]}):f.jsxs(f.Fragment,{children:[f.jsxs(Bf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),f.jsx(Lf,{children:"Sign in to Canonry"}),f.jsx(qf,{children:"Enter your dashboard password to continue."})]}),f.jsxs(Yl,{children:[S?f.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"Your session expired — please sign in again."}):null,f.jsxs("form",{className:"space-y-4",onSubmit:Nn(E),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:i,onChange:R=>r(R.target.value),placeholder:"Dashboard password"})]}),d?f.jsx("p",{className:"text-sm text-negative-400",children:d}):null,f.jsx(Ue,{type:"submit",disabled:g||!i.trim(),children:g?"Signing in…":"Open dashboard"})]})]})]})})})})}const y1=document.getElementById("root");if(!y1)throw new Error("Expected #root element for web app bootstrap.");Kw.createRoot(y1).render(f.jsx(L.StrictMode,{children:f.jsx(EL,{})}));export{N6 as $,s6 as A,Ue as B,sc as C,c6 as D,KL as E,h6 as F,Q5 as G,y6 as H,Xr as I,b6 as J,a5 as K,n5 as L,s5 as M,tn as N,m5 as O,o3 as P,x6 as Q,w6 as R,JD as S,Bn as T,o5 as U,v6 as V,S6 as W,g6 as X,i5 as Y,l5 as Z,j6 as _,eq as a,Ob as a$,O6 as a0,_6 as a1,T6 as a2,C6 as a3,E6 as a4,Yk as a5,aS as a6,ke as a7,A6 as a8,lR as a9,X6 as aA,u5 as aB,Oi as aC,d5 as aD,Np as aE,F6 as aF,W6 as aG,J6 as aH,c5 as aI,jA as aJ,$v as aK,F5 as aL,I6 as aM,X5 as aN,w5 as aO,lq as aP,e6 as aQ,J5 as aR,t6 as aS,n6 as aT,Y5 as aU,W5 as aV,GL as aW,PL as aX,IL as aY,YL as aZ,f6 as a_,_i as aa,k6 as ab,xO as ac,wO as ad,Z5 as ae,K5 as af,I5 as ag,D5 as ah,U5 as ai,$5 as aj,Hn as ak,V5 as al,BL as am,qA as an,o6 as ao,BA as ap,QA as aq,dR as ar,Wl as as,G5 as at,P5 as au,Af as av,P6 as aw,r5 as ax,Z6 as ay,Y6 as az,tp as b,l3 as b$,d6 as b0,XL as b1,FL as b2,u6 as b3,JL as b4,WL as b5,t5 as b6,e5 as b7,uo as b8,wc as b9,B6 as bA,D6 as bB,r6 as bC,h5 as bD,g5 as bE,y5 as bF,S5 as bG,Ac as bH,aq as bI,_p as bJ,Uk as bK,Nk as bL,ML as bM,ZL as bN,f5 as bO,p5 as bP,Tp as bQ,x5 as bR,$s as bS,Db as bT,O5 as bU,R5 as bV,B5 as bW,L5 as bX,z5 as bY,M5 as bZ,q5 as b_,F3 as ba,zv as bb,m6 as bc,YB as bd,Qt as be,Ok as bf,a4 as bg,HL as bh,UL as bi,$L as bj,QL as bk,nq as bl,Ek as bm,Mk as bn,qL as bo,LL as bp,Dk as bq,VL as br,oq as bs,h4 as bt,z6 as bu,R6 as bv,Pk as bw,M6 as bx,v5 as by,b5 as bz,We as c,xS as c0,p3 as c1,wS as c2,jS as c3,zA as c4,E5 as c5,Wy as c6,Q6 as c7,a6 as c8,i6 as c9,jp as ca,p6 as cb,Hs as cc,G6 as cd,K6 as ce,T5 as cf,_5 as cg,C5 as ch,A5 as ci,H6 as cj,YE as d,tq as e,l6 as f,kn as g,Gb as h,Sk as i,Nn as j,H5 as k,L6 as l,ee as m,q6 as n,U6 as o,V6 as p,$6 as q,j5 as r,k5 as s,e4 as t,Ep as u,N5 as v,iq as w,sq as x,rq as y,Mf as z};
|
|
210
|
+
competitor2.com`,value:Dt,onChange:ae=>Un(ae.target.value)})]}),Ri?f.jsx("p",{className:"text-negative-400 text-sm",children:Ri}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>N(4),children:"Skip"}),f.jsx(Ue,{type:"button",disabled:_t.length===0||tr,onClick:Nn(Ui),children:tr?"Saving...":`Save ${_t.length} competitor${_t.length!==1?"s":""}`})]})]})]})]});case 4:{const ae=So.data,ot=ae?.status==="completed"||ae?.status==="partial"||ae?.status==="failed"||ae?.status==="cancelled",Yn=ae?.snapshots??[],ii=Yn.filter($n=>$n.citationState==="cited").length,Pc=Yn.filter($n=>$n.answerMentioned===!0).length,ar=new Set(Yn.map($n=>$n.query).filter($n=>!!$n)).size,No=Bi?ot&&(ae?.status==="completed"||ae?.status==="partial")?f.jsx(Bn,{tone:"positive",children:"Complete"}):ot?f.jsx(Bn,{tone:"negative",children:"Failed"}):f.jsx(Bn,{tone:"caution",children:"Running"}):null;return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),f.jsx("h2",{children:"Launch first run"})]}),No]}),Bi?ot?ae?.status==="failed"?f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-negative-400",children:"Sweep failed. Inspect the run on the project page for the provider error and retry from there."}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",onClick:()=>{S({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"text-neutral",children:["Sweep complete. Your first answer-visibility snapshot for"," ",f.jsx("span",{className:"text-heading font-medium",children:ie}),":"]}),f.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[f.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted",children:"Mentioned"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Pc,f.jsxs("span",{className:"text-faint text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-muted mt-0.5",children:"queries with brand in answer"})]}),f.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted",children:"Cited"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[ii,f.jsxs("span",{className:"text-faint text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-muted mt-0.5",children:"queries with domain in sources"})]}),f.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-muted",children:"Snapshots"}),f.jsx("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:Yn.length}),f.jsx("p",{className:"text-[11px] text-muted mt-0.5",children:"total (query × provider)"})]})]}),f.jsx("p",{className:"text-[11px] text-muted mt-1",children:"Full evidence, per-provider breakdown, and suggested next queries on the project dashboard."}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",onClick:()=>{S({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Open project dashboard →"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-neutral",children:"Sweep running — typically 30-60s. Polling every 2s…"}),f.jsx("div",{className:"rounded-md border border-default bg-surface p-3 text-xs text-muted",children:f.jsxs("p",{children:["Status: ",f.jsx("span",{className:"text-neutral",children:ae?.status??"queued"})]})}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>{S({to:ie?`/projects/${encodeURIComponent(ie)}`:"/"})},children:"Watch on project page"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"supporting-copy",children:["Everything is configured. Launch an answer-visibility sweep to start tracking citations for ",f.jsx("span",{className:"text-heading font-medium",children:ie}),"."]}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:yo,onClick:Nn(Zn),children:yo?"Launching...":"Launch visibility sweep"})]})]})]})}default:return null}})();return f.jsxs("div",{className:"page-container",children:[f.jsx("div",{className:"page-header",children:f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Setup"}),f.jsx("p",{className:"page-subtitle",children:"Create a project, add queries, add competitors, and launch the first run."})]})}),f.jsx(JB,{current:x,labels:FB}),f.jsx("section",{className:"setup-wizard",children:ai})]})}function eL(){return f.jsx("div",{className:"page-container",children:f.jsx("section",{className:"page-section",children:f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h1",{children:"Route not found"}),f.jsx("p",{children:"The current path does not map to a dashboard view."}),f.jsx(Ue,{asChild:!0,children:f.jsx(st,{to:"/",children:"Return to overview"})})]})})})}const ba=Ps(()=>Gs(()=>import("./ProjectPage-DAWtJQ3w.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"ProjectPage"),tL=Ps(()=>Gs(()=>import("./RunsPage-upaDiLFK.js"),__vite__mapDeps([9,1,2,7,5,8]),import.meta.url),"RunsPage"),nL=Ps(()=>Gs(()=>import("./SettingsPage-FbmEaN16.js"),__vite__mapDeps([10,1,7,5,8]),import.meta.url),"SettingsPage"),aL=Ps(()=>Gs(()=>import("./BacklinksPage-DhXsZ8Sb.js"),__vite__mapDeps([11,1,6,7,5,8]),import.meta.url),"BacklinksPage"),iL=Ps(()=>Gs(()=>import("./TrafficPage-Di0H5JRu.js"),__vite__mapDeps([12,1,4,13,7,5,8]),import.meta.url),"TrafficPage"),sL=Ps(()=>Gs(()=>import("./TrafficSourceDetailPage-Bc2mxXSV.js"),__vite__mapDeps([14,1,4,3,5,13,7,8]),import.meta.url),"TrafficSourceDetailPage");function rL(){return f.jsx(OM,{children:f.jsx(EM,{})})}const nn=Lw()({component:rL,validateSearch:e=>({runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0})}),oL=Et({getParentRoute:()=>nn,path:"/",component:RM,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Oi({client:ee}));if(n&&n.length===0)throw Hf({to:"/setup"})}}),lL=Et({getParentRoute:()=>nn,path:"/projects",component:QB}),cL=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Kn=Et({getParentRoute:()=>nn,path:"/projects/$projectName",component:()=>f.jsx(xf,{}),beforeLoad:async({context:e,params:n,location:i})=>{const r=n.projectName;if(!cL.test(r))return;let l=e.queryClient.getQueryData(Oi({client:ee}));if(!l)try{l=await e.queryClient.ensureQueryData(wc({client:ee}))}catch{return}const c=l.find(d=>d.id===r);if(c)throw Hf({to:i.pathname.replace(`/projects/${r}`,`/projects/${encodeURIComponent(c.name)}`),replace:!0})}}),uL=Et({getParentRoute:()=>Kn,path:"/",component:()=>f.jsx(ba,{tab:"overview"})}),dL=Et({getParentRoute:()=>Kn,path:"/search-console",component:()=>f.jsx(ba,{tab:"search-console"})}),fL=Et({getParentRoute:()=>Kn,path:"/local",component:()=>f.jsx(ba,{tab:"local"})}),pL=Et({getParentRoute:()=>Kn,path:"/discovery",component:()=>f.jsx(ba,{tab:"discovery"})}),mL=Et({getParentRoute:()=>Kn,path:"/report",component:()=>f.jsx(ba,{tab:"report"})}),hL=Et({getParentRoute:()=>Kn,path:"/activity",component:()=>f.jsx(ba,{tab:"activity"})}),gL=Et({getParentRoute:()=>Kn,path:"/backlinks",component:()=>f.jsx(ba,{tab:"backlinks"})}),yL=Et({getParentRoute:()=>Kn,path:"/technical-aeo",component:()=>f.jsx(ba,{tab:"technical-aeo"})}),bL=Et({getParentRoute:()=>Kn,path:"/settings",component:()=>f.jsx(ba,{tab:"settings"})}),vL=Et({getParentRoute:()=>nn,path:"/runs",component:tL}),SL=Et({getParentRoute:()=>nn,path:"/settings",component:nL,beforeLoad:({context:e})=>{}}),xL=Et({getParentRoute:()=>nn,path:"/setup",component:WB,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Oi({client:ee}));if(n&&n.length>0)throw Hf({to:"/"})}}),wL=Et({getParentRoute:()=>nn,path:"/backlinks",component:aL}),jL=Et({getParentRoute:()=>nn,path:"/traffic",component:iL}),NL=Et({getParentRoute:()=>nn,path:"/traffic/$projectName/$sourceId",component:sL}),kL=Et({getParentRoute:()=>nn,path:"*",component:eL}),AL=nn.addChildren([oL,lL,Kn.addChildren([uL,dL,fL,pL,mL,hL,gL,yL,bL]),vL,SL,xL,wL,jL,NL,kL]);function _L(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const pv=_L(),CL=pv==="/"?"":pv.replace(/\/$/,"");function TL(e,n){return qw({routeTree:AL,basepath:CL||"/",context:{queryClient:e},...n?.initialEntries})}const EL=6e4;function OL(){const[e,n]=L.useState(rf()?"ready":"checking"),[i,r]=L.useState(""),[l,c]=L.useState(""),[d,h]=L.useState(null),[g,v]=L.useState(!1),[S,x]=L.useState(!1),N=L.useRef(null),_=L.useRef(null),O=()=>{if(!N.current){const R=lA();_.current=R,N.current=TL(R)}return{queryClient:_.current,router:N.current}};L.useEffect(()=>{if(rf())return;let R=!1;return Zy().then(G=>{R||(G.authenticated?n("ready"):n(G.setupRequired?"setup":"login"))}).catch(G=>{R||(h(G instanceof Error?G.message:"Failed to reach the Canonry API"),n("login"))}),()=>{R=!0}},[]),L.useEffect(()=>{if(e!=="ready"||rf())return;const R=setInterval(()=>{Zy().then(G=>{G.authenticated||(x(!0),n(G.setupRequired?"setup":"login"))}).catch(()=>{})},EL);return Ky(()=>{x(!0),n("login")}),()=>{clearInterval(R),Ky(null)}},[e]);const k=async R=>{if(R.preventDefault(),!i.trim()||i.trim().length<8){h("Password must be at least 8 characters");return}if(i!==l){h("Passwords do not match");return}v(!0),h(null);try{if(!(await qk(i.trim())).authenticated){h("Setup failed");return}r(""),c(""),x(!1),n("ready")}catch(G){h(G instanceof Hn||G instanceof Error?G.message:"Setup failed")}finally{v(!1)}},E=async R=>{if(R.preventDefault(),!!i.trim()){v(!0),h(null);try{if(!(await Uk(i.trim())).authenticated){h("Incorrect password");return}r(""),x(!1),n("ready")}catch(G){h(G instanceof Hn||G instanceof Error?G.message:"Authentication failed")}finally{v(!1)}}};if(e==="ready"){const{queryClient:R,router:G}=O();return f.jsx(Uw,{client:R,children:f.jsx($w,{router:G})})}return f.jsx("div",{className:"min-h-screen bg-bg px-4 py-8",children:f.jsx("div",{className:"mx-auto flex min-h-[calc(100vh-4rem)] max-w-md items-center justify-center",children:f.jsx(kn,{className:"surface-card w-full",children:e==="checking"?f.jsx(Yl,{className:"py-8",children:f.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="setup"?f.jsxs(f.Fragment,{children:[f.jsxs(Bf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),f.jsx(Lf,{children:"Create a dashboard password"}),f.jsx(qf,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),f.jsx(Yl,{children:f.jsxs("form",{className:"space-y-4",onSubmit:Nn(k),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:i,onChange:R=>r(R.target.value),placeholder:"At least 8 characters"})]}),f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-secondary",children:"Confirm password"}),f.jsx("input",{className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:l,onChange:R=>c(R.target.value),placeholder:"Re-enter password"})]}),d?f.jsx("p",{className:"text-sm text-negative-400",children:d}):null,f.jsx(Ue,{type:"submit",disabled:g||!i.trim()||!l.trim(),children:g?"Setting up…":"Create password & open dashboard"})]})})]}):f.jsxs(f.Fragment,{children:[f.jsxs(Bf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),f.jsx(Lf,{children:"Sign in to Canonry"}),f.jsx(qf,{children:"Enter your dashboard password to continue."})]}),f.jsxs(Yl,{children:[S?f.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"Your session expired — please sign in again."}):null,f.jsxs("form",{className:"space-y-4",onSubmit:Nn(E),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:i,onChange:R=>r(R.target.value),placeholder:"Dashboard password"})]}),d?f.jsx("p",{className:"text-sm text-negative-400",children:d}):null,f.jsx(Ue,{type:"submit",disabled:g||!i.trim(),children:g?"Signing in…":"Open dashboard"})]})]})]})})})})}const y1=document.getElementById("root");if(!y1)throw new Error("Expected #root element for web app bootstrap.");Kw.createRoot(y1).render(f.jsx(L.StrictMode,{children:f.jsx(OL,{})}));export{A6 as $,o6 as A,Ue as B,sc as C,d6 as D,YL as E,y6 as F,Z5 as G,v6 as H,Xr as I,S6 as J,s5 as K,i5 as L,o5 as M,tn as N,g5 as O,l3 as P,j6 as Q,N6 as R,WD as S,Bn as T,c5 as U,x6 as V,w6 as W,b6 as X,r5 as Y,u5 as Z,k6 as _,nq as a,Ob as a$,D6 as a0,T6 as a1,O6 as a2,E6 as a3,z6 as a4,Xk as a5,aS as a6,ke as a7,C6 as a8,cR as a9,J6 as aA,f5 as aB,Oi as aC,p5 as aD,Np as aE,W6 as aF,tq as aG,eq as aH,d5 as aI,NA as aJ,$v as aK,W5 as aL,G6 as aM,J5 as aN,N5 as aO,uq as aP,n6 as aQ,e6 as aR,a6 as aS,i6 as aT,F5 as aU,t6 as aV,QL as aW,HL as aX,GL as aY,FL as aZ,m6 as a_,_i as aa,_6 as ab,wO as ac,jO as ad,X5 as ae,Y5 as af,G5 as ag,M5 as ah,V5 as ai,I5 as aj,Hn as ak,P5 as al,LL as am,UA as an,c6 as ao,LA as ap,KA as aq,fR as ar,Wl as as,Q5 as at,H5 as au,Af as av,H6 as aw,l5 as ax,X6 as ay,F6 as az,tp as b,xS as b$,p6 as b0,JL as b1,WL as b2,f6 as b3,e5 as b4,t5 as b5,a5 as b6,n5 as b7,uo as b8,wc as b9,M6 as bA,l6 as bB,y5 as bC,b5 as bD,v5 as bE,w5 as bF,Ac as bG,sq as bH,_p as bI,$k as bJ,kk as bK,BL as bL,XL as bM,m5 as bN,h5 as bO,Tp as bP,j5 as bQ,$s as bR,Db as bS,D5 as bT,B5 as bU,q5 as bV,U5 as bW,R5 as bX,L5 as bY,$5 as bZ,c3 as b_,J3 as ba,zv as bb,g6 as bc,XB as bd,Qt as be,zk as bf,i4 as bg,KL as bh,VL as bi,IL as bj,ZL as bk,iq as bl,UL as bm,$L as bn,qL as bo,Rk as bp,PL as bq,cq as br,g4 as bs,R6 as bt,B6 as bu,Gk as bv,L6 as bw,x5 as bx,S5 as by,q6 as bz,We as c,m3 as c0,wS as c1,jS as c2,DA as c3,z5 as c4,Wy as c5,Z6 as c6,s6 as c7,r6 as c8,jp as c9,h6 as ca,Hs as cb,Q6 as cc,Y6 as cd,O5 as ce,T5 as cf,E5 as cg,C5 as ch,K6 as ci,XE as d,aq as e,u6 as f,kn as g,Gb as h,xk as i,Nn as j,K5 as k,U6 as l,ee as m,$6 as n,V6 as o,P6 as p,I6 as q,k5 as r,_5 as s,t4 as t,Ep as u,A5 as v,rq as w,oq as x,lq as y,Mf as z};
|