@ainyc/canonry 4.68.1 → 4.69.1
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/agent-workspace/skills/canonry/references/canonry-cli.md +20 -1
- package/assets/assets/{BacklinksPage-B9Q2r9zM.js → BacklinksPage-DLsgGSXv.js} +1 -1
- package/assets/assets/{ChartPrimitives-D-YWOWK-.js → ChartPrimitives-CERLI8Z-.js} +1 -1
- package/assets/assets/{ProjectPage-BXgxWKyT.js → ProjectPage-CaRqQ1vH.js} +1 -1
- package/assets/assets/{RunRow-CJpjUaht.js → RunRow-C3x47chX.js} +1 -1
- package/assets/assets/{RunsPage-DVl_pgqe.js → RunsPage-DRIlEete.js} +1 -1
- package/assets/assets/{SettingsPage-CAiVL2mo.js → SettingsPage-CHaqBpnQ.js} +1 -1
- package/assets/assets/{TrafficPage-B8dnHFqk.js → TrafficPage-UbL0daLy.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-37s8p8eZ.js → TrafficSourceDetailPage-CjLDbjf_.js} +1 -1
- package/assets/assets/{extract-error-message-DwqbPRoa.js → extract-error-message-BndXGmUh.js} +1 -1
- package/assets/assets/{index-DFo2OL9c.js → index-BCwC5OlW.js} +39 -39
- package/assets/assets/{index-BquJzH0t.css → index-BUNCrWTe.css} +1 -1
- package/assets/assets/{server-traffic-CMFP8-x2.js → server-traffic-DOnVZFEw.js} +1 -1
- package/assets/assets/{trash-2-C4sYVIa6.js → trash-2-HEZdy4sJ.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-D75O5A27.js → chunk-5FM7QRYD.js} +1558 -1526
- package/dist/{chunk-GZYLAE6M.js → chunk-SBYA3LEJ.js} +4 -4
- package/dist/{chunk-Y24OE7R3.js → chunk-WFM2O72W.js} +494 -309
- package/dist/{chunk-YYFBMDLC.js → chunk-ZNWMVYYU.js} +53 -1
- package/dist/cli.js +197 -80
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-5V2JWQ6K.js → intelligence-service-DVVSE3G7.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +7 -7
|
@@ -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-CaRqQ1vH.js","./vendor-tanstack-Dq7p98wZ.js","./RunRow-C3x47chX.js","./ChartPrimitives-CERLI8Z-.js","./server-traffic-DOnVZFEw.js","./vendor-recharts-ClRVR6aX.js","./trash-2-HEZdy4sJ.js","./vendor-radix-B57xfQbP.js","./vendor-markdown-DK7fbRNb.js","./RunsPage-DRIlEete.js","./SettingsPage-CHaqBpnQ.js","./BacklinksPage-DLsgGSXv.js","./TrafficPage-UbL0daLy.js","./extract-error-message-BndXGmUh.js","./TrafficSourceDetailPage-CjLDbjf_.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{c as sw,d as rw,Q as ow,M as lw,r as q,q as Me,j as f,L as rt,a as cw,e as ks,u as un,f as uw,h as dc,k as dw,l as fw,m as Fb,O as Wb,n as Ya,o as _i,p as pw,s as Tt,t as ev,v as Gs,x as mw,y as hw,z as gw}from"./vendor-tanstack-Dq7p98wZ.js";import{S as yw,O as Rf,P as tv,C as Mf,a as nv,T as Bf,D as av,R as iv}from"./vendor-radix-B57xfQbP.js";import{c as sv}from"./vendor-recharts-ClRVR6aX.js";import{M as bw}from"./vendor-markdown-DK7fbRNb.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 Qd={exports:{}},Qr={},Yd={exports:{}},Xd={};var _y;function vw(){return _y||(_y=1,(function(e){function n($,W){var fe=$.length;$.push(W);e:for(;0<fe;){var je=fe-1>>>1,ie=$[je];if(0<l(ie,W))$[je]=W,$[fe]=ie,fe=je;else break e}}function i($){return $.length===0?null:$[0]}function r($){if($.length===0)return null;var W=$[0],fe=$.pop();if(fe!==W){$[0]=fe;e:for(var je=0,ie=$.length,Qe=ie>>>1;je<Qe;){var F=2*(je+1)-1,le=$[F],ee=F+1,ce=$[ee];if(0>l(le,fe))ee<ie&&0>l(ce,le)?($[je]=ce,$[ee]=fe,je=ee):($[je]=le,$[F]=fe,je=F);else if(ee<ie&&0>l(ce,fe))$[je]=ce,$[ee]=fe,je=ee;else break e}}return W}function l($,W){var fe=$.sortIndex-W.sortIndex;return fe!==0?fe:$.id-W.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=[],b=[],v=1,S=null,j=3,_=!1,C=!1,k=!1,E=!1,R=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,H=typeof setImmediate<"u"?setImmediate:null;function K($){for(var W=i(b);W!==null;){if(W.callback===null)r(b);else if(W.startTime<=$)r(b),W.sortIndex=W.expirationTime,n(g,W);else break;W=i(b)}}function Y($){if(k=!1,K($),!C)if(i(g)!==null)C=!0,J||(J=!0,ve());else{var W=i(b);W!==null&&me(Y,W.startTime-$)}}var J=!1,O=-1,M=5,oe=-1;function ke(){return E?!0:!(e.unstable_now()-oe<M)}function _e(){if(E=!1,J){var $=e.unstable_now();oe=$;var W=!0;try{e:{C=!1,k&&(k=!1,I(O),O=-1),_=!0;var fe=j;try{t:{for(K($),S=i(g);S!==null&&!(S.expirationTime>$&&ke());){var je=S.callback;if(typeof je=="function"){S.callback=null,j=S.priorityLevel;var ie=je(S.expirationTime<=$);if($=e.unstable_now(),typeof ie=="function"){S.callback=ie,K($),W=!0;break t}S===i(g)&&r(g),K($)}else r(g);S=i(g)}if(S!==null)W=!0;else{var Qe=i(b);Qe!==null&&me(Y,Qe.startTime-$),W=!1}}break e}finally{S=null,j=fe,_=!1}W=void 0}}finally{W?ve():J=!1}}}var ve;if(typeof H=="function")ve=function(){H(_e)};else if(typeof MessageChannel<"u"){var tt=new MessageChannel,re=tt.port2;tt.port1.onmessage=_e,ve=function(){re.postMessage(null)}}else ve=function(){R(_e,0)};function me($,W){O=R(function(){$(e.unstable_now())},W)}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"):M=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return j},e.unstable_next=function($){switch(j){case 1:case 2:case 3:var W=3;break;default:W=j}var fe=j;j=W;try{return $()}finally{j=fe}},e.unstable_requestPaint=function(){E=!0},e.unstable_runWithPriority=function($,W){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var fe=j;j=$;try{return W()}finally{j=fe}},e.unstable_scheduleCallback=function($,W,fe){var je=e.unstable_now();switch(typeof fe=="object"&&fe!==null?(fe=fe.delay,fe=typeof fe=="number"&&0<fe?je+fe:je):fe=je,$){case 1:var ie=-1;break;case 2:ie=250;break;case 5:ie=1073741823;break;case 4:ie=1e4;break;default:ie=5e3}return ie=fe+ie,$={id:v++,callback:W,priorityLevel:$,startTime:fe,expirationTime:ie,sortIndex:-1},fe>je?($.sortIndex=fe,n(b,$),i(g)===null&&$===i(b)&&(k?(I(O),O=-1):k=!0,me(Y,fe-je))):($.sortIndex=ie,n(g,$),C||_||(C=!0,J||(J=!0,ve()))),$},e.unstable_shouldYield=ke,e.unstable_wrapCallback=function($){var W=j;return function(){var fe=j;j=W;try{return $.apply(this,arguments)}finally{j=fe}}}})(Xd)),Xd}var zy;function Sw(){return zy||(zy=1,Yd.exports=vw()),Yd.exports}var Cy;function xw(){if(Cy)return Qr;Cy=1;var e=Sw(),n=sw(),i=rw();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 b(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 p=u.alternate;if(p===null){if(o=u.return,o!==null){s=o;continue}break}if(u.child===p.child){for(p=u.child;p;){if(p===s)return g(u),t;if(p===o)return g(u),a;p=p.sibling}throw Error(r(188))}if(s.return!==o.return)s=u,o=p;else{for(var y=!1,x=u.child;x;){if(x===s){y=!0,s=u,o=p;break}if(x===o){y=!0,o=u,s=p;break}x=x.sibling}if(!y){for(x=p.child;x;){if(x===s){y=!0,s=p,o=u;break}if(x===o){y=!0,o=p,s=u;break}x=x.sibling}if(!y)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 v(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t;for(t=t.child;t!==null;){if(a=v(t),a!==null)return a;t=t.sibling}return null}var S=Object.assign,j=Symbol.for("react.element"),_=Symbol.for("react.transitional.element"),C=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),R=Symbol.for("react.profiler"),I=Symbol.for("react.consumer"),H=Symbol.for("react.context"),K=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),J=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),M=Symbol.for("react.lazy"),oe=Symbol.for("react.activity"),ke=Symbol.for("react.memo_cache_sentinel"),_e=Symbol.iterator;function ve(t){return t===null||typeof t!="object"?null:(t=_e&&t[_e]||t["@@iterator"],typeof t=="function"?t:null)}var tt=Symbol.for("react.client.reference");function re(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===tt?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 Y:return"Suspense";case J:return"SuspenseList";case oe:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case C:return"Portal";case H:return t.displayName||"Context";case I:return(t._context.displayName||"Context")+".Consumer";case K:var a=t.render;return t=t.displayName,t||(t=a.displayName||a.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case O:return a=t.displayName||null,a!==null?a:re(t.type)||"Memo";case M:a=t._payload,t=t._init;try{return re(t(a))}catch{}}return null}var me=Array.isArray,$=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,fe={pending:!1,data:null,method:null,action:null},je=[],ie=-1;function Qe(t){return{current:t}}function F(t){0>ie||(t.current=je[ie],je[ie]=null,ie--)}function le(t,a){ie++,je[ie]=t.current,t.current=a}var ee=Qe(null),ce=Qe(null),ne=Qe(null),Ne=Qe(null);function nt(t,a){switch(le(ne,a),le(ce,t),le(ee,null),a.nodeType){case 9:case 11:t=(t=a.documentElement)&&(t=t.namespaceURI)?Xg(t):0;break;default:if(t=a.tagName,a=a.namespaceURI)a=Xg(a),t=Jg(a,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}F(ee),le(ee,t)}function xe(){F(ee),F(ce),F(ne)}function $e(t){t.memoizedState!==null&&le(Ne,t);var a=ee.current,s=Jg(a,t.type);a!==s&&(le(ce,t),le(ee,s))}function Pe(t){ce.current===t&&(F(ee),F(ce)),Ne.current===t&&(F(Ne),Hr._currentValue=fe)}var Et,Cn;function Ot(t){if(Et===void 0)try{throw Error()}catch(s){var a=s.stack.trim().match(/\n( *(at )?)/);Et=a&&a[1]||"",Cn=-1<s.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+Et+t+Cn}var Ws=!1;function Ei(t,a){if(!t||Ws)return"";Ws=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(a){var Q=function(){throw Error()};if(Object.defineProperty(Q.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Q,[])}catch(V){var U=V}Reflect.construct(t,[],Q)}else{try{Q.call()}catch(V){U=V}t.call(Q.prototype)}}else{try{throw Error()}catch(V){U=V}(Q=t())&&typeof Q.catch=="function"&&Q.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 p=o.DetermineComponentFrameRoot(),y=p[0],x=p[1];if(y&&x){var A=y.split(`
|
|
@@ -11,7 +11,7 @@ Error generating stack: `+o.message+`
|
|
|
11
11
|
|
|
12
12
|
`);M=ve.pop()??"";for(const tt of ve){const re=tt.split(`
|
|
13
13
|
`),me=[];let $;for(const je of re)if(je.startsWith("data:"))me.push(je.replace(/^data:\s*/,""));else if(je.startsWith("event:"))$=je.replace(/^event:\s*/,"");else if(je.startsWith("id:"))S=je.replace(/^id:\s*/,"");else if(je.startsWith("retry:")){const ie=Number.parseInt(je.replace(/^retry:\s*/,""),10);Number.isNaN(ie)||(k=ie)}let W,fe=!1;if(me.length){const je=me.join(`
|
|
14
|
-
`);try{W=JSON.parse(je),fe=!0}catch{W=je}}fe&&(l&&await l(W),r&&(W=await r(W))),i?.({data:W,event:$,id:S,retry:k}),me.length&&(yield W)}}}finally{R.removeEventListener("abort",oe),O.releaseLock()}break}catch(H){if(n?.(H),d!==void 0&&E>=d)break;const K=Math.min(k*2**(E-1),h??3e4);await j(K)}}}()}},Aw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},_w=e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},zw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},rv=({allowReserved:e,explode:n,name:i,style:r,value:l})=>{if(!n){const h=(e?l:l.map(g=>encodeURIComponent(g))).join(_w(r));switch(r){case"label":return`.${h}`;case"matrix":return`;${i}=${h}`;case"simple":return h;default:return`${i}=${h}`}}const c=Aw(r),d=l.map(h=>r==="label"||r==="simple"?e?h:encodeURIComponent(h):fc({allowReserved:e,name:i,value:h})).join(c);return r==="label"||r==="matrix"?c+d:d},fc=({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)}`},ov=({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(([v,S])=>{g=[...g,v,e?S:encodeURIComponent(S)]});const b=g.join(",");switch(r){case"form":return`${i}=${b}`;case"label":return`.${b}`;case"matrix":return`;${i}=${b}`;default:return b}}const d=zw(r),h=Object.entries(l).map(([g,b])=>fc({allowReserved:e,name:r==="deepObject"?`${i}[${g}]`:g,value:b})).join(d);return r==="label"||r==="matrix"?d+h:h},Cw=/\{[^{}]+\}/g,Tw=({path:e,url:n})=>{let i=n;const r=n.match(Cw);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,rv({explode:c,name:d,style:h,value:g}));continue}if(typeof g=="object"){i=i.replace(l,ov({explode:c,name:d,style:h,value:g,valueOnly:!0}));continue}if(h==="matrix"){i=i.replace(l,`;${fc({name:d,value:g})}`);continue}const b=encodeURIComponent(h==="label"?`.${g}`:g);i=i.replace(l,b)}return i},Ew=({baseUrl:e,path:n,query:i,querySerializer:r,url:l})=>{const c=l.startsWith("/")?l:`/${l}`;let d=(e??"")+c;n&&(d=Tw({path:n,url:d}));let h=i?r(i):"";return h.startsWith("?")&&(h=h.substring(1)),h&&(d+=`?${h}`),d};function Ow(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 Dw=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},lv=({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=rv({allowReserved:e,explode:!0,name:d,style:"form",value:h,...n});g&&c.push(g)}else if(typeof h=="object"){const g=ov({allowReserved:e,explode:!0,name:d,style:"deepObject",value:h,...i});g&&c.push(g)}else{const g=fc({allowReserved:e,name:d,value:h});g&&c.push(g)}}return c.join("&")},Rw=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"}},Mw=(e,n)=>n?!!(e.headers.has(n)||e.query?.[n]||e.headers.get("Cookie")?.includes(`${n}=`)):!1,Bw=async({security:e,...n})=>{for(const i of e){if(Mw(n,i.name))continue;const r=await Dw(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}}},Ey=e=>Ew({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:lv(e.querySerializer),url:e.url}),Oy=(e,n)=>{const i={...e,...n};return i.baseUrl?.endsWith("/")&&(i.baseUrl=i.baseUrl.substring(0,i.baseUrl.length-1)),i.headers=cv(e.headers,n.headers),i},Lw=e=>{const n=[];return e.forEach((i,r)=>{n.push([r,i])}),n},cv=(...e)=>{const n=new Headers;for(const i of e){if(!i)continue;const r=i instanceof Headers?Lw(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 Jd{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 qw=()=>({error:new Jd,request:new Jd,response:new Jd}),Uw=lv({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),$w={"Content-Type":"application/json"},uv=(e={})=>({...Nw,headers:$w,parseAs:"auto",querySerializer:Uw,...e}),dv=(e={})=>{let n=Oy(uv(),e);const i=()=>({...n}),r=b=>(n=Oy(n,b),i()),l=qw(),c=async b=>{const v={...n,...b,fetch:b.fetch??n.fetch??globalThis.fetch,headers:cv(n.headers,b.headers),serializedBody:void 0};v.security&&await Bw({...v,security:v.security}),v.requestValidator&&await v.requestValidator(v),v.body!==void 0&&v.bodySerializer&&(v.serializedBody=v.bodySerializer(v.body)),(v.body===void 0||v.serializedBody==="")&&v.headers.delete("Content-Type");const S=Ey(v);return{opts:v,url:S}},d=async b=>{const{opts:v,url:S}=await c(b),j={redirect:"follow",...v,body:Ow(v)};let _=new Request(S,j);for(const Y of l.request.fns)Y&&(_=await Y(_,v));const C=v.fetch;let k=await C(_);for(const Y of l.response.fns)Y&&(k=await Y(k,_,v));const E={request:_,response:k};if(k.ok){const Y=(v.parseAs==="auto"?Rw(k.headers.get("Content-Type")):v.parseAs)??"json";if(k.status===204||k.headers.get("Content-Length")==="0"){let O;switch(Y){case"arrayBuffer":case"blob":case"text":O=await k[Y]();break;case"formData":O=new FormData;break;case"stream":O=k.body;break;default:O={};break}return v.responseStyle==="data"?O:{data:O,...E}}let J;switch(Y){case"arrayBuffer":case"blob":case"formData":case"json":case"text":J=await k[Y]();break;case"stream":return v.responseStyle==="data"?k.body:{data:k.body,...E}}return Y==="json"&&(v.responseValidator&&await v.responseValidator(J),v.responseTransformer&&(J=await v.responseTransformer(J))),v.responseStyle==="data"?J:{data:J,...E}}const R=await k.text();let I;try{I=JSON.parse(R)}catch{}const H=I??R;let K=H;for(const Y of l.error.fns)Y&&(K=await Y(H,k,_,v));if(K=K||{},v.throwOnError)throw K;return v.responseStyle==="data"?void 0:{error:K,...E}},h=b=>v=>d({...v,method:b}),g=b=>async v=>{const{opts:S,url:j}=await c(v);return kw({...S,body:S.body,headers:S.headers,method:b,onRequest:async(_,C)=>{let k=new Request(_,C);for(const E of l.request.fns)E&&(k=await E(k,S));return k},url:j})};return{buildUrl:Ey,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")}},X=dv(uv()),Vw=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),fv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),Iw=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),Gw=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects",...e}),Hw=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations",...e,headers:{"Content-Type":"application/json",...e.headers}}),Pw=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/{label}",...e}),Zw=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/default",...e,headers:{"Content-Type":"application/json",...e.headers}}),Kw=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/export",...e}),Qw=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e}),Yw=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),Xw=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),Jw=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries/generate",...e,headers:{"Content-Type":"application/json",...e.headers}}),Fw=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),Ww=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e}),ej=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),tj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e}),nj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),aj=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e}),ij=e=>(e?.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),pv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs/{id}",...e}),sj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/apply",...e,headers:{"Content-Type":"application/json",...e.headers}}),rj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/timeline",...e}),oj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/analytics/metrics",...e}),mv=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings",...e}),lj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/providers/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),cj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/google",...e,headers:{"Content-Type":"application/json",...e.headers}}),uj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/bing",...e,headers:{"Content-Type":"application/json",...e.headers}}),dj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/cdp",...e,headers:{"Content-Type":"application/json",...e.headers}}),fj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),pj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),mj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e,headers:{"Content-Type":"application/json",...e.headers}}),hj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e}),gj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e,headers:{"Content-Type":"application/json",...e.headers}}),yj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}",...e}),bj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}/test",...e}),vj=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/cdp/status",...e}),Sj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections",...e}),xj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),wj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}",...e}),jj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/properties",...e}),Nj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/property",...e,headers:{"Content-Type":"application/json",...e.headers}}),kj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Aj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),_j=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance",...e}),zj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance/daily",...e}),Cj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect",...e,headers:{"Content-Type":"application/json",...e.headers}}),Tj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspections",...e}),Ej=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/deindexed",...e}),hv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage",...e}),Oj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage/history",...e}),Dj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps",...e}),Rj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/discover-sitemaps",...e}),Mj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Bj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/indexing/request",...e,headers:{"Content-Type":"application/json",...e.headers}}),Lj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations",...e}),qj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations/{locationName}/selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),Uj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),$j=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/keywords",...e}),Vj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/places",...e}),Ij=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/summary",...e}),Gj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),Hj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/disconnect",...e}),Pj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/status",...e}),Zj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/sites",...e}),Kj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/set-site",...e,headers:{"Content-Type":"application/json",...e.headers}}),gv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/coverage",...e}),Qj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspections",...e}),Yj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-url",...e,headers:{"Content-Type":"application/json",...e.headers}}),Xj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Jj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/request-indexing",...e,headers:{"Content-Type":"application/json",...e.headers}}),Fj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/performance",...e}),Wj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),eN=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/disconnect",...e}),tN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/status",...e}),nN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),aN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/traffic",...e}),iN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/ai-referral-history",...e}),sN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/social-referral-history",...e}),rN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/session-history",...e}),oN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/insights",...e}),lN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/report",...e}),cN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/citations/visibility",...e}),uN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/content/dismissals",...e,headers:{"Content-Type":"application/json",...e.headers}}),dN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/overview",...e}),fN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/status",...e}),pN=e=>(e?.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/install",...e}),mN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e}),hN=e=>(e?.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),gN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs/latest",...e}),yN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/releases",...e}),bN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/latest-release",...e}),vN=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/cache/{release}",...e}),SN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/extract",...e,headers:{"Content-Type":"application/json",...e.headers}}),xN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/summary",...e}),wN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/domains",...e}),jN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/history",...e}),NN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/cloud-run",...e,headers:{"Content-Type":"application/json",...e.headers}}),kN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/wordpress",...e,headers:{"Content-Type":"application/json",...e.headers}}),AN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/vercel",...e,headers:{"Content-Type":"application/json",...e.headers}}),_N=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),zN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/backfill",...e,headers:{"Content-Type":"application/json",...e.headers}}),CN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources",...e}),TN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/status",...e}),EN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}",...e}),ON=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/events",...e}),DN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/run",...e,headers:{"Content-Type":"application/json",...e.headers}}),RN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions",...e}),MN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}",...e}),BN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e}),LN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e,headers:{"Content-Type":"application/json",...e.headers}}),qN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/agent/providers",...e});function UN(e){const n={baseUrl:e.baseUrl,fetch:e.fetch,headers:{...e.headers??{}}};return dv(n)}class Hn extends Error{code;statusCode;constructor(n,i,r){super(n),this.name="ApiError",this.code=r??"UNKNOWN",this.statusCode=i}}function $N(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const yv=$N();function VN(){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 IN(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):""}function GN(e){return`${IN()}${e}`}function HN(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 PN(){return""}function Fd(){return!!PN()}let bv=null;function Dy(e){bv=e}function Lf(){bv?.()}const ae=UN({baseUrl:VN()});ae.interceptors.response.use((e,n)=>((e.status===401||e.status===403)&&!n.url.includes("/api/v1/session")&&Lf(),e));async function ue(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;if(typeof n.error=="object"&&n.error!==null){const c=n.error.error;if(typeof c=="string")r=c;else if(c&&typeof c=="object"){const d=c;d.message&&(r=d.message),d.code&&(l=d.code)}else{const d=n.error;d.message&&(r=d.message),d.code&&(l=d.code)}}else typeof n.error=="string"&&(r=n.error);throw new Hn(r,i,l)}if(n.response.status!==204)return n.data}async function qf(e,n){const i=n?.body!=null,r=await fetch(`${yv}${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;if(l)try{const h=JSON.parse(l);typeof h.error=="string"?c=h.error:h.error?.message?(c=h.error.message,d=h.error.code):h.message&&(c=h.message)}catch{c=l}throw(r.status===401||r.status===403)&&!e.startsWith("/session")&&Lf(),new Hn(c,r.status,d)}if(r.status!==204)return r.json()}function Uf(e){return ue(()=>fv({client:ae,path:{name:e}}))}function JR(e){return ue(()=>tj({client:ae,path:{name:e}}))}function Fl(e){return ue(()=>pv({client:ae,path:{id:e}}))}function ZN(e){return ue(()=>Qw({client:ae,path:{name:e}}))}function KN(e){return ue(()=>Ww({client:ae,path:{name:e}}))}function QN(e,n){return ue(()=>rj({client:ae,path:{name:e},query:{location:n}}))}function vv(e,n){return ue(()=>dN({client:ae,path:{name:e},query:{location:n?.location,since:n?.since}}))}function uo(e,n){return ue(()=>Iw({client:ae,path:{name:e},body:n}))}function YN(e,n){return ue(()=>Xw({client:ae,path:{name:e},body:{queries:n}}))}function XN(e,n){return ue(()=>Yw({client:ae,path:{name:e},body:{queries:n}}))}function JN(e,n){return ue(()=>uN({client:ae,path:{name:e},body:n}))}function FN(e,n){return ue(()=>ej({client:ae,path:{name:e},body:{competitors:n}}))}function FR(e,n){return ue(()=>Fw({client:ae,path:{name:e},body:{competitors:n}}))}async function WR(e,n){const i=await Uf(e);return uo(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 eM(e,n){const i=await Uf(e);return uo(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 tM(e,n){const i=await Uf(e);return uo(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 WN(e,n){const i={};return n?.location&&(i.location=n.location),n?.allLocations&&(i.allLocations=!0),n?.noLocation&&(i.noLocation=!0),ue(()=>nj({client:ae,path:{name:e},body:i}))}function nM(e,n){return ue(()=>Hw({client:ae,path:{name:e},body:n}))}async function aM(e,n){await ue(()=>Pw({client:ae,path:{name:e,label:n}}))}function iM(e,n){return ue(()=>Zw({client:ae,path:{name:e},body:{label:n}}))}async function sM(e){await ue(()=>Vw({client:ae,path:{name:e}}))}function rM(e){return ue(()=>Kw({client:ae,path:{name:e}}))}function oM(){return ue(()=>mv({client:ae}))}function Ry(){return qf("/session")}function ek(e){return qf("/session/setup",{method:"POST",body:JSON.stringify({password:e})})}function tk(e){return qf("/session",{method:"POST",body:JSON.stringify({password:e})})}function nk(e,n){return ue(()=>lj({client:ae,path:{name:e},body:n}))}function lM(e){return ue(()=>cj({client:ae,body:e}))}async function cM(e){try{return await ue(()=>pj({client:ae,path:{name:e}}))}catch(n){if(n instanceof Hn&&n.statusCode===404)return null;throw n}}function uM(e,n){return ue(()=>mj({client:ae,path:{name:e},body:n}))}async function dM(e){await ue(()=>fj({client:ae,path:{name:e}}))}function fM(e){return ue(()=>hj({client:ae,path:{name:e}}))}function pM(e,n){return ue(()=>gj({client:ae,path:{name:e},body:n}))}async function mM(e,n){await ue(()=>yj({client:ae,path:{name:e,id:n}}))}function hM(e,n){return ue(()=>bj({client:ae,path:{name:e,id:n}}))}function ak(e,n,i){return ue(()=>Jw({client:ae,path:{name:e},body:{provider:n,count:i}}))}function ik(e){return ue(()=>sj({client:ae,body:e}))}function sk(e){return ue(()=>ij({client:ae,body:e??{}}))}function gM(e,n){return ue(()=>xj({client:ae,path:{name:e},body:{type:n}}))}function yM(e,n){return ue(()=>wj({client:ae,path:{name:e,type:n}}))}function bM(e,n,i){return ue(()=>Nj({client:ae,path:{name:e,type:n},body:{propertyId:i}}))}function vM(e,n,i){return ue(()=>kj({client:ae,path:{name:e,type:n},body:{sitemapUrl:i}}))}function rk(e,n){return ue(()=>Aj({client:ae,path:{name:e},body:n??{}}))}function SM(e,n){const i={};return n&&n!=="all"&&(i.window=n),ue(()=>oj({client:ae,path:{name:e},query:i}))}function xM(e,n){return ue(()=>Cj({client:ae,path:{name:e},body:{url:n}}))}function ok(e){return ue(()=>hv({client:ae,path:{name:e}}))}function lk(e,n){return ue(()=>Mj({client:ae,path:{name:e},body:n??{}}))}function wM(e){return ue(()=>Dj({client:ae,path:{name:e}}))}function ck(e){return ue(()=>Rj({client:ae,path:{name:e}}))}function jM(e,n){return ue(()=>DN({client:ae,path:{name:e},body:n??{}}))}function NM(e,n,i){return ue(()=>LN({client:ae,path:{name:e,id:n},body:i??{}}))}function kM(){return ue(()=>vj({client:ae}))}function AM(e,n){return ue(()=>dj({client:ae,body:{host:e,port:n}}))}function _M(e,n){return ue(()=>Bj({client:ae,path:{name:e},body:n}))}function zM(e,n){return ue(()=>Gj({client:ae,path:{name:e},body:{apiKey:n}}))}function CM(e){return ue(()=>Hj({client:ae,path:{name:e}}))}function TM(e,n){return ue(()=>Kj({client:ae,path:{name:e},body:{siteUrl:n}}))}function uk(e){return ue(()=>gv({client:ae,path:{name:e}}))}function EM(e,n){return ue(()=>Yj({client:ae,path:{name:e},body:{url:n}}))}function OM(e,n){return ue(()=>Xj({client:ae,path:{name:e},body:{}}))}function DM(e,n){return ue(()=>Jj({client:ae,path:{name:e},body:n}))}function RM(e){return ue(()=>uj({client:ae,body:{apiKey:e}}))}function dk(e){return e?/filename\s*=\s*"?([^";]+)"?/i.exec(e)?.[1]??null:null}async function MM(e,n="agency"){const i=new URLSearchParams({audience:n}),r=await fetch(`${yv}/projects/${encodeURIComponent(e)}/report.html?${i.toString()}`,{credentials:"same-origin",headers:{}});if(!r.ok)throw new Hn(`Failed to download report: ${r.status}`,r.status);const l=await r.blob(),c=URL.createObjectURL(l),d=dk(r.headers.get("Content-Disposition"))??`canonry-report-${e}.html`,h=document.createElement("a");h.href=c,h.download=d,document.body.appendChild(h),h.click(),document.body.removeChild(h),URL.revokeObjectURL(c)}function BM(e,n){return ue(()=>nN({client:ae,path:{name:e},body:{}}))}function LM(e,n){return ue(()=>Wj({client:ae,path:{name:e},body:n}))}function qM(e){return ue(()=>eN({client:ae,path:{name:e}}))}function UM(e,n){return ue(()=>NN({client:ae,path:{name:e},body:n}))}function $M(e,n){return ue(()=>kN({client:ae,path:{name:e},body:n}))}function VM(e,n){return ue(()=>AN({client:ae,path:{name:e},body:n}))}function IM(e,n,i){return ue(()=>_N({client:ae,path:{name:e,id:n},body:i??{}}))}function GM(e,n,i){return ue(()=>zN({client:ae,path:{name:e,id:n},body:{}}))}function fk(e,n){return ue(()=>oN({client:ae,path:{name:e},query:{runId:n}}))}function pk(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 mk(e,n){const i=GN(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:HN(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=pk(l.updateAvailable),b=[c,d===!1?"database not configured":"database configured",h?`heartbeat ${h}`:void 0].filter(Boolean).join(" · ");return{label:n,state:"ok",detail:b,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 HM(){return ue(()=>fN({client:ae}))}function PM(){return ue(()=>pN({client:ae}))}function ZM(){return ue(()=>gN({client:ae}))}function KM(){return ue(()=>mN({client:ae}))}function QM(e){return ue(()=>hN({client:ae,body:e?{release:e}:{}}))}function YM(){return ue(()=>yN({client:ae}))}function XM(){return ue(()=>bN({client:ae}))}function JM(e){return ue(()=>vN({client:ae,path:{release:e}}))}function FM(e,n={}){return ue(()=>xN({client:ae,path:{name:e},query:{release:n.release,excludeCrawlers:n.excludeCrawlers?"1":void 0}}))}function WM(e,n={}){return ue(()=>wN({client:ae,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}}))}function eB(e){return ue(()=>jN({client:ae,path:{name:e}}))}function tB(e,n){return ue(()=>SN({client:ae,path:{name:e},body:{release:void 0}}))}function wn(e){return(...n)=>{e(...n)}}const hk=6e3,gk=5,yk=180;let $t=[],bk=0;const ff=new Set,pf=new Map,mf=new Map;function Wl(){const e=[...$t];for(const n of ff)n(e)}function $f(e){const n=pf.get(e);n&&(clearTimeout(n),pf.delete(e));const i=mf.get(e);i&&(clearTimeout(i),mf.delete(e))}function Sv(e){$f(e);const n=$t.length;$t=$t.filter(i=>i.id!==e),$t.length!==n&&Wl()}function My(e){$f(e.id),pf.set(e.id,setTimeout(()=>{hf(e.id)},e.durationMs))}function vk(e,n,i){return typeof e=="string"?{title:e,tone:n,durationMs:i}:e}function dn(e,n="negative",i=hk){const r=vk(e,n,i),l={id:String(++bk),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=$t.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 $t=$t.map(h=>h.id===c.id?d:h),Wl(),My(d),c.id}}return $t.length>=gk&&Sv($t[0].id),$t=[...$t,l],Wl(),My(l),l.id}function hf(e){const n=$t.find(i=>i.id===e);!n||n.state==="closing"||($f(e),$t=$t.map(i=>i.id===e?{...i,state:"closing"}:i),Wl(),mf.set(e,setTimeout(()=>{Sv(e)},yk)))}function Sk(e){return ff.add(e),()=>{ff.delete(e)}}function By(){return $t}const xk=5*6e4,gf=30*6e4,nB=3e4,aB=6e4,so=3e4,wk=2e3,jk=5e3;function Nk(){return new ow({defaultOptions:{queries:{staleTime:xk,retry:1,refetchOnWindowFocus:!1}},mutationCache:new lw({onError:(e,n,i,r)=>{r.meta?.skipGlobalErrorToast||dn({title:e instanceof Error?e.message:"An unexpected error occurred",tone:"negative"})}})})}const kk="modulepreload",Ak=function(e,n){return new URL(e,n).href},Ly={},Hs=function(n,i,r){let l=Promise.resolve();if(i&&i.length>0){let b=function(v){return Promise.all(v.map(S=>Promise.resolve(S).then(j=>({status:"fulfilled",value:j}),j=>({status:"rejected",reason:j}))))};const d=document.getElementsByTagName("link"),h=document.querySelector("meta[property=csp-nonce]"),g=h?.nonce||h?.getAttribute("nonce");l=b(i.map(v=>{if(v=Ak(v,r),v in Ly)return;Ly[v]=!0;const S=v.endsWith(".css"),j=S?'[rel="stylesheet"]':"";if(r)for(let C=d.length-1;C>=0;C--){const k=d[C];if(k.href===v&&(!S||k.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${v}"]${j}`))return;const _=document.createElement("link");if(_.rel=S?"stylesheet":kk,S||(_.as="script"),_.crossOrigin="",_.href=v,g&&_.setAttribute("nonce",g),document.head.appendChild(_),S)return new Promise((C,k)=>{_.addEventListener("load",C),_.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${v}`)))})}))}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 _k=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),zk=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,i,r)=>r?r.toUpperCase():i.toLowerCase()),qy=e=>{const n=zk(e);return n.charAt(0).toUpperCase()+n.slice(1)},xv=(...e)=>e.filter((n,i,r)=>!!n&&n.trim()!==""&&r.indexOf(n)===i).join(" ").trim(),Ck=e=>{for(const n in e)if(n.startsWith("aria-")||n==="role"||n==="title")return!0};var Tk={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 Ek=q.forwardRef(({color:e="currentColor",size:n=24,strokeWidth:i=2,absoluteStrokeWidth:r,className:l="",children:c,iconNode:d,...h},g)=>q.createElement("svg",{ref:g,...Tk,width:n,height:n,stroke:e,strokeWidth:r?Number(i)*24/Number(n):i,className:xv("lucide",l),...!c&&!Ck(h)&&{"aria-hidden":"true"},...h},[...d.map(([b,v])=>q.createElement(b,v)),...Array.isArray(c)?c:[c]]));const et=(e,n)=>{const i=q.forwardRef(({className:r,...l},c)=>q.createElement(Ek,{ref:c,iconNode:n,className:xv(`lucide-${_k(qy(e))}`,`lucide-${e}`,r),...l}));return i.displayName=qy(e),i};const Ok=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Dk=et("arrow-right",Ok);const Rk=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Mk=et("arrow-up",Rk);const Bk=[["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"}]],Lk=et("book-open",Bk);const qk=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],wv=et("check",qk);const Uk=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],$k=et("chevron-down",Uk);const Vk=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Vf=et("chevron-right",Vk);const Ik=[["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"}]],Gk=et("copy",Ik);const Hk=[["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"}]],Pk=et("file-text",Hk);const Zk=[["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"}]],Kk=et("github",Zk);const Qk=[["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"}]],Yk=et("globe",Qk);const Xk=[["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"}]],Jk=et("layout-dashboard",Xk);const Fk=[["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"}]],Wk=et("link-2",Fk);const eA=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],tA=et("loader-circle",eA);const nA=[["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"}]],aA=et("maximize-2",nA);const iA=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],sA=et("menu",iA);const rA=[["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"}]],oA=et("minimize-2",rA);const lA=[["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"}]],cA=et("play",lA);const uA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Uy=et("plus",uA);const dA=[["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"}]],fA=et("radar",dA);const pA=[["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"}]],$y=et("radio",pA);const mA=[["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"}]],hA=et("rocket",mA);const gA=[["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"}]],jv=et("rotate-ccw",gA);const yA=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],bA=et("search",yA);const vA=[["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"}]],SA=et("settings",vA);const xA=[["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"}]],Nv=et("triangle-alert",xA);const wA=[["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"}]],jA=et("wrench",wA);const NA=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Ps=et("x",NA);function P(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 b=d.prototype,v=Object.keys(b);for(let S=0;S<v.length;S++){const j=v[S];j in h||(h[j]=b[j].bind(h))}}const l=i?.Parent??Object;class c extends l{}Object.defineProperty(c,"name",{value:e});function d(h){var g;const b=i?.Parent?new c:this;r(b,h),(g=b._zod).deferred??(g.deferred=[]);for(const v of b._zod.deferred)v();return b}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 kv extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError"}}const Av={};function Ka(e){return Av}function _v(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 yf(e,n){return typeof n=="bigint"?n.toString():n}function pc(e){return{get value(){{const n=e();return Object.defineProperty(this,"value",{value:n}),n}}}}function If(e){return e==null}function Gf(e){const n=e.startsWith("^")?1:0,i=e.endsWith("$")?e.length-1:e.length;return e.slice(n,i)}function kA(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 Vy=Symbol("evaluating");function He(e,n,i){let r;Object.defineProperty(e,n,{get(){if(r!==Vy)return r===void 0&&(r=Vy,r=i()),r},set(l){Object.defineProperty(e,n,{value:l})},configurable:!0})}function zi(e,n,i){Object.defineProperty(e,n,{value:i,writable:!0,enumerable:!0,configurable:!0})}function Xa(...e){const n={};for(const i of e){const r=Object.getOwnPropertyDescriptors(i);Object.assign(n,r)}return Object.defineProperties({},n)}function Iy(e){return JSON.stringify(e)}function AA(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const zv="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ro(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const _A=pc(()=>{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(ro(e)===!1)return!1;const n=e.constructor;if(n===void 0||typeof n!="function")return!0;const i=n.prototype;return!(ro(i)===!1||Object.prototype.hasOwnProperty.call(i,"isPrototypeOf")===!1)}function Cv(e){return qs(e)?{...e}:Array.isArray(e)?[...e]:e}const zA=new Set(["string","number","symbol"]);function Us(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ja(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 CA(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}const TA={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 EA(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=Xa(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 zi(this,"shape",d),d},checks:[]});return Ja(e,c)}function OA(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=Xa(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 zi(this,"shape",d),d},checks:[]});return Ja(e,c)}function DA(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=Xa(e._zod.def,{get shape(){const c={...e._zod.def.shape,...n};return zi(this,"shape",c),c}});return Ja(e,l)}function RA(e,n){if(!qs(n))throw new Error("Invalid input to safeExtend: expected a plain object");const i=Xa(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n};return zi(this,"shape",r),r}});return Ja(e,i)}function MA(e,n){const i=Xa(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n._zod.def.shape};return zi(this,"shape",r),r},get catchall(){return n._zod.def.catchall},checks:[]});return Ja(e,i)}function BA(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=Xa(n._zod.def,{get shape(){const h=n._zod.def.shape,g={...h};if(i)for(const b in i){if(!(b in h))throw new Error(`Unrecognized key: "${b}"`);i[b]&&(g[b]=e?new e({type:"optional",innerType:h[b]}):h[b])}else for(const b in h)g[b]=e?new e({type:"optional",innerType:h[b]}):h[b];return zi(this,"shape",g),g},checks:[]});return Ja(n,d)}function LA(e,n,i){const r=Xa(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 zi(this,"shape",c),c}});return Ja(n,r)}function Cs(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 Ts(e,n){return n.map(i=>{var r;return(r=i).path??(r.path=[]),i.path.unshift(e),i})}function Bl(e){return typeof e=="string"?e:e?.message}function Qa(e,n,i){const r={...e,path:e.path??[]};if(!e.message){const l=Bl(e.inst?._zod.def?.error?.(e))??Bl(n?.error?.(e))??Bl(i.customError?.(e))??Bl(i.localeError?.(e))??"Invalid input";r.message=l}return delete r.inst,delete r.continue,n?.reportInput||delete r.input,r}function Hf(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function oo(...e){const[n,i,r]=e;return typeof n=="string"?{message:n,code:"custom",input:i,inst:r}:{...n}}const Tv=(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,yf,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Ev=P("$ZodError",Tv),Ov=P("$ZodError",Tv,{Parent:Error});function qA(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 UA(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 Pf=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=>Qa(g,c,Ka())));throw zv(h,l?.callee),h}return d.value},Zf=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=>Qa(g,c,Ka())));throw zv(h,l?.callee),h}return d.value},mc=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??Ev)(c.issues.map(d=>Qa(d,l,Ka())))}:{success:!0,data:c.value}},$A=mc(Ov),hc=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=>Qa(d,l,Ka())))}:{success:!0,data:c.value}},VA=hc(Ov),IA=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Pf(e)(n,i,l)},GA=e=>(n,i,r)=>Pf(e)(n,i,r),HA=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Zf(e)(n,i,l)},PA=e=>async(n,i,r)=>Zf(e)(n,i,r),ZA=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return mc(e)(n,i,l)},KA=e=>(n,i,r)=>mc(e)(n,i,r),QA=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return hc(e)(n,i,l)},YA=e=>async(n,i,r)=>hc(e)(n,i,r),XA=/^[cC][^\s-]{8,}$/,JA=/^[0-9a-z]+$/,FA=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,WA=/^[0-9a-vA-V]{20}$/,e2=/^[A-Za-z0-9]{27}$/,t2=/^[a-zA-Z0-9_-]{21}$/,n2=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,a2=/^([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})$/,Gy=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)$/,i2=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,s2="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function r2(){return new RegExp(s2,"u")}const o2=/^(?:(?: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])$/,l2=/^(([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}|:))$/,c2=/^((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])$/,u2=/^(([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])$/,d2=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Dv=/^[A-Za-z0-9_-]*$/,f2=/^\+[1-9]\d{6,14}$/,Rv="(?:(?:\\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])))",p2=new RegExp(`^${Rv}$`);function Mv(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 m2(e){return new RegExp(`^${Mv(e)}$`)}function h2(e){const n=Mv({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(`^${Rv}T(?:${r})$`)}const g2=e=>{const n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},y2=/^-?\d+$/,Bv=/^-?\d+(?:\.\d+)?$/,b2=/^(?:true|false)$/i,v2=/^[^A-Z]*$/,S2=/^[^a-z]*$/,tn=P("$ZodCheck",(e,n)=>{var i;e._zod??(e._zod={}),e._zod.def=n,(i=e._zod).onattach??(i.onattach=[])}),Lv={number:"number",bigint:"bigint",object:"date"},qv=P("$ZodCheckLessThan",(e,n)=>{tn.init(e,n);const i=Lv[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})}}),Uv=P("$ZodCheckGreaterThan",(e,n)=>{tn.init(e,n);const i=Lv[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})}}),x2=P("$ZodCheckMultipleOf",(e,n)=>{tn.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):kA(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})}}),w2=P("$ZodCheckNumberFormat",(e,n)=>{tn.init(e,n),n.format=n.format||"float64";const i=n.format?.includes("int"),r=i?"int":"number",[l,c]=TA[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=y2)}),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})}}),j2=P("$ZodCheckMaxLength",(e,n)=>{var i;tn.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!If(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=Hf(l);r.issues.push({origin:d,code:"too_big",maximum:n.maximum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),N2=P("$ZodCheckMinLength",(e,n)=>{var i;tn.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!If(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=Hf(l);r.issues.push({origin:d,code:"too_small",minimum:n.minimum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),k2=P("$ZodCheckLengthEquals",(e,n)=>{var i;tn.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!If(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=Hf(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})}}),gc=P("$ZodCheckStringFormat",(e,n)=>{var i,r;tn.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=()=>{})}),A2=P("$ZodCheckRegex",(e,n)=>{gc.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})}}),_2=P("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=v2),gc.init(e,n)}),z2=P("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=S2),gc.init(e,n)}),C2=P("$ZodCheckIncludes",(e,n)=>{tn.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})}}),T2=P("$ZodCheckStartsWith",(e,n)=>{tn.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})}}),E2=P("$ZodCheckEndsWith",(e,n)=>{tn.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})}}),O2=P("$ZodCheckOverwrite",(e,n)=>{tn.init(e,n),e._zod.check=i=>{i.value=n.tx(i.value)}});class D2{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{W=JSON.parse(je),fe=!0}catch{W=je}}fe&&(l&&await l(W),r&&(W=await r(W))),i?.({data:W,event:$,id:S,retry:k}),me.length&&(yield W)}}}finally{R.removeEventListener("abort",oe),O.releaseLock()}break}catch(H){if(n?.(H),d!==void 0&&E>=d)break;const K=Math.min(k*2**(E-1),h??3e4);await j(K)}}}()}},Aw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},_w=e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},zw=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},rv=({allowReserved:e,explode:n,name:i,style:r,value:l})=>{if(!n){const h=(e?l:l.map(g=>encodeURIComponent(g))).join(_w(r));switch(r){case"label":return`.${h}`;case"matrix":return`;${i}=${h}`;case"simple":return h;default:return`${i}=${h}`}}const c=Aw(r),d=l.map(h=>r==="label"||r==="simple"?e?h:encodeURIComponent(h):fc({allowReserved:e,name:i,value:h})).join(c);return r==="label"||r==="matrix"?c+d:d},fc=({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)}`},ov=({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(([v,S])=>{g=[...g,v,e?S:encodeURIComponent(S)]});const b=g.join(",");switch(r){case"form":return`${i}=${b}`;case"label":return`.${b}`;case"matrix":return`;${i}=${b}`;default:return b}}const d=zw(r),h=Object.entries(l).map(([g,b])=>fc({allowReserved:e,name:r==="deepObject"?`${i}[${g}]`:g,value:b})).join(d);return r==="label"||r==="matrix"?d+h:h},Cw=/\{[^{}]+\}/g,Tw=({path:e,url:n})=>{let i=n;const r=n.match(Cw);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,rv({explode:c,name:d,style:h,value:g}));continue}if(typeof g=="object"){i=i.replace(l,ov({explode:c,name:d,style:h,value:g,valueOnly:!0}));continue}if(h==="matrix"){i=i.replace(l,`;${fc({name:d,value:g})}`);continue}const b=encodeURIComponent(h==="label"?`.${g}`:g);i=i.replace(l,b)}return i},Ew=({baseUrl:e,path:n,query:i,querySerializer:r,url:l})=>{const c=l.startsWith("/")?l:`/${l}`;let d=(e??"")+c;n&&(d=Tw({path:n,url:d}));let h=i?r(i):"";return h.startsWith("?")&&(h=h.substring(1)),h&&(d+=`?${h}`),d};function Ow(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 Dw=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},lv=({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=rv({allowReserved:e,explode:!0,name:d,style:"form",value:h,...n});g&&c.push(g)}else if(typeof h=="object"){const g=ov({allowReserved:e,explode:!0,name:d,style:"deepObject",value:h,...i});g&&c.push(g)}else{const g=fc({allowReserved:e,name:d,value:h});g&&c.push(g)}}return c.join("&")},Rw=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"}},Mw=(e,n)=>n?!!(e.headers.has(n)||e.query?.[n]||e.headers.get("Cookie")?.includes(`${n}=`)):!1,Bw=async({security:e,...n})=>{for(const i of e){if(Mw(n,i.name))continue;const r=await Dw(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}}},Ey=e=>Ew({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:lv(e.querySerializer),url:e.url}),Oy=(e,n)=>{const i={...e,...n};return i.baseUrl?.endsWith("/")&&(i.baseUrl=i.baseUrl.substring(0,i.baseUrl.length-1)),i.headers=cv(e.headers,n.headers),i},Lw=e=>{const n=[];return e.forEach((i,r)=>{n.push([r,i])}),n},cv=(...e)=>{const n=new Headers;for(const i of e){if(!i)continue;const r=i instanceof Headers?Lw(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 Jd{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 qw=()=>({error:new Jd,request:new Jd,response:new Jd}),Uw=lv({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),$w={"Content-Type":"application/json"},uv=(e={})=>({...Nw,headers:$w,parseAs:"auto",querySerializer:Uw,...e}),dv=(e={})=>{let n=Oy(uv(),e);const i=()=>({...n}),r=b=>(n=Oy(n,b),i()),l=qw(),c=async b=>{const v={...n,...b,fetch:b.fetch??n.fetch??globalThis.fetch,headers:cv(n.headers,b.headers),serializedBody:void 0};v.security&&await Bw({...v,security:v.security}),v.requestValidator&&await v.requestValidator(v),v.body!==void 0&&v.bodySerializer&&(v.serializedBody=v.bodySerializer(v.body)),(v.body===void 0||v.serializedBody==="")&&v.headers.delete("Content-Type");const S=Ey(v);return{opts:v,url:S}},d=async b=>{const{opts:v,url:S}=await c(b),j={redirect:"follow",...v,body:Ow(v)};let _=new Request(S,j);for(const Y of l.request.fns)Y&&(_=await Y(_,v));const C=v.fetch;let k=await C(_);for(const Y of l.response.fns)Y&&(k=await Y(k,_,v));const E={request:_,response:k};if(k.ok){const Y=(v.parseAs==="auto"?Rw(k.headers.get("Content-Type")):v.parseAs)??"json";if(k.status===204||k.headers.get("Content-Length")==="0"){let O;switch(Y){case"arrayBuffer":case"blob":case"text":O=await k[Y]();break;case"formData":O=new FormData;break;case"stream":O=k.body;break;default:O={};break}return v.responseStyle==="data"?O:{data:O,...E}}let J;switch(Y){case"arrayBuffer":case"blob":case"formData":case"json":case"text":J=await k[Y]();break;case"stream":return v.responseStyle==="data"?k.body:{data:k.body,...E}}return Y==="json"&&(v.responseValidator&&await v.responseValidator(J),v.responseTransformer&&(J=await v.responseTransformer(J))),v.responseStyle==="data"?J:{data:J,...E}}const R=await k.text();let I;try{I=JSON.parse(R)}catch{}const H=I??R;let K=H;for(const Y of l.error.fns)Y&&(K=await Y(H,k,_,v));if(K=K||{},v.throwOnError)throw K;return v.responseStyle==="data"?void 0:{error:K,...E}},h=b=>v=>d({...v,method:b}),g=b=>async v=>{const{opts:S,url:j}=await c(v);return kw({...S,body:S.body,headers:S.headers,method:b,onRequest:async(_,C)=>{let k=new Request(_,C);for(const E of l.request.fns)E&&(k=await E(k,S));return k},url:j})};return{buildUrl:Ey,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")}},X=dv(uv()),Vw=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),fv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e}),Iw=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),Gw=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects",...e}),Hw=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations",...e,headers:{"Content-Type":"application/json",...e.headers}}),Pw=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/{label}",...e}),Zw=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/locations/default",...e,headers:{"Content-Type":"application/json",...e.headers}}),Kw=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/export",...e}),Qw=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e}),Yw=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),Xw=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries",...e,headers:{"Content-Type":"application/json",...e.headers}}),Jw=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/queries/generate",...e,headers:{"Content-Type":"application/json",...e.headers}}),Fw=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),Ww=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e}),ej=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/competitors",...e,headers:{"Content-Type":"application/json",...e.headers}}),tj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e}),nj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/runs",...e,headers:{"Content-Type":"application/json",...e.headers}}),aj=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e}),ij=e=>(e?.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),pv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/runs/{id}",...e}),sj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/apply",...e,headers:{"Content-Type":"application/json",...e.headers}}),rj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/timeline",...e}),oj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/analytics/metrics",...e}),mv=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings",...e}),lj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/providers/{name}",...e,headers:{"Content-Type":"application/json",...e.headers}}),cj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/google",...e,headers:{"Content-Type":"application/json",...e.headers}}),uj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/bing",...e,headers:{"Content-Type":"application/json",...e.headers}}),dj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/settings/cdp",...e,headers:{"Content-Type":"application/json",...e.headers}}),fj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),pj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e}),mj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/schedule",...e,headers:{"Content-Type":"application/json",...e.headers}}),hj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e}),gj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications",...e,headers:{"Content-Type":"application/json",...e.headers}}),yj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}",...e}),bj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/notifications/{id}/test",...e}),vj=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/cdp/status",...e}),Sj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections",...e}),xj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),wj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}",...e}),jj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/properties",...e}),Nj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/property",...e,headers:{"Content-Type":"application/json",...e.headers}}),kj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/connections/{type}/sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Aj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),_j=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance",...e}),zj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/performance/daily",...e}),Cj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect",...e,headers:{"Content-Type":"application/json",...e.headers}}),Tj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspections",...e}),Ej=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/deindexed",...e}),hv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage",...e}),Oj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/coverage/history",...e}),Dj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/sitemaps",...e}),Rj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/discover-sitemaps",...e}),Mj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/gsc/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Bj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/google/indexing/request",...e,headers:{"Content-Type":"application/json",...e.headers}}),Lj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations",...e}),qj=e=>(e.client??X).put({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/locations/{locationName}/selection",...e,headers:{"Content-Type":"application/json",...e.headers}}),Uj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),$j=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/keywords",...e}),Vj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/places",...e}),Ij=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/gbp/summary",...e}),Gj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),Hj=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/disconnect",...e}),Pj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/status",...e}),Zj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/sites",...e}),Kj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/set-site",...e,headers:{"Content-Type":"application/json",...e.headers}}),gv=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/coverage",...e}),Qj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspections",...e}),Yj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-url",...e,headers:{"Content-Type":"application/json",...e.headers}}),Xj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/inspect-sitemap",...e,headers:{"Content-Type":"application/json",...e.headers}}),Jj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/request-indexing",...e,headers:{"Content-Type":"application/json",...e.headers}}),Fj=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/bing/performance",...e}),Wj=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/connect",...e,headers:{"Content-Type":"application/json",...e.headers}}),eN=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/disconnect",...e}),tN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/status",...e}),nN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),aN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/traffic",...e}),iN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/ai-referral-history",...e}),sN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/social-referral-history",...e}),rN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/ga/session-history",...e}),oN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/insights",...e}),lN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/report",...e}),cN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/citations/visibility",...e}),uN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/content/dismissals",...e,headers:{"Content-Type":"application/json",...e.headers}}),dN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/overview",...e}),fN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/status",...e}),pN=e=>(e?.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/install",...e}),mN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e}),hN=e=>(e?.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs",...e,headers:{"Content-Type":"application/json",...e?.headers}}),gN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/syncs/latest",...e}),yN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/releases",...e}),bN=e=>(e?.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/latest-release",...e}),vN=e=>(e.client??X).delete({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/backlinks/cache/{release}",...e}),SN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/extract",...e,headers:{"Content-Type":"application/json",...e.headers}}),xN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/summary",...e}),wN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/domains",...e}),jN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/backlinks/history",...e}),NN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/cloud-run",...e,headers:{"Content-Type":"application/json",...e.headers}}),kN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/wordpress",...e,headers:{"Content-Type":"application/json",...e.headers}}),AN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/connect/vercel",...e,headers:{"Content-Type":"application/json",...e.headers}}),_N=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/sync",...e,headers:{"Content-Type":"application/json",...e.headers}}),zN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}/backfill",...e,headers:{"Content-Type":"application/json",...e.headers}}),CN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources",...e}),TN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/status",...e}),EN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/sources/{id}",...e}),ON=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/traffic/events",...e}),DN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/run",...e,headers:{"Content-Type":"application/json",...e.headers}}),RN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions",...e}),MN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}",...e}),BN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e}),LN=e=>(e.client??X).post({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/discover/sessions/{id}/promote",...e,headers:{"Content-Type":"application/json",...e.headers}}),qN=e=>(e.client??X).get({security:[{scheme:"bearer",type:"http"}],url:"/api/v1/projects/{name}/agent/providers",...e});function UN(e){const n={baseUrl:e.baseUrl,fetch:e.fetch,headers:{...e.headers??{}}};return dv(n)}class Hn extends Error{code;statusCode;constructor(n,i,r){super(n),this.name="ApiError",this.code=r??"UNKNOWN",this.statusCode=i}}function $N(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const yv=$N();function VN(){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 IN(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,""):""}function GN(e){return`${IN()}${e}`}function HN(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 PN(){return""}function Fd(){return!!PN()}let bv=null;function Dy(e){bv=e}function Lf(){bv?.()}const ae=UN({baseUrl:VN()});ae.interceptors.response.use((e,n)=>((e.status===401||e.status===403)&&!n.url.includes("/api/v1/session")&&Lf(),e));async function ue(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;if(typeof n.error=="object"&&n.error!==null){const c=n.error.error;if(typeof c=="string")r=c;else if(c&&typeof c=="object"){const d=c;d.message&&(r=d.message),d.code&&(l=d.code)}else{const d=n.error;d.message&&(r=d.message),d.code&&(l=d.code)}}else typeof n.error=="string"&&(r=n.error);throw new Hn(r,i,l)}if(n.response.status!==204)return n.data}async function qf(e,n){const i=n?.body!=null,r=await fetch(`${yv}${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;if(l)try{const h=JSON.parse(l);typeof h.error=="string"?c=h.error:h.error?.message?(c=h.error.message,d=h.error.code):h.message&&(c=h.message)}catch{c=l}throw(r.status===401||r.status===403)&&!e.startsWith("/session")&&Lf(),new Hn(c,r.status,d)}if(r.status!==204)return r.json()}function Uf(e){return ue(()=>fv({client:ae,path:{name:e}}))}function FR(e){return ue(()=>tj({client:ae,path:{name:e}}))}function Fl(e){return ue(()=>pv({client:ae,path:{id:e}}))}function ZN(e){return ue(()=>Qw({client:ae,path:{name:e}}))}function KN(e){return ue(()=>Ww({client:ae,path:{name:e}}))}function QN(e,n){return ue(()=>rj({client:ae,path:{name:e},query:{location:n}}))}function vv(e,n){return ue(()=>dN({client:ae,path:{name:e},query:{location:n?.location,since:n?.since}}))}function uo(e,n){return ue(()=>Iw({client:ae,path:{name:e},body:n}))}function YN(e,n){return ue(()=>Xw({client:ae,path:{name:e},body:{queries:n}}))}function XN(e,n){return ue(()=>Yw({client:ae,path:{name:e},body:{queries:n}}))}function JN(e,n){return ue(()=>uN({client:ae,path:{name:e},body:n}))}function FN(e,n){return ue(()=>ej({client:ae,path:{name:e},body:{competitors:n}}))}function WR(e,n){return ue(()=>Fw({client:ae,path:{name:e},body:{competitors:n}}))}async function eM(e,n){const i=await Uf(e);return uo(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 tM(e,n){const i=await Uf(e);return uo(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 nM(e,n){const i=await Uf(e);return uo(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 WN(e,n){const i={};return n?.location&&(i.location=n.location),n?.allLocations&&(i.allLocations=!0),n?.noLocation&&(i.noLocation=!0),ue(()=>nj({client:ae,path:{name:e},body:i}))}function aM(e,n){return ue(()=>Hw({client:ae,path:{name:e},body:n}))}async function iM(e,n){await ue(()=>Pw({client:ae,path:{name:e,label:n}}))}function sM(e,n){return ue(()=>Zw({client:ae,path:{name:e},body:{label:n}}))}async function rM(e){await ue(()=>Vw({client:ae,path:{name:e}}))}function oM(e){return ue(()=>Kw({client:ae,path:{name:e}}))}function lM(){return ue(()=>mv({client:ae}))}function Ry(){return qf("/session")}function ek(e){return qf("/session/setup",{method:"POST",body:JSON.stringify({password:e})})}function tk(e){return qf("/session",{method:"POST",body:JSON.stringify({password:e})})}function nk(e,n){return ue(()=>lj({client:ae,path:{name:e},body:n}))}function cM(e){return ue(()=>cj({client:ae,body:e}))}async function uM(e){try{return await ue(()=>pj({client:ae,path:{name:e}}))}catch(n){if(n instanceof Hn&&n.statusCode===404)return null;throw n}}function dM(e,n){return ue(()=>mj({client:ae,path:{name:e},body:n}))}async function fM(e){await ue(()=>fj({client:ae,path:{name:e}}))}function pM(e){return ue(()=>hj({client:ae,path:{name:e}}))}function mM(e,n){return ue(()=>gj({client:ae,path:{name:e},body:n}))}async function hM(e,n){await ue(()=>yj({client:ae,path:{name:e,id:n}}))}function gM(e,n){return ue(()=>bj({client:ae,path:{name:e,id:n}}))}function ak(e,n,i){return ue(()=>Jw({client:ae,path:{name:e},body:{provider:n,count:i}}))}function ik(e){return ue(()=>sj({client:ae,body:e}))}function sk(e){return ue(()=>ij({client:ae,body:e??{}}))}function yM(e,n){return ue(()=>xj({client:ae,path:{name:e},body:{type:n}}))}function bM(e,n){return ue(()=>wj({client:ae,path:{name:e,type:n}}))}function vM(e,n,i){return ue(()=>Nj({client:ae,path:{name:e,type:n},body:{propertyId:i}}))}function SM(e,n,i){return ue(()=>kj({client:ae,path:{name:e,type:n},body:{sitemapUrl:i}}))}function rk(e,n){return ue(()=>Aj({client:ae,path:{name:e},body:n??{}}))}function xM(e,n){const i={};return n&&n!=="all"&&(i.window=n),ue(()=>oj({client:ae,path:{name:e},query:i}))}function wM(e,n){return ue(()=>Cj({client:ae,path:{name:e},body:{url:n}}))}function ok(e){return ue(()=>hv({client:ae,path:{name:e}}))}function lk(e,n){return ue(()=>Mj({client:ae,path:{name:e},body:n??{}}))}function jM(e){return ue(()=>Dj({client:ae,path:{name:e}}))}function ck(e){return ue(()=>Rj({client:ae,path:{name:e}}))}function NM(e,n){return ue(()=>DN({client:ae,path:{name:e},body:n??{}}))}function kM(e,n,i){return ue(()=>LN({client:ae,path:{name:e,id:n},body:i??{}}))}function AM(){return ue(()=>vj({client:ae}))}function _M(e,n){return ue(()=>dj({client:ae,body:{host:e,port:n}}))}function zM(e,n){return ue(()=>Bj({client:ae,path:{name:e},body:n}))}function CM(e,n){return ue(()=>Gj({client:ae,path:{name:e},body:{apiKey:n}}))}function TM(e){return ue(()=>Hj({client:ae,path:{name:e}}))}function EM(e,n){return ue(()=>Kj({client:ae,path:{name:e},body:{siteUrl:n}}))}function uk(e){return ue(()=>gv({client:ae,path:{name:e}}))}function OM(e,n){return ue(()=>Yj({client:ae,path:{name:e},body:{url:n}}))}function DM(e,n){return ue(()=>Xj({client:ae,path:{name:e},body:{}}))}function RM(e,n){return ue(()=>Jj({client:ae,path:{name:e},body:n}))}function MM(e){return ue(()=>uj({client:ae,body:{apiKey:e}}))}function dk(e){return e?/filename\s*=\s*"?([^";]+)"?/i.exec(e)?.[1]??null:null}async function BM(e,n="agency"){const i=new URLSearchParams({audience:n}),r=await fetch(`${yv}/projects/${encodeURIComponent(e)}/report.html?${i.toString()}`,{credentials:"same-origin",headers:{}});if(!r.ok)throw new Hn(`Failed to download report: ${r.status}`,r.status);const l=await r.blob(),c=URL.createObjectURL(l),d=dk(r.headers.get("Content-Disposition"))??`canonry-report-${e}.html`,h=document.createElement("a");h.href=c,h.download=d,document.body.appendChild(h),h.click(),document.body.removeChild(h),URL.revokeObjectURL(c)}function LM(e,n){return ue(()=>nN({client:ae,path:{name:e},body:{}}))}function qM(e,n){return ue(()=>Wj({client:ae,path:{name:e},body:n}))}function UM(e){return ue(()=>eN({client:ae,path:{name:e}}))}function $M(e,n){return ue(()=>NN({client:ae,path:{name:e},body:n}))}function VM(e,n){return ue(()=>kN({client:ae,path:{name:e},body:n}))}function IM(e,n){return ue(()=>AN({client:ae,path:{name:e},body:n}))}function GM(e,n,i){return ue(()=>_N({client:ae,path:{name:e,id:n},body:i??{}}))}function HM(e,n,i){return ue(()=>zN({client:ae,path:{name:e,id:n},body:{}}))}function fk(e,n){return ue(()=>oN({client:ae,path:{name:e},query:{runId:n}}))}function pk(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 mk(e,n){const i=GN(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:HN(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=pk(l.updateAvailable),b=[c,d===!1?"database not configured":"database configured",h?`heartbeat ${h}`:void 0].filter(Boolean).join(" · ");return{label:n,state:"ok",detail:b,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 PM(){return ue(()=>fN({client:ae}))}function ZM(){return ue(()=>pN({client:ae}))}function KM(){return ue(()=>gN({client:ae}))}function QM(){return ue(()=>mN({client:ae}))}function YM(e){return ue(()=>hN({client:ae,body:e?{release:e}:{}}))}function XM(){return ue(()=>yN({client:ae}))}function JM(){return ue(()=>bN({client:ae}))}function FM(e){return ue(()=>vN({client:ae,path:{release:e}}))}function WM(e,n={}){return ue(()=>xN({client:ae,path:{name:e},query:{release:n.release,excludeCrawlers:n.excludeCrawlers?"1":void 0}}))}function eB(e,n={}){return ue(()=>wN({client:ae,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}}))}function tB(e){return ue(()=>jN({client:ae,path:{name:e}}))}function nB(e,n){return ue(()=>SN({client:ae,path:{name:e},body:{release:void 0}}))}function wn(e){return(...n)=>{e(...n)}}const hk=6e3,gk=5,yk=180;let $t=[],bk=0;const ff=new Set,pf=new Map,mf=new Map;function Wl(){const e=[...$t];for(const n of ff)n(e)}function $f(e){const n=pf.get(e);n&&(clearTimeout(n),pf.delete(e));const i=mf.get(e);i&&(clearTimeout(i),mf.delete(e))}function Sv(e){$f(e);const n=$t.length;$t=$t.filter(i=>i.id!==e),$t.length!==n&&Wl()}function My(e){$f(e.id),pf.set(e.id,setTimeout(()=>{hf(e.id)},e.durationMs))}function vk(e,n,i){return typeof e=="string"?{title:e,tone:n,durationMs:i}:e}function dn(e,n="negative",i=hk){const r=vk(e,n,i),l={id:String(++bk),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=$t.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 $t=$t.map(h=>h.id===c.id?d:h),Wl(),My(d),c.id}}return $t.length>=gk&&Sv($t[0].id),$t=[...$t,l],Wl(),My(l),l.id}function hf(e){const n=$t.find(i=>i.id===e);!n||n.state==="closing"||($f(e),$t=$t.map(i=>i.id===e?{...i,state:"closing"}:i),Wl(),mf.set(e,setTimeout(()=>{Sv(e)},yk)))}function Sk(e){return ff.add(e),()=>{ff.delete(e)}}function By(){return $t}const xk=5*6e4,gf=30*6e4,aB=3e4,iB=6e4,so=3e4,wk=2e3,jk=5e3;function Nk(){return new ow({defaultOptions:{queries:{staleTime:xk,retry:1,refetchOnWindowFocus:!1}},mutationCache:new lw({onError:(e,n,i,r)=>{r.meta?.skipGlobalErrorToast||dn({title:e instanceof Error?e.message:"An unexpected error occurred",tone:"negative"})}})})}const kk="modulepreload",Ak=function(e,n){return new URL(e,n).href},Ly={},Hs=function(n,i,r){let l=Promise.resolve();if(i&&i.length>0){let b=function(v){return Promise.all(v.map(S=>Promise.resolve(S).then(j=>({status:"fulfilled",value:j}),j=>({status:"rejected",reason:j}))))};const d=document.getElementsByTagName("link"),h=document.querySelector("meta[property=csp-nonce]"),g=h?.nonce||h?.getAttribute("nonce");l=b(i.map(v=>{if(v=Ak(v,r),v in Ly)return;Ly[v]=!0;const S=v.endsWith(".css"),j=S?'[rel="stylesheet"]':"";if(r)for(let C=d.length-1;C>=0;C--){const k=d[C];if(k.href===v&&(!S||k.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${v}"]${j}`))return;const _=document.createElement("link");if(_.rel=S?"stylesheet":kk,S||(_.as="script"),_.crossOrigin="",_.href=v,g&&_.setAttribute("nonce",g),document.head.appendChild(_),S)return new Promise((C,k)=>{_.addEventListener("load",C),_.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${v}`)))})}))}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 _k=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),zk=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,i,r)=>r?r.toUpperCase():i.toLowerCase()),qy=e=>{const n=zk(e);return n.charAt(0).toUpperCase()+n.slice(1)},xv=(...e)=>e.filter((n,i,r)=>!!n&&n.trim()!==""&&r.indexOf(n)===i).join(" ").trim(),Ck=e=>{for(const n in e)if(n.startsWith("aria-")||n==="role"||n==="title")return!0};var Tk={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 Ek=q.forwardRef(({color:e="currentColor",size:n=24,strokeWidth:i=2,absoluteStrokeWidth:r,className:l="",children:c,iconNode:d,...h},g)=>q.createElement("svg",{ref:g,...Tk,width:n,height:n,stroke:e,strokeWidth:r?Number(i)*24/Number(n):i,className:xv("lucide",l),...!c&&!Ck(h)&&{"aria-hidden":"true"},...h},[...d.map(([b,v])=>q.createElement(b,v)),...Array.isArray(c)?c:[c]]));const et=(e,n)=>{const i=q.forwardRef(({className:r,...l},c)=>q.createElement(Ek,{ref:c,iconNode:n,className:xv(`lucide-${_k(qy(e))}`,`lucide-${e}`,r),...l}));return i.displayName=qy(e),i};const Ok=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Dk=et("arrow-right",Ok);const Rk=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Mk=et("arrow-up",Rk);const Bk=[["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"}]],Lk=et("book-open",Bk);const qk=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],wv=et("check",qk);const Uk=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],$k=et("chevron-down",Uk);const Vk=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Vf=et("chevron-right",Vk);const Ik=[["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"}]],Gk=et("copy",Ik);const Hk=[["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"}]],Pk=et("file-text",Hk);const Zk=[["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"}]],Kk=et("github",Zk);const Qk=[["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"}]],Yk=et("globe",Qk);const Xk=[["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"}]],Jk=et("layout-dashboard",Xk);const Fk=[["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"}]],Wk=et("link-2",Fk);const eA=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],tA=et("loader-circle",eA);const nA=[["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"}]],aA=et("maximize-2",nA);const iA=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],sA=et("menu",iA);const rA=[["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"}]],oA=et("minimize-2",rA);const lA=[["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"}]],cA=et("play",lA);const uA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Uy=et("plus",uA);const dA=[["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"}]],fA=et("radar",dA);const pA=[["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"}]],$y=et("radio",pA);const mA=[["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"}]],hA=et("rocket",mA);const gA=[["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"}]],jv=et("rotate-ccw",gA);const yA=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],bA=et("search",yA);const vA=[["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"}]],SA=et("settings",vA);const xA=[["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"}]],Nv=et("triangle-alert",xA);const wA=[["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"}]],jA=et("wrench",wA);const NA=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Ps=et("x",NA);function P(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 b=d.prototype,v=Object.keys(b);for(let S=0;S<v.length;S++){const j=v[S];j in h||(h[j]=b[j].bind(h))}}const l=i?.Parent??Object;class c extends l{}Object.defineProperty(c,"name",{value:e});function d(h){var g;const b=i?.Parent?new c:this;r(b,h),(g=b._zod).deferred??(g.deferred=[]);for(const v of b._zod.deferred)v();return b}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 kv extends Error{constructor(n){super(`Encountered unidirectional transform during encode: ${n}`),this.name="ZodEncodeError"}}const Av={};function Ka(e){return Av}function _v(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 yf(e,n){return typeof n=="bigint"?n.toString():n}function pc(e){return{get value(){{const n=e();return Object.defineProperty(this,"value",{value:n}),n}}}}function If(e){return e==null}function Gf(e){const n=e.startsWith("^")?1:0,i=e.endsWith("$")?e.length-1:e.length;return e.slice(n,i)}function kA(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 Vy=Symbol("evaluating");function He(e,n,i){let r;Object.defineProperty(e,n,{get(){if(r!==Vy)return r===void 0&&(r=Vy,r=i()),r},set(l){Object.defineProperty(e,n,{value:l})},configurable:!0})}function zi(e,n,i){Object.defineProperty(e,n,{value:i,writable:!0,enumerable:!0,configurable:!0})}function Xa(...e){const n={};for(const i of e){const r=Object.getOwnPropertyDescriptors(i);Object.assign(n,r)}return Object.defineProperties({},n)}function Iy(e){return JSON.stringify(e)}function AA(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const zv="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ro(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const _A=pc(()=>{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(ro(e)===!1)return!1;const n=e.constructor;if(n===void 0||typeof n!="function")return!0;const i=n.prototype;return!(ro(i)===!1||Object.prototype.hasOwnProperty.call(i,"isPrototypeOf")===!1)}function Cv(e){return qs(e)?{...e}:Array.isArray(e)?[...e]:e}const zA=new Set(["string","number","symbol"]);function Us(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ja(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 CA(e){return Object.keys(e).filter(n=>e[n]._zod.optin==="optional"&&e[n]._zod.optout==="optional")}const TA={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 EA(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=Xa(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 zi(this,"shape",d),d},checks:[]});return Ja(e,c)}function OA(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=Xa(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 zi(this,"shape",d),d},checks:[]});return Ja(e,c)}function DA(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=Xa(e._zod.def,{get shape(){const c={...e._zod.def.shape,...n};return zi(this,"shape",c),c}});return Ja(e,l)}function RA(e,n){if(!qs(n))throw new Error("Invalid input to safeExtend: expected a plain object");const i=Xa(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n};return zi(this,"shape",r),r}});return Ja(e,i)}function MA(e,n){const i=Xa(e._zod.def,{get shape(){const r={...e._zod.def.shape,...n._zod.def.shape};return zi(this,"shape",r),r},get catchall(){return n._zod.def.catchall},checks:[]});return Ja(e,i)}function BA(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=Xa(n._zod.def,{get shape(){const h=n._zod.def.shape,g={...h};if(i)for(const b in i){if(!(b in h))throw new Error(`Unrecognized key: "${b}"`);i[b]&&(g[b]=e?new e({type:"optional",innerType:h[b]}):h[b])}else for(const b in h)g[b]=e?new e({type:"optional",innerType:h[b]}):h[b];return zi(this,"shape",g),g},checks:[]});return Ja(n,d)}function LA(e,n,i){const r=Xa(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 zi(this,"shape",c),c}});return Ja(n,r)}function Cs(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 Ts(e,n){return n.map(i=>{var r;return(r=i).path??(r.path=[]),i.path.unshift(e),i})}function Bl(e){return typeof e=="string"?e:e?.message}function Qa(e,n,i){const r={...e,path:e.path??[]};if(!e.message){const l=Bl(e.inst?._zod.def?.error?.(e))??Bl(n?.error?.(e))??Bl(i.customError?.(e))??Bl(i.localeError?.(e))??"Invalid input";r.message=l}return delete r.inst,delete r.continue,n?.reportInput||delete r.input,r}function Hf(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function oo(...e){const[n,i,r]=e;return typeof n=="string"?{message:n,code:"custom",input:i,inst:r}:{...n}}const Tv=(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,yf,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Ev=P("$ZodError",Tv),Ov=P("$ZodError",Tv,{Parent:Error});function qA(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 UA(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 Pf=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=>Qa(g,c,Ka())));throw zv(h,l?.callee),h}return d.value},Zf=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=>Qa(g,c,Ka())));throw zv(h,l?.callee),h}return d.value},mc=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??Ev)(c.issues.map(d=>Qa(d,l,Ka())))}:{success:!0,data:c.value}},$A=mc(Ov),hc=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=>Qa(d,l,Ka())))}:{success:!0,data:c.value}},VA=hc(Ov),IA=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Pf(e)(n,i,l)},GA=e=>(n,i,r)=>Pf(e)(n,i,r),HA=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Zf(e)(n,i,l)},PA=e=>async(n,i,r)=>Zf(e)(n,i,r),ZA=e=>(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return mc(e)(n,i,l)},KA=e=>(n,i,r)=>mc(e)(n,i,r),QA=e=>async(n,i,r)=>{const l=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return hc(e)(n,i,l)},YA=e=>async(n,i,r)=>hc(e)(n,i,r),XA=/^[cC][^\s-]{8,}$/,JA=/^[0-9a-z]+$/,FA=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,WA=/^[0-9a-vA-V]{20}$/,e2=/^[A-Za-z0-9]{27}$/,t2=/^[a-zA-Z0-9_-]{21}$/,n2=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,a2=/^([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})$/,Gy=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)$/,i2=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,s2="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function r2(){return new RegExp(s2,"u")}const o2=/^(?:(?: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])$/,l2=/^(([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}|:))$/,c2=/^((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])$/,u2=/^(([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])$/,d2=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Dv=/^[A-Za-z0-9_-]*$/,f2=/^\+[1-9]\d{6,14}$/,Rv="(?:(?:\\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])))",p2=new RegExp(`^${Rv}$`);function Mv(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 m2(e){return new RegExp(`^${Mv(e)}$`)}function h2(e){const n=Mv({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(`^${Rv}T(?:${r})$`)}const g2=e=>{const n=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${n}$`)},y2=/^-?\d+$/,Bv=/^-?\d+(?:\.\d+)?$/,b2=/^(?:true|false)$/i,v2=/^[^A-Z]*$/,S2=/^[^a-z]*$/,tn=P("$ZodCheck",(e,n)=>{var i;e._zod??(e._zod={}),e._zod.def=n,(i=e._zod).onattach??(i.onattach=[])}),Lv={number:"number",bigint:"bigint",object:"date"},qv=P("$ZodCheckLessThan",(e,n)=>{tn.init(e,n);const i=Lv[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})}}),Uv=P("$ZodCheckGreaterThan",(e,n)=>{tn.init(e,n);const i=Lv[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})}}),x2=P("$ZodCheckMultipleOf",(e,n)=>{tn.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):kA(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})}}),w2=P("$ZodCheckNumberFormat",(e,n)=>{tn.init(e,n),n.format=n.format||"float64";const i=n.format?.includes("int"),r=i?"int":"number",[l,c]=TA[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=y2)}),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})}}),j2=P("$ZodCheckMaxLength",(e,n)=>{var i;tn.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!If(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=Hf(l);r.issues.push({origin:d,code:"too_big",maximum:n.maximum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),N2=P("$ZodCheckMinLength",(e,n)=>{var i;tn.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!If(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=Hf(l);r.issues.push({origin:d,code:"too_small",minimum:n.minimum,inclusive:!0,input:l,inst:e,continue:!n.abort})}}),k2=P("$ZodCheckLengthEquals",(e,n)=>{var i;tn.init(e,n),(i=e._zod.def).when??(i.when=r=>{const l=r.value;return!If(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=Hf(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})}}),gc=P("$ZodCheckStringFormat",(e,n)=>{var i,r;tn.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=()=>{})}),A2=P("$ZodCheckRegex",(e,n)=>{gc.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})}}),_2=P("$ZodCheckLowerCase",(e,n)=>{n.pattern??(n.pattern=v2),gc.init(e,n)}),z2=P("$ZodCheckUpperCase",(e,n)=>{n.pattern??(n.pattern=S2),gc.init(e,n)}),C2=P("$ZodCheckIncludes",(e,n)=>{tn.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})}}),T2=P("$ZodCheckStartsWith",(e,n)=>{tn.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})}}),E2=P("$ZodCheckEndsWith",(e,n)=>{tn.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})}}),O2=P("$ZodCheckOverwrite",(e,n)=>{tn.init(e,n),e._zod.check=i=>{i.value=n.tx(i.value)}});class D2{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
16
|
`))}}const R2={major:4,minor:3,patch:6},ct=P("$ZodType",(e,n)=>{var i;e??(e={}),e._zod.def=n,e._zod.bag=e._zod.bag||{},e._zod.version=R2;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 b=Cs(d),v;for(const S of h){if(S._zod.def.when){if(!S._zod.def.when(d))continue}else if(b)continue;const j=d.issues.length,_=S._zod.check(d);if(_ instanceof Promise&&g?.async===!1)throw new Rs;if(v||_ instanceof Promise)v=(v??Promise.resolve()).then(async()=>{await _,d.issues.length!==j&&(b||(b=Cs(d,j)))});else{if(d.issues.length===j)continue;b||(b=Cs(d,j))}}return v?v.then(()=>d):d},c=(d,h,g)=>{if(Cs(d))return d.aborted=!0,d;const b=l(h,r,g);if(b instanceof Promise){if(g.async===!1)throw new Rs;return b.then(v=>e._zod.parse(v,g))}return e._zod.parse(b,g)};e._zod.run=(d,h)=>{if(h.skipChecks)return e._zod.parse(d,h);if(h.direction==="backward"){const b=e._zod.parse({value:d.value,issues:[]},{...h,skipChecks:!0});return b instanceof Promise?b.then(v=>c(v,d,h)):c(b,d,h)}const g=e._zod.parse(d,h);if(g instanceof Promise){if(h.async===!1)throw new Rs;return g.then(b=>l(b,r,h))}return l(g,r,h)}}He(e,"~standard",()=>({validate:l=>{try{const c=$A(e,l);return c.success?{value:c.data}:{issues:c.error?.issues}}catch{return VA(e,l).then(d=>d.success?{value:d.data}:{issues:d.error?.issues})}},vendor:"zod",version:1}))}),Kf=P("$ZodString",(e,n)=>{ct.init(e,n),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??g2(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}}),lt=P("$ZodStringFormat",(e,n)=>{gc.init(e,n),Kf.init(e,n)}),M2=P("$ZodGUID",(e,n)=>{n.pattern??(n.pattern=a2),lt.init(e,n)}),B2=P("$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=Gy(r))}else n.pattern??(n.pattern=Gy());lt.init(e,n)}),L2=P("$ZodEmail",(e,n)=>{n.pattern??(n.pattern=i2),lt.init(e,n)}),q2=P("$ZodURL",(e,n)=>{lt.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})}}}),U2=P("$ZodEmoji",(e,n)=>{n.pattern??(n.pattern=r2()),lt.init(e,n)}),$2=P("$ZodNanoID",(e,n)=>{n.pattern??(n.pattern=t2),lt.init(e,n)}),V2=P("$ZodCUID",(e,n)=>{n.pattern??(n.pattern=XA),lt.init(e,n)}),I2=P("$ZodCUID2",(e,n)=>{n.pattern??(n.pattern=JA),lt.init(e,n)}),G2=P("$ZodULID",(e,n)=>{n.pattern??(n.pattern=FA),lt.init(e,n)}),H2=P("$ZodXID",(e,n)=>{n.pattern??(n.pattern=WA),lt.init(e,n)}),P2=P("$ZodKSUID",(e,n)=>{n.pattern??(n.pattern=e2),lt.init(e,n)}),Z2=P("$ZodISODateTime",(e,n)=>{n.pattern??(n.pattern=h2(n)),lt.init(e,n)}),K2=P("$ZodISODate",(e,n)=>{n.pattern??(n.pattern=p2),lt.init(e,n)}),Q2=P("$ZodISOTime",(e,n)=>{n.pattern??(n.pattern=m2(n)),lt.init(e,n)}),Y2=P("$ZodISODuration",(e,n)=>{n.pattern??(n.pattern=n2),lt.init(e,n)}),X2=P("$ZodIPv4",(e,n)=>{n.pattern??(n.pattern=o2),lt.init(e,n),e._zod.bag.format="ipv4"}),J2=P("$ZodIPv6",(e,n)=>{n.pattern??(n.pattern=l2),lt.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})}}}),F2=P("$ZodCIDRv4",(e,n)=>{n.pattern??(n.pattern=c2),lt.init(e,n)}),W2=P("$ZodCIDRv6",(e,n)=>{n.pattern??(n.pattern=u2),lt.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 $v(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const e_=P("$ZodBase64",(e,n)=>{n.pattern??(n.pattern=d2),lt.init(e,n),e._zod.bag.contentEncoding="base64",e._zod.check=i=>{$v(i.value)||i.issues.push({code:"invalid_format",format:"base64",input:i.value,inst:e,continue:!n.abort})}});function t_(e){if(!Dv.test(e))return!1;const n=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),i=n.padEnd(Math.ceil(n.length/4)*4,"=");return $v(i)}const n_=P("$ZodBase64URL",(e,n)=>{n.pattern??(n.pattern=Dv),lt.init(e,n),e._zod.bag.contentEncoding="base64url",e._zod.check=i=>{t_(i.value)||i.issues.push({code:"invalid_format",format:"base64url",input:i.value,inst:e,continue:!n.abort})}}),a_=P("$ZodE164",(e,n)=>{n.pattern??(n.pattern=f2),lt.init(e,n)});function i_(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 s_=P("$ZodJWT",(e,n)=>{lt.init(e,n),e._zod.check=i=>{i_(i.value,n.alg)||i.issues.push({code:"invalid_format",format:"jwt",input:i.value,inst:e,continue:!n.abort})}}),Vv=P("$ZodNumber",(e,n)=>{ct.init(e,n),e._zod.pattern=e._zod.bag.pattern??Bv,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}}),r_=P("$ZodNumberFormat",(e,n)=>{w2.init(e,n),Vv.init(e,n)}),o_=P("$ZodBoolean",(e,n)=>{ct.init(e,n),e._zod.pattern=b2,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}}),l_=P("$ZodUnknown",(e,n)=>{ct.init(e,n),e._zod.parse=i=>i}),c_=P("$ZodNever",(e,n)=>{ct.init(e,n),e._zod.parse=(i,r)=>(i.issues.push({expected:"never",code:"invalid_type",input:i.value,inst:e}),i)});function Hy(e,n,i){e.issues.length&&n.issues.push(...Ts(i,e.issues)),n.value[i]=e.value}const u_=P("$ZodArray",(e,n)=>{ct.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(b=>Hy(b,i,d))):Hy(g,i,d)}return c.length?Promise.all(c).then(()=>i):i}});function ec(e,n,i,r,l){if(e.issues.length){if(l&&!(i in r))return;n.issues.push(...Ts(i,e.issues))}e.value===void 0?i in r&&(n.value[i]=void 0):n.value[i]=e.value}function Iv(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=CA(e.shape);return{...e,keys:n,keySet:new Set(n),numKeys:n.length,optionalKeys:new Set(i)}}function Gv(e,n,i,r,l,c){const d=[],h=l.keySet,g=l.catchall._zod,b=g.def.type,v=g.optout==="optional";for(const S in n){if(h.has(S))continue;if(b==="never"){d.push(S);continue}const j=g.run({value:n[S],issues:[]},r);j instanceof Promise?e.push(j.then(_=>ec(_,i,S,n,v))):ec(j,i,S,n,v)}return d.length&&i.issues.push({code:"unrecognized_keys",keys:d,input:n,inst:c}),e.length?Promise.all(e).then(()=>i):i}const d_=P("$ZodObject",(e,n)=>{if(ct.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=pc(()=>Iv(n));He(e._zod,"propValues",()=>{const h=n.shape,g={};for(const b in h){const v=h[b]._zod;if(v.values){g[b]??(g[b]=new Set);for(const S of v.values)g[b].add(S)}}return g});const l=ro,c=n.catchall;let d;e._zod.parse=(h,g)=>{d??(d=r.value);const b=h.value;if(!l(b))return h.issues.push({expected:"object",code:"invalid_type",input:b,inst:e}),h;h.value={};const v=[],S=d.shape;for(const j of d.keys){const _=S[j],C=_._zod.optout==="optional",k=_._zod.run({value:b[j],issues:[]},g);k instanceof Promise?v.push(k.then(E=>ec(E,h,j,b,C))):ec(k,h,j,b,C)}return c?Gv(v,b,h,g,r.value,e):v.length?Promise.all(v).then(()=>h):h}}),f_=P("$ZodObjectJIT",(e,n)=>{d_.init(e,n);const i=e._zod.parse,r=pc(()=>Iv(n)),l=j=>{const _=new D2(["shape","payload","ctx"]),C=r.value,k=H=>{const K=Iy(H);return`shape[${K}]._zod.run({ value: input[${K}], issues: [] }, ctx)`};_.write("const input = payload.value;");const E=Object.create(null);let R=0;for(const H of C.keys)E[H]=`key_${R++}`;_.write("const newResult = {};");for(const H of C.keys){const K=E[H],Y=Iy(H),O=j[H]?._zod?.optout==="optional";_.write(`const ${K} = ${k(H)};`),O?_.write(`
|
|
17
17
|
if (${K}.issues.length) {
|
|
@@ -49,20 +49,20 @@ Error generating stack: `+o.message+`
|
|
|
49
49
|
|
|
50
50
|
`)}_.write("payload.value = newResult;"),_.write("return payload;");const I=_.compile();return(H,K)=>I(j,H,K)};let c;const d=ro,h=!Av.jitless,b=h&&_A.value,v=n.catchall;let S;e._zod.parse=(j,_)=>{S??(S=r.value);const C=j.value;return d(C)?h&&b&&_?.async===!1&&_.jitless!==!0?(c||(c=l(n.shape)),j=c(j,_),v?Gv([],C,j,_,S,e):j):i(j,_):(j.issues.push({expected:"object",code:"invalid_type",input:C,inst:e}),j)}});function Py(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=>!Cs(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=>Qa(d,r,Ka())))}),n)}const Hv=P("$ZodUnion",(e,n)=>{ct.init(e,n),He(e._zod,"optin",()=>n.options.some(l=>l._zod.optin==="optional")?"optional":void 0),He(e._zod,"optout",()=>n.options.some(l=>l._zod.optout==="optional")?"optional":void 0),He(e._zod,"values",()=>{if(n.options.every(l=>l._zod.values))return new Set(n.options.flatMap(l=>Array.from(l._zod.values)))}),He(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=>Gf(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 b=g._zod.run({value:l.value,issues:[]},c);if(b instanceof Promise)h.push(b),d=!0;else{if(b.issues.length===0)return b;h.push(b)}}return d?Promise.all(h).then(g=>Py(g,l,e,c)):Py(h,l,e,c)}}),p_=P("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=!1,Hv.init(e,n);const i=e._zod.parse;He(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 b of g)l[h].add(b)}}return l});const r=pc(()=>{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(!ro(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)}}),m_=P("$ZodIntersection",(e,n)=>{ct.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,b])=>Zy(i,g,b)):Zy(i,c,d)}});function bf(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=bf(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=bf(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 Zy(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}),Cs(e))return e;const d=bf(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 h_=P("$ZodRecord",(e,n)=>{ct.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 b of d)if(typeof b=="string"||typeof b=="number"||typeof b=="symbol"){h.add(typeof b=="number"?b.toString():b);const v=n.valueType._zod.run({value:l[b],issues:[]},r);v instanceof Promise?c.push(v.then(S=>{S.issues.length&&i.issues.push(...Ts(b,S.issues)),i.value[b]=S.value})):(v.issues.length&&i.issues.push(...Ts(b,v.issues)),i.value[b]=v.value)}let g;for(const b in l)h.has(b)||(g=g??[],g.push(b));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"&&Bv.test(h)&&g.issues.length){const S=n.keyType._zod.run({value:Number(h),issues:[]},r);if(S instanceof Promise)throw new Error("Async schemas not supported in object keys currently");S.issues.length===0&&(g=S)}if(g.issues.length){n.mode==="loose"?i.value[h]=l[h]:i.issues.push({code:"invalid_key",origin:"record",issues:g.issues.map(S=>Qa(S,r,Ka())),input:h,path:[h],inst:e});continue}const v=n.valueType._zod.run({value:l[h],issues:[]},r);v instanceof Promise?c.push(v.then(S=>{S.issues.length&&i.issues.push(...Ts(h,S.issues)),i.value[g.value]=S.value})):(v.issues.length&&i.issues.push(...Ts(h,v.issues)),i.value[g.value]=v.value)}}return c.length?Promise.all(c).then(()=>i):i}}),g_=P("$ZodEnum",(e,n)=>{ct.init(e,n);const i=_v(n.entries),r=new Set(i);e._zod.values=r,e._zod.pattern=new RegExp(`^(${i.filter(l=>zA.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}}),y_=P("$ZodLiteral",(e,n)=>{if(ct.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}}),b_=P("$ZodTransform",(e,n)=>{ct.init(e,n),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new kv(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 Ky(e,n){return e.issues.length&&n===void 0?{issues:[],value:void 0}:e}const Pv=P("$ZodOptional",(e,n)=>{ct.init(e,n),e._zod.optin="optional",e._zod.optout="optional",He(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),He(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${Gf(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=>Ky(c,i.value)):Ky(l,i.value)}return i.value===void 0?i:n.innerType._zod.run(i,r)}}),v_=P("$ZodExactOptional",(e,n)=>{Pv.init(e,n),He(e._zod,"values",()=>n.innerType._zod.values),He(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(i,r)=>n.innerType._zod.run(i,r)}),S_=P("$ZodNullable",(e,n)=>{ct.init(e,n),He(e._zod,"optin",()=>n.innerType._zod.optin),He(e._zod,"optout",()=>n.innerType._zod.optout),He(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${Gf(i.source)}|null)$`):void 0}),He(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)}),x_=P("$ZodDefault",(e,n)=>{ct.init(e,n),e._zod.optin="optional",He(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=>Qy(c,n)):Qy(l,n)}});function Qy(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}const w_=P("$ZodPrefault",(e,n)=>{ct.init(e,n),e._zod.optin="optional",He(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))}),j_=P("$ZodNonOptional",(e,n)=>{ct.init(e,n),He(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=>Yy(c,e)):Yy(l,e)}});function Yy(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 N_=P("$ZodCatch",(e,n)=>{ct.init(e,n),He(e._zod,"optin",()=>n.innerType._zod.optin),He(e._zod,"optout",()=>n.innerType._zod.optout),He(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=>Qa(d,r,Ka()))},input:i.value}),i.issues=[]),i)):(i.value=l.value,l.issues.length&&(i.value=n.catchValue({...i,error:{issues:l.issues.map(c=>Qa(c,r,Ka()))},input:i.value}),i.issues=[]),i)}}),k_=P("$ZodPipe",(e,n)=>{ct.init(e,n),He(e._zod,"values",()=>n.in._zod.values),He(e._zod,"optin",()=>n.in._zod.optin),He(e._zod,"optout",()=>n.out._zod.optout),He(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=>Ll(d,n.in,r)):Ll(c,n.in,r)}const l=n.in._zod.run(i,r);return l instanceof Promise?l.then(c=>Ll(c,n.out,r)):Ll(l,n.out,r)}});function Ll(e,n,i){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:e.value,issues:e.issues},i)}const A_=P("$ZodReadonly",(e,n)=>{ct.init(e,n),He(e._zod,"propValues",()=>n.innerType._zod.propValues),He(e._zod,"values",()=>n.innerType._zod.values),He(e._zod,"optin",()=>n.innerType?._zod?.optin),He(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(Xy):Xy(l)}});function Xy(e){return e.value=Object.freeze(e.value),e}const __=P("$ZodCustom",(e,n)=>{tn.init(e,n),ct.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=>Jy(c,i,r,e));Jy(l,i,r,e)}});function Jy(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(oo(l))}}var Fy;class z_{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 C_(){return new z_}(Fy=globalThis).__zod_globalRegistry??(Fy.__zod_globalRegistry=C_());const to=globalThis.__zod_globalRegistry;function T_(e,n){return new e({type:"string",...be(n)})}function E_(e,n){return new e({type:"string",format:"email",check:"string_format",abort:!1,...be(n)})}function Wy(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...be(n)})}function O_(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...be(n)})}function D_(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...be(n)})}function R_(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...be(n)})}function M_(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...be(n)})}function B_(e,n){return new e({type:"string",format:"url",check:"string_format",abort:!1,...be(n)})}function L_(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...be(n)})}function q_(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...be(n)})}function U_(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...be(n)})}function $_(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...be(n)})}function V_(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...be(n)})}function I_(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...be(n)})}function G_(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...be(n)})}function H_(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...be(n)})}function P_(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...be(n)})}function Z_(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...be(n)})}function K_(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...be(n)})}function Q_(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...be(n)})}function Y_(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...be(n)})}function X_(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...be(n)})}function J_(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...be(n)})}function F_(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...be(n)})}function W_(e,n){return new e({type:"string",format:"date",check:"string_format",...be(n)})}function ez(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...be(n)})}function tz(e,n){return new e({type:"string",format:"duration",check:"string_format",...be(n)})}function nz(e,n){return new e({type:"number",checks:[],...be(n)})}function az(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...be(n)})}function iz(e,n){return new e({type:"boolean",...be(n)})}function sz(e){return new e({type:"unknown"})}function rz(e,n){return new e({type:"never",...be(n)})}function eb(e,n){return new qv({check:"less_than",...be(n),value:e,inclusive:!1})}function Wd(e,n){return new qv({check:"less_than",...be(n),value:e,inclusive:!0})}function tb(e,n){return new Uv({check:"greater_than",...be(n),value:e,inclusive:!1})}function ef(e,n){return new Uv({check:"greater_than",...be(n),value:e,inclusive:!0})}function nb(e,n){return new x2({check:"multiple_of",...be(n),value:e})}function Zv(e,n){return new j2({check:"max_length",...be(n),maximum:e})}function tc(e,n){return new N2({check:"min_length",...be(n),minimum:e})}function Kv(e,n){return new k2({check:"length_equals",...be(n),length:e})}function oz(e,n){return new A2({check:"string_format",format:"regex",...be(n),pattern:e})}function lz(e){return new _2({check:"string_format",format:"lowercase",...be(e)})}function cz(e){return new z2({check:"string_format",format:"uppercase",...be(e)})}function uz(e,n){return new C2({check:"string_format",format:"includes",...be(n),includes:e})}function dz(e,n){return new T2({check:"string_format",format:"starts_with",...be(n),prefix:e})}function fz(e,n){return new E2({check:"string_format",format:"ends_with",...be(n),suffix:e})}function Zs(e){return new O2({check:"overwrite",tx:e})}function pz(e){return Zs(n=>n.normalize(e))}function mz(){return Zs(e=>e.trim())}function hz(){return Zs(e=>e.toLowerCase())}function gz(){return Zs(e=>e.toUpperCase())}function yz(){return Zs(e=>AA(e))}function bz(e,n,i){return new e({type:"array",element:n,...be(i)})}function vz(e,n,i){return new e({type:"custom",check:"custom",fn:n,...be(i)})}function Sz(e){const n=xz(i=>(i.addIssue=r=>{if(typeof r=="string")i.issues.push(oo(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(oo(l))}},e(i.value,i)));return n}function xz(e,n){const i=new tn({check:"custom",...be(n)});return i._zod.check=e,i}function Qv(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??to,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 Nt(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 v={...i,schemaPath:[...i.schemaPath,e],path:i.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,d.schema,v);else{const j=d.schema,_=n.processors[l.type];if(!_)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${l.type}`);_(e,n,j,v)}const S=e._zod.parent;S&&(d.ref||(d.ref=S),Nt(S,n,v),n.seen.get(S).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 Yv(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 S=e.external.registry.get(d[0])?.id,j=e.external.uri??(C=>C);if(S)return{ref:j(S)};const _=d[1].defId??d[1].schema.id??`schema${e.counter++}`;return d[1].defId=_,{defId:_,ref:`${j("__shared")}#/${h}/${_}`}}if(d[1]===i)return{ref:"#"};const b=`#/${h}/`,v=d[1].schema.id??`__schema${e.counter++}`;return{defId:v,ref:b+v}},c=d=>{if(d[1].schema.$ref)return;const h=d[1],{ref:g,defId:b}=l(d);h.def={...h.schema},b&&(h.defId=b);const v=h.schema;for(const S in v)delete v[S];v.$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 b=e.external.registry.get(d[0])?.id;if(n!==d[0]&&b){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 Xv(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,b={...g},v=h.ref;if(h.ref=null,v){r(v);const j=e.seen.get(v),_=j.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,b),d._zod.parent===v)for(const k in g)k==="$ref"||k==="allOf"||k in b||delete g[k];if(_.$ref&&j.def)for(const k in g)k==="$ref"||k==="allOf"||k in j.def&&JSON.stringify(g[k])===JSON.stringify(j.def[k])&&delete g[k]}const S=d._zod.parent;if(S&&S!==v){r(S);const j=e.seen.get(S);if(j?.schema.$ref&&(g.$ref=j.schema.$ref,j.def))for(const _ in g)_==="$ref"||_==="allOf"||_ in j.def&&JSON.stringify(g[_])===JSON.stringify(j.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:nc(n,"input",e.processors),output:nc(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 wz=(e,n={})=>i=>{const r=Qv({...i,processors:n});return Nt(e,r),Yv(r,e),Xv(r,e)},nc=(e,n,i={})=>r=>{const{libraryOptions:l,target:c}=r??{},d=Qv({...l??{},target:c,io:n,processors:i});return Nt(e,d),Yv(d,e),Xv(d,e)},jz={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Nz=(e,n,i,r)=>{const l=i;l.type="string";const{minimum:c,maximum:d,format:h,patterns:g,contentEncoding:b}=e._zod.bag;if(typeof c=="number"&&(l.minLength=c),typeof d=="number"&&(l.maxLength=d),h&&(l.format=jz[h]??h,l.format===""&&delete l.format,h==="time"&&delete l.format),b&&(l.contentEncoding=b),g&&g.size>0){const v=[...g];v.length===1?l.pattern=v[0].source:v.length>1&&(l.allOf=[...v.map(S=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:S.source}))])}},kz=(e,n,i,r)=>{const l=i,{minimum:c,maximum:d,format:h,multipleOf:g,exclusiveMaximum:b,exclusiveMinimum:v}=e._zod.bag;typeof h=="string"&&h.includes("int")?l.type="integer":l.type="number",typeof v=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.minimum=v,l.exclusiveMinimum=!0):l.exclusiveMinimum=v),typeof c=="number"&&(l.minimum=c,typeof v=="number"&&n.target!=="draft-04"&&(v>=c?delete l.minimum:delete l.exclusiveMinimum)),typeof b=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.maximum=b,l.exclusiveMaximum=!0):l.exclusiveMaximum=b),typeof d=="number"&&(l.maximum=d,typeof b=="number"&&n.target!=="draft-04"&&(b<=d?delete l.maximum:delete l.exclusiveMaximum)),typeof g=="number"&&(l.multipleOf=g)},Az=(e,n,i,r)=>{i.type="boolean"},_z=(e,n,i,r)=>{i.not={}},zz=(e,n,i,r)=>{},Cz=(e,n,i,r)=>{const l=e._zod.def,c=_v(l.entries);c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),i.enum=c},Tz=(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},Ez=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Oz=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Dz=(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=Nt(c.element,n,{...r,path:[...r.path,"items"]})},Rz=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object",l.properties={};const d=c.shape;for(const b in d)l.properties[b]=Nt(d[b],n,{...r,path:[...r.path,"properties",b]});const h=new Set(Object.keys(d)),g=new Set([...h].filter(b=>{const v=c.shape[b]._zod;return n.io==="input"?v.optin===void 0:v.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=Nt(c.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(l.additionalProperties=!1)},Mz=(e,n,i,r)=>{const l=e._zod.def,c=l.inclusive===!1,d=l.options.map((h,g)=>Nt(h,n,{...r,path:[...r.path,c?"oneOf":"anyOf",g]}));c?i.oneOf=d:i.anyOf=d},Bz=(e,n,i,r)=>{const l=e._zod.def,c=Nt(l.left,n,{...r,path:[...r.path,"allOf",0]}),d=Nt(l.right,n,{...r,path:[...r.path,"allOf",1]}),h=b=>"allOf"in b&&Object.keys(b).length===1,g=[...h(c)?c.allOf:[c],...h(d)?d.allOf:[d]];i.allOf=g},Lz=(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 v=Nt(c.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});l.patternProperties={};for(const S of g)l.patternProperties[S.source]=v}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(l.propertyNames=Nt(c.keyType,n,{...r,path:[...r.path,"propertyNames"]})),l.additionalProperties=Nt(c.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const b=d._zod.values;if(b){const v=[...b].filter(S=>typeof S=="string"||typeof S=="number");v.length>0&&(l.required=v)}},qz=(e,n,i,r)=>{const l=e._zod.def,c=Nt(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"}]},Uz=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},$z=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.default=JSON.parse(JSON.stringify(l.defaultValue))},Vz=(e,n,i,r)=>{const l=e._zod.def;Nt(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)))},Iz=(e,n,i,r)=>{const l=e._zod.def;Nt(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},Gz=(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;Nt(c,n,r);const d=n.seen.get(e);d.ref=c},Hz=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.readOnly=!0},Jv=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},Pz=P("ZodISODateTime",(e,n)=>{Z2.init(e,n),dt.init(e,n)});function Zz(e){return F_(Pz,e)}const Kz=P("ZodISODate",(e,n)=>{K2.init(e,n),dt.init(e,n)});function Qz(e){return W_(Kz,e)}const Yz=P("ZodISOTime",(e,n)=>{Q2.init(e,n),dt.init(e,n)});function Xz(e){return ez(Yz,e)}const Jz=P("ZodISODuration",(e,n)=>{Y2.init(e,n),dt.init(e,n)});function Fz(e){return tz(Jz,e)}const Wz=(e,n)=>{Ev.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>UA(e,i)},flatten:{value:i=>qA(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,yf,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,yf,2)}},isEmpty:{get(){return e.issues.length===0}}})},_n=P("ZodError",Wz,{Parent:Error}),eC=Pf(_n),tC=Zf(_n),nC=mc(_n),aC=hc(_n),iC=IA(_n),sC=GA(_n),rC=HA(_n),oC=PA(_n),lC=ZA(_n),cC=KA(_n),uC=QA(_n),dC=YA(_n),ut=P("ZodType",(e,n)=>(ct.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:nc(e,"input"),output:nc(e,"output")}}),e.toJSONSchema=wz(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...i)=>e.clone(Xa(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)=>Ja(e,i,r),e.brand=()=>e,e.register=((i,r)=>(i.add(e,r),e)),e.parse=(i,r)=>eC(e,i,r,{callee:e.parse}),e.safeParse=(i,r)=>nC(e,i,r),e.parseAsync=async(i,r)=>tC(e,i,r,{callee:e.parseAsync}),e.safeParseAsync=async(i,r)=>aC(e,i,r),e.spa=e.safeParseAsync,e.encode=(i,r)=>iC(e,i,r),e.decode=(i,r)=>sC(e,i,r),e.encodeAsync=async(i,r)=>rC(e,i,r),e.decodeAsync=async(i,r)=>oC(e,i,r),e.safeEncode=(i,r)=>lC(e,i,r),e.safeDecode=(i,r)=>cC(e,i,r),e.safeEncodeAsync=async(i,r)=>uC(e,i,r),e.safeDecodeAsync=async(i,r)=>dC(e,i,r),e.refine=(i,r)=>e.check(iT(i,r)),e.superRefine=i=>e.check(sT(i)),e.overwrite=i=>e.check(Zs(i)),e.optional=()=>sb(e),e.exactOptional=()=>PC(e),e.nullable=()=>rb(e),e.nullish=()=>sb(rb(e)),e.nonoptional=i=>JC(e,i),e.array=()=>T(e),e.or=i=>t0([e,i]),e.and=i=>UC(e,i),e.transform=i=>ob(e,GC(i)),e.default=i=>QC(e,i),e.prefault=i=>XC(e,i),e.catch=i=>WC(e,i),e.pipe=i=>ob(e,i),e.readonly=()=>nT(e),e.describe=i=>{const r=e.clone();return to.add(r,{description:i}),r},Object.defineProperty(e,"description",{get(){return to.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return to.get(e);const r=e.clone();return to.add(r,i[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),Fv=P("_ZodString",(e,n)=>{Kf.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(r,l,c)=>Nz(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(oz(...r)),e.includes=(...r)=>e.check(uz(...r)),e.startsWith=(...r)=>e.check(dz(...r)),e.endsWith=(...r)=>e.check(fz(...r)),e.min=(...r)=>e.check(tc(...r)),e.max=(...r)=>e.check(Zv(...r)),e.length=(...r)=>e.check(Kv(...r)),e.nonempty=(...r)=>e.check(tc(1,...r)),e.lowercase=r=>e.check(lz(r)),e.uppercase=r=>e.check(cz(r)),e.trim=()=>e.check(mz()),e.normalize=(...r)=>e.check(pz(...r)),e.toLowerCase=()=>e.check(hz()),e.toUpperCase=()=>e.check(gz()),e.slugify=()=>e.check(yz())}),fC=P("ZodString",(e,n)=>{Kf.init(e,n),Fv.init(e,n),e.email=i=>e.check(E_(pC,i)),e.url=i=>e.check(B_(mC,i)),e.jwt=i=>e.check(J_(CC,i)),e.emoji=i=>e.check(L_(hC,i)),e.guid=i=>e.check(Wy(ab,i)),e.uuid=i=>e.check(O_(ql,i)),e.uuidv4=i=>e.check(D_(ql,i)),e.uuidv6=i=>e.check(R_(ql,i)),e.uuidv7=i=>e.check(M_(ql,i)),e.nanoid=i=>e.check(q_(gC,i)),e.guid=i=>e.check(Wy(ab,i)),e.cuid=i=>e.check(U_(yC,i)),e.cuid2=i=>e.check($_(bC,i)),e.ulid=i=>e.check(V_(vC,i)),e.base64=i=>e.check(Q_(AC,i)),e.base64url=i=>e.check(Y_(_C,i)),e.xid=i=>e.check(I_(SC,i)),e.ksuid=i=>e.check(G_(xC,i)),e.ipv4=i=>e.check(H_(wC,i)),e.ipv6=i=>e.check(P_(jC,i)),e.cidrv4=i=>e.check(Z_(NC,i)),e.cidrv6=i=>e.check(K_(kC,i)),e.e164=i=>e.check(X_(zC,i)),e.datetime=i=>e.check(Zz(i)),e.date=i=>e.check(Qz(i)),e.time=i=>e.check(Xz(i)),e.duration=i=>e.check(Fz(i))});function m(e){return T_(fC,e)}const dt=P("ZodStringFormat",(e,n)=>{lt.init(e,n),Fv.init(e,n)}),pC=P("ZodEmail",(e,n)=>{L2.init(e,n),dt.init(e,n)}),ab=P("ZodGUID",(e,n)=>{M2.init(e,n),dt.init(e,n)}),ql=P("ZodUUID",(e,n)=>{B2.init(e,n),dt.init(e,n)}),mC=P("ZodURL",(e,n)=>{q2.init(e,n),dt.init(e,n)}),hC=P("ZodEmoji",(e,n)=>{U2.init(e,n),dt.init(e,n)}),gC=P("ZodNanoID",(e,n)=>{$2.init(e,n),dt.init(e,n)}),yC=P("ZodCUID",(e,n)=>{V2.init(e,n),dt.init(e,n)}),bC=P("ZodCUID2",(e,n)=>{I2.init(e,n),dt.init(e,n)}),vC=P("ZodULID",(e,n)=>{G2.init(e,n),dt.init(e,n)}),SC=P("ZodXID",(e,n)=>{H2.init(e,n),dt.init(e,n)}),xC=P("ZodKSUID",(e,n)=>{P2.init(e,n),dt.init(e,n)}),wC=P("ZodIPv4",(e,n)=>{X2.init(e,n),dt.init(e,n)}),jC=P("ZodIPv6",(e,n)=>{J2.init(e,n),dt.init(e,n)}),NC=P("ZodCIDRv4",(e,n)=>{F2.init(e,n),dt.init(e,n)}),kC=P("ZodCIDRv6",(e,n)=>{W2.init(e,n),dt.init(e,n)}),AC=P("ZodBase64",(e,n)=>{e_.init(e,n),dt.init(e,n)}),_C=P("ZodBase64URL",(e,n)=>{n_.init(e,n),dt.init(e,n)}),zC=P("ZodE164",(e,n)=>{a_.init(e,n),dt.init(e,n)}),CC=P("ZodJWT",(e,n)=>{s_.init(e,n),dt.init(e,n)}),Wv=P("ZodNumber",(e,n)=>{Vv.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(r,l,c)=>kz(e,r,l),e.gt=(r,l)=>e.check(tb(r,l)),e.gte=(r,l)=>e.check(ef(r,l)),e.min=(r,l)=>e.check(ef(r,l)),e.lt=(r,l)=>e.check(eb(r,l)),e.lte=(r,l)=>e.check(Wd(r,l)),e.max=(r,l)=>e.check(Wd(r,l)),e.int=r=>e.check(ib(r)),e.safe=r=>e.check(ib(r)),e.positive=r=>e.check(tb(0,r)),e.nonnegative=r=>e.check(ef(0,r)),e.negative=r=>e.check(eb(0,r)),e.nonpositive=r=>e.check(Wd(0,r)),e.multipleOf=(r,l)=>e.check(nb(r,l)),e.step=(r,l)=>e.check(nb(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 w(e){return nz(Wv,e)}const TC=P("ZodNumberFormat",(e,n)=>{r_.init(e,n),Wv.init(e,n)});function ib(e){return az(TC,e)}const EC=P("ZodBoolean",(e,n)=>{o_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Az(e,i,r)});function de(e){return iz(EC,e)}const OC=P("ZodUnknown",(e,n)=>{l_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>zz()});function ha(){return sz(OC)}const DC=P("ZodNever",(e,n)=>{c_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>_z(e,i,r)});function RC(e){return rz(DC,e)}const MC=P("ZodArray",(e,n)=>{u_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Dz(e,i,r,l),e.element=n.element,e.min=(i,r)=>e.check(tc(i,r)),e.nonempty=i=>e.check(tc(1,i)),e.max=(i,r)=>e.check(Zv(i,r)),e.length=(i,r)=>e.check(Kv(i,r)),e.unwrap=()=>e.element});function T(e,n){return bz(MC,e,n)}const BC=P("ZodObject",(e,n)=>{f_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Rz(e,i,r,l),He(e,"shape",()=>n.shape),e.keyof=()=>se(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ha()}),e.loose=()=>e.clone({...e._zod.def,catchall:ha()}),e.strict=()=>e.clone({...e._zod.def,catchall:RC()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>DA(e,i),e.safeExtend=i=>RA(e,i),e.merge=i=>MA(e,i),e.pick=i=>EA(e,i),e.omit=i=>OA(e,i),e.partial=(...i)=>BA(a0,e,i[0]),e.required=(...i)=>LA(i0,e,i[0])});function N(e,n){const i={type:"object",shape:e??{},...be(n)};return new BC(i)}const e0=P("ZodUnion",(e,n)=>{Hv.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Mz(e,i,r,l),e.options=n.options});function t0(e,n){return new e0({type:"union",options:e,...be(n)})}const LC=P("ZodDiscriminatedUnion",(e,n)=>{e0.init(e,n),p_.init(e,n)});function n0(e,n,i){return new LC({type:"union",options:n,discriminator:e,...be(i)})}const qC=P("ZodIntersection",(e,n)=>{m_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Bz(e,i,r,l)});function UC(e,n){return new qC({type:"intersection",left:e,right:n})}const $C=P("ZodRecord",(e,n)=>{h_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Lz(e,i,r,l),e.keyType=n.keyType,e.valueType=n.valueType});function _t(e,n,i){return new $C({type:"record",keyType:e,valueType:n,...be(i)})}const vf=P("ZodEnum",(e,n)=>{g_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(r,l,c)=>Cz(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 vf({...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 vf({...n,checks:[],...be(l),entries:c})}});function se(e,n){const i=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new vf({type:"enum",entries:i,...be(n)})}const VC=P("ZodLiteral",(e,n)=>{y_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Tz(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 VC({type:"literal",values:Array.isArray(e)?e:[e],...be(n)})}const IC=P("ZodTransform",(e,n)=>{b_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Oz(e,i),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new kv(e.constructor.name);i.addIssue=c=>{if(typeof c=="string")i.issues.push(oo(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(oo(d))}};const l=n.transform(i.value,i);return l instanceof Promise?l.then(c=>(i.value=c,i)):(i.value=l,i)}});function GC(e){return new IC({type:"transform",transform:e})}const a0=P("ZodOptional",(e,n)=>{Pv.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Jv(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function sb(e){return new a0({type:"optional",innerType:e})}const HC=P("ZodExactOptional",(e,n)=>{v_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Jv(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function PC(e){return new HC({type:"optional",innerType:e})}const ZC=P("ZodNullable",(e,n)=>{S_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>qz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function rb(e){return new ZC({type:"nullable",innerType:e})}const KC=P("ZodDefault",(e,n)=>{x_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>$z(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function QC(e,n){return new KC({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Cv(n)}})}const YC=P("ZodPrefault",(e,n)=>{w_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Vz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function XC(e,n){return new YC({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Cv(n)}})}const i0=P("ZodNonOptional",(e,n)=>{j_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Uz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function JC(e,n){return new i0({type:"nonoptional",innerType:e,...be(n)})}const FC=P("ZodCatch",(e,n)=>{N_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Iz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function WC(e,n){return new FC({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const eT=P("ZodPipe",(e,n)=>{k_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Gz(e,i,r,l),e.in=n.in,e.out=n.out});function ob(e,n){return new eT({type:"pipe",in:e,out:n})}const tT=P("ZodReadonly",(e,n)=>{A_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Hz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function nT(e){return new tT({type:"readonly",innerType:e})}const aT=P("ZodCustom",(e,n)=>{__.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Ez(e,i)});function iT(e,n={}){return vz(aT,e,n)}function sT(e){return Sz(e)}const rT=N({maxConcurrency:w().int().positive(),maxRequestsPerMinute:w().int().positive(),maxRequestsPerDay:w().int().positive()}),ga=m().min(1);m().min(1);const Qf=N({label:m().min(1),city:m().min(1),region:m().min(1),country:m().length(2),timezone:m().optional()}),Yf=se(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high"]);N({id:m(),projectId:m(),channel:Vt("webhook"),url:m().url(),urlDisplay:m(),urlHost:m(),events:T(Yf),enabled:de().default(!0),source:m().optional(),webhookSecret:m().optional(),createdAt:m(),updatedAt:m()});N({channel:Vt("webhook"),url:m().url(),events:T(Yf).min(1),source:m().optional()});const s0=se(["cli","api","config-file"]);function oT(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 lT(e,n){return n?e.some(i=>i.label===n):!0}N({displayName:m().min(1),canonicalDomain:m().min(1),ownedDomains:T(m().min(1)).optional(),aliases:T(m()).optional(),country:m().length(2),language:m().min(2),tags:T(m()).optional(),labels:_t(m(),m()).optional(),providers:T(ga).optional(),locations:T(Qf).optional(),defaultLocation:m().nullable().optional(),autoExtractBacklinks:de().optional(),configSource:s0.optional()});N({id:m(),name:m(),displayName:m().optional(),canonicalDomain:m(),ownedDomains:T(m()).default([]),aliases:T(m()).default([]),country:m().length(2),language:m().min(2),tags:T(m()).default([]),labels:_t(m(),m()).default({}),providers:T(m()).default([]),locations:T(Qf).default([]),defaultLocation:m().nullable().optional(),autoExtractBacklinks:de().default(!1),configSource:s0.default("cli"),configRevision:w().int().positive().default(1),createdAt:m().optional(),updatedAt:m().optional()});N({id:m(),query:m(),createdAt:m()});N({id:m(),keyword:m(),createdAt:m()});N({queries:T(m().trim().min(1)).min(1)});N({keywords:T(m().trim().min(1)).min(1)});N({provider:ga,count:w().int().min(1).max(20).optional()});N({id:m(),domain:m(),createdAt:m()});N({competitors:T(m().trim().min(1)).min(1)});function ac(e){let n=e.trim().toLowerCase();try{n.includes("://")&&(n=new URL(n).hostname.toLowerCase())}catch{}return n.replace(/^www\./,"")}const cT=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 uT(e){const n=ac(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 cT.has(l)?r.length>=3?r.slice(-3).join("."):"":r.slice(-2).join(".")}function dT(e){const n=uT(e);return n?n.split(".")[0]??"":""}function fT(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=ac(c);i.has(d)||(i.add(d),r.push(c))}return r}const pT=N({name:m().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:_t(m(),m()).optional().default({})}),mT=N({preset:m().optional(),cron:m().optional(),timezone:m().optional().default("UTC"),providers:T(ga).optional().default([])}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),hT=N({channel:Vt("webhook"),url:m().url(),events:T(Yf).min(1)}),gT=N({gsc:N({propertyUrl:m()}).optional(),syncSchedule:N({preset:m().optional(),cron:m().optional()}).optional()}).optional(),lb=T(m().min(1)),yT=N({displayName:m().min(1),canonicalDomain:m().min(1),ownedDomains:T(m().min(1)).optional().default([]),aliases:T(m().min(1)).optional().default([]),country:m().length(2),language:m().min(2),queries:lb.optional(),keywords:lb.optional(),competitors:T(m().min(1)).optional().default([]),providers:T(ga).optional().default([]),locations:T(Qf).optional().default([]),defaultLocation:m().optional(),schedule:mT,notifications:T(hT).optional().default([]),google:gT,autoExtractBacklinks:de().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=oT(e.locations);i.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),lT(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});N({apiVersion:Vt("canonry/v1"),kind:Vt("Project"),metadata:pT,spec:yT});const bT=se(["gsc","ga4","gbp"]);N({id:m(),domain:m(),connectionType:bT,propertyId:m().nullable().optional(),sitemapUrl:m().nullable().optional(),scopes:T(m()).default([]),createdAt:m(),updatedAt:m()});N({date:m(),query:m(),page:m(),country:m().nullable().optional(),device:m().nullable().optional(),clicks:w(),impressions:w(),ctr:w(),position:w()});const vT=N({date:m(),clicks:w(),impressions:w(),ctr:w()});N({totals:N({clicks:w(),impressions:w(),ctr:w(),days:w()}),daily:T(vT)});const Sf=N({id:m(),url:m(),indexingState:m().nullable().optional(),verdict:m().nullable().optional(),coverageState:m().nullable().optional(),pageFetchState:m().nullable().optional(),robotsTxtState:m().nullable().optional(),crawlTime:m().nullable().optional(),lastCrawlResult:m().nullable().optional(),isMobileFriendly:de().nullable().optional(),richResults:T(m()).default([]),referringUrls:T(m()).default([]),inspectedAt:m()});se(["stable","reindexed","deindexed","still-missing","new"]);const ST=N({url:m(),previousState:m().nullable(),currentState:m().nullable(),transitionDate:m()}),xT=N({reason:m(),count:w(),urls:T(Sf).default([])});N({summary:N({total:w(),indexed:w(),notIndexed:w(),deindexed:w(),percentage:w()}),lastInspectedAt:m().nullable(),lastSyncedAt:m().nullable(),indexed:T(Sf).default([]),notIndexed:T(Sf).default([]),deindexed:T(ST).default([]),reasonGroups:T(xT).default([])});N({url:m(),type:se(["URL_UPDATED","URL_DELETED"]),notifiedAt:m()});const wT=N({url:m(),type:se(["URL_UPDATED","URL_DELETED"]),notifiedAt:m(),status:se(["success","error"]),error:m().optional()});N({summary:N({total:w().int().nonnegative(),succeeded:w().int().nonnegative(),failed:w().int().nonnegative()}),results:T(wT).default([])});N({date:m(),indexed:w(),notIndexed:w(),reasonBreakdown:_t(m(),w()).default({})});const jT=N({siteUrl:m(),permissionLevel:m()});N({sites:T(jT).default([])});const NT=N({type:m(),submitted:m(),indexed:m()}),kT=N({path:m(),lastSubmitted:m().optional(),isPending:de().optional(),isSitemapsIndex:de().optional(),type:m().optional(),lastDownloaded:m().optional(),warnings:m().optional(),errors:m().optional(),contents:T(NT).optional()});N({sitemaps:T(kT).default([])});const AT=N({name:m(),accountName:m().nullable(),type:m().nullable(),role:m().nullable()});N({accounts:T(AT),total:w().int().nonnegative()});const _T=N({id:m(),projectId:m(),accountName:m(),locationName:m(),displayName:m(),primaryCategoryDisplayName:m().nullable(),storefrontAddress:m().nullable(),websiteUri:m().nullable(),placeId:m().nullable(),mapsUri:m().nullable(),selected:de(),syncedAt:m().nullable(),createdAt:m(),updatedAt:m()});N({locations:T(_T),totalDiscovered:w().int().nonnegative(),totalSelected:w().int().nonnegative()});N({selectAllNew:de().default(!0),accountName:m().optional(),switchAccount:de().default(!1)});N({selected:de()});N({locationNames:T(m()).optional(),daysOfMetrics:w().int().positive().max(540).optional(),monthsOfKeywords:w().int().positive().max(18).optional()});N({runId:m(),status:m()});const zT=N({locationName:m(),date:m(),metric:m(),value:w().int()});N({metrics:T(zT),total:w().int().nonnegative()});const CT=N({locationName:m(),periodStart:m(),periodEnd:m(),keyword:m(),valueCount:w().int().nullable(),valueThreshold:w().int().nullable()});N({keywords:T(CT),total:w().int().nonnegative(),thresholdedPct:w().int().min(0).max(100)});const TT=N({locationName:m(),placeActionLinkName:m(),placeActionType:m(),uri:m().nullable(),isPreferred:de(),providerType:m().nullable()});N({placeActions:T(TT),total:w().int().nonnegative()});const ET=N({locationName:m(),populatedGroupCount:w().int().nonnegative(),syncedAt:m(),attributes:_t(m(),ha())});N({lodging:T(ET),total:w().int().nonnegative()});const OT=N({locationName:m(),placeId:m(),tier:m(),amenities:T(m()),syncedAt:m(),place:_t(m(),ha())});N({places:T(OT),total:w().int().nonnegative()});N({scope:N({locationName:m().nullable(),locationCount:w().int().nonnegative()}),performance:N({totals:_t(m(),w()),recent7d:_t(m(),w()),prior7d:_t(m(),w()),deltaPct:_t(m(),w().nullable())}),freshness:N({dataThroughDate:m().nullable(),latestStoredDate:m().nullable(),pendingDays:w().int().nonnegative()}),timeseries:T(N({date:m(),pending:de(),metrics:_t(m(),w())})),keywords:N({total:w().int().nonnegative(),thresholdedCount:w().int().nonnegative(),thresholdedPct:w().int().min(0).max(100)}),placeActions:N({total:w().int().nonnegative(),hasReservationCta:de(),hasBookingCta:de(),hasDirectMerchantCta:de()}),lodging:N({lodgingLocationCount:w().int().nonnegative(),populatedLodgingCount:w().int().nonnegative(),emptyLodgingCount:w().int().nonnegative()})});const DT={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 RT(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 iB(e){return DT[e]??RT(e)}const MT=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],BT=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function sB(e){return MT.includes(e)?"conversion":BT.includes(e)?"reach":"other"}N({id:m(),domain:m(),siteUrl:m().nullable().optional(),createdAt:m(),updatedAt:m()});const tf=N({id:m(),url:m(),httpCode:w().nullable().optional(),inIndex:de().nullable().optional(),lastCrawledDate:m().nullable().optional(),inIndexDate:m().nullable().optional(),inspectedAt:m(),documentSize:w().nullable().optional(),anchorCount:w().nullable().optional(),discoveryDate:m().nullable().optional()});N({summary:N({total:w(),indexed:w(),notIndexed:w(),unknown:w().optional(),percentage:w()}),lastInspectedAt:m().nullable(),indexed:T(tf).default([]),notIndexed:T(tf).default([]),unknown:T(tf).default([]).optional()});N({query:m(),impressions:w(),clicks:w(),ctr:w(),averagePosition:w()});N({date:m(),indexed:w(),notIndexed:w(),unknown:w()});const LT=N({url:m(),status:se(["success","error"]),submittedAt:m(),error:m().optional()});N({summary:N({total:w().int().nonnegative(),succeeded:w().int().nonnegative(),failed:w().int().nonnegative()}),results:T(LT).default([])});const r0=N({url:m(),verified:de()});N({sites:T(r0).default([])});N({connected:de(),domain:m(),siteUrl:m().nullable(),createdAt:m().nullable(),updatedAt:m().nullable()});N({connected:de(),domain:m(),siteUrl:m().nullable(),availableSites:T(r0).default([])});N({siteUrl:m()});const qT=N({name:m(),alive:de(),lastUsed:m().nullable()});N({connected:de(),endpoint:m(),version:m().optional(),browserVersion:m().optional(),targets:T(qT).default([])});const Ks=se(["live","staging"]);N({projectName:m(),url:m(),stagingUrl:m().optional(),username:m(),defaultEnv:Ks,createdAt:m(),updatedAt:m()});const cb=N({url:m(),reachable:de(),pageCount:w().nullable().optional(),version:m().nullable().optional(),error:m().nullable().optional(),plugins:T(m()).optional(),authenticatedUser:N({id:w(),slug:m()}).nullable().optional()});N({connected:de(),projectName:m(),defaultEnv:Ks,live:cb.nullable(),staging:cb.nullable(),adminUrl:m().nullable().optional()});const UT=N({id:w(),slug:m(),title:m(),status:m(),modifiedAt:m().nullable().optional(),link:m().nullable().optional()}),o0=N({title:m().nullable(),description:m().nullable(),noindex:de().nullable(),writable:de().default(!1),writeTargets:T(m()).default([])}),$T=N({type:m(),json:_t(m(),ha())}),VT=UT.extend({env:Ks,content:m(),seo:o0,schemaBlocks:T($T).default([])}),ub=VT.extend({contentHash:m(),contentSnippet:m()}),l0=N({manualRequired:Vt(!0),targetUrl:m(),adminUrl:m().nullable().optional(),content:m(),nextSteps:T(m()).default([])}),IT=N({slug:m(),severity:se(["high","medium","low"]),code:se(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:m()});N({slug:m(),title:m(),status:m(),wordCount:w(),seo:o0,schemaPresent:de(),issues:T(IT).default([])});const GT=N({slug:m(),status:se(["applied","skipped","manual"]),error:m().optional(),manualAssist:l0.optional()});N({env:Ks,strategy:se(["plugin","manual"]),results:T(GT)});const HT=N({slug:m(),status:se(["deployed","stripped","skipped","failed"]),schemasInjected:T(m()).optional(),manualAssist:l0.optional(),error:m().optional()});N({env:Ks,results:T(HT)});const PT=N({slug:m(),title:m(),canonrySchemas:T(m()),thirdPartySchemas:T(m()),hasCanonrySchema:de()});N({env:Ks,pages:T(PT)});const ZT=N({name:m(),status:se(["completed","skipped","failed"]),summary:m().optional(),error:m().optional()});N({projectName:m(),steps:T(ZT)});N({slug:m(),live:ub,staging:ub,hasDifferences:de(),differences:N({title:de(),slug:de(),content:de(),seoTitle:de(),seoDescription:de(),noindex:de(),schema:de()})});const KT=N({name:m(),displayName:m().optional(),keyUrl:m().optional(),modelHint:m().optional(),model:m().optional(),defaultModel:m().optional(),configured:de(),quota:rT.optional(),vertexConfigured:de().optional()}),db=N({configured:de()});N({providers:T(KT).default([]),google:db,bing:db});const yc=se(["queued","running","completed","partial","failed","cancelled"]),Pt=yc.enum,c0=se(["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"]),Te=c0.enum,u0=se(["manual","scheduled","config-apply","backfill","probe"]),Ms=u0.enum,Ni=se(["cited","not-cited"]),ic=Ni.enum,sc=se(["visible","not-visible"]);sc.enum;const rc=se(["mentioned","not-mentioned"]);rc.enum;const d0=se(["new","cited","lost","emerging","not-cited"]);d0.enum;const QT=se(["new","mentioned","lost","emerging","not-mentioned"]);QT.enum;const YT=se([Ms.manual,Ms.probe]);N({kind:Vt(Te["answer-visibility"]).optional(),trigger:YT.optional(),providers:T(ga).optional(),queries:T(m().min(1)).min(1).optional(),location:m().min(1).optional(),allLocations:de().optional(),noLocation:de().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const XT=N({message:m(),raw:ha().optional()}),JT=N({message:m().optional(),providers:_t(m(),XT).optional()}),FT=N({id:m(),projectId:m(),kind:c0,status:yc,trigger:u0.default("manual"),location:m().nullable().optional(),queries:T(m()).nullable().optional(),startedAt:m().nullable().optional(),finishedAt:m().nullable().optional(),error:JT.nullable().optional(),createdAt:m()});function Xf(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 f0=N({uri:m(),title:m()}),p0=N({id:m(),runId:m(),queryId:m(),query:m().optional(),provider:ga,citationState:Ni,answerMentioned:de().optional(),visibilityState:sc.optional(),mentionState:rc.optional(),transition:d0.optional(),answerText:m().nullable().optional(),citedDomains:T(m()).default([]),competitorOverlap:T(m()).default([]),recommendedCompetitors:T(m()).default([]),matchedTerms:T(m()).default([]),groundingSources:T(f0).default([]),searchQueries:T(m()).default([]),model:m().nullable().optional(),location:m().nullable().optional(),createdAt:m()});N({snapshots:T(p0),total:w().int().nonnegative()});const WT=N({queryId:m().nullable(),query:m().nullable(),run1State:Ni.nullable(),run2State:Ni.nullable(),run1AnswerMentioned:de().nullable(),run2AnswerMentioned:de().nullable(),run1VisibilityState:sc.nullable(),run2VisibilityState:sc.nullable(),run1MentionState:rc.nullable().optional(),run2MentionState:rc.nullable().optional(),changed:de(),visibilityChanged:de()});N({run1:m(),run2:m(),diff:T(WT)});const eE=FT.extend({snapshots:T(p0).optional()});N({totalRuns:w().int().nonnegative(),run:eE.nullable()});N({id:m(),projectId:m().nullable().optional(),actor:m(),action:m(),entityType:m(),entityId:m().nullable().optional(),diff:ha().optional(),createdAt:m()});const tE=se(["yes","no","unknown","not-mentioned"]),fb=T(m().min(1));N({companyName:m().min(1),domain:m().min(1),queries:fb.optional(),phrases:fb.optional(),competitors:T(m().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 nE=N({name:m(),count:w().int().nonnegative()}),aE=N({id:m(),name:m(),weight:w(),score:w(),grade:m(),status:se(["pass","partial","fail"]),findings:T(N({type:m(),message:m()})).default([]),recommendations:T(m()).default([])}),iE=N({url:m(),finalUrl:m(),auditedAt:m(),overallScore:w(),overallGrade:m(),summary:m(),factors:T(aE).default([])}),sE=N({industry:m(),summary:m(),services:T(m()).default([]),categoryTerms:T(m()).default([])}),rE=N({provider:m(),displayName:m(),model:m().nullable().optional(),mentioned:de(),cited:de(),describedAccurately:tE,accuracyNotes:m().nullable().optional(),incorrectClaims:T(m()).default([]),recommendedCompetitors:T(m()).default([]),citedDomains:T(m()).default([]),groundingSources:T(f0).default([]),searchQueries:T(m()).default([]),answerText:m(),error:m().nullable().optional()}),oE=N({query:m(),providerResults:T(rE).default([])}),lE=N({totalQueries:w().int().nonnegative(),totalProviders:w().int().nonnegative(),totalComparisons:w().int().nonnegative(),mentionCount:w().int().nonnegative(),citationCount:w().int().nonnegative(),topCompetitors:T(nE).default([]),visibilityGap:m(),whatThisMeans:T(m()).default([]),recommendedActions:T(m()).default([])});N({companyName:m(),domain:m(),homepageUrl:m(),generatedAt:m(),queries:T(m()).default([]),competitors:T(m()).default([]),profile:sE,audit:iE,queryResults:T(oE).default([]),summary:lE});const Jf=se(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync"]);Jf.enum;N({id:m(),projectId:m(),kind:Jf,cronExpr:m(),preset:m().nullable().optional(),timezone:m().default("UTC"),enabled:de().default(!0),providers:T(ga).default([]),sourceId:m().nullable().optional(),lastRunAt:m().nullable().optional(),nextRunAt:m().nullable().optional(),createdAt:m(),updatedAt:m()});N({kind:Jf.optional(),preset:m().optional(),cron:m().optional(),timezone:m().optional().default("UTC"),enabled:de().optional().default(!0),providers:T(ga).optional().default([]),sourceId:m().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const cE=se(["7d","30d","90d","all"]),pb=se(["improving","declining","stable"]),uE=se(["mentioned","cited"]);uE.enum;const xf=N({citationRate:w(),cited:w().int(),total:w().int(),mentionRate:w(),mentionedCount:w().int()}),dE=N({startDate:m(),endDate:m(),citationRate:w(),cited:w().int(),total:w().int(),queryCount:w().int(),mentionRate:w(),mentionedCount:w().int(),byProvider:_t(m(),xf)}),fE=N({date:m(),delta:w().int(),label:m()});N({window:cE,buckets:T(dE),overall:xf,byProvider:_t(m(),xf),trend:pb,mentionTrend:pb,queryChanges:T(fE)});N({id:m(),projectId:m(),propertyId:m(),clientEmail:m(),connected:de(),createdAt:m(),updatedAt:m()});N({date:m(),landingPage:m(),sessions:w(),organicSessions:w(),users:w()});const Ff=se(["session","first_user","manual_utm"]),pE=N({source:m(),medium:m(),sessions:w(),users:w(),sourceDimension:Ff}),mE=N({source:m(),medium:m(),sourceDimension:Ff,landingPage:m(),sessions:w(),users:w()}),hE=N({source:m(),medium:m(),sessions:w(),users:w(),channelGroup:m()}),Yr=N({sessions:w(),sharePct:w(),sharePctDisplay:m()}),gE=N({organic:Yr,social:Yr,direct:Yr,ai:Yr,other:Yr});N({totalSessions:w(),totalOrganicSessions:w(),totalDirectSessions:w(),totalUsers:w(),topPages:T(N({landingPage:m(),sessions:w(),organicSessions:w(),directSessions:w(),users:w()})),aiReferrals:T(pE),aiReferralLandingPages:T(mE),aiSessionsDeduped:w(),aiUsersDeduped:w(),aiSessionsBySession:w(),aiUsersBySession:w(),socialReferrals:T(hE),socialSessions:w(),socialUsers:w(),channelBreakdown:gE,organicSharePct:w(),aiSharePct:w(),aiSharePctBySession:w(),directSharePct:w(),socialSharePct:w(),organicSharePctDisplay:m(),aiSharePctDisplay:m(),aiSharePctBySessionDisplay:m(),directSharePctDisplay:m(),socialSharePctDisplay:m(),otherSessions:w(),otherSharePct:w(),otherSharePctDisplay:m(),lastSyncedAt:m().nullable()});N({connected:de(),propertyId:m().nullable(),clientEmail:m().nullable(),authMethod:se(["service-account","oauth"]).nullable(),lastSyncedAt:m().nullable(),createdAt:m().nullable().optional(),updatedAt:m().nullable().optional()});N({synced:de(),rowCount:w().int().nonnegative(),aiReferralCount:w().int().nonnegative(),socialReferralCount:w().int().nonnegative(),days:w().int().nonnegative(),syncedAt:m(),syncedComponents:T(m()).optional()});N({date:m(),source:m(),medium:m(),landingPage:m(),sessions:w(),users:w(),sourceDimension:Ff});N({date:m(),source:m(),medium:m(),sessions:w(),users:w(),channelGroup:m()});N({date:m(),sessions:w(),organicSessions:w(),users:w()});function oc(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}const m0=se(["claude","openai","gemini","zai"]),yE=N({id:m0,label:m(),defaultModel:m(),configured:de(),keySource:se(["config","env"]).nullable()});N({providers:T(yE).default([]),defaultProvider:m0.nullable()});const bE=se(["aero","user","compaction"]);bE.enum;const h0=128;N({key:m().min(1).max(h0),value:m().min(1)});N({key:m().min(1).max(h0)});const Wf=se(["queued","downloading","querying","ready","failed"]);Wf.enum;N({id:m(),release:m(),status:Wf,phaseDetail:m().nullable().optional(),vertexPath:m().nullable().optional(),edgesPath:m().nullable().optional(),vertexSha256:m().nullable().optional(),edgesSha256:m().nullable().optional(),vertexBytes:w().int().nullable().optional(),edgesBytes:w().int().nullable().optional(),projectsProcessed:w().int().nullable().optional(),domainsDiscovered:w().int().nullable().optional(),downloadStartedAt:m().nullable().optional(),downloadFinishedAt:m().nullable().optional(),queryStartedAt:m().nullable().optional(),queryFinishedAt:m().nullable().optional(),error:m().nullable().optional(),createdAt:m(),updatedAt:m()});const vE=N({linkingDomain:m(),numHosts:w().int()}),SE=N({projectId:m(),release:m(),targetDomain:m(),totalLinkingDomains:w().int(),totalHosts:w().int(),top10HostsShare:m(),queriedAt:m(),excludedLinkingDomains:w().int().optional(),excludedHosts:w().int().optional()});N({summary:SE.nullable(),total:w().int(),rows:T(vE)});N({release:m(),totalLinkingDomains:w().int(),totalHosts:w().int(),top10HostsShare:m(),queriedAt:m()});N({duckdbInstalled:de(),duckdbVersion:m().nullable().optional(),duckdbSpec:m(),pluginDir:m()});N({installed:de(),version:m(),path:m(),alreadyPresent:de()});N({release:m(),vertexUrl:m(),edgesUrl:m(),vertexBytes:w().int().nullable(),edgesBytes:w().int().nullable(),lastModified:m().nullable()});N({release:m(),syncStatus:Wf.nullable(),bytes:w().int(),lastUsedAt:m().nullable()});se(["snapshot","insight"]);const xE=N({kind:Vt("snapshot"),id:m(),runId:m(),query:m(),provider:m(),model:m().nullable(),citationState:Ni,matchedField:se(["answerText","citedDomains","searchQueries","query"]),snippet:m(),createdAt:m()}),wE=N({kind:Vt("insight"),id:m(),runId:m().nullable(),type:se(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-metric-drop","gbp-keyword-drop"]),severity:se(["critical","high","medium","low"]),title:m(),query:m(),provider:m(),matchedField:se(["title","query","recommendation","cause"]),snippet:m(),dismissed:de(),createdAt:m()}),jE=n0("kind",[xE,wE]);N({query:m(),totalHits:w().int().nonnegative(),truncated:de(),hits:T(jE)});const g0=se(["create","expand","refresh","add-schema"]);g0.enum;function rB(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const y0=se(["gsc","competitor-evidence","both"]);y0.enum;const b0=se(["high","medium","low"]);b0.enum;const NE=se(["blog-post","comparison","listicle","how-to","guide","glossary"]);NE.enum;const v0=se(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);v0.enum;const kE=N({url:m(),gscImpressions:w().nonnegative(),gscClicks:w().nonnegative(),gscAvgPosition:w().nonnegative().nullable(),organicSessions:w().nonnegative()}),AE=N({domain:m(),url:m(),title:m(),citationCount:w().int().nonnegative()}),_E=N({demand:w(),competitor:w(),absence:w(),gapSeverity:w()}),zE=N({actionId:m(),state:v0,lastUpdated:m()}),S0=N({targetRef:m(),query:m(),action:g0,ourBestPage:kE.nullable(),winningCompetitor:AE.nullable(),score:w(),scoreBreakdown:_E,drivers:T(m()),demandSource:y0,actionConfidence:b0,existingAction:zE.nullable()});N({targets:T(S0),contextMetrics:N({totalAiReferralSessions:w().int().nonnegative(),latestRunId:m(),runTimestamp:m()})});const CE=N({targetRef:m(),addressedUrl:m().nullable(),note:m().nullable(),dismissedAt:m()});N({dismissals:T(CE)});N({targetRef:m().min(1),addressedUrl:m().url().optional(),note:m().max(500).optional()});N({targetRef:m(),promptVersion:m(),provider:m(),model:m(),responseText:m(),costMillicents:w().int().nonnegative(),generatedAt:m()});N({provider:m().optional(),model:m().optional(),forceRefresh:de().optional()});const TE=N({uri:m(),title:m(),domain:m(),isOurDomain:de(),isCompetitor:de(),citationCount:w().int().nonnegative(),providers:T(ga)}),x0=N({query:m(),groundingSources:T(TE)});N({sources:T(x0),latestRunId:m()});const w0=N({query:m(),competitorDomains:T(m()),competitorCount:w().int().nonnegative(),missRate:w().min(0).max(1),lastSeenInRunId:m()});N({gaps:T(w0),latestRunId:m()});const j0=se(["ok","warn","fail","skipped"]);j0.enum;const ep=se(["global","project"]);ep.enum;const N0=se(["auth","config","providers","integrations","database","schedules","agent"]);N0.enum;const EE=N({id:m(),category:N0,scope:ep,title:m(),status:j0,code:m().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:m(),remediation:m().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:_t(m(),ha()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:w().int().nonnegative().describe("How long the check took to execute.")});N({scope:ep,project:m().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:m().describe("ISO-8601 timestamp when this doctor run started."),durationMs:w().int().nonnegative(),summary:N({total:w().int().nonnegative(),ok:w().int().nonnegative(),warn:w().int().nonnegative(),fail:w().int().nonnegative(),skipped:w().int().nonnegative()}),checks:T(EE)});const OE=N({provider:m(),citationState:Ni,cited:de(),mentioned:de(),runId:m(),runCreatedAt:m()}),DE=N({queryId:m(),query:m(),providers:T(OE),citedCount:w().int().nonnegative(),mentionedCount:w().int().nonnegative(),totalProviders:w().int().nonnegative()}),RE=N({queryId:m(),query:m(),provider:m(),citingCompetitors:T(m()),runId:m(),runCreatedAt:m()}),ME=N({providersConfigured:w().int().nonnegative(),providersCiting:w().int().nonnegative(),providersMentioning:w().int().nonnegative(),totalQueries:w().int().nonnegative(),queriesCitedAndMentioned:w().int().nonnegative(),queriesCitedOnly:w().int().nonnegative(),queriesMentionedOnly:w().int().nonnegative(),queriesInvisible:w().int().nonnegative(),latestRunId:m().nullable(),latestRunAt:m().nullable()});N({summary:ME,byQuery:T(DE),competitorGaps:T(RE),status:se(["ready","no-data"]),reason:se(["no-runs-yet","no-queries"]).optional()});const BE=se(["prompt","request-param","browser-geo","ignored"]),LE=N({label:m(),city:m(),region:m(),country:m(),otherConfiguredLabels:T(m())}),qE=N({provider:m(),treatment:BE,description:m()}),UE=N({generatedAt:m(),project:N({id:m(),name:m(),displayName:m(),canonicalDomain:m(),country:m(),language:m()}),location:LE.nullable(),providerLocationHandling:T(qE),periodStart:m().nullable(),periodEnd:m().nullable()}),$E=N({citationRate:w(),citedQueryCount:w(),totalQueryCount:w(),mentionRate:w(),mentionedQueryCount:w(),trend:se(["up","down","flat","unknown"]),queryCount:w(),competitorCount:w(),providerCount:w(),gsc:N({clicks:w(),impressions:w(),ctr:w(),avgPosition:w(),periodStart:m(),periodEnd:m()}).nullable(),ga:N({sessions:w(),users:w(),periodStart:m(),periodEnd:m()}).nullable(),findings:T(N({title:m(),detail:m(),tone:se(["positive","caution","negative","neutral"])}))}),VE=N({citationState:se(["cited","not-cited","pending"]),answerMentioned:de().nullable(),model:m().nullable()}),IE=N({queries:T(m()),providers:T(m()),matrix:T(T(VE.nullable())),providerRates:T(N({provider:m(),citedCount:w(),totalCount:w(),citationRate:w()}))}),GE=N({domain:m(),citationCount:w(),totalCount:w(),pressureLabel:se(["High","Moderate","Low","None"]),citedQueries:T(m()),sharePct:w(),theirCitedPages:T(N({url:m(),citedFor:T(m())}))}),HE=N({projectCitationCount:w(),competitors:T(GE)}),PE=N({domain:m(),mentionCount:w(),totalCount:w(),pressureLabel:se(["High","Moderate","Low","None"]),mentionedQueries:T(m()),sharePct:w()}),ZE=N({projectMentionCount:w(),totalAnswerSnapshots:w(),competitors:T(PE)}),KE=N({category:m(),label:m(),count:w(),sharePct:w()}),QE=N({categories:T(KE),topDomains:T(N({domain:m(),count:w(),isCompetitor:de()}))}),YE=N({query:m(),clicks:w(),impressions:w(),ctr:w(),avgPosition:w(),category:se(["brand","lead-gen","industry","other"])}),XE=N({periodStart:m(),periodEnd:m(),totalClicks:w(),totalImpressions:w(),ctr:w(),avgPosition:w(),topQueries:T(YE),categoryBreakdown:T(N({category:se(["brand","lead-gen","industry","other"]),clicks:w(),impressions:w(),sharePct:w()})),trend:T(N({date:m(),clicks:w(),impressions:w()})),trackedButNoGsc:T(m()),gscButNotTracked:T(m())}),JE=N({totalSessions:w(),totalUsers:w(),totalOrganicSessions:w(),periodStart:m(),periodEnd:m(),topLandingPages:T(N({page:m(),sessions:w(),users:w(),organicSessions:w()})),channelBreakdown:T(N({channel:m(),sessions:w(),sharePct:w()}))}),FE=N({totalSessions:w(),organicSessions:w(),paidSessions:w(),channels:T(N({channelGroup:m(),sessions:w(),sharePct:w()})),topCampaigns:T(N({source:m(),medium:m(),sessions:w()}))}),WE=N({totalSessions:w(),totalUsers:w(),bySource:T(N({source:m(),sessions:w(),users:w(),sharePct:w()})),trend:T(N({date:m(),sessions:w()})),topLandingPages:T(N({page:m(),sessions:w(),users:w()}))}),eO=N({windowStart:m(),windowEnd:m(),hasData:de(),verifiedCrawlerHits:N({current:w(),prior:w(),deltaPct:w().nullable()}),unverifiedCrawlerHits:N({current:w(),prior:w(),deltaPct:w().nullable()}),aiUserFetchHits:N({current:w(),prior:w(),deltaPct:w().nullable()}),referralArrivals:N({current:w(),prior:w(),deltaPct:w().nullable()}),byOperator:T(N({operator:m(),verifiedHits:w(),unverifiedHits:w(),userFetchHits:w(),referralArrivals:w(),deltaPct:w().nullable()})),topCrawledPaths:T(N({path:m(),verifiedHits:w(),distinctOperators:w()})),referralProducts:T(N({product:m(),arrivals:w(),distinctLandingPaths:w()})),dailyTrend:T(N({date:m(),verifiedCrawlerHits:w(),userFetchHits:w(),referralArrivals:w()})),topReferralLandingPaths:T(N({path:m(),arrivals:w(),distinctProducts:w()}))}),tO=N({provider:se(["google","bing"]).nullable(),total:w(),indexed:w(),notIndexed:w(),deindexed:w(),unknown:w(),indexedPct:w()}),nO=N({runId:m(),date:m(),citationRate:w(),citedQueryCount:w(),totalQueryCount:w(),mentionRate:w(),mentionedQueryCount:w(),providerRates:T(N({provider:m(),citationRate:w()}))}),wf=N({id:m(),type:se(["regression","gain","opportunity"]),severity:se(["critical","high","medium","low"]),title:m(),query:m(),provider:m(),recommendation:m().nullable(),createdAt:m(),instanceCount:w()}),aO=N({horizon:se(["immediate","short-term","medium-term"]),title:m(),rationale:m()}),Xr=N({current:w(),prior:w(),deltaAbs:w(),direction:se(["up","down","flat"]),window:w().optional()}),iO=N({provider:m(),current:w(),prior:w(),deltaAbs:w(),direction:se(["up","down","flat"])}),sO=N({enoughHistory:de(),headline:m(),citationRate:Xr.nullable(),mentionRate:Xr.nullable(),citedQueryCount:Xr.nullable(),gscClicksDelta:Xr.nullable(),aiReferralsDelta:Xr.nullable(),providerMovements:T(iO),wins:T(wf),regressions:T(wf)});se(["agency","client"]);const rO=se(["agency","client","both"]),oO=se(["immediate","short-term","medium-term"]),lO=se(["high","medium","low"]);se(["positive","caution","negative","neutral"]);const cO=se(["content","competitors","provider","search-demand","indexing","location","monitoring"]),tp=N({audience:rO,priority:w(),horizon:oO,category:cO,title:m(),action:m(),why:T(m()),evidence:T(m()),successMetric:m(),confidence:lO,targetRef:m().optional()}),uO=N({headline:m(),overview:m(),actionItems:T(tp),confidenceNotes:T(m())}),dO=N({title:m(),detail:m(),severity:se(["positive","caution","negative","neutral"]),evidence:T(m())}),fO=N({priorities:T(tp),diagnostics:T(dO)});function oB(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function lB(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function cB(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function uB(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 dB(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}N({meta:UE,executiveSummary:$E,citationScorecard:IE,competitorLandscape:HE,mentionLandscape:ZE,aiSourceOrigin:QE,gsc:XE.nullable(),ga:JE.nullable(),socialReferrals:FE.nullable(),aiReferrals:WE.nullable(),serverActivity:eO.nullable(),indexingHealth:tO.nullable(),citationsTrend:T(nO),whatsChanged:sO,insights:T(wf),recommendedNextSteps:T(aO),actionPlan:T(tp),clientSummary:uO,agencyDiagnostics:fO,contentOpportunities:T(S0),contentGaps:T(w0),groundingSources:T(x0)});const pO=se(["claude","codex"]);pO.enum;const mO=se(["claude","codex","all"]);mO.enum;const np=se(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);np.enum;const hO=se(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);hO.enum;const gO=se(["raw-request","aggregate-bucket"]),yO=gO.enum,bO=se(["observed","provider-aggregated","inferred"]),vO=bO.enum,SO=N({type:m().nullable(),labels:_t(m(),m())}),xO=N({sourceType:np,evidenceKind:Vt(yO["raw-request"]),confidence:Vt(vO.observed),eventId:m().min(1),observedAt:m().min(1),method:m().nullable(),requestUrl:m().nullable(),host:m().nullable(),path:m().min(1),queryString:m().nullable(),status:w().int().nullable(),userAgent:m().nullable(),remoteIp:m().nullable(),referer:m().nullable(),latencyMs:w().nullable(),requestSizeBytes:w().int().nullable(),responseSizeBytes:w().int().nullable(),providerResource:SO,providerLabels:_t(m(),m())});N({events:T(xO),rawEntryCount:w().int().nonnegative(),skippedEntryCount:w().int().nonnegative(),nextPageToken:m().optional(),filter:m()});const k0=se(["connected","paused","error","archived"]),fB=k0.enum,A0=se(["oauth","service-account"]);A0.enum;const wO=se(["verified","claimed_unverified","unknown_ai_like"]),pB=wO.enum;N({gcpProjectId:m().min(1),serviceName:m().nullable().optional(),location:m().nullable().optional(),authMode:A0});N({baseUrl:m().url(),username:m().min(1)});const ap=se(["production","preview"]);ap.enum;N({projectId:m().min(1),teamId:m().min(1),environment:ap});const _0=N({id:m(),projectId:m(),sourceType:np,displayName:m(),status:k0,lastSyncedAt:m().nullable(),lastCursor:m().nullable(),lastError:m().nullable(),archivedAt:m().nullable(),config:_t(m(),ha()),createdAt:m(),updatedAt:m()});N({gcpProjectId:m().min(1),serviceName:m().min(1).optional(),location:m().min(1).optional(),displayName:m().min(1).optional(),keyJson:m().optional()});N({baseUrl:m().url(),username:m().min(1),applicationPassword:m().min(1),displayName:m().min(1).optional()});N({projectId:m().min(1),teamId:m().min(1),token:m().min(1),environment:ap.optional(),displayName:m().min(1).optional()});N({sourceId:m(),runId:m(),syncedAt:m(),pulledEvents:w().int().nonnegative(),selfTrafficExcluded:w().int().nonnegative(),crawlerHits:w().int().nonnegative(),aiUserFetchHits:w().int().nonnegative(),aiReferralHits:w().int().nonnegative(),unknownHits:w().int().nonnegative(),crawlerBucketRows:w().int().nonnegative(),aiUserFetchBucketRows:w().int().nonnegative(),aiReferralBucketRows:w().int().nonnegative(),sampleRows:w().int().nonnegative(),windowStart:m(),windowEnd:m()});N({days:w().int().positive().optional()});N({advanceToNow:Vt(!0)});N({sourceId:m(),runId:m(),status:yc,windowStart:m(),windowEnd:m(),daysRequested:w().int().positive(),daysApplied:w().int().positive()});const jO=N({crawlerHits:w().int().nonnegative(),aiUserFetchHits:w().int().nonnegative(),aiReferralHits:w().int().nonnegative(),sampleCount:w().int().nonnegative()});N({sources:T(_0)});const NO=_0.extend({totals24h:jO,latestRun:N({runId:m(),status:yc,startedAt:m().nullable(),finishedAt:m().nullable(),error:m().nullable()}).nullable()});N({sources:T(NO)});const kO=se(["crawler","ai-user-fetch","ai-referral"]),ip=kO.enum,AO=N({kind:Vt(ip.crawler),sourceId:m(),tsHour:m(),botId:m(),operator:m(),verificationStatus:m(),pathNormalized:m(),status:w().int(),hits:w().int().nonnegative()}),_O=N({kind:Vt(ip["ai-user-fetch"]),sourceId:m(),tsHour:m(),botId:m(),operator:m(),verificationStatus:m(),pathNormalized:m(),status:w().int(),hits:w().int().nonnegative()}),zO=N({kind:Vt(ip["ai-referral"]),sourceId:m(),tsHour:m(),product:m(),operator:m(),sourceDomain:m(),evidenceType:m(),landingPathNormalized:m(),status:w().int(),hits:w().int().nonnegative()}),CO=n0("kind",[AO,_O,zO]);N({windowStart:m(),windowEnd:m(),totals:N({crawlerHits:w().int().nonnegative(),aiUserFetchHits:w().int().nonnegative(),aiReferralHits:w().int().nonnegative()}),events:T(CO)});const sp=se(["cited","aspirational","wasted-surface"]),mb=sp.enum;mb.cited,mb.aspirational;const rp=se(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),TO=rp.enum;TO["direct-competitor"];const op=se(["queued","seeding","probing","completed","failed"]);op.enum;const z0=N({domain:m().min(1),hits:w().int().positive(),competitorType:rp.default("unknown")}),EO=N({id:m(),sessionId:m(),projectId:m(),query:m(),bucket:sp.nullable().default(null),citationState:Ni,citedDomains:T(m()).default([]),createdAt:m()}),OO=N({id:m(),projectId:m(),status:op,icpDescription:m().nullable().optional(),seedProvider:m().nullable().optional(),seedCountRaw:w().int().nullable().optional(),seedCount:w().int().nullable().optional(),dedupThreshold:w().nullable().optional(),probeCount:w().int().nullable().optional(),citedCount:w().int().nullable().default(null),aspirationalCount:w().int().nullable().default(null),wastedCount:w().int().nullable().default(null),competitorMap:T(z0).default([]),error:m().nullable().optional(),startedAt:m().nullable().optional(),finishedAt:m().nullable().optional(),createdAt:m()});OO.extend({probes:T(EO).default([])});const DO=500;N({icpDescription:m().min(1).optional(),dedupThreshold:w().min(0).max(1).optional(),maxProbes:w().int().positive().max(DO).optional(),locations:T(m().min(1)).optional()});N({buckets:T(sp).min(1).optional(),includeCompetitors:de().optional(),competitorTypes:T(rp).min(1).optional()});N({sessionId:m(),projectId:m(),status:op,queriesByBucket:N({cited:T(m()),aspirational:T(m()),"wasted-surface":T(m())}),suggestedCompetitors:T(z0)});N({sessionId:m(),projectId:m(),promoted:N({queries:T(m()),competitors:T(m())}),skipped:N({queries:T(m()),competitors:T(m())})});t0([Vt("cli"),m().regex(/^discovery:.+$/)]);var RO=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(RO||{});const mB={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},hB={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},gB=Xf;function MO(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 b=e.external.registry.get(d[0])?.id;if(n!==d[0]&&b){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 Xv(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,b={...g},v=h.ref;if(h.ref=null,v){r(v);const j=e.seen.get(v),_=j.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,b),d._zod.parent===v)for(const k in g)k==="$ref"||k==="allOf"||k in b||delete g[k];if(_.$ref&&j.def)for(const k in g)k==="$ref"||k==="allOf"||k in j.def&&JSON.stringify(g[k])===JSON.stringify(j.def[k])&&delete g[k]}const S=d._zod.parent;if(S&&S!==v){r(S);const j=e.seen.get(S);if(j?.schema.$ref&&(g.$ref=j.schema.$ref,j.def))for(const _ in g)_==="$ref"||_==="allOf"||_ in j.def&&JSON.stringify(g[_])===JSON.stringify(j.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:nc(n,"input",e.processors),output:nc(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 wz=(e,n={})=>i=>{const r=Qv({...i,processors:n});return Nt(e,r),Yv(r,e),Xv(r,e)},nc=(e,n,i={})=>r=>{const{libraryOptions:l,target:c}=r??{},d=Qv({...l??{},target:c,io:n,processors:i});return Nt(e,d),Yv(d,e),Xv(d,e)},jz={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Nz=(e,n,i,r)=>{const l=i;l.type="string";const{minimum:c,maximum:d,format:h,patterns:g,contentEncoding:b}=e._zod.bag;if(typeof c=="number"&&(l.minLength=c),typeof d=="number"&&(l.maxLength=d),h&&(l.format=jz[h]??h,l.format===""&&delete l.format,h==="time"&&delete l.format),b&&(l.contentEncoding=b),g&&g.size>0){const v=[...g];v.length===1?l.pattern=v[0].source:v.length>1&&(l.allOf=[...v.map(S=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:S.source}))])}},kz=(e,n,i,r)=>{const l=i,{minimum:c,maximum:d,format:h,multipleOf:g,exclusiveMaximum:b,exclusiveMinimum:v}=e._zod.bag;typeof h=="string"&&h.includes("int")?l.type="integer":l.type="number",typeof v=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.minimum=v,l.exclusiveMinimum=!0):l.exclusiveMinimum=v),typeof c=="number"&&(l.minimum=c,typeof v=="number"&&n.target!=="draft-04"&&(v>=c?delete l.minimum:delete l.exclusiveMinimum)),typeof b=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.maximum=b,l.exclusiveMaximum=!0):l.exclusiveMaximum=b),typeof d=="number"&&(l.maximum=d,typeof b=="number"&&n.target!=="draft-04"&&(b<=d?delete l.maximum:delete l.exclusiveMaximum)),typeof g=="number"&&(l.multipleOf=g)},Az=(e,n,i,r)=>{i.type="boolean"},_z=(e,n,i,r)=>{i.not={}},zz=(e,n,i,r)=>{},Cz=(e,n,i,r)=>{const l=e._zod.def,c=_v(l.entries);c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),i.enum=c},Tz=(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},Ez=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Oz=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Dz=(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=Nt(c.element,n,{...r,path:[...r.path,"items"]})},Rz=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object",l.properties={};const d=c.shape;for(const b in d)l.properties[b]=Nt(d[b],n,{...r,path:[...r.path,"properties",b]});const h=new Set(Object.keys(d)),g=new Set([...h].filter(b=>{const v=c.shape[b]._zod;return n.io==="input"?v.optin===void 0:v.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=Nt(c.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(l.additionalProperties=!1)},Mz=(e,n,i,r)=>{const l=e._zod.def,c=l.inclusive===!1,d=l.options.map((h,g)=>Nt(h,n,{...r,path:[...r.path,c?"oneOf":"anyOf",g]}));c?i.oneOf=d:i.anyOf=d},Bz=(e,n,i,r)=>{const l=e._zod.def,c=Nt(l.left,n,{...r,path:[...r.path,"allOf",0]}),d=Nt(l.right,n,{...r,path:[...r.path,"allOf",1]}),h=b=>"allOf"in b&&Object.keys(b).length===1,g=[...h(c)?c.allOf:[c],...h(d)?d.allOf:[d]];i.allOf=g},Lz=(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 v=Nt(c.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});l.patternProperties={};for(const S of g)l.patternProperties[S.source]=v}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(l.propertyNames=Nt(c.keyType,n,{...r,path:[...r.path,"propertyNames"]})),l.additionalProperties=Nt(c.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const b=d._zod.values;if(b){const v=[...b].filter(S=>typeof S=="string"||typeof S=="number");v.length>0&&(l.required=v)}},qz=(e,n,i,r)=>{const l=e._zod.def,c=Nt(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"}]},Uz=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},$z=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.default=JSON.parse(JSON.stringify(l.defaultValue))},Vz=(e,n,i,r)=>{const l=e._zod.def;Nt(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)))},Iz=(e,n,i,r)=>{const l=e._zod.def;Nt(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},Gz=(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;Nt(c,n,r);const d=n.seen.get(e);d.ref=c},Hz=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.readOnly=!0},Jv=(e,n,i,r)=>{const l=e._zod.def;Nt(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},Pz=P("ZodISODateTime",(e,n)=>{Z2.init(e,n),dt.init(e,n)});function Zz(e){return F_(Pz,e)}const Kz=P("ZodISODate",(e,n)=>{K2.init(e,n),dt.init(e,n)});function Qz(e){return W_(Kz,e)}const Yz=P("ZodISOTime",(e,n)=>{Q2.init(e,n),dt.init(e,n)});function Xz(e){return ez(Yz,e)}const Jz=P("ZodISODuration",(e,n)=>{Y2.init(e,n),dt.init(e,n)});function Fz(e){return tz(Jz,e)}const Wz=(e,n)=>{Ev.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>UA(e,i)},flatten:{value:i=>qA(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,yf,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,yf,2)}},isEmpty:{get(){return e.issues.length===0}}})},_n=P("ZodError",Wz,{Parent:Error}),eC=Pf(_n),tC=Zf(_n),nC=mc(_n),aC=hc(_n),iC=IA(_n),sC=GA(_n),rC=HA(_n),oC=PA(_n),lC=ZA(_n),cC=KA(_n),uC=QA(_n),dC=YA(_n),ut=P("ZodType",(e,n)=>(ct.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:nc(e,"input"),output:nc(e,"output")}}),e.toJSONSchema=wz(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...i)=>e.clone(Xa(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)=>Ja(e,i,r),e.brand=()=>e,e.register=((i,r)=>(i.add(e,r),e)),e.parse=(i,r)=>eC(e,i,r,{callee:e.parse}),e.safeParse=(i,r)=>nC(e,i,r),e.parseAsync=async(i,r)=>tC(e,i,r,{callee:e.parseAsync}),e.safeParseAsync=async(i,r)=>aC(e,i,r),e.spa=e.safeParseAsync,e.encode=(i,r)=>iC(e,i,r),e.decode=(i,r)=>sC(e,i,r),e.encodeAsync=async(i,r)=>rC(e,i,r),e.decodeAsync=async(i,r)=>oC(e,i,r),e.safeEncode=(i,r)=>lC(e,i,r),e.safeDecode=(i,r)=>cC(e,i,r),e.safeEncodeAsync=async(i,r)=>uC(e,i,r),e.safeDecodeAsync=async(i,r)=>dC(e,i,r),e.refine=(i,r)=>e.check(iT(i,r)),e.superRefine=i=>e.check(sT(i)),e.overwrite=i=>e.check(Zs(i)),e.optional=()=>sb(e),e.exactOptional=()=>PC(e),e.nullable=()=>rb(e),e.nullish=()=>sb(rb(e)),e.nonoptional=i=>JC(e,i),e.array=()=>T(e),e.or=i=>t0([e,i]),e.and=i=>UC(e,i),e.transform=i=>ob(e,GC(i)),e.default=i=>QC(e,i),e.prefault=i=>XC(e,i),e.catch=i=>WC(e,i),e.pipe=i=>ob(e,i),e.readonly=()=>nT(e),e.describe=i=>{const r=e.clone();return to.add(r,{description:i}),r},Object.defineProperty(e,"description",{get(){return to.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return to.get(e);const r=e.clone();return to.add(r,i[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),Fv=P("_ZodString",(e,n)=>{Kf.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(r,l,c)=>Nz(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(oz(...r)),e.includes=(...r)=>e.check(uz(...r)),e.startsWith=(...r)=>e.check(dz(...r)),e.endsWith=(...r)=>e.check(fz(...r)),e.min=(...r)=>e.check(tc(...r)),e.max=(...r)=>e.check(Zv(...r)),e.length=(...r)=>e.check(Kv(...r)),e.nonempty=(...r)=>e.check(tc(1,...r)),e.lowercase=r=>e.check(lz(r)),e.uppercase=r=>e.check(cz(r)),e.trim=()=>e.check(mz()),e.normalize=(...r)=>e.check(pz(...r)),e.toLowerCase=()=>e.check(hz()),e.toUpperCase=()=>e.check(gz()),e.slugify=()=>e.check(yz())}),fC=P("ZodString",(e,n)=>{Kf.init(e,n),Fv.init(e,n),e.email=i=>e.check(E_(pC,i)),e.url=i=>e.check(B_(mC,i)),e.jwt=i=>e.check(J_(CC,i)),e.emoji=i=>e.check(L_(hC,i)),e.guid=i=>e.check(Wy(ab,i)),e.uuid=i=>e.check(O_(ql,i)),e.uuidv4=i=>e.check(D_(ql,i)),e.uuidv6=i=>e.check(R_(ql,i)),e.uuidv7=i=>e.check(M_(ql,i)),e.nanoid=i=>e.check(q_(gC,i)),e.guid=i=>e.check(Wy(ab,i)),e.cuid=i=>e.check(U_(yC,i)),e.cuid2=i=>e.check($_(bC,i)),e.ulid=i=>e.check(V_(vC,i)),e.base64=i=>e.check(Q_(AC,i)),e.base64url=i=>e.check(Y_(_C,i)),e.xid=i=>e.check(I_(SC,i)),e.ksuid=i=>e.check(G_(xC,i)),e.ipv4=i=>e.check(H_(wC,i)),e.ipv6=i=>e.check(P_(jC,i)),e.cidrv4=i=>e.check(Z_(NC,i)),e.cidrv6=i=>e.check(K_(kC,i)),e.e164=i=>e.check(X_(zC,i)),e.datetime=i=>e.check(Zz(i)),e.date=i=>e.check(Qz(i)),e.time=i=>e.check(Xz(i)),e.duration=i=>e.check(Fz(i))});function m(e){return T_(fC,e)}const dt=P("ZodStringFormat",(e,n)=>{lt.init(e,n),Fv.init(e,n)}),pC=P("ZodEmail",(e,n)=>{L2.init(e,n),dt.init(e,n)}),ab=P("ZodGUID",(e,n)=>{M2.init(e,n),dt.init(e,n)}),ql=P("ZodUUID",(e,n)=>{B2.init(e,n),dt.init(e,n)}),mC=P("ZodURL",(e,n)=>{q2.init(e,n),dt.init(e,n)}),hC=P("ZodEmoji",(e,n)=>{U2.init(e,n),dt.init(e,n)}),gC=P("ZodNanoID",(e,n)=>{$2.init(e,n),dt.init(e,n)}),yC=P("ZodCUID",(e,n)=>{V2.init(e,n),dt.init(e,n)}),bC=P("ZodCUID2",(e,n)=>{I2.init(e,n),dt.init(e,n)}),vC=P("ZodULID",(e,n)=>{G2.init(e,n),dt.init(e,n)}),SC=P("ZodXID",(e,n)=>{H2.init(e,n),dt.init(e,n)}),xC=P("ZodKSUID",(e,n)=>{P2.init(e,n),dt.init(e,n)}),wC=P("ZodIPv4",(e,n)=>{X2.init(e,n),dt.init(e,n)}),jC=P("ZodIPv6",(e,n)=>{J2.init(e,n),dt.init(e,n)}),NC=P("ZodCIDRv4",(e,n)=>{F2.init(e,n),dt.init(e,n)}),kC=P("ZodCIDRv6",(e,n)=>{W2.init(e,n),dt.init(e,n)}),AC=P("ZodBase64",(e,n)=>{e_.init(e,n),dt.init(e,n)}),_C=P("ZodBase64URL",(e,n)=>{n_.init(e,n),dt.init(e,n)}),zC=P("ZodE164",(e,n)=>{a_.init(e,n),dt.init(e,n)}),CC=P("ZodJWT",(e,n)=>{s_.init(e,n),dt.init(e,n)}),Wv=P("ZodNumber",(e,n)=>{Vv.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(r,l,c)=>kz(e,r,l),e.gt=(r,l)=>e.check(tb(r,l)),e.gte=(r,l)=>e.check(ef(r,l)),e.min=(r,l)=>e.check(ef(r,l)),e.lt=(r,l)=>e.check(eb(r,l)),e.lte=(r,l)=>e.check(Wd(r,l)),e.max=(r,l)=>e.check(Wd(r,l)),e.int=r=>e.check(ib(r)),e.safe=r=>e.check(ib(r)),e.positive=r=>e.check(tb(0,r)),e.nonnegative=r=>e.check(ef(0,r)),e.negative=r=>e.check(eb(0,r)),e.nonpositive=r=>e.check(Wd(0,r)),e.multipleOf=(r,l)=>e.check(nb(r,l)),e.step=(r,l)=>e.check(nb(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 w(e){return nz(Wv,e)}const TC=P("ZodNumberFormat",(e,n)=>{r_.init(e,n),Wv.init(e,n)});function ib(e){return az(TC,e)}const EC=P("ZodBoolean",(e,n)=>{o_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Az(e,i,r)});function de(e){return iz(EC,e)}const OC=P("ZodUnknown",(e,n)=>{l_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>zz()});function ha(){return sz(OC)}const DC=P("ZodNever",(e,n)=>{c_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>_z(e,i,r)});function RC(e){return rz(DC,e)}const MC=P("ZodArray",(e,n)=>{u_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Dz(e,i,r,l),e.element=n.element,e.min=(i,r)=>e.check(tc(i,r)),e.nonempty=i=>e.check(tc(1,i)),e.max=(i,r)=>e.check(Zv(i,r)),e.length=(i,r)=>e.check(Kv(i,r)),e.unwrap=()=>e.element});function T(e,n){return bz(MC,e,n)}const BC=P("ZodObject",(e,n)=>{f_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Rz(e,i,r,l),He(e,"shape",()=>n.shape),e.keyof=()=>se(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ha()}),e.loose=()=>e.clone({...e._zod.def,catchall:ha()}),e.strict=()=>e.clone({...e._zod.def,catchall:RC()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>DA(e,i),e.safeExtend=i=>RA(e,i),e.merge=i=>MA(e,i),e.pick=i=>EA(e,i),e.omit=i=>OA(e,i),e.partial=(...i)=>BA(a0,e,i[0]),e.required=(...i)=>LA(i0,e,i[0])});function N(e,n){const i={type:"object",shape:e??{},...be(n)};return new BC(i)}const e0=P("ZodUnion",(e,n)=>{Hv.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Mz(e,i,r,l),e.options=n.options});function t0(e,n){return new e0({type:"union",options:e,...be(n)})}const LC=P("ZodDiscriminatedUnion",(e,n)=>{e0.init(e,n),p_.init(e,n)});function n0(e,n,i){return new LC({type:"union",options:n,discriminator:e,...be(i)})}const qC=P("ZodIntersection",(e,n)=>{m_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Bz(e,i,r,l)});function UC(e,n){return new qC({type:"intersection",left:e,right:n})}const $C=P("ZodRecord",(e,n)=>{h_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Lz(e,i,r,l),e.keyType=n.keyType,e.valueType=n.valueType});function _t(e,n,i){return new $C({type:"record",keyType:e,valueType:n,...be(i)})}const vf=P("ZodEnum",(e,n)=>{g_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(r,l,c)=>Cz(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 vf({...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 vf({...n,checks:[],...be(l),entries:c})}});function se(e,n){const i=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new vf({type:"enum",entries:i,...be(n)})}const VC=P("ZodLiteral",(e,n)=>{y_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Tz(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 VC({type:"literal",values:Array.isArray(e)?e:[e],...be(n)})}const IC=P("ZodTransform",(e,n)=>{b_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Oz(e,i),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new kv(e.constructor.name);i.addIssue=c=>{if(typeof c=="string")i.issues.push(oo(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(oo(d))}};const l=n.transform(i.value,i);return l instanceof Promise?l.then(c=>(i.value=c,i)):(i.value=l,i)}});function GC(e){return new IC({type:"transform",transform:e})}const a0=P("ZodOptional",(e,n)=>{Pv.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Jv(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function sb(e){return new a0({type:"optional",innerType:e})}const HC=P("ZodExactOptional",(e,n)=>{v_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Jv(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function PC(e){return new HC({type:"optional",innerType:e})}const ZC=P("ZodNullable",(e,n)=>{S_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>qz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function rb(e){return new ZC({type:"nullable",innerType:e})}const KC=P("ZodDefault",(e,n)=>{x_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>$z(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function QC(e,n){return new KC({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Cv(n)}})}const YC=P("ZodPrefault",(e,n)=>{w_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Vz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function XC(e,n){return new YC({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Cv(n)}})}const i0=P("ZodNonOptional",(e,n)=>{j_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Uz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function JC(e,n){return new i0({type:"nonoptional",innerType:e,...be(n)})}const FC=P("ZodCatch",(e,n)=>{N_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Iz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function WC(e,n){return new FC({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const eT=P("ZodPipe",(e,n)=>{k_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Gz(e,i,r,l),e.in=n.in,e.out=n.out});function ob(e,n){return new eT({type:"pipe",in:e,out:n})}const tT=P("ZodReadonly",(e,n)=>{A_.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Hz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function nT(e){return new tT({type:"readonly",innerType:e})}const aT=P("ZodCustom",(e,n)=>{__.init(e,n),ut.init(e,n),e._zod.processJSONSchema=(i,r,l)=>Ez(e,i)});function iT(e,n={}){return vz(aT,e,n)}function sT(e){return Sz(e)}const s0=N({id:m(),name:m(),keyPrefix:m(),scopes:T(m()),createdAt:m(),lastUsedAt:m().nullable(),revokedAt:m().nullable()});N({keys:T(s0)});N({name:m().min(1).max(100),scopes:T(m()).min(1).optional()});s0.extend({key:m()});const rT=N({maxConcurrency:w().int().positive(),maxRequestsPerMinute:w().int().positive(),maxRequestsPerDay:w().int().positive()}),ga=m().min(1);m().min(1);const Qf=N({label:m().min(1),city:m().min(1),region:m().min(1),country:m().length(2),timezone:m().optional()}),Yf=se(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high"]);N({id:m(),projectId:m(),channel:Vt("webhook"),url:m().url(),urlDisplay:m(),urlHost:m(),events:T(Yf),enabled:de().default(!0),source:m().optional(),webhookSecret:m().optional(),createdAt:m(),updatedAt:m()});N({channel:Vt("webhook"),url:m().url(),events:T(Yf).min(1),source:m().optional()});const r0=se(["cli","api","config-file"]);function oT(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 lT(e,n){return n?e.some(i=>i.label===n):!0}N({displayName:m().min(1),canonicalDomain:m().min(1),ownedDomains:T(m().min(1)).optional(),aliases:T(m()).optional(),country:m().length(2),language:m().min(2),tags:T(m()).optional(),labels:_t(m(),m()).optional(),providers:T(ga).optional(),locations:T(Qf).optional(),defaultLocation:m().nullable().optional(),autoExtractBacklinks:de().optional(),configSource:r0.optional()});N({id:m(),name:m(),displayName:m().optional(),canonicalDomain:m(),ownedDomains:T(m()).default([]),aliases:T(m()).default([]),country:m().length(2),language:m().min(2),tags:T(m()).default([]),labels:_t(m(),m()).default({}),providers:T(m()).default([]),locations:T(Qf).default([]),defaultLocation:m().nullable().optional(),autoExtractBacklinks:de().default(!1),configSource:r0.default("cli"),configRevision:w().int().positive().default(1),createdAt:m().optional(),updatedAt:m().optional()});N({id:m(),query:m(),createdAt:m()});N({id:m(),keyword:m(),createdAt:m()});N({queries:T(m().trim().min(1)).min(1)});N({keywords:T(m().trim().min(1)).min(1)});N({provider:ga,count:w().int().min(1).max(20).optional()});N({id:m(),domain:m(),createdAt:m()});N({competitors:T(m().trim().min(1)).min(1)});function ac(e){let n=e.trim().toLowerCase();try{n.includes("://")&&(n=new URL(n).hostname.toLowerCase())}catch{}return n.replace(/^www\./,"")}const cT=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 uT(e){const n=ac(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 cT.has(l)?r.length>=3?r.slice(-3).join("."):"":r.slice(-2).join(".")}function dT(e){const n=uT(e);return n?n.split(".")[0]??"":""}function fT(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=ac(c);i.has(d)||(i.add(d),r.push(c))}return r}const pT=N({name:m().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:_t(m(),m()).optional().default({})}),mT=N({preset:m().optional(),cron:m().optional(),timezone:m().optional().default("UTC"),providers:T(ga).optional().default([])}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),hT=N({channel:Vt("webhook"),url:m().url(),events:T(Yf).min(1)}),gT=N({gsc:N({propertyUrl:m()}).optional(),syncSchedule:N({preset:m().optional(),cron:m().optional()}).optional()}).optional(),lb=T(m().min(1)),yT=N({displayName:m().min(1),canonicalDomain:m().min(1),ownedDomains:T(m().min(1)).optional().default([]),aliases:T(m().min(1)).optional().default([]),country:m().length(2),language:m().min(2),queries:lb.optional(),keywords:lb.optional(),competitors:T(m().min(1)).optional().default([]),providers:T(ga).optional().default([]),locations:T(Qf).optional().default([]),defaultLocation:m().optional(),schedule:mT,notifications:T(hT).optional().default([]),google:gT,autoExtractBacklinks:de().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=oT(e.locations);i.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),lT(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});N({apiVersion:Vt("canonry/v1"),kind:Vt("Project"),metadata:pT,spec:yT});const bT=se(["gsc","ga4","gbp"]);N({id:m(),domain:m(),connectionType:bT,propertyId:m().nullable().optional(),sitemapUrl:m().nullable().optional(),scopes:T(m()).default([]),createdAt:m(),updatedAt:m()});N({date:m(),query:m(),page:m(),country:m().nullable().optional(),device:m().nullable().optional(),clicks:w(),impressions:w(),ctr:w(),position:w()});const vT=N({date:m(),clicks:w(),impressions:w(),ctr:w()});N({totals:N({clicks:w(),impressions:w(),ctr:w(),days:w()}),daily:T(vT)});const Sf=N({id:m(),url:m(),indexingState:m().nullable().optional(),verdict:m().nullable().optional(),coverageState:m().nullable().optional(),pageFetchState:m().nullable().optional(),robotsTxtState:m().nullable().optional(),crawlTime:m().nullable().optional(),lastCrawlResult:m().nullable().optional(),isMobileFriendly:de().nullable().optional(),richResults:T(m()).default([]),referringUrls:T(m()).default([]),inspectedAt:m()});se(["stable","reindexed","deindexed","still-missing","new"]);const ST=N({url:m(),previousState:m().nullable(),currentState:m().nullable(),transitionDate:m()}),xT=N({reason:m(),count:w(),urls:T(Sf).default([])});N({summary:N({total:w(),indexed:w(),notIndexed:w(),deindexed:w(),percentage:w()}),lastInspectedAt:m().nullable(),lastSyncedAt:m().nullable(),indexed:T(Sf).default([]),notIndexed:T(Sf).default([]),deindexed:T(ST).default([]),reasonGroups:T(xT).default([])});N({url:m(),type:se(["URL_UPDATED","URL_DELETED"]),notifiedAt:m()});const wT=N({url:m(),type:se(["URL_UPDATED","URL_DELETED"]),notifiedAt:m(),status:se(["success","error"]),error:m().optional()});N({summary:N({total:w().int().nonnegative(),succeeded:w().int().nonnegative(),failed:w().int().nonnegative()}),results:T(wT).default([])});N({date:m(),indexed:w(),notIndexed:w(),reasonBreakdown:_t(m(),w()).default({})});const jT=N({siteUrl:m(),permissionLevel:m()});N({sites:T(jT).default([])});const NT=N({type:m(),submitted:m(),indexed:m()}),kT=N({path:m(),lastSubmitted:m().optional(),isPending:de().optional(),isSitemapsIndex:de().optional(),type:m().optional(),lastDownloaded:m().optional(),warnings:m().optional(),errors:m().optional(),contents:T(NT).optional()});N({sitemaps:T(kT).default([])});const AT=N({name:m(),accountName:m().nullable(),type:m().nullable(),role:m().nullable()});N({accounts:T(AT),total:w().int().nonnegative()});const _T=N({id:m(),projectId:m(),accountName:m(),locationName:m(),displayName:m(),primaryCategoryDisplayName:m().nullable(),storefrontAddress:m().nullable(),websiteUri:m().nullable(),placeId:m().nullable(),mapsUri:m().nullable(),selected:de(),syncedAt:m().nullable(),createdAt:m(),updatedAt:m()});N({locations:T(_T),totalDiscovered:w().int().nonnegative(),totalSelected:w().int().nonnegative()});N({selectAllNew:de().default(!0),accountName:m().optional(),switchAccount:de().default(!1)});N({selected:de()});N({locationNames:T(m()).optional(),daysOfMetrics:w().int().positive().max(540).optional(),monthsOfKeywords:w().int().positive().max(18).optional()});N({runId:m(),status:m()});const zT=N({locationName:m(),date:m(),metric:m(),value:w().int()});N({metrics:T(zT),total:w().int().nonnegative()});const CT=N({locationName:m(),periodStart:m(),periodEnd:m(),keyword:m(),valueCount:w().int().nullable(),valueThreshold:w().int().nullable()});N({keywords:T(CT),total:w().int().nonnegative(),thresholdedPct:w().int().min(0).max(100)});const TT=N({locationName:m(),placeActionLinkName:m(),placeActionType:m(),uri:m().nullable(),isPreferred:de(),providerType:m().nullable()});N({placeActions:T(TT),total:w().int().nonnegative()});const ET=N({locationName:m(),populatedGroupCount:w().int().nonnegative(),syncedAt:m(),attributes:_t(m(),ha())});N({lodging:T(ET),total:w().int().nonnegative()});const OT=N({locationName:m(),placeId:m(),tier:m(),amenities:T(m()),syncedAt:m(),place:_t(m(),ha())});N({places:T(OT),total:w().int().nonnegative()});N({scope:N({locationName:m().nullable(),locationCount:w().int().nonnegative()}),performance:N({totals:_t(m(),w()),recent7d:_t(m(),w()),prior7d:_t(m(),w()),deltaPct:_t(m(),w().nullable())}),freshness:N({dataThroughDate:m().nullable(),latestStoredDate:m().nullable(),pendingDays:w().int().nonnegative()}),timeseries:T(N({date:m(),pending:de(),metrics:_t(m(),w())})),keywords:N({total:w().int().nonnegative(),thresholdedCount:w().int().nonnegative(),thresholdedPct:w().int().min(0).max(100)}),placeActions:N({total:w().int().nonnegative(),hasReservationCta:de(),hasBookingCta:de(),hasDirectMerchantCta:de()}),lodging:N({lodgingLocationCount:w().int().nonnegative(),populatedLodgingCount:w().int().nonnegative(),emptyLodgingCount:w().int().nonnegative()})});const DT={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 RT(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 sB(e){return DT[e]??RT(e)}const MT=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],BT=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function rB(e){return MT.includes(e)?"conversion":BT.includes(e)?"reach":"other"}N({id:m(),domain:m(),siteUrl:m().nullable().optional(),createdAt:m(),updatedAt:m()});const tf=N({id:m(),url:m(),httpCode:w().nullable().optional(),inIndex:de().nullable().optional(),lastCrawledDate:m().nullable().optional(),inIndexDate:m().nullable().optional(),inspectedAt:m(),documentSize:w().nullable().optional(),anchorCount:w().nullable().optional(),discoveryDate:m().nullable().optional()});N({summary:N({total:w(),indexed:w(),notIndexed:w(),unknown:w().optional(),percentage:w()}),lastInspectedAt:m().nullable(),indexed:T(tf).default([]),notIndexed:T(tf).default([]),unknown:T(tf).default([]).optional()});N({query:m(),impressions:w(),clicks:w(),ctr:w(),averagePosition:w()});N({date:m(),indexed:w(),notIndexed:w(),unknown:w()});const LT=N({url:m(),status:se(["success","error"]),submittedAt:m(),error:m().optional()});N({summary:N({total:w().int().nonnegative(),succeeded:w().int().nonnegative(),failed:w().int().nonnegative()}),results:T(LT).default([])});const o0=N({url:m(),verified:de()});N({sites:T(o0).default([])});N({connected:de(),domain:m(),siteUrl:m().nullable(),createdAt:m().nullable(),updatedAt:m().nullable()});N({connected:de(),domain:m(),siteUrl:m().nullable(),availableSites:T(o0).default([])});N({siteUrl:m()});const qT=N({name:m(),alive:de(),lastUsed:m().nullable()});N({connected:de(),endpoint:m(),version:m().optional(),browserVersion:m().optional(),targets:T(qT).default([])});const Ks=se(["live","staging"]);N({projectName:m(),url:m(),stagingUrl:m().optional(),username:m(),defaultEnv:Ks,createdAt:m(),updatedAt:m()});const cb=N({url:m(),reachable:de(),pageCount:w().nullable().optional(),version:m().nullable().optional(),error:m().nullable().optional(),plugins:T(m()).optional(),authenticatedUser:N({id:w(),slug:m()}).nullable().optional()});N({connected:de(),projectName:m(),defaultEnv:Ks,live:cb.nullable(),staging:cb.nullable(),adminUrl:m().nullable().optional()});const UT=N({id:w(),slug:m(),title:m(),status:m(),modifiedAt:m().nullable().optional(),link:m().nullable().optional()}),l0=N({title:m().nullable(),description:m().nullable(),noindex:de().nullable(),writable:de().default(!1),writeTargets:T(m()).default([])}),$T=N({type:m(),json:_t(m(),ha())}),VT=UT.extend({env:Ks,content:m(),seo:l0,schemaBlocks:T($T).default([])}),ub=VT.extend({contentHash:m(),contentSnippet:m()}),c0=N({manualRequired:Vt(!0),targetUrl:m(),adminUrl:m().nullable().optional(),content:m(),nextSteps:T(m()).default([])}),IT=N({slug:m(),severity:se(["high","medium","low"]),code:se(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:m()});N({slug:m(),title:m(),status:m(),wordCount:w(),seo:l0,schemaPresent:de(),issues:T(IT).default([])});const GT=N({slug:m(),status:se(["applied","skipped","manual"]),error:m().optional(),manualAssist:c0.optional()});N({env:Ks,strategy:se(["plugin","manual"]),results:T(GT)});const HT=N({slug:m(),status:se(["deployed","stripped","skipped","failed"]),schemasInjected:T(m()).optional(),manualAssist:c0.optional(),error:m().optional()});N({env:Ks,results:T(HT)});const PT=N({slug:m(),title:m(),canonrySchemas:T(m()),thirdPartySchemas:T(m()),hasCanonrySchema:de()});N({env:Ks,pages:T(PT)});const ZT=N({name:m(),status:se(["completed","skipped","failed"]),summary:m().optional(),error:m().optional()});N({projectName:m(),steps:T(ZT)});N({slug:m(),live:ub,staging:ub,hasDifferences:de(),differences:N({title:de(),slug:de(),content:de(),seoTitle:de(),seoDescription:de(),noindex:de(),schema:de()})});const KT=N({name:m(),displayName:m().optional(),keyUrl:m().optional(),modelHint:m().optional(),model:m().optional(),defaultModel:m().optional(),configured:de(),quota:rT.optional(),vertexConfigured:de().optional()}),db=N({configured:de()});N({providers:T(KT).default([]),google:db,bing:db});const yc=se(["queued","running","completed","partial","failed","cancelled"]),Pt=yc.enum,u0=se(["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"]),Te=u0.enum,d0=se(["manual","scheduled","config-apply","backfill","probe"]),Ms=d0.enum,Ni=se(["cited","not-cited"]),ic=Ni.enum,sc=se(["visible","not-visible"]);sc.enum;const rc=se(["mentioned","not-mentioned"]);rc.enum;const f0=se(["new","cited","lost","emerging","not-cited"]);f0.enum;const QT=se(["new","mentioned","lost","emerging","not-mentioned"]);QT.enum;const YT=se([Ms.manual,Ms.probe]);N({kind:Vt(Te["answer-visibility"]).optional(),trigger:YT.optional(),providers:T(ga).optional(),queries:T(m().min(1)).min(1).optional(),location:m().min(1).optional(),allLocations:de().optional(),noLocation:de().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const XT=N({message:m(),raw:ha().optional()}),JT=N({message:m().optional(),providers:_t(m(),XT).optional()}),FT=N({id:m(),projectId:m(),kind:u0,status:yc,trigger:d0.default("manual"),location:m().nullable().optional(),queries:T(m()).nullable().optional(),startedAt:m().nullable().optional(),finishedAt:m().nullable().optional(),error:JT.nullable().optional(),createdAt:m()});function Xf(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 p0=N({uri:m(),title:m()}),m0=N({id:m(),runId:m(),queryId:m(),query:m().optional(),provider:ga,citationState:Ni,answerMentioned:de().optional(),visibilityState:sc.optional(),mentionState:rc.optional(),transition:f0.optional(),answerText:m().nullable().optional(),citedDomains:T(m()).default([]),competitorOverlap:T(m()).default([]),recommendedCompetitors:T(m()).default([]),matchedTerms:T(m()).default([]),groundingSources:T(p0).default([]),searchQueries:T(m()).default([]),model:m().nullable().optional(),location:m().nullable().optional(),createdAt:m()});N({snapshots:T(m0),total:w().int().nonnegative()});const WT=N({queryId:m().nullable(),query:m().nullable(),run1State:Ni.nullable(),run2State:Ni.nullable(),run1AnswerMentioned:de().nullable(),run2AnswerMentioned:de().nullable(),run1VisibilityState:sc.nullable(),run2VisibilityState:sc.nullable(),run1MentionState:rc.nullable().optional(),run2MentionState:rc.nullable().optional(),changed:de(),visibilityChanged:de()});N({run1:m(),run2:m(),diff:T(WT)});const eE=FT.extend({snapshots:T(m0).optional()});N({totalRuns:w().int().nonnegative(),run:eE.nullable()});N({id:m(),projectId:m().nullable().optional(),actor:m(),action:m(),entityType:m(),entityId:m().nullable().optional(),diff:ha().optional(),createdAt:m()});const tE=se(["yes","no","unknown","not-mentioned"]),fb=T(m().min(1));N({companyName:m().min(1),domain:m().min(1),queries:fb.optional(),phrases:fb.optional(),competitors:T(m().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 nE=N({name:m(),count:w().int().nonnegative()}),aE=N({id:m(),name:m(),weight:w(),score:w(),grade:m(),status:se(["pass","partial","fail"]),findings:T(N({type:m(),message:m()})).default([]),recommendations:T(m()).default([])}),iE=N({url:m(),finalUrl:m(),auditedAt:m(),overallScore:w(),overallGrade:m(),summary:m(),factors:T(aE).default([])}),sE=N({industry:m(),summary:m(),services:T(m()).default([]),categoryTerms:T(m()).default([])}),rE=N({provider:m(),displayName:m(),model:m().nullable().optional(),mentioned:de(),cited:de(),describedAccurately:tE,accuracyNotes:m().nullable().optional(),incorrectClaims:T(m()).default([]),recommendedCompetitors:T(m()).default([]),citedDomains:T(m()).default([]),groundingSources:T(p0).default([]),searchQueries:T(m()).default([]),answerText:m(),error:m().nullable().optional()}),oE=N({query:m(),providerResults:T(rE).default([])}),lE=N({totalQueries:w().int().nonnegative(),totalProviders:w().int().nonnegative(),totalComparisons:w().int().nonnegative(),mentionCount:w().int().nonnegative(),citationCount:w().int().nonnegative(),topCompetitors:T(nE).default([]),visibilityGap:m(),whatThisMeans:T(m()).default([]),recommendedActions:T(m()).default([])});N({companyName:m(),domain:m(),homepageUrl:m(),generatedAt:m(),queries:T(m()).default([]),competitors:T(m()).default([]),profile:sE,audit:iE,queryResults:T(oE).default([]),summary:lE});const Jf=se(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync"]);Jf.enum;N({id:m(),projectId:m(),kind:Jf,cronExpr:m(),preset:m().nullable().optional(),timezone:m().default("UTC"),enabled:de().default(!0),providers:T(ga).default([]),sourceId:m().nullable().optional(),lastRunAt:m().nullable().optional(),nextRunAt:m().nullable().optional(),createdAt:m(),updatedAt:m()});N({kind:Jf.optional(),preset:m().optional(),cron:m().optional(),timezone:m().optional().default("UTC"),enabled:de().optional().default(!0),providers:T(ga).optional().default([]),sourceId:m().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const cE=se(["7d","30d","90d","all"]),pb=se(["improving","declining","stable"]),uE=se(["mentioned","cited"]);uE.enum;const xf=N({citationRate:w(),cited:w().int(),total:w().int(),mentionRate:w(),mentionedCount:w().int()}),dE=N({startDate:m(),endDate:m(),citationRate:w(),cited:w().int(),total:w().int(),queryCount:w().int(),mentionRate:w(),mentionedCount:w().int(),byProvider:_t(m(),xf)}),fE=N({date:m(),delta:w().int(),label:m()});N({window:cE,buckets:T(dE),overall:xf,byProvider:_t(m(),xf),trend:pb,mentionTrend:pb,queryChanges:T(fE)});N({id:m(),projectId:m(),propertyId:m(),clientEmail:m(),connected:de(),createdAt:m(),updatedAt:m()});N({date:m(),landingPage:m(),sessions:w(),organicSessions:w(),users:w()});const Ff=se(["session","first_user","manual_utm"]),pE=N({source:m(),medium:m(),sessions:w(),users:w(),sourceDimension:Ff}),mE=N({source:m(),medium:m(),sourceDimension:Ff,landingPage:m(),sessions:w(),users:w()}),hE=N({source:m(),medium:m(),sessions:w(),users:w(),channelGroup:m()}),Yr=N({sessions:w(),sharePct:w(),sharePctDisplay:m()}),gE=N({organic:Yr,social:Yr,direct:Yr,ai:Yr,other:Yr});N({totalSessions:w(),totalOrganicSessions:w(),totalDirectSessions:w(),totalUsers:w(),topPages:T(N({landingPage:m(),sessions:w(),organicSessions:w(),directSessions:w(),users:w()})),aiReferrals:T(pE),aiReferralLandingPages:T(mE),aiSessionsDeduped:w(),aiUsersDeduped:w(),aiSessionsBySession:w(),aiUsersBySession:w(),socialReferrals:T(hE),socialSessions:w(),socialUsers:w(),channelBreakdown:gE,organicSharePct:w(),aiSharePct:w(),aiSharePctBySession:w(),directSharePct:w(),socialSharePct:w(),organicSharePctDisplay:m(),aiSharePctDisplay:m(),aiSharePctBySessionDisplay:m(),directSharePctDisplay:m(),socialSharePctDisplay:m(),otherSessions:w(),otherSharePct:w(),otherSharePctDisplay:m(),lastSyncedAt:m().nullable()});N({connected:de(),propertyId:m().nullable(),clientEmail:m().nullable(),authMethod:se(["service-account","oauth"]).nullable(),lastSyncedAt:m().nullable(),createdAt:m().nullable().optional(),updatedAt:m().nullable().optional()});N({synced:de(),rowCount:w().int().nonnegative(),aiReferralCount:w().int().nonnegative(),socialReferralCount:w().int().nonnegative(),days:w().int().nonnegative(),syncedAt:m(),syncedComponents:T(m()).optional()});N({date:m(),source:m(),medium:m(),landingPage:m(),sessions:w(),users:w(),sourceDimension:Ff});N({date:m(),source:m(),medium:m(),sessions:w(),users:w(),channelGroup:m()});N({date:m(),sessions:w(),organicSessions:w(),users:w()});function oc(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}const h0=se(["claude","openai","gemini","zai"]),yE=N({id:h0,label:m(),defaultModel:m(),configured:de(),keySource:se(["config","env"]).nullable()});N({providers:T(yE).default([]),defaultProvider:h0.nullable()});const bE=se(["aero","user","compaction"]);bE.enum;const g0=128;N({key:m().min(1).max(g0),value:m().min(1)});N({key:m().min(1).max(g0)});const Wf=se(["queued","downloading","querying","ready","failed"]);Wf.enum;N({id:m(),release:m(),status:Wf,phaseDetail:m().nullable().optional(),vertexPath:m().nullable().optional(),edgesPath:m().nullable().optional(),vertexSha256:m().nullable().optional(),edgesSha256:m().nullable().optional(),vertexBytes:w().int().nullable().optional(),edgesBytes:w().int().nullable().optional(),projectsProcessed:w().int().nullable().optional(),domainsDiscovered:w().int().nullable().optional(),downloadStartedAt:m().nullable().optional(),downloadFinishedAt:m().nullable().optional(),queryStartedAt:m().nullable().optional(),queryFinishedAt:m().nullable().optional(),error:m().nullable().optional(),createdAt:m(),updatedAt:m()});const vE=N({linkingDomain:m(),numHosts:w().int()}),SE=N({projectId:m(),release:m(),targetDomain:m(),totalLinkingDomains:w().int(),totalHosts:w().int(),top10HostsShare:m(),queriedAt:m(),excludedLinkingDomains:w().int().optional(),excludedHosts:w().int().optional()});N({summary:SE.nullable(),total:w().int(),rows:T(vE)});N({release:m(),totalLinkingDomains:w().int(),totalHosts:w().int(),top10HostsShare:m(),queriedAt:m()});N({duckdbInstalled:de(),duckdbVersion:m().nullable().optional(),duckdbSpec:m(),pluginDir:m()});N({installed:de(),version:m(),path:m(),alreadyPresent:de()});N({release:m(),vertexUrl:m(),edgesUrl:m(),vertexBytes:w().int().nullable(),edgesBytes:w().int().nullable(),lastModified:m().nullable()});N({release:m(),syncStatus:Wf.nullable(),bytes:w().int(),lastUsedAt:m().nullable()});se(["snapshot","insight"]);const xE=N({kind:Vt("snapshot"),id:m(),runId:m(),query:m(),provider:m(),model:m().nullable(),citationState:Ni,matchedField:se(["answerText","citedDomains","searchQueries","query"]),snippet:m(),createdAt:m()}),wE=N({kind:Vt("insight"),id:m(),runId:m().nullable(),type:se(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-metric-drop","gbp-keyword-drop"]),severity:se(["critical","high","medium","low"]),title:m(),query:m(),provider:m(),matchedField:se(["title","query","recommendation","cause"]),snippet:m(),dismissed:de(),createdAt:m()}),jE=n0("kind",[xE,wE]);N({query:m(),totalHits:w().int().nonnegative(),truncated:de(),hits:T(jE)});const y0=se(["create","expand","refresh","add-schema"]);y0.enum;function oB(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const b0=se(["gsc","competitor-evidence","both"]);b0.enum;const v0=se(["high","medium","low"]);v0.enum;const NE=se(["blog-post","comparison","listicle","how-to","guide","glossary"]);NE.enum;const S0=se(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);S0.enum;const kE=N({url:m(),gscImpressions:w().nonnegative(),gscClicks:w().nonnegative(),gscAvgPosition:w().nonnegative().nullable(),organicSessions:w().nonnegative()}),AE=N({domain:m(),url:m(),title:m(),citationCount:w().int().nonnegative()}),_E=N({demand:w(),competitor:w(),absence:w(),gapSeverity:w()}),zE=N({actionId:m(),state:S0,lastUpdated:m()}),x0=N({targetRef:m(),query:m(),action:y0,ourBestPage:kE.nullable(),winningCompetitor:AE.nullable(),score:w(),scoreBreakdown:_E,drivers:T(m()),demandSource:b0,actionConfidence:v0,existingAction:zE.nullable()});N({targets:T(x0),contextMetrics:N({totalAiReferralSessions:w().int().nonnegative(),latestRunId:m(),runTimestamp:m()})});const CE=N({targetRef:m(),addressedUrl:m().nullable(),note:m().nullable(),dismissedAt:m()});N({dismissals:T(CE)});N({targetRef:m().min(1),addressedUrl:m().url().optional(),note:m().max(500).optional()});N({targetRef:m(),promptVersion:m(),provider:m(),model:m(),responseText:m(),costMillicents:w().int().nonnegative(),generatedAt:m()});N({provider:m().optional(),model:m().optional(),forceRefresh:de().optional()});const TE=N({uri:m(),title:m(),domain:m(),isOurDomain:de(),isCompetitor:de(),citationCount:w().int().nonnegative(),providers:T(ga)}),w0=N({query:m(),groundingSources:T(TE)});N({sources:T(w0),latestRunId:m()});const j0=N({query:m(),competitorDomains:T(m()),competitorCount:w().int().nonnegative(),missRate:w().min(0).max(1),lastSeenInRunId:m()});N({gaps:T(j0),latestRunId:m()});const N0=se(["ok","warn","fail","skipped"]);N0.enum;const ep=se(["global","project"]);ep.enum;const k0=se(["auth","config","providers","integrations","database","schedules","agent"]);k0.enum;const EE=N({id:m(),category:k0,scope:ep,title:m(),status:N0,code:m().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:m(),remediation:m().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:_t(m(),ha()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:w().int().nonnegative().describe("How long the check took to execute.")});N({scope:ep,project:m().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:m().describe("ISO-8601 timestamp when this doctor run started."),durationMs:w().int().nonnegative(),summary:N({total:w().int().nonnegative(),ok:w().int().nonnegative(),warn:w().int().nonnegative(),fail:w().int().nonnegative(),skipped:w().int().nonnegative()}),checks:T(EE)});const OE=N({provider:m(),citationState:Ni,cited:de(),mentioned:de(),runId:m(),runCreatedAt:m()}),DE=N({queryId:m(),query:m(),providers:T(OE),citedCount:w().int().nonnegative(),mentionedCount:w().int().nonnegative(),totalProviders:w().int().nonnegative()}),RE=N({queryId:m(),query:m(),provider:m(),citingCompetitors:T(m()),runId:m(),runCreatedAt:m()}),ME=N({providersConfigured:w().int().nonnegative(),providersCiting:w().int().nonnegative(),providersMentioning:w().int().nonnegative(),totalQueries:w().int().nonnegative(),queriesCitedAndMentioned:w().int().nonnegative(),queriesCitedOnly:w().int().nonnegative(),queriesMentionedOnly:w().int().nonnegative(),queriesInvisible:w().int().nonnegative(),latestRunId:m().nullable(),latestRunAt:m().nullable()});N({summary:ME,byQuery:T(DE),competitorGaps:T(RE),status:se(["ready","no-data"]),reason:se(["no-runs-yet","no-queries"]).optional()});const BE=se(["prompt","request-param","browser-geo","ignored"]),LE=N({label:m(),city:m(),region:m(),country:m(),otherConfiguredLabels:T(m())}),qE=N({provider:m(),treatment:BE,description:m()}),UE=N({generatedAt:m(),project:N({id:m(),name:m(),displayName:m(),canonicalDomain:m(),country:m(),language:m()}),location:LE.nullable(),providerLocationHandling:T(qE),periodStart:m().nullable(),periodEnd:m().nullable()}),$E=N({citationRate:w(),citedQueryCount:w(),totalQueryCount:w(),mentionRate:w(),mentionedQueryCount:w(),trend:se(["up","down","flat","unknown"]),queryCount:w(),competitorCount:w(),providerCount:w(),gsc:N({clicks:w(),impressions:w(),ctr:w(),avgPosition:w(),periodStart:m(),periodEnd:m()}).nullable(),ga:N({sessions:w(),users:w(),periodStart:m(),periodEnd:m()}).nullable(),findings:T(N({title:m(),detail:m(),tone:se(["positive","caution","negative","neutral"])}))}),VE=N({citationState:se(["cited","not-cited","pending"]),answerMentioned:de().nullable(),model:m().nullable()}),IE=N({queries:T(m()),providers:T(m()),matrix:T(T(VE.nullable())),providerRates:T(N({provider:m(),citedCount:w(),totalCount:w(),citationRate:w()}))}),GE=N({domain:m(),citationCount:w(),totalCount:w(),pressureLabel:se(["High","Moderate","Low","None"]),citedQueries:T(m()),sharePct:w(),theirCitedPages:T(N({url:m(),citedFor:T(m())}))}),HE=N({projectCitationCount:w(),competitors:T(GE)}),PE=N({domain:m(),mentionCount:w(),totalCount:w(),pressureLabel:se(["High","Moderate","Low","None"]),mentionedQueries:T(m()),sharePct:w()}),ZE=N({projectMentionCount:w(),totalAnswerSnapshots:w(),competitors:T(PE)}),KE=N({category:m(),label:m(),count:w(),sharePct:w()}),QE=N({categories:T(KE),topDomains:T(N({domain:m(),count:w(),isCompetitor:de()}))}),YE=N({query:m(),clicks:w(),impressions:w(),ctr:w(),avgPosition:w(),category:se(["brand","lead-gen","industry","other"])}),XE=N({periodStart:m(),periodEnd:m(),totalClicks:w(),totalImpressions:w(),ctr:w(),avgPosition:w(),topQueries:T(YE),categoryBreakdown:T(N({category:se(["brand","lead-gen","industry","other"]),clicks:w(),impressions:w(),sharePct:w()})),trend:T(N({date:m(),clicks:w(),impressions:w()})),trackedButNoGsc:T(m()),gscButNotTracked:T(m())}),JE=N({totalSessions:w(),totalUsers:w(),totalOrganicSessions:w(),periodStart:m(),periodEnd:m(),topLandingPages:T(N({page:m(),sessions:w(),users:w(),organicSessions:w()})),channelBreakdown:T(N({channel:m(),sessions:w(),sharePct:w()}))}),FE=N({totalSessions:w(),organicSessions:w(),paidSessions:w(),channels:T(N({channelGroup:m(),sessions:w(),sharePct:w()})),topCampaigns:T(N({source:m(),medium:m(),sessions:w()}))}),WE=N({totalSessions:w(),totalUsers:w(),bySource:T(N({source:m(),sessions:w(),users:w(),sharePct:w()})),trend:T(N({date:m(),sessions:w()})),topLandingPages:T(N({page:m(),sessions:w(),users:w()}))}),eO=N({windowStart:m(),windowEnd:m(),hasData:de(),verifiedCrawlerHits:N({current:w(),prior:w(),deltaPct:w().nullable()}),unverifiedCrawlerHits:N({current:w(),prior:w(),deltaPct:w().nullable()}),aiUserFetchHits:N({current:w(),prior:w(),deltaPct:w().nullable()}),referralArrivals:N({current:w(),prior:w(),deltaPct:w().nullable()}),byOperator:T(N({operator:m(),verifiedHits:w(),unverifiedHits:w(),userFetchHits:w(),referralArrivals:w(),deltaPct:w().nullable()})),topCrawledPaths:T(N({path:m(),verifiedHits:w(),distinctOperators:w()})),referralProducts:T(N({product:m(),arrivals:w(),distinctLandingPaths:w()})),dailyTrend:T(N({date:m(),verifiedCrawlerHits:w(),userFetchHits:w(),referralArrivals:w()})),topReferralLandingPaths:T(N({path:m(),arrivals:w(),distinctProducts:w()}))}),tO=N({provider:se(["google","bing"]).nullable(),total:w(),indexed:w(),notIndexed:w(),deindexed:w(),unknown:w(),indexedPct:w()}),nO=N({runId:m(),date:m(),citationRate:w(),citedQueryCount:w(),totalQueryCount:w(),mentionRate:w(),mentionedQueryCount:w(),providerRates:T(N({provider:m(),citationRate:w()}))}),wf=N({id:m(),type:se(["regression","gain","opportunity"]),severity:se(["critical","high","medium","low"]),title:m(),query:m(),provider:m(),recommendation:m().nullable(),createdAt:m(),instanceCount:w()}),aO=N({horizon:se(["immediate","short-term","medium-term"]),title:m(),rationale:m()}),Xr=N({current:w(),prior:w(),deltaAbs:w(),direction:se(["up","down","flat"]),window:w().optional()}),iO=N({provider:m(),current:w(),prior:w(),deltaAbs:w(),direction:se(["up","down","flat"])}),sO=N({enoughHistory:de(),headline:m(),citationRate:Xr.nullable(),mentionRate:Xr.nullable(),citedQueryCount:Xr.nullable(),gscClicksDelta:Xr.nullable(),aiReferralsDelta:Xr.nullable(),providerMovements:T(iO),wins:T(wf),regressions:T(wf)});se(["agency","client"]);const rO=se(["agency","client","both"]),oO=se(["immediate","short-term","medium-term"]),lO=se(["high","medium","low"]);se(["positive","caution","negative","neutral"]);const cO=se(["content","competitors","provider","search-demand","indexing","location","monitoring"]),tp=N({audience:rO,priority:w(),horizon:oO,category:cO,title:m(),action:m(),why:T(m()),evidence:T(m()),successMetric:m(),confidence:lO,targetRef:m().optional()}),uO=N({headline:m(),overview:m(),actionItems:T(tp),confidenceNotes:T(m())}),dO=N({title:m(),detail:m(),severity:se(["positive","caution","negative","neutral"]),evidence:T(m())}),fO=N({priorities:T(tp),diagnostics:T(dO)});function lB(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function cB(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function uB(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function dB(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 fB(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}N({meta:UE,executiveSummary:$E,citationScorecard:IE,competitorLandscape:HE,mentionLandscape:ZE,aiSourceOrigin:QE,gsc:XE.nullable(),ga:JE.nullable(),socialReferrals:FE.nullable(),aiReferrals:WE.nullable(),serverActivity:eO.nullable(),indexingHealth:tO.nullable(),citationsTrend:T(nO),whatsChanged:sO,insights:T(wf),recommendedNextSteps:T(aO),actionPlan:T(tp),clientSummary:uO,agencyDiagnostics:fO,contentOpportunities:T(x0),contentGaps:T(j0),groundingSources:T(w0)});const pO=se(["claude","codex"]);pO.enum;const mO=se(["claude","codex","all"]);mO.enum;const np=se(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);np.enum;const hO=se(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);hO.enum;const gO=se(["raw-request","aggregate-bucket"]),yO=gO.enum,bO=se(["observed","provider-aggregated","inferred"]),vO=bO.enum,SO=N({type:m().nullable(),labels:_t(m(),m())}),xO=N({sourceType:np,evidenceKind:Vt(yO["raw-request"]),confidence:Vt(vO.observed),eventId:m().min(1),observedAt:m().min(1),method:m().nullable(),requestUrl:m().nullable(),host:m().nullable(),path:m().min(1),queryString:m().nullable(),status:w().int().nullable(),userAgent:m().nullable(),remoteIp:m().nullable(),referer:m().nullable(),latencyMs:w().nullable(),requestSizeBytes:w().int().nullable(),responseSizeBytes:w().int().nullable(),providerResource:SO,providerLabels:_t(m(),m())});N({events:T(xO),rawEntryCount:w().int().nonnegative(),skippedEntryCount:w().int().nonnegative(),nextPageToken:m().optional(),filter:m()});const A0=se(["connected","paused","error","archived"]),pB=A0.enum,_0=se(["oauth","service-account"]);_0.enum;const wO=se(["verified","claimed_unverified","unknown_ai_like"]),mB=wO.enum;N({gcpProjectId:m().min(1),serviceName:m().nullable().optional(),location:m().nullable().optional(),authMode:_0});N({baseUrl:m().url(),username:m().min(1)});const ap=se(["production","preview"]);ap.enum;N({projectId:m().min(1),teamId:m().min(1),environment:ap});const z0=N({id:m(),projectId:m(),sourceType:np,displayName:m(),status:A0,lastSyncedAt:m().nullable(),lastCursor:m().nullable(),lastError:m().nullable(),archivedAt:m().nullable(),config:_t(m(),ha()),createdAt:m(),updatedAt:m()});N({gcpProjectId:m().min(1),serviceName:m().min(1).optional(),location:m().min(1).optional(),displayName:m().min(1).optional(),keyJson:m().optional()});N({baseUrl:m().url(),username:m().min(1),applicationPassword:m().min(1),displayName:m().min(1).optional()});N({projectId:m().min(1),teamId:m().min(1),token:m().min(1),environment:ap.optional(),displayName:m().min(1).optional()});N({sourceId:m(),runId:m(),syncedAt:m(),pulledEvents:w().int().nonnegative(),selfTrafficExcluded:w().int().nonnegative(),crawlerHits:w().int().nonnegative(),aiUserFetchHits:w().int().nonnegative(),aiReferralHits:w().int().nonnegative(),unknownHits:w().int().nonnegative(),crawlerBucketRows:w().int().nonnegative(),aiUserFetchBucketRows:w().int().nonnegative(),aiReferralBucketRows:w().int().nonnegative(),sampleRows:w().int().nonnegative(),windowStart:m(),windowEnd:m()});N({days:w().int().positive().optional()});N({advanceToNow:Vt(!0)});N({sourceId:m(),runId:m(),status:yc,windowStart:m(),windowEnd:m(),daysRequested:w().int().positive(),daysApplied:w().int().positive()});const jO=N({crawlerHits:w().int().nonnegative(),aiUserFetchHits:w().int().nonnegative(),aiReferralHits:w().int().nonnegative(),sampleCount:w().int().nonnegative()});N({sources:T(z0)});const NO=z0.extend({totals24h:jO,latestRun:N({runId:m(),status:yc,startedAt:m().nullable(),finishedAt:m().nullable(),error:m().nullable()}).nullable()});N({sources:T(NO)});const kO=se(["crawler","ai-user-fetch","ai-referral"]),ip=kO.enum,AO=N({kind:Vt(ip.crawler),sourceId:m(),tsHour:m(),botId:m(),operator:m(),verificationStatus:m(),pathNormalized:m(),status:w().int(),hits:w().int().nonnegative()}),_O=N({kind:Vt(ip["ai-user-fetch"]),sourceId:m(),tsHour:m(),botId:m(),operator:m(),verificationStatus:m(),pathNormalized:m(),status:w().int(),hits:w().int().nonnegative()}),zO=N({kind:Vt(ip["ai-referral"]),sourceId:m(),tsHour:m(),product:m(),operator:m(),sourceDomain:m(),evidenceType:m(),landingPathNormalized:m(),status:w().int(),hits:w().int().nonnegative()}),CO=n0("kind",[AO,_O,zO]);N({windowStart:m(),windowEnd:m(),totals:N({crawlerHits:w().int().nonnegative(),aiUserFetchHits:w().int().nonnegative(),aiReferralHits:w().int().nonnegative()}),events:T(CO)});const sp=se(["cited","aspirational","wasted-surface"]),mb=sp.enum;mb.cited,mb.aspirational;const rp=se(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),TO=rp.enum;TO["direct-competitor"];const op=se(["queued","seeding","probing","completed","failed"]);op.enum;const C0=N({domain:m().min(1),hits:w().int().positive(),competitorType:rp.default("unknown")}),EO=N({id:m(),sessionId:m(),projectId:m(),query:m(),bucket:sp.nullable().default(null),citationState:Ni,citedDomains:T(m()).default([]),createdAt:m()}),OO=N({id:m(),projectId:m(),status:op,icpDescription:m().nullable().optional(),seedProvider:m().nullable().optional(),seedCountRaw:w().int().nullable().optional(),seedCount:w().int().nullable().optional(),dedupThreshold:w().nullable().optional(),probeCount:w().int().nullable().optional(),citedCount:w().int().nullable().default(null),aspirationalCount:w().int().nullable().default(null),wastedCount:w().int().nullable().default(null),competitorMap:T(C0).default([]),error:m().nullable().optional(),startedAt:m().nullable().optional(),finishedAt:m().nullable().optional(),createdAt:m()});OO.extend({probes:T(EO).default([])});const DO=500;N({icpDescription:m().min(1).optional(),dedupThreshold:w().min(0).max(1).optional(),maxProbes:w().int().positive().max(DO).optional(),locations:T(m().min(1)).optional()});N({buckets:T(sp).min(1).optional(),includeCompetitors:de().optional(),competitorTypes:T(rp).min(1).optional()});N({sessionId:m(),projectId:m(),status:op,queriesByBucket:N({cited:T(m()),aspirational:T(m()),"wasted-surface":T(m())}),suggestedCompetitors:T(C0)});N({sessionId:m(),projectId:m(),promoted:N({queries:T(m()),competitors:T(m())}),skipped:N({queries:T(m()),competitors:T(m())})});t0([Vt("cli"),m().regex(/^discovery:.+$/)]);var RO=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(RO||{});const hB={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},gB={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},yB=Xf;function MO(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 C0(e){return e.split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function yB(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function bB(e){return e===null?"Unknown":e?"Pass":"Fail"}function hb(e){return e===0?"12:00 AM":e<12?`${e}:00 AM`:e===12?"12:00 PM":`${e-12}:00 PM`}function vB(e,n){return e==="twice-daily"?"twice-daily":e.startsWith("weekly@")?`${e}@${n}`:`daily@${n}`}function SB(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 xB(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 ${hb(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 ${hb(h)} · ${r}`}return`${e} · ${r}`}function BO(e,n){return n&&n!==e?`${e} · ${n}`:e}function wB(){const e=Intl.DateTimeFormat().resolvedOptions().timeZone,n=new Intl.DateTimeFormat("en-US",{timeZoneName:"short"}).formatToParts().find(i=>i.type==="timeZoneName")?.value;return BO(e,n)}const Oe=(e,n,i,r)=>{const l={_id:e,baseUrl:n?.baseUrl||(n?.client??X).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]},LO=e=>Oe("getApiV1ProjectsByName",e),qO=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await fv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:LO(e)}),Qs=e=>Oe("getApiV1Projects",e),lp=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Gw({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Qs(e)}),cp=e=>Oe("getApiV1Runs",e),up=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await aj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:cp(e)}),UO=e=>Oe("getApiV1RunsById",e),T0=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:UO(e)}),$O=e=>Oe("getApiV1Settings",e),VO=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await mv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:$O(e)}),IO=e=>Oe("getApiV1ProjectsByNameGoogleConnections",e),jB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Sj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:IO(e)}),GO=e=>Oe("getApiV1ProjectsByNameGoogleProperties",e),NB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await jj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:GO(e)}),HO=e=>Oe("getApiV1ProjectsByNameGoogleGscPerformance",e),kB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await _j({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:HO(e)}),PO=e=>Oe("getApiV1ProjectsByNameGoogleGscPerformanceDaily",e),AB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await zj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:PO(e)}),ZO=e=>Oe("getApiV1ProjectsByNameGoogleGscInspections",e),_B=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Tj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:ZO(e)}),KO=e=>Oe("getApiV1ProjectsByNameGoogleGscDeindexed",e),zB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ej({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:KO(e)}),QO=e=>Oe("getApiV1ProjectsByNameGoogleGscCoverage",e),CB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await hv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:QO(e)}),YO=e=>Oe("getApiV1ProjectsByNameGoogleGscCoverageHistory",e),TB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Oj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:YO(e)}),EB=e=>Oe("getApiV1ProjectsByNameGoogleGscSitemaps",e),XO=e=>Oe("getApiV1ProjectsByNameGbpLocations",e),OB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Lj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:XO(e)}),DB=e=>({mutationFn:async i=>{const{data:r}=await qj({...e,...i,throwOnError:!0});return r}}),RB=e=>({mutationFn:async i=>{const{data:r}=await Uj({...e,...i,throwOnError:!0});return r}}),JO=e=>Oe("getApiV1ProjectsByNameGbpKeywords",e),MB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await $j({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:JO(e)}),FO=e=>Oe("getApiV1ProjectsByNameGbpPlaces",e),BB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Vj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:FO(e)}),WO=e=>Oe("getApiV1ProjectsByNameGbpSummary",e),LB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ij({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:WO(e)}),e4=e=>Oe("getApiV1ProjectsByNameBingStatus",e),qB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Pj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:e4(e)}),t4=e=>Oe("getApiV1ProjectsByNameBingSites",e),UB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Zj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:t4(e)}),n4=e=>Oe("getApiV1ProjectsByNameBingCoverage",e),$B=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await gv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:n4(e)}),a4=e=>Oe("getApiV1ProjectsByNameBingInspections",e),VB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Qj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:a4(e)}),i4=e=>Oe("getApiV1ProjectsByNameBingPerformance",e),IB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Fj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:i4(e)}),s4=e=>Oe("getApiV1ProjectsByNameGaStatus",e),GB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await tN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:s4(e)}),r4=e=>Oe("getApiV1ProjectsByNameGaTraffic",e),HB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await aN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:r4(e)}),o4=e=>Oe("getApiV1ProjectsByNameGaAiReferralHistory",e),PB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await iN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:o4(e)}),l4=e=>Oe("getApiV1ProjectsByNameGaSocialReferralHistory",e),ZB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await sN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:l4(e)}),c4=e=>Oe("getApiV1ProjectsByNameGaSessionHistory",e),KB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await rN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:c4(e)}),u4=e=>Oe("getApiV1ProjectsByNameReport",e),QB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await lN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:u4(e)}),d4=e=>Oe("getApiV1ProjectsByNameCitationsVisibility",e),YB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await cN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:d4(e)}),f4=e=>Oe("getApiV1ProjectsByNameTrafficSources",e),XB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await CN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:f4(e)}),p4=e=>Oe("getApiV1ProjectsByNameTrafficStatus",e),JB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await TN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:p4(e)}),m4=e=>Oe("getApiV1ProjectsByNameTrafficSourcesById",e),FB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await EN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:m4(e)}),h4=e=>Oe("getApiV1ProjectsByNameTrafficEvents",e),WB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ON({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:h4(e)}),g4=e=>Oe("getApiV1ProjectsByNameDiscoverSessions",e),eL=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await RN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:g4(e)}),y4=e=>Oe("getApiV1ProjectsByNameDiscoverSessionsById",e),tL=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await MN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:y4(e)}),b4=e=>Oe("getApiV1ProjectsByNameDiscoverSessionsByIdPromote",e),nL=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await BN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:b4(e)}),v4=e=>Oe("getApiV1ProjectsByNameAgentProviders",e),S4=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await qN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:v4(e)});function gb(e){return e.state==="ok"?"positive":e.state==="checking"?"neutral":"negative"}function E0(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 aL(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 iL(e){return e==="High"?"negative":e==="Moderate"?"caution":"neutral"}function sL(e){return e>=70?"positive":e>=40?"caution":"negative"}const rL={positive:"text-emerald-400",caution:"text-amber-400",negative:"text-rose-400",neutral:"text-zinc-400"};function x4(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 w4(e,n,i){return e.map(r=>{if(r.id==="api")return{...r,tone:gb(n.apiStatus),detail:n.apiStatus.state==="ok"?"Healthy":"Needs attention",meta:n.apiStatus.detail};if(r.id==="worker")return{...r,tone:gb(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=>x4(g)).join(" · ");return{...r,label:"Providers",tone:d?"positive":"caution",detail:`${l} of ${c} configured`,meta:h||"None configured"}})}function j4(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 N4(e,n,i){const r=j4(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 O0="canonry.run-tracker",jf=new Set;let yb=!1,k4=0,bc={runs:{},batches:{}};function A4(){const e=ki();for(const n of jf)n(e)}function _4(e){if(!e)return{runs:{},batches:{}};try{const n=JSON.parse(e);return{runs:n.runs??{},batches:n.batches??{}}}catch{return{runs:{},batches:{}}}}function z4(){typeof window>"u"||window.sessionStorage.setItem(O0,JSON.stringify(bc))}function D0(){yb||(yb=!0,!(typeof window>"u")&&(bc=_4(window.sessionStorage.getItem(O0))))}function vc(e){bc=e,z4(),A4()}function ki(){return D0(),bc}function C4(e){return D0(),jf.add(e),()=>{jf.delete(e)}}function R0(e){const n=ki();vc({...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"}}})}function bb(e){const n=ki();if(!n.runs[e])return;const{[e]:i,...r}=n.runs;vc({...n,runs:r})}function T4(e){const n=ki(),i=`batch_${Date.now()}_${++k4}`;return vc({...n,batches:{...n.batches,[i]:{batchId:i,runIds:e.runIds,queuedCount:e.queuedCount,skippedCount:e.skippedCount}}}),i}function E4(e){const n=ki();if(!n.batches[e])return;const{[e]:i,...r}=n.batches;vc({...n,batches:r})}function O4(e){return e==="completed"||e==="partial"||e==="failed"||e==="cancelled"}function D4(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 vb=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Sb=sv,M0=(e,n)=>i=>{var r;if(n?.variants==null)return Sb(e,i?.class,i?.className);const{variants:l,defaultVariants:c}=n,d=Object.keys(l).map(b=>{const v=i?.[b],S=c?.[b];if(v===null)return null;const j=vb(v)||vb(S);return l[b][j]}),h=i&&Object.entries(i).reduce((b,v)=>{let[S,j]=v;return j===void 0||(b[S]=j),b},{}),g=n==null||(r=n.compoundVariants)===null||r===void 0?void 0:r.reduce((b,v)=>{let{class:S,className:j,..._}=v;return Object.entries(_).every(C=>{let[k,E]=C;return Array.isArray(E)?E.includes({...c,...h}[k]):{...c,...h}[k]===E})?[...b,S,j]:b},[]);return Sb(e,d,g,i?.class,i?.className)},R4=(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},M4=(e,n)=>({classGroupId:e,validator:n}),B0=(e=new Map,n=null,i)=>({nextPart:e,validators:n,classGroupId:i}),lc="-",xb=[],B4="arbitrary..",L4=e=>{const n=U4(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return q4(d);const h=d.split(lc),g=h[0]===""&&h.length>1?1:0;return L0(h,g,n)},getConflictingClassGroupIds:(d,h)=>{if(h){const g=r[d],b=i[d];return g?b?R4(b,g):g:b||xb}return i[d]||xb}}},L0=(e,n,i)=>{if(e.length-n===0)return i.classGroupId;const l=e[n],c=i.nextPart.get(l);if(c){const b=L0(e,n+1,c);if(b)return b}const d=i.validators;if(d===null)return;const h=n===0?e.join(lc):e.slice(n).join(lc),g=d.length;for(let b=0;b<g;b++){const v=d[b];if(v.validator(h))return v.classGroupId}},q4=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?B4+r:void 0})(),U4=e=>{const{theme:n,classGroups:i}=e;return $4(i,n)},$4=(e,n)=>{const i=B0();for(const r in e){const l=e[r];dp(l,i,r,n)}return i},dp=(e,n,i,r)=>{const l=e.length;for(let c=0;c<l;c++){const d=e[c];V4(d,n,i,r)}},V4=(e,n,i,r)=>{if(typeof e=="string"){I4(e,n,i);return}if(typeof e=="function"){G4(e,n,i,r);return}H4(e,n,i,r)},I4=(e,n,i)=>{const r=e===""?n:q0(n,e);r.classGroupId=i},G4=(e,n,i,r)=>{if(P4(e)){dp(e(r),n,i,r);return}n.validators===null&&(n.validators=[]),n.validators.push(M4(i,e))},H4=(e,n,i,r)=>{const l=Object.entries(e),c=l.length;for(let d=0;d<c;d++){const[h,g]=l[d];dp(g,q0(n,h),i,r)}},q0=(e,n)=>{let i=e;const r=n.split(lc),l=r.length;for(let c=0;c<l;c++){const d=r[c];let h=i.nextPart.get(d);h||(h=B0(),i.nextPart.set(d,h)),i=h}return i},P4=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Z4=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)}}},Nf="!",wb=":",K4=[],jb=(e,n,i,r,l)=>({modifiers:e,hasImportantModifier:n,baseClassName:i,maybePostfixModifierPosition:r,isExternal:l}),Q4=e=>{const{prefix:n,experimentalParseClassName:i}=e;let r=l=>{const c=[];let d=0,h=0,g=0,b;const v=l.length;for(let k=0;k<v;k++){const E=l[k];if(d===0&&h===0){if(E===wb){c.push(l.slice(g,k)),g=k+1;continue}if(E==="/"){b=k;continue}}E==="["?d++:E==="]"?d--:E==="("?h++:E===")"&&h--}const S=c.length===0?l:l.slice(g);let j=S,_=!1;S.endsWith(Nf)?(j=S.slice(0,-1),_=!0):S.startsWith(Nf)&&(j=S.slice(1),_=!0);const C=b&&b>g?b-g:void 0;return jb(c,_,j,C)};if(n){const l=n+wb,c=r;r=d=>d.startsWith(l)?c(d.slice(l.length)):jb(K4,!1,d,void 0,!0)}if(i){const l=r;r=c=>i({className:c,parseClassName:l})}return r},Y4=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}},X4=e=>({cache:Z4(e.cacheSize),parseClassName:Q4(e),sortModifiers:Y4(e),...L4(e)}),J4=/\s+/,F4=(e,n)=>{const{parseClassName:i,getClassGroupId:r,getConflictingClassGroupIds:l,sortModifiers:c}=n,d=[],h=e.trim().split(J4);let g="";for(let b=h.length-1;b>=0;b-=1){const v=h[b],{isExternal:S,modifiers:j,hasImportantModifier:_,baseClassName:C,maybePostfixModifierPosition:k}=i(v);if(S){g=v+(g.length>0?" "+g:g);continue}let E=!!k,R=r(E?C.substring(0,k):C);if(!R){if(!E){g=v+(g.length>0?" "+g:g);continue}if(R=r(C),!R){g=v+(g.length>0?" "+g:g);continue}E=!1}const I=j.length===0?"":j.length===1?j[0]:c(j).join(":"),H=_?I+Nf:I,K=H+R;if(d.indexOf(K)>-1)continue;d.push(K);const Y=l(R,E);for(let J=0;J<Y.length;++J){const O=Y[J];d.push(H+O)}g=v+(g.length>0?" "+g:g)}return g},W4=(...e)=>{let n=0,i,r,l="";for(;n<e.length;)(i=e[n++])&&(r=U0(i))&&(l&&(l+=" "),l+=r);return l},U0=e=>{if(typeof e=="string")return e;let n,i="";for(let r=0;r<e.length;r++)e[r]&&(n=U0(e[r]))&&(i&&(i+=" "),i+=n);return i},e3=(e,...n)=>{let i,r,l,c;const d=g=>{const b=n.reduce((v,S)=>S(v),e());return i=X4(b),r=i.cache.get,l=i.cache.set,c=h,h(g)},h=g=>{const b=r(g);if(b)return b;const v=F4(g,i);return l(g,v),v};return c=d,(...g)=>c(W4(...g))},t3=[],At=e=>{const n=i=>i[e]||t3;return n.isThemeGetter=!0,n},$0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,V0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,n3=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,a3=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,i3=/\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$/,s3=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,r3=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,o3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ga=e=>n3.test(e),Ee=e=>!!e&&!Number.isNaN(Number(e)),Ha=e=>!!e&&Number.isInteger(Number(e)),nf=e=>e.endsWith("%")&&Ee(e.slice(0,-1)),fa=e=>a3.test(e),I0=()=>!0,l3=e=>i3.test(e)&&!s3.test(e),fp=()=>!1,c3=e=>r3.test(e),u3=e=>o3.test(e),d3=e=>!he(e)&&!ge(e),f3=e=>Fa(e,P0,fp),he=e=>$0.test(e),Si=e=>Fa(e,Z0,l3),Nb=e=>Fa(e,S3,Ee),p3=e=>Fa(e,Q0,I0),m3=e=>Fa(e,K0,fp),kb=e=>Fa(e,G0,fp),h3=e=>Fa(e,H0,u3),Ul=e=>Fa(e,Y0,c3),ge=e=>V0.test(e),Jr=e=>Ci(e,Z0),g3=e=>Ci(e,K0),Ab=e=>Ci(e,G0),y3=e=>Ci(e,P0),b3=e=>Ci(e,H0),$l=e=>Ci(e,Y0,!0),v3=e=>Ci(e,Q0,!0),Fa=(e,n,i)=>{const r=$0.exec(e);return r?r[1]?n(r[1]):i(r[2]):!1},Ci=(e,n,i=!1)=>{const r=V0.exec(e);return r?r[1]?n(r[1]):i:!1},G0=e=>e==="position"||e==="percentage",H0=e=>e==="image"||e==="url",P0=e=>e==="length"||e==="size"||e==="bg-size",Z0=e=>e==="length",S3=e=>e==="number",K0=e=>e==="family-name",Q0=e=>e==="number"||e==="weight",Y0=e=>e==="shadow",x3=()=>{const e=At("color"),n=At("font"),i=At("text"),r=At("font-weight"),l=At("tracking"),c=At("leading"),d=At("breakpoint"),h=At("container"),g=At("spacing"),b=At("radius"),v=At("shadow"),S=At("inset-shadow"),j=At("text-shadow"),_=At("drop-shadow"),C=At("blur"),k=At("perspective"),E=At("aspect"),R=At("ease"),I=At("animate"),H=()=>["auto","avoid","all","avoid-page","page","left","right","column"],K=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Y=()=>[...K(),ge,he],J=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto","contain","none"],M=()=>[ge,he,g],oe=()=>[Ga,"full","auto",...M()],ke=()=>[Ha,"none","subgrid",ge,he],_e=()=>["auto",{span:["full",Ha,ge,he]},Ha,ge,he],ve=()=>[Ha,"auto",ge,he],tt=()=>["auto","min","max","fr",ge,he],re=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],me=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...M()],W=()=>[Ga,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],fe=()=>[Ga,"screen","full","dvw","lvw","svw","min","max","fit",...M()],je=()=>[Ga,"screen","full","lh","dvh","lvh","svh","min","max","fit",...M()],ie=()=>[e,ge,he],Qe=()=>[...K(),Ab,kb,{position:[ge,he]}],F=()=>["no-repeat",{repeat:["","x","y","space","round"]}],le=()=>["auto","cover","contain",y3,f3,{size:[ge,he]}],ee=()=>[nf,Jr,Si],ce=()=>["","none","full",b,ge,he],ne=()=>["",Ee,Jr,Si],Ne=()=>["solid","dashed","dotted","double"],nt=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],xe=()=>[Ee,nf,Ab,kb],$e=()=>["","none",C,ge,he],Pe=()=>["none",Ee,ge,he],Et=()=>["none",Ee,ge,he],Cn=()=>[Ee,ge,he],Ot=()=>[Ga,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[fa],breakpoint:[fa],color:[I0],container:[fa],"drop-shadow":[fa],ease:["in","out","in-out"],font:[d3],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[fa],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[fa],shadow:[fa],spacing:["px",Ee],text:[fa],"text-shadow":[fa],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ga,he,ge,E]}],container:["container"],columns:[{columns:[Ee,he,ge,h]}],"break-after":[{"break-after":H()}],"break-before":[{"break-before":H()}],"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:Y()}],overflow:[{overflow:J()}],"overflow-x":[{"overflow-x":J()}],"overflow-y":[{"overflow-y":J()}],overscroll:[{overscroll:O()}],"overscroll-x":[{"overscroll-x":O()}],"overscroll-y":[{"overscroll-y":O()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:oe()}],"inset-x":[{"inset-x":oe()}],"inset-y":[{"inset-y":oe()}],start:[{"inset-s":oe(),start:oe()}],end:[{"inset-e":oe(),end:oe()}],"inset-bs":[{"inset-bs":oe()}],"inset-be":[{"inset-be":oe()}],top:[{top:oe()}],right:[{right:oe()}],bottom:[{bottom:oe()}],left:[{left:oe()}],visibility:["visible","invisible","collapse"],z:[{z:[Ha,"auto",ge,he]}],basis:[{basis:[Ga,"full","auto",h,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ee,Ga,"auto","initial","none",he]}],grow:[{grow:["",Ee,ge,he]}],shrink:[{shrink:["",Ee,ge,he]}],order:[{order:[Ha,"first","last","none",ge,he]}],"grid-cols":[{"grid-cols":ke()}],"col-start-end":[{col:_e()}],"col-start":[{"col-start":ve()}],"col-end":[{"col-end":ve()}],"grid-rows":[{"grid-rows":ke()}],"row-start-end":[{row:_e()}],"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":tt()}],"auto-rows":[{"auto-rows":tt()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...re(),"normal"]}],"justify-items":[{"justify-items":[...me(),"normal"]}],"justify-self":[{"justify-self":["auto",...me()]}],"align-content":[{content:["normal",...re()]}],"align-items":[{items:[...me(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...me(),{baseline:["","last"]}]}],"place-content":[{"place-content":re()}],"place-items":[{"place-items":[...me(),"baseline"]}],"place-self":[{"place-self":["auto",...me()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pbs:[{pbs:M()}],pbe:[{pbe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],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":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:W()}],"inline-size":[{inline:["auto",...fe()]}],"min-inline-size":[{"min-inline":["auto",...fe()]}],"max-inline-size":[{"max-inline":["none",...fe()]}],"block-size":[{block:["auto",...je()]}],"min-block-size":[{"min-block":["auto",...je()]}],"max-block-size":[{"max-block":["none",...je()]}],w:[{w:[h,"screen",...W()]}],"min-w":[{"min-w":[h,"screen","none",...W()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[d]},...W()]}],h:[{h:["screen","lh",...W()]}],"min-h":[{"min-h":["screen","lh","none",...W()]}],"max-h":[{"max-h":["screen","lh",...W()]}],"font-size":[{text:["base",i,Jr,Si]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,v3,p3]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",nf,he]}],"font-family":[{font:[g3,m3,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":[Ee,"none",ge,Nb]}],leading:[{leading:[c,...M()]}],"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:ie()}],"text-color":[{text:ie()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ee,"from-font","auto",ge,Si]}],"text-decoration-color":[{decoration:ie()}],"underline-offset":[{"underline-offset":[Ee,"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:M()}],"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:Qe()}],"bg-repeat":[{bg:F()}],"bg-size":[{bg:le()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ha,ge,he],radial:["",ge,he],conic:[Ha,ge,he]},b3,h3]}],"bg-color":[{bg:ie()}],"gradient-from-pos":[{from:ee()}],"gradient-via-pos":[{via:ee()}],"gradient-to-pos":[{to:ee()}],"gradient-from":[{from:ie()}],"gradient-via":[{via:ie()}],"gradient-to":[{to:ie()}],rounded:[{rounded:ce()}],"rounded-s":[{"rounded-s":ce()}],"rounded-e":[{"rounded-e":ce()}],"rounded-t":[{"rounded-t":ce()}],"rounded-r":[{"rounded-r":ce()}],"rounded-b":[{"rounded-b":ce()}],"rounded-l":[{"rounded-l":ce()}],"rounded-ss":[{"rounded-ss":ce()}],"rounded-se":[{"rounded-se":ce()}],"rounded-ee":[{"rounded-ee":ce()}],"rounded-es":[{"rounded-es":ce()}],"rounded-tl":[{"rounded-tl":ce()}],"rounded-tr":[{"rounded-tr":ce()}],"rounded-br":[{"rounded-br":ce()}],"rounded-bl":[{"rounded-bl":ce()}],"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:ie()}],"border-color-x":[{"border-x":ie()}],"border-color-y":[{"border-y":ie()}],"border-color-s":[{"border-s":ie()}],"border-color-e":[{"border-e":ie()}],"border-color-bs":[{"border-bs":ie()}],"border-color-be":[{"border-be":ie()}],"border-color-t":[{"border-t":ie()}],"border-color-r":[{"border-r":ie()}],"border-color-b":[{"border-b":ie()}],"border-color-l":[{"border-l":ie()}],"divide-color":[{divide:ie()}],"outline-style":[{outline:[...Ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ee,ge,he]}],"outline-w":[{outline:["",Ee,Jr,Si]}],"outline-color":[{outline:ie()}],shadow:[{shadow:["","none",v,$l,Ul]}],"shadow-color":[{shadow:ie()}],"inset-shadow":[{"inset-shadow":["none",S,$l,Ul]}],"inset-shadow-color":[{"inset-shadow":ie()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ie()}],"ring-offset-w":[{"ring-offset":[Ee,Si]}],"ring-offset-color":[{"ring-offset":ie()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":ie()}],"text-shadow":[{"text-shadow":["none",j,$l,Ul]}],"text-shadow-color":[{"text-shadow":ie()}],opacity:[{opacity:[Ee,ge,he]}],"mix-blend":[{"mix-blend":[...nt(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":nt()}],"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":[Ee]}],"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":ie()}],"mask-image-linear-to-color":[{"mask-linear-to":ie()}],"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":ie()}],"mask-image-t-to-color":[{"mask-t-to":ie()}],"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":ie()}],"mask-image-r-to-color":[{"mask-r-to":ie()}],"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":ie()}],"mask-image-b-to-color":[{"mask-b-to":ie()}],"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":ie()}],"mask-image-l-to-color":[{"mask-l-to":ie()}],"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":ie()}],"mask-image-x-to-color":[{"mask-x-to":ie()}],"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":ie()}],"mask-image-y-to-color":[{"mask-y-to":ie()}],"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":ie()}],"mask-image-radial-to-color":[{"mask-radial-to":ie()}],"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":K()}],"mask-image-conic-pos":[{"mask-conic":[Ee]}],"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":ie()}],"mask-image-conic-to-color":[{"mask-conic-to":ie()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Qe()}],"mask-repeat":[{mask:F()}],"mask-size":[{mask:le()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ge,he]}],filter:[{filter:["","none",ge,he]}],blur:[{blur:$e()}],brightness:[{brightness:[Ee,ge,he]}],contrast:[{contrast:[Ee,ge,he]}],"drop-shadow":[{"drop-shadow":["","none",_,$l,Ul]}],"drop-shadow-color":[{"drop-shadow":ie()}],grayscale:[{grayscale:["",Ee,ge,he]}],"hue-rotate":[{"hue-rotate":[Ee,ge,he]}],invert:[{invert:["",Ee,ge,he]}],saturate:[{saturate:[Ee,ge,he]}],sepia:[{sepia:["",Ee,ge,he]}],"backdrop-filter":[{"backdrop-filter":["","none",ge,he]}],"backdrop-blur":[{"backdrop-blur":$e()}],"backdrop-brightness":[{"backdrop-brightness":[Ee,ge,he]}],"backdrop-contrast":[{"backdrop-contrast":[Ee,ge,he]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ee,ge,he]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ee,ge,he]}],"backdrop-invert":[{"backdrop-invert":["",Ee,ge,he]}],"backdrop-opacity":[{"backdrop-opacity":[Ee,ge,he]}],"backdrop-saturate":[{"backdrop-saturate":[Ee,ge,he]}],"backdrop-sepia":[{"backdrop-sepia":["",Ee,ge,he]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"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:[Ee,"initial",ge,he]}],ease:[{ease:["linear","initial",R,ge,he]}],delay:[{delay:[Ee,ge,he]}],animate:[{animate:["none",I,ge,he]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,ge,he]}],"perspective-origin":[{"perspective-origin":Y()}],rotate:[{rotate:Pe()}],"rotate-x":[{"rotate-x":Pe()}],"rotate-y":[{"rotate-y":Pe()}],"rotate-z":[{"rotate-z":Pe()}],scale:[{scale:Et()}],"scale-x":[{"scale-x":Et()}],"scale-y":[{"scale-y":Et()}],"scale-z":[{"scale-z":Et()}],"scale-3d":["scale-3d"],skew:[{skew:Cn()}],"skew-x":[{"skew-x":Cn()}],"skew-y":[{"skew-y":Cn()}],transform:[{transform:[ge,he,"","none","gpu","cpu"]}],"transform-origin":[{origin:Y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ot()}],"translate-x":[{"translate-x":Ot()}],"translate-y":[{"translate-y":Ot()}],"translate-z":[{"translate-z":Ot()}],"translate-none":["translate-none"],accent:[{accent:ie()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ie()}],"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":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mbs":[{"scroll-mbs":M()}],"scroll-mbe":[{"scroll-mbe":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pbs":[{"scroll-pbs":M()}],"scroll-pbe":[{"scroll-pbe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"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",...ie()]}],"stroke-w":[{stroke:[Ee,Jr,Si,Nb]}],stroke:[{stroke:["none",...ie()]}],"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"]}},w3=e3(x3);function zn(...e){return w3(sv(e))}const j3=M0("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-zinc-400 focus-visible:ring-offset-2 focus-visible:ring-offset-black disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-zinc-50 text-black hover:bg-zinc-200",secondary:"border border-zinc-800 bg-zinc-950 text-zinc-100 hover:bg-zinc-900",ghost:"text-zinc-400 hover:bg-zinc-900 hover:text-zinc-50",outline:"border border-zinc-800 bg-transparent text-zinc-100 hover:bg-zinc-900",destructive:"bg-rose-600 text-white hover:bg-rose-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=q.forwardRef(({className:e,variant:n,size:i,asChild:r=!1,...l},c)=>{const d=r?yw:"button";return f.jsx(d,{ref:c,className:zn(j3({variant:n,size:i,className:e})),...l})});Ue.displayName="Button";const N3=M0("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium tracking-wide",{variants:{variant:{neutral:"border-zinc-800 bg-zinc-950 text-zinc-300",success:"border-emerald-500/25 bg-emerald-500/10 text-emerald-300",warning:"border-amber-500/25 bg-amber-500/10 text-amber-300",destructive:"border-rose-500/25 bg-rose-500/10 text-rose-300"}},defaultVariants:{variant:"neutral"}});function X0({className:e,variant:n,...i}){return f.jsx("div",{className:zn(N3({variant:n}),e),...i})}const k3=220;function _b({compact:e=!1,version:n,updateAvailable:i,onDismissUpdate:r}){const l=!e&&n&&n!=="unknown",[c,d]=q.useState(!1),h=!e&&i&&r,g=()=>{d(!0),window.setTimeout(()=>{r?.(),d(!1)},k3)};return e?f.jsxs(rt,{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(rt,{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(rt,{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(Dk,{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(Ps,{className:"size-3","aria-hidden":"true"})})]}):l?f.jsxs("span",{className:"brand-version",children:["v",n]}):null]})]})}function A3({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"};return f.jsx("span",{className:`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide ${n[e]??"border-zinc-700 bg-zinc-800 text-zinc-300"}`,children:e})}function Ln({tone:e,children:n,...i}){const r=e==="positive"?"success":e==="caution"?"warning":e==="negative"?"destructive":"neutral";return f.jsx(X0,{variant:r,...i,children:n})}function pp({status:e}){return f.jsx(Ln,{tone:E0(e),children:C0(e)})}const _3=iv,z3=tv,J0=q.forwardRef(({className:e,...n},i)=>f.jsx(Rf,{ref:i,className:zn("fixed inset-0 z-50 bg-black/70 backdrop-blur-sm",e),...n}));J0.displayName=Rf.displayName;const C3=400,T3=1200,E3=720,F0=q.forwardRef(({className:e,children:n,...i},r)=>{const[l,c]=q.useState(E3),d=q.useRef(!1),h=q.useRef(0),g=q.useRef(0),b=q.useCallback(j=>{d.current=!0,h.current=j.clientX,g.current=l,j.target.setPointerCapture(j.pointerId),j.preventDefault()},[l]),v=q.useCallback(j=>{if(!d.current)return;const _=h.current-j.clientX,C=Math.min(T3,Math.max(C3,g.current+_));c(C)},[]),S=q.useCallback(()=>{d.current=!1},[]);return f.jsxs(z3,{children:[f.jsx(J0,{}),f.jsxs(Mf,{ref:r,className:zn("fixed z-50 flex flex-col bg-zinc-950 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-zinc-800",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-zinc-700/50 active:bg-zinc-600/50 transition-colors max-md:hidden",onPointerDown:b,onPointerMove:v,onPointerUp:S}),n,f.jsxs(nv,{className:"absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-zinc-500 transition hover:bg-zinc-900 hover:text-zinc-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400",children:[f.jsx(Ps,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]})]})});F0.displayName=Mf.displayName;const O3=({className:e,...n})=>f.jsx("div",{className:zn("flex flex-col gap-1.5 pr-10",e),...n}),W0=q.forwardRef(({className:e,...n},i)=>f.jsx(Bf,{ref:i,className:zn("text-lg font-medium text-zinc-50",e),...n}));W0.displayName=Bf.displayName;const e1=q.forwardRef(({className:e,...n},i)=>f.jsx(av,{ref:i,className:zn("text-sm text-zinc-500",e),...n}));e1.displayName=av.displayName;function D3({title:e,subtitle:n,children:i,open:r,onClose:l}){return f.jsx(_3,{open:r,onOpenChange:c=>c?void 0:l(),children:f.jsxs(F0,{children:[f.jsxs(O3,{className:"drawer-head",children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:n}),f.jsx(W0,{id:"drawer-title",children:e}),f.jsx(e1,{className:"sr-only",children:n})]}),f.jsx("div",{className:"drawer-body",children:i})]})})}function Fr({text:e}){const[n,i]=q.useState(null),r=q.useRef(null),l=q.useCallback(()=>{if(!r.current)return;const h=r.current.getBoundingClientRect();i({top:h.top,left:h.left+h.width/2})},[]),c=q.useCallback(()=>i(null),[]),d=q.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&&cw.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:"#d4d4d8",backgroundColor:"#18181b",border:"1px solid rgba(63, 63, 70, 0.6)",borderRadius:"0.5rem",boxShadow:"0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1)"},children:e}),document.body)]})}const R3=/[\s\-_]+/;function M3(e){const n=e.split(R3).filter(Boolean);return n.length===0?null:n.map(i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\s\\-_]*")}function zb(e,n){const i=B3(n),r=e.split(/(\*\*[^*]+\*\*)/).filter(Boolean).map(b=>b.startsWith("**")&&b.endsWith("**")?{type:"bold",value:b.slice(2,-2)}:{type:"text",value:b}),l=i.flatMap(b=>b.terms).filter(b=>b.trim().length>1);if(l.length===0)return r.map((b,v)=>b.type==="bold"?ks.createElement("strong",{key:`b-${v}`,className:"text-zinc-200 font-semibold"},b.value):b.value).filter(Boolean);const d=[...l].sort((b,v)=>v.length-b.length).map(M3).filter(b=>!!b);if(d.length===0)return r.map((b,v)=>b.type==="bold"?ks.createElement("strong",{key:`b-${v}`,className:"text-zinc-200 font-semibold"},b.value):b.value).filter(Boolean);const h=new RegExp(`(${d.join("|")})`,"gi"),g=new Map;for(const b of i)for(const v of b.terms){const S=oc(v);S&&!g.has(S)&&g.set(S,b.className)}return r.flatMap((b,v)=>b.value.split(h).map((j,_)=>{if(!j)return null;if(_%2===1){const k=g.get(oc(j))??"answer-highlight";return b.type==="bold"?ks.createElement("mark",{key:`hl-${v}-${_}`,className:k},ks.createElement("strong",{className:"text-zinc-200 font-semibold"},j)):ks.createElement("mark",{key:`hl-${v}-${_}`,className:k},j)}return b.type==="bold"?ks.createElement("strong",{key:`b-${v}-${_}`,className:"text-zinc-200 font-semibold"},j):j})).filter(Boolean)}function B3(e){return e.length===0?[]:typeof e[0]=="string"?[{terms:e,className:"answer-highlight"}]:e}function Cb(e){const n=(e??"").trim();return n&&(n.startsWith("/")||/^https?:\/\//i.test(n)||/^mailto:/i.test(n))?n:null}function af(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 L3({evidence:e,project:n,onClose:i}){const[r,l]=q.useState(!1),[c,d]=q.useState("mentions"),[h,g]=q.useState(-1),[b,v]=q.useState(null),[S,j]=q.useState(!1),[_,C]=q.useState({}),k=fT(n.project),E=new Set(k.map(ac)),R=e.runHistory,I=R.length>1,[H,K]=q.useState(null),Y=q.useRef(!1);q.useEffect(()=>{if(Y.current||e.answerSnippet&&(e.visibilityState!=null||e.answerMentioned!=null))return;const ee=R.at(-1);ee&&(Y.current=!0,Fl(ee.runId).then(ce=>{const ne=ce.snapshots?.find(Ne=>Ne.query===e.query&&Ne.provider===e.provider);ne&&K({citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:ee.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 J=h>=0&&b!==null,O=J?b:H||{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},M=O.visibilityState==="pending"||O.citationState==="pending",oe=M?!1:O.visibilityState!=null?O.visibilityState==="visible":O.answerMentioned!=null?O.answerMentioned:O.citationState===ic.cited||O.citationState==="emerging",ke=O.answerMentioned!=null||O.visibilityState!=null||O.recommendedCompetitors.length>0,_e=O.citedDomains.length>0||O.groundingSources.length>0||O.evidenceUrls.length>0,ve=n.project.displayName||n.project.name,tt=[...k.map(ac),ve,ve.split(" ").slice(0,2).join(" "),...O.matchedTerms].filter(ee=>ee.trim().length>2),re=[...O.competitorDomains.flatMap(ee=>{const ce=dT(ee);return ce.length>=4?[ce]:[]}),...O.recommendedCompetitors].filter(ee=>ee.trim().length>2),me=[{terms:tt,className:"answer-highlight-brand"},...re.length>0?[{terms:re,className:"answer-highlight-competitor"}]:[]],$=M?"pending":O.visibilityTransition==="lost"?"lost":oe?"mentioned":"not-mentioned",W=q.useRef(0),fe=q.useCallback(async ee=>{const ce=++W.current;if(ee===-1||ee===R.length-1){g(-1),v(null),l(!1);return}g(ee),l(!1);const ne=R[ee],Ne=`${ne.runId}::${e.query}::${e.provider}`;if(_[Ne]){v(_[Ne]);return}j(!0);try{const nt=await Fl(ne.runId);if(ce!==W.current)return;const xe=nt.snapshots?.find(Pe=>Pe.query===e.query&&Pe.provider===e.provider)??nt.snapshots?.find(Pe=>Pe.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:af(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:af(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Snapshot data not available for this run."};C(Pe=>({...Pe,[Ne]:$e})),v($e)}catch{if(ce!==W.current)return;v({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:af(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Failed to load historical run data."})}finally{ce===W.current&&j(!1)}},[R,e.query,e.provider,_]),ie=(J||e.historyScope!=="provider")&&O.model?`${O.provider} (${O.model}) · ${O.changeLabel.toLowerCase()}`:`${O.provider} · ${O.changeLabel.toLowerCase()}`,Qe=!J&&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=oe?{label:"Mentioned in answer",title:"Your brand or domain is mentioned in this answer",meta:ie}:O.visibilityTransition==="lost"?{label:"Mention lost",title:"Your brand no longer appears in this answer",meta:ie}:M?{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:ie},le=()=>{if(!O.answerSnippet)return null;const ee=O.answerSnippet.split(`
|
|
58
|
-
`),ce=[];let ne=[],Ne=0;const nt=()=>{if(ne.length===0)return;const xe=ne.join(" ").trim();xe&&ce.push(f.jsx("p",{className:ce.length>0?"mt-2.5":"",children:zb(xe,me)},Ne++)),ne=[]};for(const xe of ee){const $e=xe.trim();if(/^[-\u2013\u2014]{3,}$/.test($e)){nt(),ce.push(f.jsx("hr",{className:"border-zinc-800/60 my-3"},Ne++));continue}const Pe=$e.match(/^(#{1,3})\s+(\S.*)$/);if(Pe){nt();const Et=Pe[1].length,Cn=Pe[2].replace(/^[\p{Emoji}\p{Emoji_Component}\s]+/u,"").trim()||Pe[2],Ot=Et===1?"text-[13px] font-semibold text-zinc-100 mt-4 mb-1":Et===2?"text-xs font-semibold text-zinc-200 mt-3 mb-0.5":"text-xs font-medium text-zinc-300 mt-2";ce.push(f.jsx("p",{className:Ot,children:zb(Cn,me)},Ne++));continue}if($e===""){nt();continue}ne.push($e)}return nt(),ce};return f.jsx(iv,{open:!0,onOpenChange:ee=>{ee||i()},children:f.jsxs(tv,{children:[f.jsx(Rf,{className:"fixed inset-0 z-50 bg-black/80 backdrop-blur-sm"}),f.jsxs(Mf,{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," ","·"," ",O.provider||"All providers"]}),f.jsx(Bf,{className:"text-lg font-semibold text-zinc-50 truncate",children:e.query})]}),f.jsxs(nv,{className:"inline-flex size-8 items-center justify-center rounded-md text-zinc-500 transition hover:bg-zinc-800 hover:text-zinc-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400 shrink-0",children:[f.jsx(Ps,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]}),I&&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((ee,ce)=>{const ne=h===-1&&ce===R.length-1||h===ce,Ne=ee.visibilityState??(ee.answerMentioned?"visible":"not-visible"),nt=ee.visibilityTransition??Ne,xe=Ne==="visible"?"bg-emerald-400":nt==="emerging"?"bg-amber-400":nt==="lost"?"bg-rose-400":"bg-zinc-600",Pe=new Date(ee.createdAt).toLocaleDateString(void 0,{month:"short",day:"numeric"}),Et=!!(ee.model&&ce>0&&R[ce-1]?.model&&R[ce-1].model!==ee.model);return f.jsxs("button",{type:"button",className:`evidence-run-dot ${ne?"evidence-run-dot--selected":""}`,onClick:()=>{fe(ce===R.length-1?-1:ce)},"aria-label":[`Run ${Pe}: ${Ne}`,ee.model?`model ${ee.model}`:null,Et?"model changed":null].filter(Boolean).join(" — "),"aria-pressed":ne,children:[f.jsx("span",{className:`size-2 rounded-full ${xe} ${Et?"ring-1 ring-amber-300/80 ring-offset-2 ring-offset-zinc-950":""}`,"aria-hidden":"true"}),f.jsx("span",{className:"text-[10px] text-zinc-500",children:Pe})]},ce)})}),h>=0&&h<R.length&&f.jsxs("p",{className:"text-[11px] text-zinc-500 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-zinc-400 hover:text-zinc-200 ml-2",onClick:()=>{fe(-1)},children:["←"," Back to latest"]})]}),!J&&(e.modelTransitions?.length??0)>0&&f.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.modelTransitions.map(ee=>f.jsx("span",{className:"inline-flex items-center rounded-full border border-amber-400/30 bg-amber-400/10 px-2 py-1 text-[10px] text-amber-100",children:`${ee.fromModel??"unknown"} -> ${ee.toModel??"unknown"} on ${new Date(ee.createdAt).toLocaleDateString()}`},`${ee.runId}:${ee.toModel??"unknown"}`))})]}),f.jsxs("div",{className:"evidence-modal-body",children:[S&&f.jsxs("div",{className:"md:col-span-2 flex items-center justify-center py-12 text-zinc-500 text-sm",children:["Loading historical run data","…"]}),!S&&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}),Qe&&f.jsx("p",{className:"mt-1 text-[11px] text-zinc-500",children:Qe})]}),O.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:le()}),O.answerSnippet.length>280&&f.jsx("button",{type:"button",className:"mt-1.5 text-xs text-zinc-500 hover:text-zinc-300 transition-colors",onClick:()=>l(!r),children:r?"↑ Collapse":"↓ Show full answer"})]}),!O.answerSnippet&&!S&&f.jsx("div",{className:"rounded-lg border border-zinc-800/40 bg-zinc-900/20 px-4 py-8 text-center text-zinc-600 text-sm",children:"No answer text recorded for this run"}),O.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(Fr,{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:O.searchQueries.map((ee,ce)=>f.jsxs("li",{className:"flex items-start gap-2 text-sm text-zinc-300",children:[f.jsx(bA,{className:"size-3.5 mt-0.5 shrink-0 text-zinc-600","aria-hidden":"true"}),f.jsx("span",{className:"break-words",children:ee})]},`${ce}-${ee}`))})]}),!J&&e.relatedTechnicalSignals.length>0&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:oe?"Why you're visible":"What to fix"}),f.jsx("div",{className:"action-items-list",children:e.relatedTechnicalSignals.map((ee,ce)=>f.jsxs("div",{className:"action-item",children:[f.jsx("svg",{className:`action-item-icon ${oe?"text-emerald-400":"text-amber-400"}`,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:oe?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:ee})]},ce))})]}),O.summary&&f.jsx("p",{className:"text-xs text-zinc-600 border-t border-zinc-800/40 pt-3 mt-1",children:O.summary})]}),f.jsxs("div",{className:"evidence-modal-sidebar",children:[(ke||_e)&&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(Fr,{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--${oe?"mentioned":"not-mentioned"}`,children:[f.jsx("span",{className:"mention-status-icon",children:M?"…":oe?"✓":"—"}),f.jsx("span",{className:"mention-status-label",children:M?"Pending":oe?"Mentioned":"Not mentioned"})]}),O.matchedTerms.length>0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500 mb-1.5",children:"Matched in answer"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:O.matchedTerms.map(ee=>f.jsx("span",{className:"mention-chip mention-chip--brand",children:ee},ee))})]}),!M&&!oe&&O.matchedTerms.length===0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500 mb-1.5",children:"Searched for"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:tt.map(ee=>f.jsx("span",{className:"mention-chip mention-chip--muted",children:ee},ee))}),f.jsx("p",{className:"text-[11px] text-zinc-600 mt-1.5",children:"None of these appear in the answer text."})]})]}),(O.recommendedCompetitors.length>0||O.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(Fr,{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 ee=O.competitorDomains.map(Ne=>Ne.replace(/^www\./,"")),ce=new Set(ee.map(Ne=>oc(Ne.replace(/\.[^.]+$/,""))));return[...O.recommendedCompetitors.filter(Ne=>!ce.has(oc(Ne))),...ee].map(Ne=>f.jsx("span",{className:"mention-chip mention-chip--competitor",children:Ne},Ne))})()})]})]}),c==="sources"&&f.jsxs(f.Fragment,{children:[O.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(Fr,{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:O.citedDomains.map((ee,ce)=>{const ne=ee.toLowerCase().replace(/^www\./,""),Ne=E.has(ne),nt=!Ne&&O.competitorDomains.some($e=>$e.toLowerCase().replace(/^www\./,"")===ne),xe=Ne?"you":nt?"competitor":"other";return f.jsxs("div",{className:`citation-leaderboard-item citation-leaderboard-item--${xe}`,children:[f.jsxs("span",{className:"citation-leaderboard-rank",children:["#",ce+1]}),f.jsx("span",{className:"citation-leaderboard-domain",children:ee}),Ne&&f.jsx("span",{className:"citation-leaderboard-tag",children:"You"}),nt&&f.jsx("span",{className:"citation-leaderboard-tag",children:"Competitor"})]},ee)})})]}),O.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 (",O.groundingSources.length,")"]}),f.jsx(Fr,{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:O.groundingSources.map((ee,ce)=>{const ne=Cb(ee.uri),Ne=ee.title||ee.uri;return f.jsx("li",{className:"truncate text-sm",children:ne?f.jsx("a",{href:ne,target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 hover:text-zinc-200 transition-colors",children:Ne}):f.jsx("span",{className:"text-zinc-400",children:Ne})},ce)})})]}),O.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:O.evidenceUrls.map(ee=>{const ce=Cb(ee);return f.jsx("li",{className:"truncate text-sm",children:ce?f.jsx("a",{href:ce,target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 hover:text-zinc-200 transition-colors",children:ee}):f.jsx("span",{className:"text-zinc-400",children:ee})},ee)})})]}),O.citedDomains.length===0&&O.groundingSources.length===0&&O.evidenceUrls.length===0&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-zinc-600 text-sm",children:["No source data ",J?"for this run":"yet"]})]}),!ke&&!_e&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-zinc-600 text-sm",children:["No answer visibility data ",J?"for this run":"yet"]})]})]})]})]})]})})}function Bn(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 sf=[{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 Sc(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 q3=Sc({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"}),U3=Sc({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"}),$3=Sc({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"}),V3=Sc({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"}),I3=[{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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["not-cited","not-cited","not-cited","not-cited","not-cited","cited"])}];sf[0],sf[1],Bn(["cited","cited","cited","cited","cited"]),sf[2],2/7,3/7,Bn(["not-cited","not-cited","not-cited","cited"]);function G3(e,n){return e.runs.find(i=>i.id===n)}function H3(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 P3(e,n,i){if(e){const r=e.visibilityEvidence.find(l=>l.id===i);if(r)return{project:e,evidence:r}}if(n)return H3(n,i)}const Z3={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-metric-drop":"negative","gbp-keyword-drop":"negative"},K3={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-metric-drop":"investigate","gbp-keyword-drop":"investigate"},Q3={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-metric-drop":"lost","gbp-keyword-drop":"lost"},Y3={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-metric-drop":"Metric drop","gbp-keyword-drop":"Keyword drop"};function X3(e){return{id:e.id,tone:Z3[e.type],title:e.title,detail:e.cause?.details??e.cause?.cause??"",actionLabel:e.recommendation?.action??Y3[e.type],actionGroup:K3[e.type],affectedPhrases:[{query:e.query,evidenceId:"",provider:e.provider,citationState:Q3[e.type]}]}}function J3(e){return e.filter(n=>!n.dismissed).map(X3)}function t1(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 Tb(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}function F3(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 n1(e){switch(e){case Te["answer-visibility"]:return"Answer visibility sweep";case Te["gsc-sync"]:return"GSC sync";case Te["inspect-sitemap"]:return"Sitemap inspection";case Te["ga-sync"]:return"GA sync";case Te["traffic-sync"]:return"Traffic sync";case Te["bing-inspect"]:return"Bing URL inspection";case Te["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Te["site-audit"]:return"Site audit";case Te["backlink-extract"]:return"Backlink extract";case Te["aeo-discover-seed"]:return"Discovery (seed phase)";case Te["aeo-discover-probe"]:return"Discovery (probe phase)";case Te["gbp-sync"]:return"Business Profile sync"}}function W3(e){return e===Ms.manual?"Manual":e===Ms.scheduled?"Scheduled":e===Ms["config-apply"]?"Config apply":e}function mp(e,n){return{id:e.id,projectId:e.projectId,projectName:n,kind:e.kind,kindLabel:n1(e.kind),status:e.status,trigger:e.trigger??"manual",location:e.location??null,createdAt:e.createdAt,startedAt:e.startedAt?Tb(e.startedAt):Tb(e.createdAt),duration:F3(e.startedAt??null,e.finishedAt??null),statusDetail:e.error?a1(e.error):eD(e),summary:tD(e),triggerLabel:W3(e.trigger)}}function a1(e){const n=Xf(e);return n.length>200?n.slice(0,200)+"…":n}function eD(e){switch(e.status){case Pt.queued:return"Waiting for execution slot.";case Pt.running:return"Provider queries in progress.";case Pt.completed:return"All queries checked.";case Pt.partial:return"Run completed with some queries skipped.";case Pt.failed:return e.error?a1(e.error):"Run failed.";case Pt.cancelled:return"Run was cancelled.";default:return""}}function tD(e){const n=n1(e.kind);switch(e.status){case Pt.queued:return`${n} queued`;case Pt.running:return`${n} in progress`;case Pt.completed:return`${n} completed`;case Pt.partial:return`${n} partially completed`;case Pt.failed:return`${n} failed`;case Pt.cancelled:return`${n} cancelled`;default:return e.status}}function nD(e,n,i,r){const l=[];let c=0;const d=new Set;if(i.length>0){const h=i.flatMap(C=>C.snapshots??[]),g=new Map;for(const C of h)if(C.query){const k=`${C.query}::${C.provider}::${C.location??""}`;g.set(k,C)}const b=new Set(h.map(C=>C.location??null));b.size===0&&b.add(null);const v=new Set(h.map(C=>C.provider)),S=new Set(n.flatMap(C=>Object.keys(C.providerRuns??{}))),j=[...new Set([...v,...S])].sort(),_=j.length>0?j:["gemini"];for(const C of n){if(C.runs.length===0)continue;d.add(C.query);const k=C.runs.at(-1),E=k?.transition??"not-cited";for(const R of _){const I=[...b].filter(Y=>g.has(`${C.query}::${R}::${Y??""}`)),H=(C.providerRuns?.[R]?.length??0)>0,K=I.length>0?I:H?[null]:[];for(const Y of K){const J=Y??"",O=g.get(`${C.query}::${R}::${J}`),M=O?.model??null,oe=M?`${R}:${M}`:null,ke=C.providerRuns?.[R],_e=oe?C.modelRuns?.[oe]:void 0,ve=$e=>$e?.filter(Pe=>(Pe.location??null)===Y),tt=I.length>0?ve(ke):ke,re=I.length>0?ve(_e):_e,me=(tt?.length?tt:null)??(re?.length?re:null),$=tt?.length?"provider":re?.length?"model":"query",W=me?me.at(-1).transition:E,fe=me?me.at(-1).visibilityTransition??(me.at(-1).visibilityState==="visible"?"visible":"not-visible"):k?.visibilityTransition??(k?.visibilityState==="visible"?"visible":"not-visible"),je=me?.at(-1)?.citationState,ie=me?.at(-1)?.visibilityState,Qe=O?W==="lost"?"lost":W==="emerging"?"emerging":O.citationState===ic.cited?"cited":"not-cited":je===ic.cited?"cited":"not-cited",F=O?.visibilityState??(ie==="visible"?"visible":ie==="pending"?"pending":"not-visible"),le=Eb(me||C.runs),ee=Ob(me||C.runs),ce=aD(C,R),ne=(me??C.runs).map($e=>({runId:$e.runId,citationState:$e.citationState,createdAt:$e.createdAt,model:ce.get($e.runId)??null,answerMentioned:$e.answerMentioned,visibilityState:$e.visibilityState,visibilityTransition:$e.visibilityTransition,mentionState:$e.mentionState,mentionTransition:$e.mentionTransition})),Ne=iD(ne),nt=$==="provider"&&Ne.length<=1?"model":$,xe=sD(ne);l.push({id:`evidence_${e}_${c++}`,query:C.query,provider:O?.provider??R,model:O?.model??null,location:O?.location??Y,citationState:Qe,answerMentioned:O?.answerMentioned,visibilityState:F,visibilityChangeLabel:Db(fe,ee,{positive:"visible",negative:"not visible",first:"first visibility"}),changeLabel:Db(W,le),answerSnippet:O?.answerText??"",citedDomains:O?.citedDomains??[],evidenceUrls:[],competitorDomains:O?.competitorOverlap??[],recommendedCompetitors:O?.recommendedCompetitors??[],matchedTerms:O?.matchedTerms??[],relatedTechnicalSignals:[],groundingSources:O?.groundingSources??[],searchQueries:O?.searchQueries??[],summary:rD(F,fe,C.query),runHistory:ne,historyScope:nt,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 aD(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 iD(e){const n=new Set;for(const i of e)i.model&&n.add(i.model);return[...n]}function sD(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 Eb(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 Ob(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 Db(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?`${Wr(r.positive)} in latest run`:`${Wr(r.positive)} for ${n} runs`;case"lost":return"Lost since last run";case"emerging":return Wr(r.first);case"not-cited":case"not-visible":return n<=1?`${Wr(r.negative)} in latest run`:`${Wr(r.negative)} across ${n} runs`;default:return e}}function Wr(e){return e.charAt(0).toUpperCase()+e.slice(1)}function rD(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 i1(e){const n=t1(e.project),i=nD(n.name,e.timeline,e.latestRunDetails,e.queries),l=[...e.runs].sort((c,d)=>d.createdAt.localeCompare(c.createdAt)).map(c=>mp(c,e.project.displayName||e.project.name));return e.overview?oD(n,e.overview,i,l):lD(n,i,l)}function oD(e,n,i,r){const l=J3(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,movementSummary:n.movementSummary,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 lD(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"},movementSummary:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},insights:[],visibilityEvidence:n,competitors:[],recentRuns:i.slice(0,5),suggestedQueries:{rows:[],totalCandidates:0,skippedAlreadyTracked:0}}}function cD(e){const n=t1(e.project),i=[...e.runs].sort((j,_)=>_.createdAt.localeCompare(j.createdAt)),r=i.find(j=>j.kind===Te["answer-visibility"])??i[0],l=e.project.displayName||e.project.name,c=r?mp(r,l):uD(e.project.id,l),d=e.overview;if(!d)return{project:n,visibilityScore:0,visibilityDelta:"No data",visibilityTone:"neutral",lastRun:c,insight:"No runs completed yet.",trend:[],competitorPressureLabel:"None"};const h=d.scores.visibility,g=h.progress??0,b=d.queryCounts.citedQueries,v=d.queryCounts.totalQueries,S=d.providers.length;return{project:n,visibilityScore:g,visibilityDelta:v>0?`${b} of ${v} queries`:"No data",visibilityTone:h.tone,providerCoverage:h.providerCoverage,lastRun:c,insight:v>0?`${b} of ${v} queries mentioned across ${S} provider${S===1?"":"s"}.`:"No runs completed yet.",trend:h.trend??[],competitorPressureLabel:d.scores.competitorPressure.value}}function uD(e,n){return{id:"none",projectId:e,projectName:n,kind:Te["answer-visibility"],kindLabel:"No runs yet",status:Pt.queued,trigger:Ms.manual,createdAt:"",startedAt:"",duration:"",statusDetail:"",summary:"No runs yet",triggerLabel:""}}function dD(e,n){const i=[],r=[],l=[];for(const d of e){r.push(i1(d)),l.push(cD(d));const h=[...d.runs].sort((g,b)=>b.createdAt.localeCompare(g.createdAt));for(const g of h)i.push(mp(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?fD(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 fD(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/${i.project.id}`});const l=i.recentRuns.filter(c=>c.status===Pt.running||c.status===Pt.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 s1=q.createContext(null);s1.Provider;function fo(){return q.useContext(s1)}function xc(e){const i=fo()?.dashboard??null,r=un({...lp({client:ae}),enabled:!i,refetchInterval:wk}),l=un({...up({client:ae,query:{kind:"answer-visibility"}}),enabled:!i,staleTime:so,refetchInterval:C=>C.state.data?.some(R=>R.status==="running"||R.status==="queued")?3e3:so}),c=un({...VO({client:ae}),enabled:!i}),d=r.data??[],h=l.data??[],g=uw({queries:d.map(C=>{const k=h.filter(I=>I.projectId===C.id),E=k.filter(I=>(I.status==="completed"||I.status==="partial")&&I.kind==="answer-visibility"&&I.trigger!=="probe").sort((I,H)=>H.createdAt.localeCompare(I.createdAt)),R=E.length>0?E[0].id:"no-run";return{queryKey:["project-overview-slim",C.id,R],queryFn:async()=>{const I=await vv(C.name).catch(()=>null);return{project:C,runs:k,queries:[],competitors:[],timeline:[],latestRunDetails:[],previousRunDetails:[],gscCoverage:null,bingCoverage:null,dbInsights:null,overview:I}},enabled:!i&&r.isSuccess&&l.isSuccess,staleTime:gf}})}),b=g.every(C=>C.isSuccess),v=q.useMemo(()=>{if(i)return i;if(!r.data||!l.data||d.length>0&&!b)return null;const C=g.map(k=>k.data?{...k.data,runs:h.filter(E=>E.projectId===k.data.project.id)}:null).filter(k=>k!=null);return dD(C,c.data??null)},[i,r.data,l.data,c.data,b,g,d.length,h]),S=!i&&(r.isError||l.isError),j=!i&&!v&&!S,_=q.useCallback(async()=>{await Promise.all([r.refetch(),l.refetch(),c.refetch()])},[r.refetch,l.refetch,c.refetch]);return{dashboard:v,isLoading:j,isError:S,refetch:_}}function pD(e){const n=fo(),i=q.useMemo(()=>!n||!e?null:n.dashboard.projects.find(C=>C.project.name===e)??null,[n,e]),r=un({...qO({client:ae,path:{name:e??""}}),enabled:!!e&&!i,staleTime:gf,refetchOnWindowFocus:"always"}),l=un({...up({client:ae,query:{kind:"answer-visibility"}}),enabled:!!e,staleTime:so,refetchOnWindowFocus:"always",refetchInterval:C=>C.state.data?.some(R=>R.projectId===r.data?.id&&(R.status==="running"||R.status==="queued"))?3e3:so}),c=r.data??null,d=q.useMemo(()=>c?(l.data??[]).filter(C=>C.projectId===c.id):[],[c,l.data]),{latestRunIds:h,previousRunIds:g,latestRunIdsKey:b}=q.useMemo(()=>{const C=d.filter(H=>(H.status==="completed"||H.status==="partial")&&H.kind==="answer-visibility"&&H.trigger!=="probe").sort((H,K)=>K.createdAt.localeCompare(H.createdAt)),k=C[0]?.createdAt??null,E=k?C.filter(H=>H.createdAt===k).map(H=>H.id):[],R=C.find(H=>H.createdAt!==k)?.createdAt??null,I=R?C.filter(H=>H.createdAt===R).map(H=>H.id):[];return{latestRunIds:E,previousRunIds:I,latestRunIdsKey:[...E].sort().join(",")}},[d]),v=un({queryKey:["project-dashboard-full",c?.id??null,b||"none"],queryFn:async()=>{if(!c||!e)return null;const[C,k,E,R,I,H,K,Y,J]=await Promise.all([ZN(e).catch(()=>[]),KN(e).catch(()=>[]),QN(e).catch(()=>[]),h.length?Promise.all(h.map(O=>Fl(O).catch(()=>null))).then(O=>O.filter(M=>M!=null)):Promise.resolve([]),g.length?Promise.all(g.map(O=>Fl(O).catch(()=>null))).then(O=>O.filter(M=>M!=null)):Promise.resolve([]),ok(e).catch(()=>null),uk(e).catch(()=>null),fk(e).catch(()=>null),vv(e).catch(()=>null)]);return{project:c,runs:d,queries:C,competitors:k,timeline:E,latestRunDetails:R,previousRunDetails:I,gscCoverage:H,bingCoverage:K,dbInsights:Y,overview:J}},enabled:!!c&&!!e&&l.isSuccess,staleTime:gf,refetchOnWindowFocus:"always",refetchInterval:jk}),S=q.useMemo(()=>v.data?i1({...v.data,runs:d}):i||null,[v.data,d,i]),j=q.useCallback(async()=>{await Promise.all([r.refetch(),l.refetch(),v.refetch()])},[r.refetch,l.refetch,v.refetch]),_=!S&&(r.isLoading||l.isLoading||v.isLoading);return{commandCenter:S,project:c,isLoading:_,isError:r.isError||l.isError||v.isError,refetch:j}}const mD=["health"];async function hD(){const e=await mk("/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 hp(e,n){return un({queryKey:mD,queryFn:hD,enabled:e,refetchInterval:15e3,initialData:n})}function gD(e){return un({...T0({client:ae,path:{id:e??""}}),enabled:!!e,refetchInterval:n=>{const i=n.state.data?.status;return i==="running"||i==="queued"?3e3:!1}})}function gp(){const e=dc(),n=dw({strict:!1}),i=fw({select:g=>g.location.pathname}),r=n.runId??null,l=n.evidenceId??null;return{runId:r,evidenceId:l,openRun:g=>{e({to:i,from:en.to,search:b=>({...b,runId:g,evidenceId:void 0})})},openEvidence:g=>{e({to:i,from:en.to,search:b=>({...b,evidenceId:g,runId:void 0})})},closeDrawer:()=>{e({to:i,from:en.to,search:g=>({...g,runId:void 0,evidenceId:void 0})})}}}const yD={negative:"toast-card-negative",caution:"toast-card-caution",positive:"toast-card-positive",neutral:"toast-card-neutral"};function bD(e){if(e.cta)return`${e.cta.label}: ${e.title}`}function vD(){const e=q.useSyncExternalStore(Sk,By,By),n=dc(),{openRun:i}=gp(),r=q.useCallback(c=>{hf(c)},[]),l=q.useCallback(c=>{c.cta&&(c.cta.intent==="open-run-drawer"?i(c.cta.runId):n({to:"/runs"}),hf(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 ${yD[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":bD(c),children:c.cta.label}):null]}),f.jsx("button",{type:"button",onClick:()=>r(c.id),className:"toast-dismiss","aria-label":"Dismiss",children:f.jsx(Ps,{className:"size-3.5"})})]},c.id))})}function SD(e,n={}){const{threshold:i=80}=n,r=q.useRef(null),l=q.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 q.useEffect(()=>{const g=r.current;if(!g)return;const b=()=>{l.current.wasAtEnd=c(g)<=i};return g.addEventListener("scroll",b,{passive:!0}),()=>g.removeEventListener("scroll",b)},[i]),q.useLayoutEffect(()=>{const g=r.current;if(!g)return;const b=g.scrollHeight;b>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=b),l.current.scrollHeight=b},e),q.useEffect(()=>{const g=r.current;if(!g||typeof ResizeObserver>"u")return;const b=new ResizeObserver(()=>{const v=g.scrollHeight;v>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=v),l.current.scrollHeight=v});return b.observe(g),g.firstElementChild&&b.observe(g.firstElementChild),()=>b.disconnect()},[]),{ref:r,scrollToEnd:h,isAtEnd:d}}async function yp(e){try{return await e.json()}catch{return{}}}function xD(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const bp=xD();function vp(e){(e===401||e===403)&&Lf()}async function Rb(e){const n=await fetch(`${bp}/projects/${encodeURIComponent(e)}/agent/transcript`,{credentials:"include"});if(!n.ok){vp(n.status);const i=await yp(n);throw new Hn(i.error?.message??`transcript fetch failed: ${n.status}`,n.status,i.error?.code)}return await n.json()}async function wD(e){const n=await fetch(`${bp}/projects/${encodeURIComponent(e)}/agent/transcript`,{method:"DELETE",credentials:"include"});if(!n.ok){vp(n.status);const i=await yp(n);throw new Hn(i.error?.message??`reset failed: ${n.status}`,n.status,i.error?.code)}}async function jD({project:e,prompt:n,provider:i,modelId:r,scope:l,signal:c,onEvent:d}){const h={prompt:n};i&&(h.provider=i),r&&(h.modelId=r),l&&(h.scope=l);const g=await fetch(`${bp}/projects/${encodeURIComponent(e)}/agent/prompt`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(h),signal:c});if(!g.ok||!g.body){vp(g.status);const _=await yp(g);throw new Hn(_.error?.message??`prompt failed: ${g.status}`,g.status,_.error?.code)}const b=g.body.getReader(),v=new TextDecoder;let S="";const j=()=>{b.cancel().catch(()=>{})};c?.addEventListener("abort",j,{once:!0});try{for(;;){const{value:_,done:C}=await b.read();if(C)break;S+=v.decode(_,{stream:!0});let k=S.indexOf(`
|
|
56
|
+
`):"Run failed."}function BO(e){return e.split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function bB(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function vB(e){return e===null?"Unknown":e?"Pass":"Fail"}function hb(e){return e===0?"12:00 AM":e<12?`${e}:00 AM`:e===12?"12:00 PM":`${e-12}:00 PM`}function SB(e,n){return e==="twice-daily"?"twice-daily":e.startsWith("weekly@")?`${e}@${n}`:`daily@${n}`}function xB(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 wB(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 ${hb(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 ${hb(h)} · ${r}`}return`${e} · ${r}`}function LO(e,n){return n&&n!==e?`${e} · ${n}`:e}function jB(){const e=Intl.DateTimeFormat().resolvedOptions().timeZone,n=new Intl.DateTimeFormat("en-US",{timeZoneName:"short"}).formatToParts().find(i=>i.type==="timeZoneName")?.value;return LO(e,n)}const Oe=(e,n,i,r)=>{const l={_id:e,baseUrl:n?.baseUrl||(n?.client??X).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]},qO=e=>Oe("getApiV1ProjectsByName",e),UO=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await fv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:qO(e)}),Qs=e=>Oe("getApiV1Projects",e),lp=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Gw({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:Qs(e)}),cp=e=>Oe("getApiV1Runs",e),up=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await aj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:cp(e)}),$O=e=>Oe("getApiV1RunsById",e),T0=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await pv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:$O(e)}),VO=e=>Oe("getApiV1Settings",e),IO=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await mv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:VO(e)}),GO=e=>Oe("getApiV1ProjectsByNameGoogleConnections",e),NB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Sj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:GO(e)}),HO=e=>Oe("getApiV1ProjectsByNameGoogleProperties",e),kB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await jj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:HO(e)}),PO=e=>Oe("getApiV1ProjectsByNameGoogleGscPerformance",e),AB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await _j({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:PO(e)}),ZO=e=>Oe("getApiV1ProjectsByNameGoogleGscPerformanceDaily",e),_B=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await zj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:ZO(e)}),KO=e=>Oe("getApiV1ProjectsByNameGoogleGscInspections",e),zB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Tj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:KO(e)}),QO=e=>Oe("getApiV1ProjectsByNameGoogleGscDeindexed",e),CB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ej({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:QO(e)}),YO=e=>Oe("getApiV1ProjectsByNameGoogleGscCoverage",e),TB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await hv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:YO(e)}),XO=e=>Oe("getApiV1ProjectsByNameGoogleGscCoverageHistory",e),EB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Oj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:XO(e)}),OB=e=>Oe("getApiV1ProjectsByNameGoogleGscSitemaps",e),JO=e=>Oe("getApiV1ProjectsByNameGbpLocations",e),DB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Lj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:JO(e)}),RB=e=>({mutationFn:async i=>{const{data:r}=await qj({...e,...i,throwOnError:!0});return r}}),MB=e=>({mutationFn:async i=>{const{data:r}=await Uj({...e,...i,throwOnError:!0});return r}}),FO=e=>Oe("getApiV1ProjectsByNameGbpKeywords",e),BB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await $j({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:FO(e)}),WO=e=>Oe("getApiV1ProjectsByNameGbpPlaces",e),LB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Vj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:WO(e)}),e4=e=>Oe("getApiV1ProjectsByNameGbpSummary",e),qB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Ij({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:e4(e)}),t4=e=>Oe("getApiV1ProjectsByNameBingStatus",e),UB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Pj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:t4(e)}),n4=e=>Oe("getApiV1ProjectsByNameBingSites",e),$B=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Zj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:n4(e)}),a4=e=>Oe("getApiV1ProjectsByNameBingCoverage",e),VB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await gv({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:a4(e)}),i4=e=>Oe("getApiV1ProjectsByNameBingInspections",e),IB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Qj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:i4(e)}),s4=e=>Oe("getApiV1ProjectsByNameBingPerformance",e),GB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await Fj({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:s4(e)}),r4=e=>Oe("getApiV1ProjectsByNameGaStatus",e),HB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await tN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:r4(e)}),o4=e=>Oe("getApiV1ProjectsByNameGaTraffic",e),PB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await aN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:o4(e)}),l4=e=>Oe("getApiV1ProjectsByNameGaAiReferralHistory",e),ZB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await iN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:l4(e)}),c4=e=>Oe("getApiV1ProjectsByNameGaSocialReferralHistory",e),KB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await sN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:c4(e)}),u4=e=>Oe("getApiV1ProjectsByNameGaSessionHistory",e),QB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await rN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:u4(e)}),d4=e=>Oe("getApiV1ProjectsByNameReport",e),YB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await lN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:d4(e)}),f4=e=>Oe("getApiV1ProjectsByNameCitationsVisibility",e),XB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await cN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:f4(e)}),p4=e=>Oe("getApiV1ProjectsByNameTrafficSources",e),JB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await CN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:p4(e)}),m4=e=>Oe("getApiV1ProjectsByNameTrafficStatus",e),FB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await TN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:m4(e)}),h4=e=>Oe("getApiV1ProjectsByNameTrafficSourcesById",e),WB=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await EN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:h4(e)}),g4=e=>Oe("getApiV1ProjectsByNameTrafficEvents",e),eL=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await ON({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:g4(e)}),y4=e=>Oe("getApiV1ProjectsByNameDiscoverSessions",e),tL=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await RN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:y4(e)}),b4=e=>Oe("getApiV1ProjectsByNameDiscoverSessionsById",e),nL=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await MN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:b4(e)}),v4=e=>Oe("getApiV1ProjectsByNameDiscoverSessionsByIdPromote",e),aL=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await BN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:v4(e)}),S4=e=>Oe("getApiV1ProjectsByNameAgentProviders",e),x4=e=>Me({queryFn:async({queryKey:n,signal:i})=>{const{data:r}=await qN({...e,...n[0],signal:i,throwOnError:!0});return r},queryKey:S4(e)});function gb(e){return e.state==="ok"?"positive":e.state==="checking"?"neutral":"negative"}function E0(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 iL(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 sL(e){return e==="High"?"negative":e==="Moderate"?"caution":"neutral"}function rL(e){return e>=70?"positive":e>=40?"caution":"negative"}const oL={positive:"text-emerald-400",caution:"text-amber-400",negative:"text-rose-400",neutral:"text-zinc-400"};function w4(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 j4(e,n,i){return e.map(r=>{if(r.id==="api")return{...r,tone:gb(n.apiStatus),detail:n.apiStatus.state==="ok"?"Healthy":"Needs attention",meta:n.apiStatus.detail};if(r.id==="worker")return{...r,tone:gb(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=>w4(g)).join(" · ");return{...r,label:"Providers",tone:d?"positive":"caution",detail:`${l} of ${c} configured`,meta:h||"None configured"}})}function N4(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 k4(e,n,i){const r=N4(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 O0="canonry.run-tracker",jf=new Set;let yb=!1,A4=0,bc={runs:{},batches:{}};function _4(){const e=ki();for(const n of jf)n(e)}function z4(e){if(!e)return{runs:{},batches:{}};try{const n=JSON.parse(e);return{runs:n.runs??{},batches:n.batches??{}}}catch{return{runs:{},batches:{}}}}function C4(){typeof window>"u"||window.sessionStorage.setItem(O0,JSON.stringify(bc))}function D0(){yb||(yb=!0,!(typeof window>"u")&&(bc=z4(window.sessionStorage.getItem(O0))))}function vc(e){bc=e,C4(),_4()}function ki(){return D0(),bc}function T4(e){return D0(),jf.add(e),()=>{jf.delete(e)}}function R0(e){const n=ki();vc({...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"}}})}function bb(e){const n=ki();if(!n.runs[e])return;const{[e]:i,...r}=n.runs;vc({...n,runs:r})}function E4(e){const n=ki(),i=`batch_${Date.now()}_${++A4}`;return vc({...n,batches:{...n.batches,[i]:{batchId:i,runIds:e.runIds,queuedCount:e.queuedCount,skippedCount:e.skippedCount}}}),i}function O4(e){const n=ki();if(!n.batches[e])return;const{[e]:i,...r}=n.batches;vc({...n,batches:r})}function D4(e){return e==="completed"||e==="partial"||e==="failed"||e==="cancelled"}function R4(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 vb=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Sb=sv,M0=(e,n)=>i=>{var r;if(n?.variants==null)return Sb(e,i?.class,i?.className);const{variants:l,defaultVariants:c}=n,d=Object.keys(l).map(b=>{const v=i?.[b],S=c?.[b];if(v===null)return null;const j=vb(v)||vb(S);return l[b][j]}),h=i&&Object.entries(i).reduce((b,v)=>{let[S,j]=v;return j===void 0||(b[S]=j),b},{}),g=n==null||(r=n.compoundVariants)===null||r===void 0?void 0:r.reduce((b,v)=>{let{class:S,className:j,..._}=v;return Object.entries(_).every(C=>{let[k,E]=C;return Array.isArray(E)?E.includes({...c,...h}[k]):{...c,...h}[k]===E})?[...b,S,j]:b},[]);return Sb(e,d,g,i?.class,i?.className)},M4=(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},B4=(e,n)=>({classGroupId:e,validator:n}),B0=(e=new Map,n=null,i)=>({nextPart:e,validators:n,classGroupId:i}),lc="-",xb=[],L4="arbitrary..",q4=e=>{const n=$4(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:d=>{if(d.startsWith("[")&&d.endsWith("]"))return U4(d);const h=d.split(lc),g=h[0]===""&&h.length>1?1:0;return L0(h,g,n)},getConflictingClassGroupIds:(d,h)=>{if(h){const g=r[d],b=i[d];return g?b?M4(b,g):g:b||xb}return i[d]||xb}}},L0=(e,n,i)=>{if(e.length-n===0)return i.classGroupId;const l=e[n],c=i.nextPart.get(l);if(c){const b=L0(e,n+1,c);if(b)return b}const d=i.validators;if(d===null)return;const h=n===0?e.join(lc):e.slice(n).join(lc),g=d.length;for(let b=0;b<g;b++){const v=d[b];if(v.validator(h))return v.classGroupId}},U4=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?L4+r:void 0})(),$4=e=>{const{theme:n,classGroups:i}=e;return V4(i,n)},V4=(e,n)=>{const i=B0();for(const r in e){const l=e[r];dp(l,i,r,n)}return i},dp=(e,n,i,r)=>{const l=e.length;for(let c=0;c<l;c++){const d=e[c];I4(d,n,i,r)}},I4=(e,n,i,r)=>{if(typeof e=="string"){G4(e,n,i);return}if(typeof e=="function"){H4(e,n,i,r);return}P4(e,n,i,r)},G4=(e,n,i)=>{const r=e===""?n:q0(n,e);r.classGroupId=i},H4=(e,n,i,r)=>{if(Z4(e)){dp(e(r),n,i,r);return}n.validators===null&&(n.validators=[]),n.validators.push(B4(i,e))},P4=(e,n,i,r)=>{const l=Object.entries(e),c=l.length;for(let d=0;d<c;d++){const[h,g]=l[d];dp(g,q0(n,h),i,r)}},q0=(e,n)=>{let i=e;const r=n.split(lc),l=r.length;for(let c=0;c<l;c++){const d=r[c];let h=i.nextPart.get(d);h||(h=B0(),i.nextPart.set(d,h)),i=h}return i},Z4=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,K4=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)}}},Nf="!",wb=":",Q4=[],jb=(e,n,i,r,l)=>({modifiers:e,hasImportantModifier:n,baseClassName:i,maybePostfixModifierPosition:r,isExternal:l}),Y4=e=>{const{prefix:n,experimentalParseClassName:i}=e;let r=l=>{const c=[];let d=0,h=0,g=0,b;const v=l.length;for(let k=0;k<v;k++){const E=l[k];if(d===0&&h===0){if(E===wb){c.push(l.slice(g,k)),g=k+1;continue}if(E==="/"){b=k;continue}}E==="["?d++:E==="]"?d--:E==="("?h++:E===")"&&h--}const S=c.length===0?l:l.slice(g);let j=S,_=!1;S.endsWith(Nf)?(j=S.slice(0,-1),_=!0):S.startsWith(Nf)&&(j=S.slice(1),_=!0);const C=b&&b>g?b-g:void 0;return jb(c,_,j,C)};if(n){const l=n+wb,c=r;r=d=>d.startsWith(l)?c(d.slice(l.length)):jb(Q4,!1,d,void 0,!0)}if(i){const l=r;r=c=>i({className:c,parseClassName:l})}return r},X4=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}},J4=e=>({cache:K4(e.cacheSize),parseClassName:Y4(e),sortModifiers:X4(e),...q4(e)}),F4=/\s+/,W4=(e,n)=>{const{parseClassName:i,getClassGroupId:r,getConflictingClassGroupIds:l,sortModifiers:c}=n,d=[],h=e.trim().split(F4);let g="";for(let b=h.length-1;b>=0;b-=1){const v=h[b],{isExternal:S,modifiers:j,hasImportantModifier:_,baseClassName:C,maybePostfixModifierPosition:k}=i(v);if(S){g=v+(g.length>0?" "+g:g);continue}let E=!!k,R=r(E?C.substring(0,k):C);if(!R){if(!E){g=v+(g.length>0?" "+g:g);continue}if(R=r(C),!R){g=v+(g.length>0?" "+g:g);continue}E=!1}const I=j.length===0?"":j.length===1?j[0]:c(j).join(":"),H=_?I+Nf:I,K=H+R;if(d.indexOf(K)>-1)continue;d.push(K);const Y=l(R,E);for(let J=0;J<Y.length;++J){const O=Y[J];d.push(H+O)}g=v+(g.length>0?" "+g:g)}return g},e3=(...e)=>{let n=0,i,r,l="";for(;n<e.length;)(i=e[n++])&&(r=U0(i))&&(l&&(l+=" "),l+=r);return l},U0=e=>{if(typeof e=="string")return e;let n,i="";for(let r=0;r<e.length;r++)e[r]&&(n=U0(e[r]))&&(i&&(i+=" "),i+=n);return i},t3=(e,...n)=>{let i,r,l,c;const d=g=>{const b=n.reduce((v,S)=>S(v),e());return i=J4(b),r=i.cache.get,l=i.cache.set,c=h,h(g)},h=g=>{const b=r(g);if(b)return b;const v=W4(g,i);return l(g,v),v};return c=d,(...g)=>c(e3(...g))},n3=[],At=e=>{const n=i=>i[e]||n3;return n.isThemeGetter=!0,n},$0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,V0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,a3=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,i3=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,s3=/\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$/,r3=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,o3=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,l3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ga=e=>a3.test(e),Ee=e=>!!e&&!Number.isNaN(Number(e)),Ha=e=>!!e&&Number.isInteger(Number(e)),nf=e=>e.endsWith("%")&&Ee(e.slice(0,-1)),fa=e=>i3.test(e),I0=()=>!0,c3=e=>s3.test(e)&&!r3.test(e),fp=()=>!1,u3=e=>o3.test(e),d3=e=>l3.test(e),f3=e=>!he(e)&&!ge(e),p3=e=>Fa(e,P0,fp),he=e=>$0.test(e),Si=e=>Fa(e,Z0,c3),Nb=e=>Fa(e,x3,Ee),m3=e=>Fa(e,Q0,I0),h3=e=>Fa(e,K0,fp),kb=e=>Fa(e,G0,fp),g3=e=>Fa(e,H0,d3),Ul=e=>Fa(e,Y0,u3),ge=e=>V0.test(e),Jr=e=>Ci(e,Z0),y3=e=>Ci(e,K0),Ab=e=>Ci(e,G0),b3=e=>Ci(e,P0),v3=e=>Ci(e,H0),$l=e=>Ci(e,Y0,!0),S3=e=>Ci(e,Q0,!0),Fa=(e,n,i)=>{const r=$0.exec(e);return r?r[1]?n(r[1]):i(r[2]):!1},Ci=(e,n,i=!1)=>{const r=V0.exec(e);return r?r[1]?n(r[1]):i:!1},G0=e=>e==="position"||e==="percentage",H0=e=>e==="image"||e==="url",P0=e=>e==="length"||e==="size"||e==="bg-size",Z0=e=>e==="length",x3=e=>e==="number",K0=e=>e==="family-name",Q0=e=>e==="number"||e==="weight",Y0=e=>e==="shadow",w3=()=>{const e=At("color"),n=At("font"),i=At("text"),r=At("font-weight"),l=At("tracking"),c=At("leading"),d=At("breakpoint"),h=At("container"),g=At("spacing"),b=At("radius"),v=At("shadow"),S=At("inset-shadow"),j=At("text-shadow"),_=At("drop-shadow"),C=At("blur"),k=At("perspective"),E=At("aspect"),R=At("ease"),I=At("animate"),H=()=>["auto","avoid","all","avoid-page","page","left","right","column"],K=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Y=()=>[...K(),ge,he],J=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto","contain","none"],M=()=>[ge,he,g],oe=()=>[Ga,"full","auto",...M()],ke=()=>[Ha,"none","subgrid",ge,he],_e=()=>["auto",{span:["full",Ha,ge,he]},Ha,ge,he],ve=()=>[Ha,"auto",ge,he],tt=()=>["auto","min","max","fr",ge,he],re=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],me=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...M()],W=()=>[Ga,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],fe=()=>[Ga,"screen","full","dvw","lvw","svw","min","max","fit",...M()],je=()=>[Ga,"screen","full","lh","dvh","lvh","svh","min","max","fit",...M()],ie=()=>[e,ge,he],Qe=()=>[...K(),Ab,kb,{position:[ge,he]}],F=()=>["no-repeat",{repeat:["","x","y","space","round"]}],le=()=>["auto","cover","contain",b3,p3,{size:[ge,he]}],ee=()=>[nf,Jr,Si],ce=()=>["","none","full",b,ge,he],ne=()=>["",Ee,Jr,Si],Ne=()=>["solid","dashed","dotted","double"],nt=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],xe=()=>[Ee,nf,Ab,kb],$e=()=>["","none",C,ge,he],Pe=()=>["none",Ee,ge,he],Et=()=>["none",Ee,ge,he],Cn=()=>[Ee,ge,he],Ot=()=>[Ga,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[fa],breakpoint:[fa],color:[I0],container:[fa],"drop-shadow":[fa],ease:["in","out","in-out"],font:[f3],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[fa],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[fa],shadow:[fa],spacing:["px",Ee],text:[fa],"text-shadow":[fa],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ga,he,ge,E]}],container:["container"],columns:[{columns:[Ee,he,ge,h]}],"break-after":[{"break-after":H()}],"break-before":[{"break-before":H()}],"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:Y()}],overflow:[{overflow:J()}],"overflow-x":[{"overflow-x":J()}],"overflow-y":[{"overflow-y":J()}],overscroll:[{overscroll:O()}],"overscroll-x":[{"overscroll-x":O()}],"overscroll-y":[{"overscroll-y":O()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:oe()}],"inset-x":[{"inset-x":oe()}],"inset-y":[{"inset-y":oe()}],start:[{"inset-s":oe(),start:oe()}],end:[{"inset-e":oe(),end:oe()}],"inset-bs":[{"inset-bs":oe()}],"inset-be":[{"inset-be":oe()}],top:[{top:oe()}],right:[{right:oe()}],bottom:[{bottom:oe()}],left:[{left:oe()}],visibility:["visible","invisible","collapse"],z:[{z:[Ha,"auto",ge,he]}],basis:[{basis:[Ga,"full","auto",h,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ee,Ga,"auto","initial","none",he]}],grow:[{grow:["",Ee,ge,he]}],shrink:[{shrink:["",Ee,ge,he]}],order:[{order:[Ha,"first","last","none",ge,he]}],"grid-cols":[{"grid-cols":ke()}],"col-start-end":[{col:_e()}],"col-start":[{"col-start":ve()}],"col-end":[{"col-end":ve()}],"grid-rows":[{"grid-rows":ke()}],"row-start-end":[{row:_e()}],"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":tt()}],"auto-rows":[{"auto-rows":tt()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...re(),"normal"]}],"justify-items":[{"justify-items":[...me(),"normal"]}],"justify-self":[{"justify-self":["auto",...me()]}],"align-content":[{content:["normal",...re()]}],"align-items":[{items:[...me(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...me(),{baseline:["","last"]}]}],"place-content":[{"place-content":re()}],"place-items":[{"place-items":[...me(),"baseline"]}],"place-self":[{"place-self":["auto",...me()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pbs:[{pbs:M()}],pbe:[{pbe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],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":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:W()}],"inline-size":[{inline:["auto",...fe()]}],"min-inline-size":[{"min-inline":["auto",...fe()]}],"max-inline-size":[{"max-inline":["none",...fe()]}],"block-size":[{block:["auto",...je()]}],"min-block-size":[{"min-block":["auto",...je()]}],"max-block-size":[{"max-block":["none",...je()]}],w:[{w:[h,"screen",...W()]}],"min-w":[{"min-w":[h,"screen","none",...W()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[d]},...W()]}],h:[{h:["screen","lh",...W()]}],"min-h":[{"min-h":["screen","lh","none",...W()]}],"max-h":[{"max-h":["screen","lh",...W()]}],"font-size":[{text:["base",i,Jr,Si]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,S3,m3]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",nf,he]}],"font-family":[{font:[y3,h3,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":[Ee,"none",ge,Nb]}],leading:[{leading:[c,...M()]}],"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:ie()}],"text-color":[{text:ie()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ee,"from-font","auto",ge,Si]}],"text-decoration-color":[{decoration:ie()}],"underline-offset":[{"underline-offset":[Ee,"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:M()}],"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:Qe()}],"bg-repeat":[{bg:F()}],"bg-size":[{bg:le()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ha,ge,he],radial:["",ge,he],conic:[Ha,ge,he]},v3,g3]}],"bg-color":[{bg:ie()}],"gradient-from-pos":[{from:ee()}],"gradient-via-pos":[{via:ee()}],"gradient-to-pos":[{to:ee()}],"gradient-from":[{from:ie()}],"gradient-via":[{via:ie()}],"gradient-to":[{to:ie()}],rounded:[{rounded:ce()}],"rounded-s":[{"rounded-s":ce()}],"rounded-e":[{"rounded-e":ce()}],"rounded-t":[{"rounded-t":ce()}],"rounded-r":[{"rounded-r":ce()}],"rounded-b":[{"rounded-b":ce()}],"rounded-l":[{"rounded-l":ce()}],"rounded-ss":[{"rounded-ss":ce()}],"rounded-se":[{"rounded-se":ce()}],"rounded-ee":[{"rounded-ee":ce()}],"rounded-es":[{"rounded-es":ce()}],"rounded-tl":[{"rounded-tl":ce()}],"rounded-tr":[{"rounded-tr":ce()}],"rounded-br":[{"rounded-br":ce()}],"rounded-bl":[{"rounded-bl":ce()}],"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:ie()}],"border-color-x":[{"border-x":ie()}],"border-color-y":[{"border-y":ie()}],"border-color-s":[{"border-s":ie()}],"border-color-e":[{"border-e":ie()}],"border-color-bs":[{"border-bs":ie()}],"border-color-be":[{"border-be":ie()}],"border-color-t":[{"border-t":ie()}],"border-color-r":[{"border-r":ie()}],"border-color-b":[{"border-b":ie()}],"border-color-l":[{"border-l":ie()}],"divide-color":[{divide:ie()}],"outline-style":[{outline:[...Ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ee,ge,he]}],"outline-w":[{outline:["",Ee,Jr,Si]}],"outline-color":[{outline:ie()}],shadow:[{shadow:["","none",v,$l,Ul]}],"shadow-color":[{shadow:ie()}],"inset-shadow":[{"inset-shadow":["none",S,$l,Ul]}],"inset-shadow-color":[{"inset-shadow":ie()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ie()}],"ring-offset-w":[{"ring-offset":[Ee,Si]}],"ring-offset-color":[{"ring-offset":ie()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":ie()}],"text-shadow":[{"text-shadow":["none",j,$l,Ul]}],"text-shadow-color":[{"text-shadow":ie()}],opacity:[{opacity:[Ee,ge,he]}],"mix-blend":[{"mix-blend":[...nt(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":nt()}],"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":[Ee]}],"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":ie()}],"mask-image-linear-to-color":[{"mask-linear-to":ie()}],"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":ie()}],"mask-image-t-to-color":[{"mask-t-to":ie()}],"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":ie()}],"mask-image-r-to-color":[{"mask-r-to":ie()}],"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":ie()}],"mask-image-b-to-color":[{"mask-b-to":ie()}],"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":ie()}],"mask-image-l-to-color":[{"mask-l-to":ie()}],"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":ie()}],"mask-image-x-to-color":[{"mask-x-to":ie()}],"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":ie()}],"mask-image-y-to-color":[{"mask-y-to":ie()}],"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":ie()}],"mask-image-radial-to-color":[{"mask-radial-to":ie()}],"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":K()}],"mask-image-conic-pos":[{"mask-conic":[Ee]}],"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":ie()}],"mask-image-conic-to-color":[{"mask-conic-to":ie()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Qe()}],"mask-repeat":[{mask:F()}],"mask-size":[{mask:le()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ge,he]}],filter:[{filter:["","none",ge,he]}],blur:[{blur:$e()}],brightness:[{brightness:[Ee,ge,he]}],contrast:[{contrast:[Ee,ge,he]}],"drop-shadow":[{"drop-shadow":["","none",_,$l,Ul]}],"drop-shadow-color":[{"drop-shadow":ie()}],grayscale:[{grayscale:["",Ee,ge,he]}],"hue-rotate":[{"hue-rotate":[Ee,ge,he]}],invert:[{invert:["",Ee,ge,he]}],saturate:[{saturate:[Ee,ge,he]}],sepia:[{sepia:["",Ee,ge,he]}],"backdrop-filter":[{"backdrop-filter":["","none",ge,he]}],"backdrop-blur":[{"backdrop-blur":$e()}],"backdrop-brightness":[{"backdrop-brightness":[Ee,ge,he]}],"backdrop-contrast":[{"backdrop-contrast":[Ee,ge,he]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ee,ge,he]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ee,ge,he]}],"backdrop-invert":[{"backdrop-invert":["",Ee,ge,he]}],"backdrop-opacity":[{"backdrop-opacity":[Ee,ge,he]}],"backdrop-saturate":[{"backdrop-saturate":[Ee,ge,he]}],"backdrop-sepia":[{"backdrop-sepia":["",Ee,ge,he]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"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:[Ee,"initial",ge,he]}],ease:[{ease:["linear","initial",R,ge,he]}],delay:[{delay:[Ee,ge,he]}],animate:[{animate:["none",I,ge,he]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,ge,he]}],"perspective-origin":[{"perspective-origin":Y()}],rotate:[{rotate:Pe()}],"rotate-x":[{"rotate-x":Pe()}],"rotate-y":[{"rotate-y":Pe()}],"rotate-z":[{"rotate-z":Pe()}],scale:[{scale:Et()}],"scale-x":[{"scale-x":Et()}],"scale-y":[{"scale-y":Et()}],"scale-z":[{"scale-z":Et()}],"scale-3d":["scale-3d"],skew:[{skew:Cn()}],"skew-x":[{"skew-x":Cn()}],"skew-y":[{"skew-y":Cn()}],transform:[{transform:[ge,he,"","none","gpu","cpu"]}],"transform-origin":[{origin:Y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ot()}],"translate-x":[{"translate-x":Ot()}],"translate-y":[{"translate-y":Ot()}],"translate-z":[{"translate-z":Ot()}],"translate-none":["translate-none"],accent:[{accent:ie()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ie()}],"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":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mbs":[{"scroll-mbs":M()}],"scroll-mbe":[{"scroll-mbe":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pbs":[{"scroll-pbs":M()}],"scroll-pbe":[{"scroll-pbe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"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",...ie()]}],"stroke-w":[{stroke:[Ee,Jr,Si,Nb]}],stroke:[{stroke:["none",...ie()]}],"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"]}},j3=t3(w3);function zn(...e){return j3(sv(e))}const N3=M0("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-zinc-400 focus-visible:ring-offset-2 focus-visible:ring-offset-black disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-zinc-50 text-black hover:bg-zinc-200",secondary:"border border-zinc-800 bg-zinc-950 text-zinc-100 hover:bg-zinc-900",ghost:"text-zinc-400 hover:bg-zinc-900 hover:text-zinc-50",outline:"border border-zinc-800 bg-transparent text-zinc-100 hover:bg-zinc-900",destructive:"bg-rose-600 text-white hover:bg-rose-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=q.forwardRef(({className:e,variant:n,size:i,asChild:r=!1,...l},c)=>{const d=r?yw:"button";return f.jsx(d,{ref:c,className:zn(N3({variant:n,size:i,className:e})),...l})});Ue.displayName="Button";const k3=M0("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium tracking-wide",{variants:{variant:{neutral:"border-zinc-800 bg-zinc-950 text-zinc-300",success:"border-emerald-500/25 bg-emerald-500/10 text-emerald-300",warning:"border-amber-500/25 bg-amber-500/10 text-amber-300",destructive:"border-rose-500/25 bg-rose-500/10 text-rose-300"}},defaultVariants:{variant:"neutral"}});function X0({className:e,variant:n,...i}){return f.jsx("div",{className:zn(k3({variant:n}),e),...i})}const A3=220;function _b({compact:e=!1,version:n,updateAvailable:i,onDismissUpdate:r}){const l=!e&&n&&n!=="unknown",[c,d]=q.useState(!1),h=!e&&i&&r,g=()=>{d(!0),window.setTimeout(()=>{r?.(),d(!1)},A3)};return e?f.jsxs(rt,{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(rt,{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(rt,{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(Dk,{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(Ps,{className:"size-3","aria-hidden":"true"})})]}):l?f.jsxs("span",{className:"brand-version",children:["v",n]}):null]})]})}function _3({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"};return f.jsx("span",{className:`inline-flex items-center rounded-full border px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide ${n[e]??"border-zinc-700 bg-zinc-800 text-zinc-300"}`,children:e})}function Ln({tone:e,children:n,...i}){const r=e==="positive"?"success":e==="caution"?"warning":e==="negative"?"destructive":"neutral";return f.jsx(X0,{variant:r,...i,children:n})}function pp({status:e}){return f.jsx(Ln,{tone:E0(e),children:BO(e)})}const z3=iv,C3=tv,J0=q.forwardRef(({className:e,...n},i)=>f.jsx(Rf,{ref:i,className:zn("fixed inset-0 z-50 bg-black/70 backdrop-blur-sm",e),...n}));J0.displayName=Rf.displayName;const T3=400,E3=1200,O3=720,F0=q.forwardRef(({className:e,children:n,...i},r)=>{const[l,c]=q.useState(O3),d=q.useRef(!1),h=q.useRef(0),g=q.useRef(0),b=q.useCallback(j=>{d.current=!0,h.current=j.clientX,g.current=l,j.target.setPointerCapture(j.pointerId),j.preventDefault()},[l]),v=q.useCallback(j=>{if(!d.current)return;const _=h.current-j.clientX,C=Math.min(E3,Math.max(T3,g.current+_));c(C)},[]),S=q.useCallback(()=>{d.current=!1},[]);return f.jsxs(C3,{children:[f.jsx(J0,{}),f.jsxs(Mf,{ref:r,className:zn("fixed z-50 flex flex-col bg-zinc-950 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-zinc-800",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-zinc-700/50 active:bg-zinc-600/50 transition-colors max-md:hidden",onPointerDown:b,onPointerMove:v,onPointerUp:S}),n,f.jsxs(nv,{className:"absolute right-4 top-4 inline-flex size-8 items-center justify-center rounded-md text-zinc-500 transition hover:bg-zinc-900 hover:text-zinc-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400",children:[f.jsx(Ps,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]})]})});F0.displayName=Mf.displayName;const D3=({className:e,...n})=>f.jsx("div",{className:zn("flex flex-col gap-1.5 pr-10",e),...n}),W0=q.forwardRef(({className:e,...n},i)=>f.jsx(Bf,{ref:i,className:zn("text-lg font-medium text-zinc-50",e),...n}));W0.displayName=Bf.displayName;const e1=q.forwardRef(({className:e,...n},i)=>f.jsx(av,{ref:i,className:zn("text-sm text-zinc-500",e),...n}));e1.displayName=av.displayName;function R3({title:e,subtitle:n,children:i,open:r,onClose:l}){return f.jsx(z3,{open:r,onOpenChange:c=>c?void 0:l(),children:f.jsxs(F0,{children:[f.jsxs(D3,{className:"drawer-head",children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:n}),f.jsx(W0,{id:"drawer-title",children:e}),f.jsx(e1,{className:"sr-only",children:n})]}),f.jsx("div",{className:"drawer-body",children:i})]})})}function Fr({text:e}){const[n,i]=q.useState(null),r=q.useRef(null),l=q.useCallback(()=>{if(!r.current)return;const h=r.current.getBoundingClientRect();i({top:h.top,left:h.left+h.width/2})},[]),c=q.useCallback(()=>i(null),[]),d=q.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&&cw.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:"#d4d4d8",backgroundColor:"#18181b",border:"1px solid rgba(63, 63, 70, 0.6)",borderRadius:"0.5rem",boxShadow:"0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1)"},children:e}),document.body)]})}const M3=/[\s\-_]+/;function B3(e){const n=e.split(M3).filter(Boolean);return n.length===0?null:n.map(i=>i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[\\s\\-_]*")}function zb(e,n){const i=L3(n),r=e.split(/(\*\*[^*]+\*\*)/).filter(Boolean).map(b=>b.startsWith("**")&&b.endsWith("**")?{type:"bold",value:b.slice(2,-2)}:{type:"text",value:b}),l=i.flatMap(b=>b.terms).filter(b=>b.trim().length>1);if(l.length===0)return r.map((b,v)=>b.type==="bold"?ks.createElement("strong",{key:`b-${v}`,className:"text-zinc-200 font-semibold"},b.value):b.value).filter(Boolean);const d=[...l].sort((b,v)=>v.length-b.length).map(B3).filter(b=>!!b);if(d.length===0)return r.map((b,v)=>b.type==="bold"?ks.createElement("strong",{key:`b-${v}`,className:"text-zinc-200 font-semibold"},b.value):b.value).filter(Boolean);const h=new RegExp(`(${d.join("|")})`,"gi"),g=new Map;for(const b of i)for(const v of b.terms){const S=oc(v);S&&!g.has(S)&&g.set(S,b.className)}return r.flatMap((b,v)=>b.value.split(h).map((j,_)=>{if(!j)return null;if(_%2===1){const k=g.get(oc(j))??"answer-highlight";return b.type==="bold"?ks.createElement("mark",{key:`hl-${v}-${_}`,className:k},ks.createElement("strong",{className:"text-zinc-200 font-semibold"},j)):ks.createElement("mark",{key:`hl-${v}-${_}`,className:k},j)}return b.type==="bold"?ks.createElement("strong",{key:`b-${v}-${_}`,className:"text-zinc-200 font-semibold"},j):j})).filter(Boolean)}function L3(e){return e.length===0?[]:typeof e[0]=="string"?[{terms:e,className:"answer-highlight"}]:e}function Cb(e){const n=(e??"").trim();return n&&(n.startsWith("/")||/^https?:\/\//i.test(n)||/^mailto:/i.test(n))?n:null}function af(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 q3({evidence:e,project:n,onClose:i}){const[r,l]=q.useState(!1),[c,d]=q.useState("mentions"),[h,g]=q.useState(-1),[b,v]=q.useState(null),[S,j]=q.useState(!1),[_,C]=q.useState({}),k=fT(n.project),E=new Set(k.map(ac)),R=e.runHistory,I=R.length>1,[H,K]=q.useState(null),Y=q.useRef(!1);q.useEffect(()=>{if(Y.current||e.answerSnippet&&(e.visibilityState!=null||e.answerMentioned!=null))return;const ee=R.at(-1);ee&&(Y.current=!0,Fl(ee.runId).then(ce=>{const ne=ce.snapshots?.find(Ne=>Ne.query===e.query&&Ne.provider===e.provider);ne&&K({citationState:ne.citationState,answerMentioned:ne.answerMentioned,visibilityState:ne.visibilityState,visibilityTransition:ee.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 J=h>=0&&b!==null,O=J?b:H||{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},M=O.visibilityState==="pending"||O.citationState==="pending",oe=M?!1:O.visibilityState!=null?O.visibilityState==="visible":O.answerMentioned!=null?O.answerMentioned:O.citationState===ic.cited||O.citationState==="emerging",ke=O.answerMentioned!=null||O.visibilityState!=null||O.recommendedCompetitors.length>0,_e=O.citedDomains.length>0||O.groundingSources.length>0||O.evidenceUrls.length>0,ve=n.project.displayName||n.project.name,tt=[...k.map(ac),ve,ve.split(" ").slice(0,2).join(" "),...O.matchedTerms].filter(ee=>ee.trim().length>2),re=[...O.competitorDomains.flatMap(ee=>{const ce=dT(ee);return ce.length>=4?[ce]:[]}),...O.recommendedCompetitors].filter(ee=>ee.trim().length>2),me=[{terms:tt,className:"answer-highlight-brand"},...re.length>0?[{terms:re,className:"answer-highlight-competitor"}]:[]],$=M?"pending":O.visibilityTransition==="lost"?"lost":oe?"mentioned":"not-mentioned",W=q.useRef(0),fe=q.useCallback(async ee=>{const ce=++W.current;if(ee===-1||ee===R.length-1){g(-1),v(null),l(!1);return}g(ee),l(!1);const ne=R[ee],Ne=`${ne.runId}::${e.query}::${e.provider}`;if(_[Ne]){v(_[Ne]);return}j(!0);try{const nt=await Fl(ne.runId);if(ce!==W.current)return;const xe=nt.snapshots?.find(Pe=>Pe.query===e.query&&Pe.provider===e.provider)??nt.snapshots?.find(Pe=>Pe.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:af(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:af(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Snapshot data not available for this run."};C(Pe=>({...Pe,[Ne]:$e})),v($e)}catch{if(ce!==W.current)return;v({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:af(ne.mentionTransition??ne.visibilityTransition,ne.mentionState??ne.visibilityState),summary:"Failed to load historical run data."})}finally{ce===W.current&&j(!1)}},[R,e.query,e.provider,_]),ie=(J||e.historyScope!=="provider")&&O.model?`${O.provider} (${O.model}) · ${O.changeLabel.toLowerCase()}`:`${O.provider} · ${O.changeLabel.toLowerCase()}`,Qe=!J&&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=oe?{label:"Mentioned in answer",title:"Your brand or domain is mentioned in this answer",meta:ie}:O.visibilityTransition==="lost"?{label:"Mention lost",title:"Your brand no longer appears in this answer",meta:ie}:M?{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:ie},le=()=>{if(!O.answerSnippet)return null;const ee=O.answerSnippet.split(`
|
|
58
|
+
`),ce=[];let ne=[],Ne=0;const nt=()=>{if(ne.length===0)return;const xe=ne.join(" ").trim();xe&&ce.push(f.jsx("p",{className:ce.length>0?"mt-2.5":"",children:zb(xe,me)},Ne++)),ne=[]};for(const xe of ee){const $e=xe.trim();if(/^[-\u2013\u2014]{3,}$/.test($e)){nt(),ce.push(f.jsx("hr",{className:"border-zinc-800/60 my-3"},Ne++));continue}const Pe=$e.match(/^(#{1,3})\s+(\S.*)$/);if(Pe){nt();const Et=Pe[1].length,Cn=Pe[2].replace(/^[\p{Emoji}\p{Emoji_Component}\s]+/u,"").trim()||Pe[2],Ot=Et===1?"text-[13px] font-semibold text-zinc-100 mt-4 mb-1":Et===2?"text-xs font-semibold text-zinc-200 mt-3 mb-0.5":"text-xs font-medium text-zinc-300 mt-2";ce.push(f.jsx("p",{className:Ot,children:zb(Cn,me)},Ne++));continue}if($e===""){nt();continue}ne.push($e)}return nt(),ce};return f.jsx(iv,{open:!0,onOpenChange:ee=>{ee||i()},children:f.jsxs(tv,{children:[f.jsx(Rf,{className:"fixed inset-0 z-50 bg-black/80 backdrop-blur-sm"}),f.jsxs(Mf,{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," ","·"," ",O.provider||"All providers"]}),f.jsx(Bf,{className:"text-lg font-semibold text-zinc-50 truncate",children:e.query})]}),f.jsxs(nv,{className:"inline-flex size-8 items-center justify-center rounded-md text-zinc-500 transition hover:bg-zinc-800 hover:text-zinc-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400 shrink-0",children:[f.jsx(Ps,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Close"})]})]}),I&&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((ee,ce)=>{const ne=h===-1&&ce===R.length-1||h===ce,Ne=ee.visibilityState??(ee.answerMentioned?"visible":"not-visible"),nt=ee.visibilityTransition??Ne,xe=Ne==="visible"?"bg-emerald-400":nt==="emerging"?"bg-amber-400":nt==="lost"?"bg-rose-400":"bg-zinc-600",Pe=new Date(ee.createdAt).toLocaleDateString(void 0,{month:"short",day:"numeric"}),Et=!!(ee.model&&ce>0&&R[ce-1]?.model&&R[ce-1].model!==ee.model);return f.jsxs("button",{type:"button",className:`evidence-run-dot ${ne?"evidence-run-dot--selected":""}`,onClick:()=>{fe(ce===R.length-1?-1:ce)},"aria-label":[`Run ${Pe}: ${Ne}`,ee.model?`model ${ee.model}`:null,Et?"model changed":null].filter(Boolean).join(" — "),"aria-pressed":ne,children:[f.jsx("span",{className:`size-2 rounded-full ${xe} ${Et?"ring-1 ring-amber-300/80 ring-offset-2 ring-offset-zinc-950":""}`,"aria-hidden":"true"}),f.jsx("span",{className:"text-[10px] text-zinc-500",children:Pe})]},ce)})}),h>=0&&h<R.length&&f.jsxs("p",{className:"text-[11px] text-zinc-500 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-zinc-400 hover:text-zinc-200 ml-2",onClick:()=>{fe(-1)},children:["←"," Back to latest"]})]}),!J&&(e.modelTransitions?.length??0)>0&&f.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.modelTransitions.map(ee=>f.jsx("span",{className:"inline-flex items-center rounded-full border border-amber-400/30 bg-amber-400/10 px-2 py-1 text-[10px] text-amber-100",children:`${ee.fromModel??"unknown"} -> ${ee.toModel??"unknown"} on ${new Date(ee.createdAt).toLocaleDateString()}`},`${ee.runId}:${ee.toModel??"unknown"}`))})]}),f.jsxs("div",{className:"evidence-modal-body",children:[S&&f.jsxs("div",{className:"md:col-span-2 flex items-center justify-center py-12 text-zinc-500 text-sm",children:["Loading historical run data","…"]}),!S&&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}),Qe&&f.jsx("p",{className:"mt-1 text-[11px] text-zinc-500",children:Qe})]}),O.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:le()}),O.answerSnippet.length>280&&f.jsx("button",{type:"button",className:"mt-1.5 text-xs text-zinc-500 hover:text-zinc-300 transition-colors",onClick:()=>l(!r),children:r?"↑ Collapse":"↓ Show full answer"})]}),!O.answerSnippet&&!S&&f.jsx("div",{className:"rounded-lg border border-zinc-800/40 bg-zinc-900/20 px-4 py-8 text-center text-zinc-600 text-sm",children:"No answer text recorded for this run"}),O.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(Fr,{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:O.searchQueries.map((ee,ce)=>f.jsxs("li",{className:"flex items-start gap-2 text-sm text-zinc-300",children:[f.jsx(bA,{className:"size-3.5 mt-0.5 shrink-0 text-zinc-600","aria-hidden":"true"}),f.jsx("span",{className:"break-words",children:ee})]},`${ce}-${ee}`))})]}),!J&&e.relatedTechnicalSignals.length>0&&f.jsxs("div",{children:[f.jsx("p",{className:"drawer-section-label",children:oe?"Why you're visible":"What to fix"}),f.jsx("div",{className:"action-items-list",children:e.relatedTechnicalSignals.map((ee,ce)=>f.jsxs("div",{className:"action-item",children:[f.jsx("svg",{className:`action-item-icon ${oe?"text-emerald-400":"text-amber-400"}`,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:oe?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:ee})]},ce))})]}),O.summary&&f.jsx("p",{className:"text-xs text-zinc-600 border-t border-zinc-800/40 pt-3 mt-1",children:O.summary})]}),f.jsxs("div",{className:"evidence-modal-sidebar",children:[(ke||_e)&&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(Fr,{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--${oe?"mentioned":"not-mentioned"}`,children:[f.jsx("span",{className:"mention-status-icon",children:M?"…":oe?"✓":"—"}),f.jsx("span",{className:"mention-status-label",children:M?"Pending":oe?"Mentioned":"Not mentioned"})]}),O.matchedTerms.length>0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500 mb-1.5",children:"Matched in answer"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:O.matchedTerms.map(ee=>f.jsx("span",{className:"mention-chip mention-chip--brand",children:ee},ee))})]}),!M&&!oe&&O.matchedTerms.length===0&&f.jsxs("div",{className:"mt-2",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500 mb-1.5",children:"Searched for"}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:tt.map(ee=>f.jsx("span",{className:"mention-chip mention-chip--muted",children:ee},ee))}),f.jsx("p",{className:"text-[11px] text-zinc-600 mt-1.5",children:"None of these appear in the answer text."})]})]}),(O.recommendedCompetitors.length>0||O.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(Fr,{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 ee=O.competitorDomains.map(Ne=>Ne.replace(/^www\./,"")),ce=new Set(ee.map(Ne=>oc(Ne.replace(/\.[^.]+$/,""))));return[...O.recommendedCompetitors.filter(Ne=>!ce.has(oc(Ne))),...ee].map(Ne=>f.jsx("span",{className:"mention-chip mention-chip--competitor",children:Ne},Ne))})()})]})]}),c==="sources"&&f.jsxs(f.Fragment,{children:[O.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(Fr,{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:O.citedDomains.map((ee,ce)=>{const ne=ee.toLowerCase().replace(/^www\./,""),Ne=E.has(ne),nt=!Ne&&O.competitorDomains.some($e=>$e.toLowerCase().replace(/^www\./,"")===ne),xe=Ne?"you":nt?"competitor":"other";return f.jsxs("div",{className:`citation-leaderboard-item citation-leaderboard-item--${xe}`,children:[f.jsxs("span",{className:"citation-leaderboard-rank",children:["#",ce+1]}),f.jsx("span",{className:"citation-leaderboard-domain",children:ee}),Ne&&f.jsx("span",{className:"citation-leaderboard-tag",children:"You"}),nt&&f.jsx("span",{className:"citation-leaderboard-tag",children:"Competitor"})]},ee)})})]}),O.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 (",O.groundingSources.length,")"]}),f.jsx(Fr,{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:O.groundingSources.map((ee,ce)=>{const ne=Cb(ee.uri),Ne=ee.title||ee.uri;return f.jsx("li",{className:"truncate text-sm",children:ne?f.jsx("a",{href:ne,target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 hover:text-zinc-200 transition-colors",children:Ne}):f.jsx("span",{className:"text-zinc-400",children:Ne})},ce)})})]}),O.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:O.evidenceUrls.map(ee=>{const ce=Cb(ee);return f.jsx("li",{className:"truncate text-sm",children:ce?f.jsx("a",{href:ce,target:"_blank",rel:"noopener noreferrer",className:"text-zinc-400 hover:text-zinc-200 transition-colors",children:ee}):f.jsx("span",{className:"text-zinc-400",children:ee})},ee)})})]}),O.citedDomains.length===0&&O.groundingSources.length===0&&O.evidenceUrls.length===0&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-zinc-600 text-sm",children:["No source data ",J?"for this run":"yet"]})]}),!ke&&!_e&&f.jsxs("div",{className:"flex items-center justify-center h-24 text-zinc-600 text-sm",children:["No answer visibility data ",J?"for this run":"yet"]})]})]})]})]})]})})}function Bn(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 sf=[{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 Sc(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 U3=Sc({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"}),$3=Sc({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"}),V3=Sc({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"}),I3=Sc({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"}),G3=[{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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["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:Bn(["not-cited","not-cited","not-cited","not-cited","not-cited","cited"])}];sf[0],sf[1],Bn(["cited","cited","cited","cited","cited"]),sf[2],2/7,3/7,Bn(["not-cited","not-cited","not-cited","cited"]);function H3(e,n){return e.runs.find(i=>i.id===n)}function P3(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 Z3(e,n,i){if(e){const r=e.visibilityEvidence.find(l=>l.id===i);if(r)return{project:e,evidence:r}}if(n)return P3(n,i)}const K3={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-metric-drop":"negative","gbp-keyword-drop":"negative"},Q3={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-metric-drop":"investigate","gbp-keyword-drop":"investigate"},Y3={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-metric-drop":"lost","gbp-keyword-drop":"lost"},X3={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-metric-drop":"Metric drop","gbp-keyword-drop":"Keyword drop"};function J3(e){return{id:e.id,tone:K3[e.type],title:e.title,detail:e.cause?.details??e.cause?.cause??"",actionLabel:e.recommendation?.action??X3[e.type],actionGroup:Q3[e.type],affectedPhrases:[{query:e.query,evidenceId:"",provider:e.provider,citationState:Y3[e.type]}]}}function F3(e){return e.filter(n=>!n.dismissed).map(J3)}function t1(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 Tb(e){try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}function W3(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 n1(e){switch(e){case Te["answer-visibility"]:return"Answer visibility sweep";case Te["gsc-sync"]:return"GSC sync";case Te["inspect-sitemap"]:return"Sitemap inspection";case Te["ga-sync"]:return"GA sync";case Te["traffic-sync"]:return"Traffic sync";case Te["bing-inspect"]:return"Bing URL inspection";case Te["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Te["site-audit"]:return"Site audit";case Te["backlink-extract"]:return"Backlink extract";case Te["aeo-discover-seed"]:return"Discovery (seed phase)";case Te["aeo-discover-probe"]:return"Discovery (probe phase)";case Te["gbp-sync"]:return"Business Profile sync"}}function eD(e){return e===Ms.manual?"Manual":e===Ms.scheduled?"Scheduled":e===Ms["config-apply"]?"Config apply":e}function mp(e,n){return{id:e.id,projectId:e.projectId,projectName:n,kind:e.kind,kindLabel:n1(e.kind),status:e.status,trigger:e.trigger??"manual",location:e.location??null,createdAt:e.createdAt,startedAt:e.startedAt?Tb(e.startedAt):Tb(e.createdAt),duration:W3(e.startedAt??null,e.finishedAt??null),statusDetail:e.error?a1(e.error):tD(e),summary:nD(e),triggerLabel:eD(e.trigger)}}function a1(e){const n=Xf(e);return n.length>200?n.slice(0,200)+"…":n}function tD(e){switch(e.status){case Pt.queued:return"Waiting for execution slot.";case Pt.running:return"Provider queries in progress.";case Pt.completed:return"All queries checked.";case Pt.partial:return"Run completed with some queries skipped.";case Pt.failed:return e.error?a1(e.error):"Run failed.";case Pt.cancelled:return"Run was cancelled.";default:return""}}function nD(e){const n=n1(e.kind);switch(e.status){case Pt.queued:return`${n} queued`;case Pt.running:return`${n} in progress`;case Pt.completed:return`${n} completed`;case Pt.partial:return`${n} partially completed`;case Pt.failed:return`${n} failed`;case Pt.cancelled:return`${n} cancelled`;default:return e.status}}function aD(e,n,i,r){const l=[];let c=0;const d=new Set;if(i.length>0){const h=i.flatMap(C=>C.snapshots??[]),g=new Map;for(const C of h)if(C.query){const k=`${C.query}::${C.provider}::${C.location??""}`;g.set(k,C)}const b=new Set(h.map(C=>C.location??null));b.size===0&&b.add(null);const v=new Set(h.map(C=>C.provider)),S=new Set(n.flatMap(C=>Object.keys(C.providerRuns??{}))),j=[...new Set([...v,...S])].sort(),_=j.length>0?j:["gemini"];for(const C of n){if(C.runs.length===0)continue;d.add(C.query);const k=C.runs.at(-1),E=k?.transition??"not-cited";for(const R of _){const I=[...b].filter(Y=>g.has(`${C.query}::${R}::${Y??""}`)),H=(C.providerRuns?.[R]?.length??0)>0,K=I.length>0?I:H?[null]:[];for(const Y of K){const J=Y??"",O=g.get(`${C.query}::${R}::${J}`),M=O?.model??null,oe=M?`${R}:${M}`:null,ke=C.providerRuns?.[R],_e=oe?C.modelRuns?.[oe]:void 0,ve=$e=>$e?.filter(Pe=>(Pe.location??null)===Y),tt=I.length>0?ve(ke):ke,re=I.length>0?ve(_e):_e,me=(tt?.length?tt:null)??(re?.length?re:null),$=tt?.length?"provider":re?.length?"model":"query",W=me?me.at(-1).transition:E,fe=me?me.at(-1).visibilityTransition??(me.at(-1).visibilityState==="visible"?"visible":"not-visible"):k?.visibilityTransition??(k?.visibilityState==="visible"?"visible":"not-visible"),je=me?.at(-1)?.citationState,ie=me?.at(-1)?.visibilityState,Qe=O?W==="lost"?"lost":W==="emerging"?"emerging":O.citationState===ic.cited?"cited":"not-cited":je===ic.cited?"cited":"not-cited",F=O?.visibilityState??(ie==="visible"?"visible":ie==="pending"?"pending":"not-visible"),le=Eb(me||C.runs),ee=Ob(me||C.runs),ce=iD(C,R),ne=(me??C.runs).map($e=>({runId:$e.runId,citationState:$e.citationState,createdAt:$e.createdAt,model:ce.get($e.runId)??null,answerMentioned:$e.answerMentioned,visibilityState:$e.visibilityState,visibilityTransition:$e.visibilityTransition,mentionState:$e.mentionState,mentionTransition:$e.mentionTransition})),Ne=sD(ne),nt=$==="provider"&&Ne.length<=1?"model":$,xe=rD(ne);l.push({id:`evidence_${e}_${c++}`,query:C.query,provider:O?.provider??R,model:O?.model??null,location:O?.location??Y,citationState:Qe,answerMentioned:O?.answerMentioned,visibilityState:F,visibilityChangeLabel:Db(fe,ee,{positive:"visible",negative:"not visible",first:"first visibility"}),changeLabel:Db(W,le),answerSnippet:O?.answerText??"",citedDomains:O?.citedDomains??[],evidenceUrls:[],competitorDomains:O?.competitorOverlap??[],recommendedCompetitors:O?.recommendedCompetitors??[],matchedTerms:O?.matchedTerms??[],relatedTechnicalSignals:[],groundingSources:O?.groundingSources??[],searchQueries:O?.searchQueries??[],summary:oD(F,fe,C.query),runHistory:ne,historyScope:nt,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 iD(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 sD(e){const n=new Set;for(const i of e)i.model&&n.add(i.model);return[...n]}function rD(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 Eb(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 Ob(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 Db(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?`${Wr(r.positive)} in latest run`:`${Wr(r.positive)} for ${n} runs`;case"lost":return"Lost since last run";case"emerging":return Wr(r.first);case"not-cited":case"not-visible":return n<=1?`${Wr(r.negative)} in latest run`:`${Wr(r.negative)} across ${n} runs`;default:return e}}function Wr(e){return e.charAt(0).toUpperCase()+e.slice(1)}function oD(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 i1(e){const n=t1(e.project),i=aD(n.name,e.timeline,e.latestRunDetails,e.queries),l=[...e.runs].sort((c,d)=>d.createdAt.localeCompare(c.createdAt)).map(c=>mp(c,e.project.displayName||e.project.name));return e.overview?lD(n,e.overview,i,l):cD(n,i,l)}function lD(e,n,i,r){const l=F3(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,movementSummary:n.movementSummary,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 cD(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"},movementSummary:{gained:0,lost:0,tone:"neutral",hasPreviousRun:!1},insights:[],visibilityEvidence:n,competitors:[],recentRuns:i.slice(0,5),suggestedQueries:{rows:[],totalCandidates:0,skippedAlreadyTracked:0}}}function uD(e){const n=t1(e.project),i=[...e.runs].sort((j,_)=>_.createdAt.localeCompare(j.createdAt)),r=i.find(j=>j.kind===Te["answer-visibility"])??i[0],l=e.project.displayName||e.project.name,c=r?mp(r,l):dD(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,b=d.queryCounts.mentionedQueries,v=d.queryCounts.totalQueries,S=d.providers.length;return{project:n,mentionScore:g,mentionDelta:v>0?`${b} of ${v} queries`:"No data",mentionTone:h.tone,providerCoverage:h.providerCoverage,lastRun:c,insight:v>0?`${b} of ${v} queries mentioned across ${S} provider${S===1?"":"s"}.`:"No runs completed yet.",trend:h.trend??[],competitorPressureLabel:d.scores.competitorPressure.value}}function dD(e,n){return{id:"none",projectId:e,projectName:n,kind:Te["answer-visibility"],kindLabel:"No runs yet",status:Pt.queued,trigger:Ms.manual,createdAt:"",startedAt:"",duration:"",statusDetail:"",summary:"No runs yet",triggerLabel:""}}function fD(e,n){const i=[],r=[],l=[];for(const d of e){r.push(i1(d)),l.push(uD(d));const h=[...d.runs].sort((g,b)=>b.createdAt.localeCompare(g.createdAt));for(const g of h)i.push(mp(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?pD(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 pD(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/${i.project.id}`});const l=i.recentRuns.filter(c=>c.status===Pt.running||c.status===Pt.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 s1=q.createContext(null);s1.Provider;function fo(){return q.useContext(s1)}function xc(e){const i=fo()?.dashboard??null,r=un({...lp({client:ae}),enabled:!i,refetchInterval:wk}),l=un({...up({client:ae,query:{kind:"answer-visibility"}}),enabled:!i,staleTime:so,refetchInterval:C=>C.state.data?.some(R=>R.status==="running"||R.status==="queued")?3e3:so}),c=un({...IO({client:ae}),enabled:!i}),d=r.data??[],h=l.data??[],g=uw({queries:d.map(C=>{const k=h.filter(I=>I.projectId===C.id),E=k.filter(I=>(I.status==="completed"||I.status==="partial")&&I.kind==="answer-visibility"&&I.trigger!=="probe").sort((I,H)=>H.createdAt.localeCompare(I.createdAt)),R=E.length>0?E[0].id:"no-run";return{queryKey:["project-overview-slim",C.id,R],queryFn:async()=>{const I=await vv(C.name).catch(()=>null);return{project:C,runs:k,queries:[],competitors:[],timeline:[],latestRunDetails:[],previousRunDetails:[],gscCoverage:null,bingCoverage:null,dbInsights:null,overview:I}},enabled:!i&&r.isSuccess&&l.isSuccess,staleTime:gf}})}),b=g.every(C=>C.isSuccess),v=q.useMemo(()=>{if(i)return i;if(!r.data||!l.data||d.length>0&&!b)return null;const C=g.map(k=>k.data?{...k.data,runs:h.filter(E=>E.projectId===k.data.project.id)}:null).filter(k=>k!=null);return fD(C,c.data??null)},[i,r.data,l.data,c.data,b,g,d.length,h]),S=!i&&(r.isError||l.isError),j=!i&&!v&&!S,_=q.useCallback(async()=>{await Promise.all([r.refetch(),l.refetch(),c.refetch()])},[r.refetch,l.refetch,c.refetch]);return{dashboard:v,isLoading:j,isError:S,refetch:_}}function mD(e){const n=fo(),i=q.useMemo(()=>!n||!e?null:n.dashboard.projects.find(C=>C.project.name===e)??null,[n,e]),r=un({...UO({client:ae,path:{name:e??""}}),enabled:!!e&&!i,staleTime:gf,refetchOnWindowFocus:"always"}),l=un({...up({client:ae,query:{kind:"answer-visibility"}}),enabled:!!e,staleTime:so,refetchOnWindowFocus:"always",refetchInterval:C=>C.state.data?.some(R=>R.projectId===r.data?.id&&(R.status==="running"||R.status==="queued"))?3e3:so}),c=r.data??null,d=q.useMemo(()=>c?(l.data??[]).filter(C=>C.projectId===c.id):[],[c,l.data]),{latestRunIds:h,previousRunIds:g,latestRunIdsKey:b}=q.useMemo(()=>{const C=d.filter(H=>(H.status==="completed"||H.status==="partial")&&H.kind==="answer-visibility"&&H.trigger!=="probe").sort((H,K)=>K.createdAt.localeCompare(H.createdAt)),k=C[0]?.createdAt??null,E=k?C.filter(H=>H.createdAt===k).map(H=>H.id):[],R=C.find(H=>H.createdAt!==k)?.createdAt??null,I=R?C.filter(H=>H.createdAt===R).map(H=>H.id):[];return{latestRunIds:E,previousRunIds:I,latestRunIdsKey:[...E].sort().join(",")}},[d]),v=un({queryKey:["project-dashboard-full",c?.id??null,b||"none"],queryFn:async()=>{if(!c||!e)return null;const[C,k,E,R,I,H,K,Y,J]=await Promise.all([ZN(e).catch(()=>[]),KN(e).catch(()=>[]),QN(e).catch(()=>[]),h.length?Promise.all(h.map(O=>Fl(O).catch(()=>null))).then(O=>O.filter(M=>M!=null)):Promise.resolve([]),g.length?Promise.all(g.map(O=>Fl(O).catch(()=>null))).then(O=>O.filter(M=>M!=null)):Promise.resolve([]),ok(e).catch(()=>null),uk(e).catch(()=>null),fk(e).catch(()=>null),vv(e).catch(()=>null)]);return{project:c,runs:d,queries:C,competitors:k,timeline:E,latestRunDetails:R,previousRunDetails:I,gscCoverage:H,bingCoverage:K,dbInsights:Y,overview:J}},enabled:!!c&&!!e&&l.isSuccess,staleTime:gf,refetchOnWindowFocus:"always",refetchInterval:jk}),S=q.useMemo(()=>v.data?i1({...v.data,runs:d}):i||null,[v.data,d,i]),j=q.useCallback(async()=>{await Promise.all([r.refetch(),l.refetch(),v.refetch()])},[r.refetch,l.refetch,v.refetch]),_=!S&&(r.isLoading||l.isLoading||v.isLoading);return{commandCenter:S,project:c,isLoading:_,isError:r.isError||l.isError||v.isError,refetch:j}}const hD=["health"];async function gD(){const e=await mk("/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 hp(e,n){return un({queryKey:hD,queryFn:gD,enabled:e,refetchInterval:15e3,initialData:n})}function yD(e){return un({...T0({client:ae,path:{id:e??""}}),enabled:!!e,refetchInterval:n=>{const i=n.state.data?.status;return i==="running"||i==="queued"?3e3:!1}})}function gp(){const e=dc(),n=dw({strict:!1}),i=fw({select:g=>g.location.pathname}),r=n.runId??null,l=n.evidenceId??null;return{runId:r,evidenceId:l,openRun:g=>{e({to:i,from:en.to,search:b=>({...b,runId:g,evidenceId:void 0})})},openEvidence:g=>{e({to:i,from:en.to,search:b=>({...b,evidenceId:g,runId:void 0})})},closeDrawer:()=>{e({to:i,from:en.to,search:g=>({...g,runId:void 0,evidenceId:void 0})})}}}const bD={negative:"toast-card-negative",caution:"toast-card-caution",positive:"toast-card-positive",neutral:"toast-card-neutral"};function vD(e){if(e.cta)return`${e.cta.label}: ${e.title}`}function SD(){const e=q.useSyncExternalStore(Sk,By,By),n=dc(),{openRun:i}=gp(),r=q.useCallback(c=>{hf(c)},[]),l=q.useCallback(c=>{c.cta&&(c.cta.intent==="open-run-drawer"?i(c.cta.runId):n({to:"/runs"}),hf(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 ${bD[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":vD(c),children:c.cta.label}):null]}),f.jsx("button",{type:"button",onClick:()=>r(c.id),className:"toast-dismiss","aria-label":"Dismiss",children:f.jsx(Ps,{className:"size-3.5"})})]},c.id))})}function xD(e,n={}){const{threshold:i=80}=n,r=q.useRef(null),l=q.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 q.useEffect(()=>{const g=r.current;if(!g)return;const b=()=>{l.current.wasAtEnd=c(g)<=i};return g.addEventListener("scroll",b,{passive:!0}),()=>g.removeEventListener("scroll",b)},[i]),q.useLayoutEffect(()=>{const g=r.current;if(!g)return;const b=g.scrollHeight;b>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=b),l.current.scrollHeight=b},e),q.useEffect(()=>{const g=r.current;if(!g||typeof ResizeObserver>"u")return;const b=new ResizeObserver(()=>{const v=g.scrollHeight;v>l.current.scrollHeight&&l.current.wasAtEnd&&(g.scrollTop=v),l.current.scrollHeight=v});return b.observe(g),g.firstElementChild&&b.observe(g.firstElementChild),()=>b.disconnect()},[]),{ref:r,scrollToEnd:h,isAtEnd:d}}async function yp(e){try{return await e.json()}catch{return{}}}function wD(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath.replace(/\/$/,"")+"/api/v1":"/api/v1"}const bp=wD();function vp(e){(e===401||e===403)&&Lf()}async function Rb(e){const n=await fetch(`${bp}/projects/${encodeURIComponent(e)}/agent/transcript`,{credentials:"include"});if(!n.ok){vp(n.status);const i=await yp(n);throw new Hn(i.error?.message??`transcript fetch failed: ${n.status}`,n.status,i.error?.code)}return await n.json()}async function jD(e){const n=await fetch(`${bp}/projects/${encodeURIComponent(e)}/agent/transcript`,{method:"DELETE",credentials:"include"});if(!n.ok){vp(n.status);const i=await yp(n);throw new Hn(i.error?.message??`reset failed: ${n.status}`,n.status,i.error?.code)}}async function ND({project:e,prompt:n,provider:i,modelId:r,scope:l,signal:c,onEvent:d}){const h={prompt:n};i&&(h.provider=i),r&&(h.modelId=r),l&&(h.scope=l);const g=await fetch(`${bp}/projects/${encodeURIComponent(e)}/agent/prompt`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(h),signal:c});if(!g.ok||!g.body){vp(g.status);const _=await yp(g);throw new Hn(_.error?.message??`prompt failed: ${g.status}`,g.status,_.error?.code)}const b=g.body.getReader(),v=new TextDecoder;let S="";const j=()=>{b.cancel().catch(()=>{})};c?.addEventListener("abort",j,{once:!0});try{for(;;){const{value:_,done:C}=await b.read();if(C)break;S+=v.decode(_,{stream:!0});let k=S.indexOf(`
|
|
59
59
|
|
|
60
60
|
`);for(;k!==-1;){const E=S.slice(0,k);S=S.slice(k+2);for(const R of E.split(`
|
|
61
61
|
`)){if(!R.startsWith("data:"))continue;const I=R.slice(5).trim();if(I)try{d(JSON.parse(I))}catch{}}k=S.indexOf(`
|
|
62
62
|
|
|
63
|
-
`)}}}finally{c?.removeEventListener("abort",j);try{b.releaseLock()}catch{}}}function r1(e){return!e||e.role!=="assistant"?"":e.content.filter(n=>n.type==="text").map(n=>n.text).join("")}const ND=[{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?"}],kD=[{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"}],Vl=e=>`canonry:aero:provider:${e}`,Mb=e=>`canonry:aero:scope:${e}`;function AD({projectName:e}){const[n,i]=q.useState(!1),[r,l]=q.useState(!1),[c,d]=q.useState([]),[h,g]=q.useState(""),[b,v]=q.useState(!1),[S,j]=q.useState([]),[_,C]=q.useState(""),[k,E]=q.useState(null),[R,I]=q.useState(()=>typeof window>"u"?null:window.localStorage.getItem(Vl(e))??null),[H,K]=q.useState(()=>typeof window>"u"?"read-only":window.localStorage.getItem(Mb(e))==="all"?"all":"read-only"),Y=q.useRef(null),{ref:J}=SD([c,_,S]),O=q.useRef(null),[M,oe]=q.useState(0),ke=q.useMemo(()=>{const F=h.trimStart();if(!F.startsWith("/"))return[];if(/\s/.test(F))return[];const le=F.toLowerCase();return kD.filter(ee=>ee.command.startsWith(le)||ee.label.toLowerCase().includes(le.slice(1)))},[h]);q.useEffect(()=>{oe(F=>ke.length===0?0:Math.min(F,ke.length-1))},[ke.length]);const _e=un({...S4({client:ae,path:{name:e}}),enabled:n,staleTime:6e4}),ve=q.useMemo(()=>{const F=_e.data?.providers??[];if(R){const ee=F.find(ce=>ce.id===R&&ce.configured);if(ee)return ee}const le=_e.data?.defaultProvider;return le?F.find(ee=>ee.id===le)??null:null},[R,_e.data]);q.useEffect(()=>{if(!_e.data||!R)return;_e.data.providers.find(le=>le.id===R&&le.configured)||(I(null),window.localStorage.removeItem(Vl(e)))},[_e.data,R,e]);const tt=q.useCallback(F=>{I(F),!(typeof window>"u")&&(F?window.localStorage.setItem(Vl(e),F):window.localStorage.removeItem(Vl(e)))},[e]),re=q.useCallback(()=>{K(F=>{const le=F==="all"?"read-only":"all";return typeof window<"u"&&window.localStorage.setItem(Mb(e),le),le})},[e]);q.useEffect(()=>{if(!n)return;const F=le=>{le.key==="Escape"&&(r?l(!1):i(!1))};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[n,r]),q.useEffect(()=>{if(!n)return;let F=!1;E(null);const le=()=>{F||b||Rb(e).then(ne=>{F||d(ne.messages)}).catch(ne=>{F||E(ne instanceof Error?ne.message:"Failed to load transcript")})};le();const ce=window.setInterval(le,15e3);return()=>{F=!0,window.clearInterval(ce)}},[n,e,b]),q.useEffect(()=>()=>{Y.current?.abort()},[e]);async function me(F){const le=F.trim();if(!le||b)return;E(null),g(""),v(!0),C(""),j([]);const ee={role:"user",content:le,timestamp:Date.now()};d(ne=>[...ne,ee]);const ce=new AbortController;Y.current=ce;try{await jD({project:e,prompt:le,provider:R??void 0,scope:H,signal:ce.signal,onEvent:$});const ne=await Rb(e);d(ne.messages)}catch(ne){ne.name!=="AbortError"&&E(ne instanceof Error?ne.message:"Prompt failed")}finally{v(!1),C(""),Y.current=null}}function $(F){switch(F.type){case"message_update":C(r1(F.message));break;case"message_end":F.message.role==="assistant"&&C("");break;case"tool_execution_start":j(le=>[...le,{id:F.toolCallId,name:F.toolName,args:F.args,startedAt:Date.now()}]);break;case"tool_execution_end":j(le=>le.map(ee=>ee.id===F.toolCallId?{...ee,endedAt:Date.now(),isError:F.isError,result:F.result}:ee));break;case"error":E(F.message);break}}async function W(){Y.current?.abort();try{await wD(e),d([]),E(null)}catch(F){E(F instanceof Error?F.message:"Reset failed")}}const fe=c.length===0,je=n&&r?"pointer-events-auto fixed inset-0 z-40 flex items-stretch justify-center bg-zinc-950/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",ie=r?"pointer-events-auto flex h-full w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-zinc-800/80 bg-zinc-950/95 shadow-2xl":"pointer-events-auto w-full max-w-3xl",Qe=r?"flex-1 overflow-y-auto px-6 py-5 text-sm text-zinc-200":"max-h-[40vh] min-h-[120px] overflow-y-auto px-4 py-3 text-sm text-zinc-200";return f.jsx("div",{className:je,onClick:F=>{r&&F.target===F.currentTarget&&l(!1)},children:f.jsx("div",{className:ie,children:n?f.jsxs("div",{className:r?"flex h-full flex-col":"flex flex-col overflow-hidden rounded-2xl border border-zinc-800/80 bg-zinc-950/95 shadow-xl backdrop-blur",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-zinc-800/70 px-4 py-2.5",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx($y,{className:"h-4 w-4 text-emerald-400","aria-hidden":"true"}),f.jsx("span",{className:"text-sm font-medium text-zinc-100",children:"Aero"}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:b?"working…":e})]}),f.jsxs("div",{className:"flex items-center gap-1",children:[f.jsx(_D,{providers:_e.data?.providers??[],active:ve,override:R,onPick:tt,disabled:b}),f.jsx("button",{type:"button",onClick:wn(W),className:"rounded-md p-1.5 text-zinc-500 transition hover:bg-zinc-800/60 hover:text-zinc-200","aria-label":"Reset conversation",title:"Reset conversation",children:f.jsx(jv,{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-zinc-500 transition hover:bg-zinc-800/60 hover:text-zinc-200","aria-label":r?"Collapse":"Expand",title:r?"Collapse":"Expand",children:r?f.jsx(oA,{className:"h-3.5 w-3.5","aria-hidden":"true"}):f.jsx(aA,{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-zinc-500 transition hover:bg-zinc-800/60 hover:text-zinc-200","aria-label":"Close Aero",children:f.jsx(Ps,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),f.jsxs("div",{ref:J,className:Qe,children:[k&&f.jsx("div",{className:"mb-2 rounded-md border border-rose-700/40 bg-rose-950/40 px-3 py-2 text-xs text-rose-200",children:k}),fe&&!b&&f.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[f.jsxs("p",{className:"text-xs text-zinc-500",children:["Ask anything about ",f.jsx("span",{className:"text-zinc-300",children:e}),", or start with:"]}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:ND.map(F=>f.jsx("button",{type:"button",onClick:()=>{me(F.prompt)},className:"rounded-full border border-zinc-800 bg-zinc-900/70 px-3 py-1 text-xs text-zinc-300 transition hover:border-zinc-700 hover:bg-zinc-800/70 hover:text-zinc-100",children:F.label},F.label))})]}),OD(c,e,R,H),S.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:S.map(F=>f.jsx(o1,{trail:F},F.id))}),b&&_&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-emerald-400",children:"Aero"}),f.jsx(l1,{content:_})]}),b&&!_&&S.every(F=>F.endedAt!==void 0)&&f.jsx(BD,{})]}),f.jsx(zD,{projectName:e,activeProvider:ve,scope:H,onToggleScope:re,disabled:b}),f.jsxs("div",{className:"relative",children:[ke.length>0&&f.jsx(CD,{matches:ke,selectedIndex:M,onHover:oe,onPick:F=>{g(""),O.current?.focus(),F.action==="clear"?W():me(F.prompt)}}),f.jsxs("form",{className:"flex items-end gap-2 border-t border-zinc-800/70 bg-zinc-950/80 px-3 py-2.5",onSubmit:F=>{if(F.preventDefault(),ke.length>0){const le=ke[M];g(""),le.action==="clear"?W():me(le.prompt);return}me(h)},children:[f.jsx("textarea",{ref:O,value:h,onChange:F=>g(F.target.value),onKeyDown:F=>{if(ke.length>0){if(F.key==="ArrowDown"){F.preventDefault(),oe(le=>(le+1)%ke.length);return}if(F.key==="ArrowUp"){F.preventDefault(),oe(le=>(le-1+ke.length)%ke.length);return}if(F.key==="Tab"){F.preventDefault();const le=ke[M];g(`${le.command} `);return}if(F.key==="Escape"){F.preventDefault(),g("");return}}if(F.key==="Enter"&&!F.shiftKey)if(F.preventDefault(),ke.length>0){const le=ke[M];g(""),le.action==="clear"?W():me(le.prompt)}else me(h)},placeholder:"Ask Aero, or / for commands…",disabled:b,rows:r?3:1,className:"flex-1 resize-none bg-transparent text-sm text-zinc-100 placeholder:text-zinc-600 focus:outline-none disabled:opacity-60"}),f.jsx("button",{type:"submit",disabled:b||!h.trim(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-emerald-500 text-zinc-950 transition hover:bg-emerald-400 disabled:opacity-40","aria-label":"Send",children:f.jsx(Mk,{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-zinc-800/80 bg-zinc-950/95 px-4 py-2 text-left text-sm text-zinc-400 shadow-lg backdrop-blur transition hover:border-zinc-700 hover:bg-zinc-900/90 hover:text-zinc-200",children:[f.jsxs("span",{className:"flex items-center gap-2",children:[f.jsx($y,{className:"h-4 w-4 text-emerald-400","aria-hidden":"true"}),"Ask Aero about ",e,"…"]}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-zinc-600",children:"Enter"})]})})})}function _D({providers:e,active:n,override:i,onPick:r,disabled:l}){const[c,d]=q.useState(!1),h=q.useRef(null);if(q.useEffect(()=>{if(!c)return;const v=j=>{h.current?.contains(j.target)||d(!1)},S=j=>{j.key==="Escape"&&d(!1)};return window.addEventListener("mousedown",v),window.addEventListener("keydown",S),()=>{window.removeEventListener("mousedown",v),window.removeEventListener("keydown",S)}},[c]),e.length===0)return null;const g=n?.label.replace(/\s+\(.+\)$/,"")??"No provider",b=n?.defaultModel;return f.jsxs("div",{ref:h,className:"relative",children:[f.jsxs("button",{type:"button",onClick:()=>d(v=>!v),disabled:l,className:"flex items-center gap-1 rounded-md px-1.5 py-1 text-[11px] text-zinc-400 transition hover:bg-zinc-800/60 hover:text-zinc-200 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-zinc-200",children:g}),b&&f.jsx("span",{className:"hidden font-mono text-[10px] text-zinc-500 sm:inline",children:b}),f.jsx($k,{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-zinc-800 bg-zinc-950 shadow-xl",children:[f.jsx("div",{className:"border-b border-zinc-800/60 px-3 py-2 text-[10px] uppercase tracking-wider text-zinc-500",children:"Aero provider"}),f.jsx("ul",{className:"max-h-72 overflow-y-auto py-1",children:e.map(v=>{const S=n?.id===v.id,j=i===v.id;return f.jsx("li",{children:f.jsxs("button",{type:"button",role:"option","aria-selected":S,disabled:!v.configured,onClick:()=>{v.configured&&(r(j?null:v.id),d(!1))},className:"flex w-full items-start gap-2 px-3 py-2 text-left text-xs transition enabled:hover:bg-zinc-900 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:S?f.jsx(wv,{className:"h-3 w-3 text-emerald-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-zinc-100",children:v.label}),j&&f.jsx("span",{className:"rounded-full border border-emerald-800/60 bg-emerald-950/60 px-1.5 text-[9px] uppercase tracking-wider text-emerald-300",children:"Pinned"}),!v.configured&&f.jsx("span",{className:"rounded-full border border-zinc-800 px-1.5 text-[9px] uppercase tracking-wider text-zinc-500",children:"Key missing"})]}),f.jsx("span",{className:"mt-0.5 block font-mono text-[10px] text-zinc-500",children:v.defaultModel}),v.keySource==="env"&&f.jsx("span",{className:"mt-0.5 block text-[10px] text-zinc-600",children:"via env var"}),!v.configured&&f.jsxs("span",{className:"mt-0.5 block text-[10px] text-zinc-600",children:["Add key in config.yaml or export"," ",f.jsx("code",{className:"font-mono text-zinc-400",children:TD(v.id)})]})]})]})},v.id)})}),i&&f.jsx("button",{type:"button",onClick:()=>{r(null),d(!1)},className:"w-full border-t border-zinc-800/60 px-3 py-2 text-left text-[11px] text-zinc-400 transition hover:bg-zinc-900 hover:text-zinc-100",children:"Reset to auto-detected default"})]})]})}function zD({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-zinc-800/70 bg-zinc-950/80 px-3 pt-2",children:[f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-zinc-800 bg-zinc-900/70 px-2 py-0.5 text-[10px] text-zinc-400",children:[f.jsx("span",{className:"text-zinc-600",children:"project"}),f.jsx("span",{className:"font-medium text-zinc-200",children:e})]}),c&&f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-zinc-800 bg-zinc-900/70 px-2 py-0.5 text-[10px] text-zinc-400",children:[f.jsx("span",{className:"text-zinc-600",children:"model"}),f.jsx("span",{className:"font-medium text-zinc-200",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-amber-800/60 bg-amber-950/40 text-amber-300 hover:border-amber-700 hover:text-amber-200":"border-zinc-800 bg-zinc-900/70 text-zinc-400 hover:border-zinc-700 hover:text-zinc-200"}`,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-amber-500":"text-zinc-600",children:"scope"}),f.jsx("span",{className:"font-medium",children:d?"all tools":"read-only"})]})]})}function CD({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-zinc-800 bg-zinc-950/98 shadow-2xl",children:[f.jsx("div",{className:"border-b border-zinc-800/60 px-3 py-1.5 text-[10px] uppercase tracking-wider text-zinc-500",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-zinc-900 text-zinc-100":"text-zinc-300 hover:bg-zinc-900/60"}`,children:[f.jsx("span",{className:"font-mono text-[11px] text-emerald-400",children:l.command}),f.jsx("span",{className:"font-medium",children:l.label}),f.jsx("span",{className:"ml-auto text-[10px] text-zinc-500",children:l.hint})]})},l.command)})}),f.jsxs("div",{className:"border-t border-zinc-800/60 px-3 py-1.5 text-[10px] text-zinc-600",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 TD(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"}}function ED(e,n){const i=e.timestamp??0;return`${e.role}:${i}:${n}`}function OD(e,n,i,r){const l=[];for(let c=0;c<e.length;c++){const d=e[c],h=ED(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(DD,{text:g,projectName:n,providerOverride:i,scope:r},h));continue}if(d.role==="assistant"){const g=new Map;let b=c+1;for(;b<e.length&&e[b].role==="toolResult";){const j=e[b];g.set(j.toolCallId,j),b++}const v=MD(d,g,d.timestamp??0),S=r1(d);l.push(f.jsxs(q.Fragment,{children:[v.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:v.map(j=>f.jsx(o1,{trail:j},j.id))}),S.trim()&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-emerald-400",children:"Aero"}),f.jsx(l1,{content:S})]})]},h)),c=b-1;continue}}return l}function DD({text:e,projectName:n,providerOverride:i,scope:r}){const[l,c]=q.useState(!1),d=q.useMemo(()=>RD(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-zinc-900/60 px-3 py-2 text-zinc-200",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:"You"}),f.jsx("button",{type:"button",onClick:wn(h),className:"inline-flex items-center gap-1 rounded border border-zinc-800/70 bg-zinc-950/60 px-1.5 py-0.5 text-[10px] text-zinc-400 opacity-0 transition hover:border-zinc-700 hover:text-zinc-100 group-hover:opacity-100 focus:opacity-100","aria-label":"Copy as CLI command",title:d,children:l?f.jsxs(f.Fragment,{children:[f.jsx(wv,{className:"h-2.5 w-2.5 text-emerald-400","aria-hidden":"true"}),"Copied"]}):f.jsxs(f.Fragment,{children:[f.jsx(Gk,{className:"h-2.5 w-2.5","aria-hidden":"true"}),"Copy as CLI"]})})]}),f.jsx("div",{className:"whitespace-pre-wrap",children:e})]})}function RD(e,n,i,r){const l=["canonry","agent","ask",Bb(e),Bb(n)];return i&&l.push("--provider",i),r==="read-only"&&l.push("--scope","read-only"),l.join(" ")}function Bb(e){return`'${e.replace(/'/g,"'\\''")}'`}function MD(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 o1({trail:e}){const[n,i]=q.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-rose-800/50":r?"border-emerald-800/50":"border-zinc-800/70",g=l?"bg-rose-950/20":r?"bg-emerald-950/20":"bg-zinc-900/40";return f.jsxs("div",{className:`rounded-md border ${h} ${g} font-mono`,children:[f.jsxs("button",{type:"button",onClick:()=>i(b=>!b),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(tA,{className:"h-3 w-3 animate-spin text-emerald-400","aria-hidden":"true"}):l?f.jsx(Nv,{className:"h-3 w-3 text-rose-400","aria-hidden":"true"}):f.jsx(jA,{className:"h-3 w-3 text-zinc-500","aria-hidden":"true"})}),f.jsx("span",{className:"text-[11px] font-semibold text-zinc-100",children:e.name}),f.jsxs("span",{className:"ml-auto flex items-center gap-2 text-[10px] text-zinc-500",children:[r?f.jsx("span",{className:"text-emerald-400",children:"running…"}):f.jsxs(f.Fragment,{children:[f.jsx("span",{children:l?"failed":"ok"}),d&&f.jsx("span",{children:d})]}),f.jsx(Vf,{className:`h-3 w-3 transition-transform ${n?"rotate-90":""}`,"aria-hidden":"true"})]})]}),n&&f.jsxs("div",{className:"border-t border-zinc-800/60 px-2.5 py-2 text-[11px] text-zinc-400",children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-zinc-600",children:"Args"}),f.jsx("pre",{className:"mb-2 overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-zinc-300",children:Lb(e.args)}),!r&&e.result!==void 0&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-zinc-600",children:l?"Error":"Result"}),f.jsx("pre",{className:"overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-zinc-300",children:Lb(e.result)})]})]})]})}function Lb(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 l1({content:e}){return f.jsx("div",{className:"aero-markdown text-zinc-100",children:f.jsx(bw,{components:{h1:n=>f.jsx("h1",{...n,className:"mt-3 mb-2 text-base font-semibold text-zinc-50"}),h2:n=>f.jsx("h2",{...n,className:"mt-3 mb-2 text-sm font-semibold text-zinc-50"}),h3:n=>f.jsx("h3",{...n,className:"mt-3 mb-1.5 text-sm font-semibold text-zinc-100"}),h4:n=>f.jsx("h4",{...n,className:"mt-2 mb-1 text-xs font-semibold uppercase tracking-wide text-zinc-300"}),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-zinc-600"}),strong:n=>f.jsx("strong",{...n,className:"font-semibold text-zinc-50"}),em:n=>f.jsx("em",{...n,className:"text-zinc-200"}),code:({children:n,...i})=>f.jsx("code",{...i,className:"rounded bg-zinc-800/70 px-1 py-0.5 font-mono text-[12px] text-emerald-200",children:n}),pre:n=>f.jsx("pre",{...n,className:"mb-2 overflow-x-auto rounded-md border border-zinc-800 bg-zinc-900/70 p-3 font-mono text-xs text-zinc-200"}),a:n=>f.jsx("a",{...n,className:"text-emerald-400 underline decoration-emerald-700 hover:decoration-emerald-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-zinc-800"}),th:n=>f.jsx("th",{...n,className:"px-2 py-1 text-left font-semibold text-zinc-300"}),tr:n=>f.jsx("tr",{...n,className:"border-b border-zinc-900"}),td:n=>f.jsx("td",{...n,className:"px-2 py-1 text-zinc-200"}),blockquote:n=>f.jsx("blockquote",{...n,className:"mb-2 border-l-2 border-zinc-700 pl-3 italic text-zinc-400"}),hr:()=>f.jsx("hr",{className:"my-3 border-zinc-800"})},children:e})})}function BD(){return f.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-emerald-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-emerald-400/80"}),f.jsx("span",{className:"aero-dot aero-dot-2 h-1.5 w-1.5 rounded-full bg-emerald-400/60"}),f.jsx("span",{className:"aero-dot aero-dot-3 h-1.5 w-1.5 rounded-full bg-emerald-400/40"})]})]})}function LD(){const e=Fb(),n=/^\/projects\/([^/]+)/.exec(e.pathname),i=n?decodeURIComponent(n[1]):null,r=un({...lp({client:ae}),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(AD,{projectName:c.name},c.name):null}function As(e,n){e.invalidateQueries({predicate:i=>{const r=i.queryKey[0];return typeof r?._id=="string"&&r._id.startsWith(n)}})}function wc(e,n,i){switch(e.invalidateQueries({queryKey:cp({client:ae})}),e.invalidateQueries({queryKey:Qs({client:ae})}),n){case Te["answer-visibility"]:case Te["site-audit"]:case Te["backlink-extract"]:return;case Te["gsc-sync"]:case Te["inspect-sitemap"]:As(e,"getApiV1ProjectsByNameGoogleGsc");return;case Te["ga-sync"]:As(e,"getApiV1ProjectsByNameGa");return;case Te["traffic-sync"]:As(e,"getApiV1ProjectsByNameGa"),As(e,"getApiV1ProjectsByNameTraffic");return;case Te["bing-inspect"]:case Te["bing-inspect-sitemap"]:As(e,"getApiV1ProjectsByNameBing");return;case Te["aeo-discover-seed"]:case Te["aeo-discover-probe"]:return;case Te["gbp-sync"]:As(e,"getApiV1ProjectsByNameGbp");return;default:return n}}const qb=[{label:"GitHub",href:"https://github.com/AINYC/canonry",Icon:Kk},{label:"Docs",href:"https://github.com/AINYC/canonry/tree/main/docs",Icon:Lk},{label:"Changelog",href:"https://github.com/AINYC/canonry/releases",Icon:Pk}],Ub=e=>({label:e,state:"checking",detail:"Checking service health"}),qD={apiStatus:Ub("API"),workerStatus:Ub("Worker")};function UD(e){switch(e){case Te["answer-visibility"]:return"Visibility sweep";case Te["gsc-sync"]:return"GSC sync";case Te["inspect-sitemap"]:return"Sitemap inspection";case Te["ga-sync"]:return"GA sync";case Te["traffic-sync"]:return"Traffic sync";case Te["bing-inspect"]:return"Bing URL inspection";case Te["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Te["site-audit"]:return"Site audit";case Te["backlink-extract"]:return"Backlink extract";case Te["aeo-discover-seed"]:return"Discovery (seed phase)";case Te["aeo-discover-probe"]:return"Discovery (probe phase)";case Te["gbp-sync"]:return"Business Profile sync"}}function $D(e){return e==="completed"?"positive":e==="partial"?"caution":"negative"}function VD(e){const n=UD(e.kind);return e.status==="completed"?`${n} completed`:e.status==="partial"?`${n} completed with partial results`:e.status==="cancelled"?`${n} cancelled`:`${n} failed`}function ID(e,n){return e.error?`${n}: ${Xf(e.error)}`:e.location?`${n} · ${e.location}`:n}function GD(e,n,i){if(n)return n;const r=i.find(l=>l.id===e);return r?.displayName||r?.name||e}function HD(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 PD(e){return e.failed>0||e.cancelled>0?"negative":e.partial>0?"caution":"positive"}function ZD(){const e=Ya(),n=q.useSyncExternalStore(C4,ki,ki),i=Object.keys(n.runs).length>0||Object.keys(n.batches).length>0,r=un({...up({client:ae}),enabled:i,staleTime:so,refetchInterval:3e3}),l=un({...lp({client:ae}),enabled:i}),c=q.useRef({}),d=q.useCallback(()=>{r.refetch()},[r.refetch]);return q.useEffect(()=>{i&&d()},[i,d]),q.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]),q.useEffect(()=>{const h=r.data??[],g=l.data??[],b=Object.fromEntries(h.map(S=>[S.id,S])),v=Object.fromEntries(h.map(S=>[S.id,S.status]));for(const S of Object.values(n.runs)){const j=b[S.runId];if(!j||!O4(j.status)||(c.current[j.id]??S.lastAnnouncedStatus)===j.status)continue;const C=g.find(E=>E.id===j.projectId);if(C&&wc(e,j.kind,C.name),S.sourceAction==="run-all"){bb(j.id);continue}const k=GD(j.projectId,S.projectLabel,g);dn({title:VD(j),detail:ID(j,k),tone:$D(j.status),dedupeKey:`run:${j.id}`,dedupeMode:"replace",cta:{label:"View run",intent:"open-run-drawer",runId:j.id}}),bb(j.id)}for(const S of Object.values(n.batches)){const j=D4(S.runIds,b);j.finished&&(dn({title:"Run-all batch finished",detail:HD(j,S.skippedCount),tone:PD(j),dedupeKey:`batch:${S.batchId}`,dedupeMode:"replace",cta:{label:"View runs",intent:"go-to-runs"}}),E4(S.batchId))}c.current=v},[l.data,r.data,n,e]),null}function KD(){const e=fo(),{dashboard:n,isLoading:i,refetch:r}=xc(),d=hp(!e,e?.health).data??e?.health??qD,h=Fb(),{runId:g,evidenceId:b,closeDrawer:v}=gp(),[S,j]=q.useState(!1),[_,C]=q.useState(()=>{if(typeof window>"u")return null;try{return window.localStorage.getItem("canonry:dismissedUpdateVersion")}catch{return null}}),[k]=q.useState(()=>typeof window>"u"?null:new URLSearchParams(window.location.search).get("force-update")),E=k?{current:d.apiStatus.version??"0.0.0",latest:k,url:"https://www.npmjs.com/package/@ainyc/canonry",upgradeCommand:"npm install -g @ainyc/canonry"}:d.apiStatus.updateAvailable,R=E&&E.latest!==_,I=()=>{if(E){try{window.localStorage.setItem("canonry:dismissedUpdateVersion",E.latest)}catch{}C(E.latest)}},H=gD(g),K=H.data??null,Y=H.isLoading;q.useEffect(()=>{K&&K.status!=="running"&&K.status!=="queued"&&r()},[K?.status,r]),q.useEffect(()=>{j(!1)},[h.pathname]),q.useEffect(()=>{if(typeof window>"u"||!g&&!b)return;const re=me=>{me.key==="Escape"&&v()};return window.addEventListener("keydown",re),()=>{window.removeEventListener("keydown",re)}},[g,b,v]);const J=n??e?.dashboard??null,O=h.pathname==="/setup"&&J!==null&&J.portfolioOverview.projects.length===0,M=g&&J?G3(J,g):void 0,oe=q.useMemo(()=>h.pathname.match(/^\/projects\/([^/]+)/)?.[1]??null,[h.pathname]),ke=q.useMemo(()=>!oe||!J?null:J.projects.find(re=>re.project.id===oe)?.project.name??null,[oe,J]),{commandCenter:_e}=pD(ke),ve=q.useMemo(()=>{if(b)return P3(_e,J,b)},[b,_e,J]),tt=(()=>{const re=h.pathname;if(re==="/")return"Portfolio";if(re==="/projects")return"Projects";if(re==="/runs")return"Runs";if(re==="/settings")return"Settings";if(re==="/setup")return"Setup";if(re==="/backlinks")return"Backlinks";if(re==="/traffic"||re.startsWith("/traffic/"))return"Server traffic";if(re.startsWith("/projects/")){const $=re.split("/").filter(Boolean)[1];if($&&J){const W=J.projects.find(fe=>fe.project.id===$);if(W)return W.project.name}return"Project"}return"Not found"})();return f.jsxs("div",{className:`app-shell ${O?"app-shell-focus":""}`,children:[f.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),!O&&f.jsxs("aside",{className:"sidebar","aria-label":"Primary navigation",children:[f.jsx("div",{className:"sidebar-brand",children:f.jsx(_b,{version:d.apiStatus.version,updateAvailable:R?E:null,onDismissUpdate:I})}),f.jsxs("nav",{className:"sidebar-nav",children:[f.jsxs(rt,{to:"/",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(Jk,{className:"sidebar-icon"}),f.jsx("span",{children:"Overview"})]}),f.jsxs(rt,{to:"/projects",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(Yk,{className:"sidebar-icon"}),f.jsx("span",{children:"Projects"})]}),f.jsxs(rt,{to:"/runs",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(cA,{className:"sidebar-icon"}),f.jsx("span",{children:"Runs"})]}),f.jsxs(rt,{to:"/traffic",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(fA,{className:"sidebar-icon"}),f.jsx("span",{children:"Server traffic"})]}),f.jsxs(rt,{to:"/backlinks",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(Wk,{className:"sidebar-icon"}),f.jsx("span",{children:"Backlinks"})]}),f.jsxs(rt,{to:"/settings",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(SA,{className:"sidebar-icon"}),f.jsx("span",{children:"Settings"})]}),i?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),[1,2,3].map(re=>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+re*15}%`}})]},re))]}):J&&J.projects.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),J.projects.map(re=>{const me=re.visibilitySummary.tone;return f.jsxs(rt,{to:"/projects/$projectId",params:{projectId:re.project.id},className:"sidebar-project",activeProps:{className:"sidebar-project sidebar-project-active"},children:[f.jsx("span",{className:`sidebar-dot sidebar-dot-${me}`}),f.jsx("span",{children:re.project.displayName||re.project.name})]},re.project.id)})]}):i?null:f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Resources"}),f.jsxs(rt,{to:"/setup",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(hA,{className:"sidebar-icon"}),f.jsx("span",{children:"Setup"})]})]})]}),f.jsx("div",{className:"sidebar-footer",children:qb.map(({label:re,href:me,Icon:$})=>f.jsx("a",{className:"sidebar-footer-icon",href:me,target:"_blank",rel:"noopener noreferrer",title:re,"aria-label":re,children:f.jsx($,{className:"size-4"})},me))})]}),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(_b,{compact:!0})}),f.jsxs("nav",{className:"breadcrumb","aria-label":"Breadcrumb",children:[f.jsx(rt,{to:"/",children:"Home"}),f.jsx(Vf,{className:"breadcrumb-sep size-3"}),f.jsx("span",{className:"breadcrumb-current",children:tt})]})]}),f.jsxs("div",{className:"topbar-actions",children:[f.jsxs("div",{className:"health-pill-row",children:[f.jsxs("span",{className:`health-pill health-pill-${d.apiStatus.state}`,title:$s(d.apiStatus),children:["API ",d.apiStatus.state==="ok"?"ok":d.apiStatus.state]}),f.jsxs("span",{className:`health-pill health-pill-${d.workerStatus.state}`,title:$s(d.workerStatus),children:["Worker ",d.workerStatus.state==="ok"?"ok":d.workerStatus.state]})]}),f.jsxs(Ue,{className:"nav-toggle",variant:"secondary",size:"icon",type:"button","aria-expanded":S,"aria-controls":"mobile-nav",onClick:()=>j(re=>!re),children:[f.jsx(sA,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Open navigation"})]})]})]}),f.jsxs("div",{id:"mobile-nav",className:`mobile-nav ${S?"mobile-nav-open":""}`,children:[f.jsxs(Ue,{className:"mobile-nav-close",variant:"ghost",size:"icon",type:"button",onClick:()=>j(!1),children:[f.jsx(Ps,{className:"size-5"}),f.jsx("span",{className:"sr-only",children:"Close navigation"})]}),f.jsx(rt,{to:"/",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Overview"}),f.jsx(rt,{to:"/projects",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Projects"}),f.jsx(rt,{to:"/runs",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Runs"}),f.jsx(rt,{to:"/traffic",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Server traffic"}),f.jsx(rt,{to:"/settings",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Settings"}),J&&J.projects.length>0?f.jsxs("div",{className:"mobile-nav-section",children:[f.jsx("p",{className:"mobile-nav-section-title",children:"Projects"}),J.projects.map(re=>f.jsx(rt,{to:"/projects/$projectId",params:{projectId:re.project.id},className:"mobile-nav-link",children:re.project.name},re.project.id))]}):null]}),f.jsx("main",{id:"content",className:"page-shell",children:i&&!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(re=>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"})]},re))}),f.jsx("div",{className:"page-skeleton-grid",style:{gridTemplateColumns:"1fr 1fr"},children:[1,2].map(re=>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(me=>f.jsx("div",{className:"skeleton-text-sm w-full"},me))})]},re))})]}):f.jsx(Wb,{})}),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"})}),d.apiStatus.version&&d.apiStatus.version!=="unknown"?f.jsxs("span",{className:"footer-version",children:["v",d.apiStatus.version]}):null]}),f.jsx("div",{className:"footer-links",children:qb.map(({label:re,href:me,Icon:$})=>f.jsx("a",{href:me,target:"_blank",rel:"noopener noreferrer",title:re,"aria-label":re,className:"footer-icon",children:f.jsx($,{className:"size-3.5"})},me))})]})]}),M?f.jsxs(D3,{open:!0,title:M.summary,subtitle:`${M.projectName} · ${M.kindLabel}`,onClose:v,children:[f.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-1 text-sm",children:[f.jsx(pp,{status:M.status}),f.jsx("span",{className:"text-zinc-400",children:M.startedAt}),f.jsx("span",{className:"text-zinc-500",children:M.duration}),f.jsx("span",{className:"text-zinc-600",children:M.triggerLabel})]}),M.status==="failed"&&M.statusDetail&&f.jsx("p",{className:"text-sm text-rose-300/80 mt-2",children:M.statusDetail}),f.jsxs("div",{className:"mt-4",children:[f.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-zinc-500 mb-2",children:"Activity Log"}),Y?f.jsx("p",{className:"text-sm text-zinc-500",children:"Loading run details..."}):K?.snapshots&&K.snapshots.length>0?f.jsxs("div",{className:"space-y-2",children:[K.snapshots.map(re=>f.jsxs("div",{className:"rounded-lg border border-zinc-800/60 bg-zinc-900/30 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-zinc-200 truncate",children:re.query??"Unknown query"}),f.jsxs("div",{className:"flex items-center gap-1.5",children:[f.jsx(A3,{provider:re.provider}),f.jsx(X0,{variant:re.citationState===ic.cited?"success":"neutral",children:re.citationState})]})]}),re.model&&f.jsx("p",{className:"text-[11px] text-zinc-500 font-mono",children:re.model}),re.citedDomains.length>0&&f.jsxs("p",{className:"text-xs text-zinc-500 mt-1",children:[f.jsx("span",{className:"text-zinc-400",children:"Sources:"})," ",re.citedDomains.join(", ")]}),re.competitorOverlap.length>0&&f.jsxs("p",{className:"text-xs text-rose-400/80 mt-0.5",children:["Competitor cited: ",re.competitorOverlap.join(", ")]}),re.groundingSources&&re.groundingSources.length>0&&f.jsxs("details",{className:"mt-2",children:[f.jsxs("summary",{className:"text-xs text-zinc-500 cursor-pointer hover:text-zinc-400",children:[re.groundingSources.length," grounding source",re.groundingSources.length!==1?"s":""]}),f.jsx("ul",{className:"mt-1 space-y-0.5",children:re.groundingSources.map((me,$)=>f.jsx("li",{className:"text-xs text-zinc-500 truncate",children:f.jsx("a",{href:me.uri,target:"_blank",rel:"noopener noreferrer",className:"hover:text-zinc-300",children:me.title||me.uri})},$))})]}),re.answerText&&f.jsxs("details",{className:"mt-1",children:[f.jsx("summary",{className:"text-xs text-zinc-500 cursor-pointer hover:text-zinc-400",children:"Answer preview"}),f.jsx("p",{className:"mt-1 text-xs text-zinc-400 leading-relaxed whitespace-pre-wrap",children:re.answerText})]})]},re.id)),K.status==="running"&&f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-zinc-500",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),"Running remaining queries..."]})]}):K&&K.status==="running"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-zinc-500",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),"Waiting for first query result..."]}):K&&K.status==="queued"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-zinc-500",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-zinc-500 animate-pulse"}),"Run queued, waiting for execution slot..."]}):K&&K.error?f.jsxs("div",{className:"rounded-lg border border-rose-800/40 bg-rose-950/20 p-3",children:[f.jsx("p",{className:"text-sm font-medium text-rose-300 mb-2",children:"Run failed"}),f.jsx("pre",{className:"text-xs text-rose-300/80 whitespace-pre-wrap break-words max-h-48 overflow-y-auto font-mono leading-5",children:MO(K.error)})]}):f.jsx("p",{className:"text-sm text-zinc-500",children:"No snapshot data available."})]})]}):null,ve?f.jsx(L3,{evidence:ve.evidence,project:ve.project,onClose:v}):null,f.jsx(ZD,{}),f.jsx(vD,{}),f.jsx(LD,{})]})}class QD extends q.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-rose-950/40 p-3",children:f.jsx(Nv,{className:"size-6 text-rose-400"})}),f.jsx("h2",{className:"text-lg font-semibold text-zinc-100",children:"Something went wrong"}),f.jsx("p",{className:"text-sm text-zinc-400 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(jv,{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 jn=q.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:zn("rounded-xl border border-zinc-800 bg-zinc-950/75 shadow-[0_0_0_1px_rgba(255,255,255,0.01)]",e),...n}));jn.displayName="Card";const kf=q.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:zn("flex flex-col gap-1.5 p-5",e),...n}));kf.displayName="CardHeader";const Af=q.forwardRef(({className:e,...n},i)=>f.jsx("h3",{ref:i,className:zn("font-medium tracking-tight text-zinc-50",e),...n}));Af.displayName="CardTitle";const _f=q.forwardRef(({className:e,...n},i)=>f.jsx("p",{ref:i,className:zn("text-sm text-zinc-500",e),...n}));_f.displayName="CardDescription";const Ql=q.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:zn("p-5 pt-0",e),...n}));Ql.displayName="CardContent";function YD({points:e,tone:n}){const i=q.useId();if(e.length===0)return null;const r=42,l=132,c=5,d=Math.min(...e),g=Math.max(...e)-d||1,b=l-c*2,v=r-c*2,S=e.map((j,_)=>{const C=c+_/Math.max(e.length-1,1)*b,k=c+(1-(j-d)/g)*v;return`${C},${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:b,height:v,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:S,vectorEffect:"non-scaling-stroke"})]})}function XD({project:e}){return f.jsxs(rt,{to:"/projects/$projectId",params:{projectId:e.project.id},className:"project-row cursor-pointer",children:[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:"Cited"}),f.jsx("p",{className:`metric-inline-value ${e.visibilityTone==="caution"?"text-amber-400":""}`,children:e.visibilityScore}),f.jsx("p",{className:"metric-inline-delta",children:e.visibilityDelta}),e.providerCoverage&&f.jsx("p",{className:"text-[10px] font-medium text-amber-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.jsxs("p",{className:"metric-inline-delta",children:[e.lastRun.kindLabel," · ",C0(e.lastRun.status)]})]})}),f.jsx("div",{className:"project-row-chart",children:f.jsx(YD,{points:e.trend,tone:E0(e.lastRun.status)})}),f.jsx("span",{className:"project-row-link",children:f.jsx(Vf,{className:"h-4 w-4 text-zinc-500"})})]})}function JD(){const e=fo(),{dashboard:n,isLoading:i}=xc(),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(v=>f.jsxs("div",{className:"rounded-xl border border-zinc-800/60 bg-zinc-900/30 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"})]},v))})]});const l=r.portfolioOverview,h=hp(!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=w4(l.systemHealth,h,r.settings),{openRun:b}=gp();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-zinc-600",children:l.lastUpdatedAt})})]}),l.projects.length>0?f.jsx("div",{className:"project-list project-list-scrollable",children:l.projects.map(v=>f.jsx(XD,{project:v},v.project.id))}):f.jsxs(jn,{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(rt,{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(v=>v.href?f.jsxs(rt,{to:v.href,className:`attention-item attention-item-${v.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:v.title}),f.jsx("p",{className:"attention-detail",children:v.detail})]}),v.actionLabel&&f.jsx("span",{className:"attention-action",children:v.actionLabel})]},v.id):f.jsxs("div",{className:`attention-item attention-item-static attention-item-${v.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:v.title}),f.jsx("p",{className:"attention-detail",children:v.detail})]}),v.actionLabel&&f.jsx("span",{className:"attention-action",children:v.actionLabel})]},v.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(v=>f.jsxs("button",{className:"compact-run",type:"button",onClick:()=>b(v.id),children:[f.jsxs("div",{children:[f.jsx("p",{className:"compact-run-title",children:v.projectName}),f.jsx("p",{className:"compact-run-detail",children:v.summary})]}),f.jsx(pp,{status:v.status})]},v.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(v=>f.jsxs(jn,{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:v.label}),f.jsx("h3",{children:v.detail})]}),f.jsx(Ln,{tone:v.tone,title:v.id==="api"?$s(h.apiStatus):v.id==="worker"?$s(h.workerStatus):void 0,children:v.label})]}),f.jsx("p",{className:"supporting-copy",children:v.meta})]},v.id))})]})]})}const Sp=Symbol.for("yaml.alias"),zf=Symbol.for("yaml.document"),Za=Symbol.for("yaml.map"),c1=Symbol.for("yaml.pair"),Pn=Symbol.for("yaml.scalar"),Ys=Symbol.for("yaml.seq"),An=Symbol.for("yaml.node.type"),Ti=e=>!!e&&typeof e=="object"&&e[An]===Sp,jc=e=>!!e&&typeof e=="object"&&e[An]===zf,po=e=>!!e&&typeof e=="object"&&e[An]===Za,vt=e=>!!e&&typeof e=="object"&&e[An]===c1,at=e=>!!e&&typeof e=="object"&&e[An]===Pn,mo=e=>!!e&&typeof e=="object"&&e[An]===Ys;function yt(e){if(e&&typeof e=="object")switch(e[An]){case Za:case Ys:return!0}return!1}function bt(e){if(e&&typeof e=="object")switch(e[An]){case Sp:case Za:case Pn:case Ys:return!0}return!1}const u1=e=>(at(e)||yt(e))&&!!e.anchor,xi=Symbol("break visit"),FD=Symbol("skip children"),ao=Symbol("remove node");function Xs(e,n){const i=WD(n);jc(e)?Es(null,e.contents,i,Object.freeze([e]))===ao&&(e.contents=null):Es(null,e,i,Object.freeze([]))}Xs.BREAK=xi;Xs.SKIP=FD;Xs.REMOVE=ao;function Es(e,n,i,r){const l=e5(e,n,i,r);if(bt(l)||vt(l))return t5(e,r,l),Es(e,l,i,r);if(typeof l!="symbol"){if(yt(n)){r=Object.freeze(r.concat(n));for(let c=0;c<n.items.length;++c){const d=Es(c,n.items[c],i,r);if(typeof d=="number")c=d-1;else{if(d===xi)return xi;d===ao&&(n.items.splice(c,1),c-=1)}}}else if(vt(n)){r=Object.freeze(r.concat(n));const c=Es("key",n.key,i,r);if(c===xi)return xi;c===ao&&(n.key=null);const d=Es("value",n.value,i,r);if(d===xi)return xi;d===ao&&(n.value=null)}}return l}function WD(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 e5(e,n,i,r){if(typeof i=="function")return i(e,n,r);if(po(n))return i.Map?.(e,n,r);if(mo(n))return i.Seq?.(e,n,r);if(vt(n))return i.Pair?.(e,n,r);if(at(n))return i.Scalar?.(e,n,r);if(Ti(n))return i.Alias?.(e,n,r)}function t5(e,n,i){const r=n[n.length-1];if(yt(r))r.items[e]=i;else if(vt(r))e==="key"?r.key=i:r.value=i;else if(jc(r))r.contents=i;else{const l=Ti(r)?"alias":"scalar";throw new Error(`Cannot replace node with ${l} parent`)}}const n5={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},a5=e=>e.replace(/[!,[\]{}]/g,n=>n5[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+a5(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&&bt(n.contents)){const c={};Xs(n.contents,(d,h)=>{bt(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 d1(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 f1(e){const n=new Set;return Xs(e,{Value(i,r){r.anchor&&n.add(r.anchor)}}),n}function p1(e,n){for(let i=1;;++i){const r=`${e}${i}`;if(!n.has(r))return r}}function
|
|
63
|
+
`)}}}finally{c?.removeEventListener("abort",j);try{b.releaseLock()}catch{}}}function r1(e){return!e||e.role!=="assistant"?"":e.content.filter(n=>n.type==="text").map(n=>n.text).join("")}const kD=[{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?"}],AD=[{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"}],Vl=e=>`canonry:aero:provider:${e}`,Mb=e=>`canonry:aero:scope:${e}`;function _D({projectName:e}){const[n,i]=q.useState(!1),[r,l]=q.useState(!1),[c,d]=q.useState([]),[h,g]=q.useState(""),[b,v]=q.useState(!1),[S,j]=q.useState([]),[_,C]=q.useState(""),[k,E]=q.useState(null),[R,I]=q.useState(()=>typeof window>"u"?null:window.localStorage.getItem(Vl(e))??null),[H,K]=q.useState(()=>typeof window>"u"?"read-only":window.localStorage.getItem(Mb(e))==="all"?"all":"read-only"),Y=q.useRef(null),{ref:J}=xD([c,_,S]),O=q.useRef(null),[M,oe]=q.useState(0),ke=q.useMemo(()=>{const F=h.trimStart();if(!F.startsWith("/"))return[];if(/\s/.test(F))return[];const le=F.toLowerCase();return AD.filter(ee=>ee.command.startsWith(le)||ee.label.toLowerCase().includes(le.slice(1)))},[h]);q.useEffect(()=>{oe(F=>ke.length===0?0:Math.min(F,ke.length-1))},[ke.length]);const _e=un({...x4({client:ae,path:{name:e}}),enabled:n,staleTime:6e4}),ve=q.useMemo(()=>{const F=_e.data?.providers??[];if(R){const ee=F.find(ce=>ce.id===R&&ce.configured);if(ee)return ee}const le=_e.data?.defaultProvider;return le?F.find(ee=>ee.id===le)??null:null},[R,_e.data]);q.useEffect(()=>{if(!_e.data||!R)return;_e.data.providers.find(le=>le.id===R&&le.configured)||(I(null),window.localStorage.removeItem(Vl(e)))},[_e.data,R,e]);const tt=q.useCallback(F=>{I(F),!(typeof window>"u")&&(F?window.localStorage.setItem(Vl(e),F):window.localStorage.removeItem(Vl(e)))},[e]),re=q.useCallback(()=>{K(F=>{const le=F==="all"?"read-only":"all";return typeof window<"u"&&window.localStorage.setItem(Mb(e),le),le})},[e]);q.useEffect(()=>{if(!n)return;const F=le=>{le.key==="Escape"&&(r?l(!1):i(!1))};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[n,r]),q.useEffect(()=>{if(!n)return;let F=!1;E(null);const le=()=>{F||b||Rb(e).then(ne=>{F||d(ne.messages)}).catch(ne=>{F||E(ne instanceof Error?ne.message:"Failed to load transcript")})};le();const ce=window.setInterval(le,15e3);return()=>{F=!0,window.clearInterval(ce)}},[n,e,b]),q.useEffect(()=>()=>{Y.current?.abort()},[e]);async function me(F){const le=F.trim();if(!le||b)return;E(null),g(""),v(!0),C(""),j([]);const ee={role:"user",content:le,timestamp:Date.now()};d(ne=>[...ne,ee]);const ce=new AbortController;Y.current=ce;try{await ND({project:e,prompt:le,provider:R??void 0,scope:H,signal:ce.signal,onEvent:$});const ne=await Rb(e);d(ne.messages)}catch(ne){ne.name!=="AbortError"&&E(ne instanceof Error?ne.message:"Prompt failed")}finally{v(!1),C(""),Y.current=null}}function $(F){switch(F.type){case"message_update":C(r1(F.message));break;case"message_end":F.message.role==="assistant"&&C("");break;case"tool_execution_start":j(le=>[...le,{id:F.toolCallId,name:F.toolName,args:F.args,startedAt:Date.now()}]);break;case"tool_execution_end":j(le=>le.map(ee=>ee.id===F.toolCallId?{...ee,endedAt:Date.now(),isError:F.isError,result:F.result}:ee));break;case"error":E(F.message);break}}async function W(){Y.current?.abort();try{await jD(e),d([]),E(null)}catch(F){E(F instanceof Error?F.message:"Reset failed")}}const fe=c.length===0,je=n&&r?"pointer-events-auto fixed inset-0 z-40 flex items-stretch justify-center bg-zinc-950/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",ie=r?"pointer-events-auto flex h-full w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-zinc-800/80 bg-zinc-950/95 shadow-2xl":"pointer-events-auto w-full max-w-3xl",Qe=r?"flex-1 overflow-y-auto px-6 py-5 text-sm text-zinc-200":"max-h-[40vh] min-h-[120px] overflow-y-auto px-4 py-3 text-sm text-zinc-200";return f.jsx("div",{className:je,onClick:F=>{r&&F.target===F.currentTarget&&l(!1)},children:f.jsx("div",{className:ie,children:n?f.jsxs("div",{className:r?"flex h-full flex-col":"flex flex-col overflow-hidden rounded-2xl border border-zinc-800/80 bg-zinc-950/95 shadow-xl backdrop-blur",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-zinc-800/70 px-4 py-2.5",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx($y,{className:"h-4 w-4 text-emerald-400","aria-hidden":"true"}),f.jsx("span",{className:"text-sm font-medium text-zinc-100",children:"Aero"}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:b?"working…":e})]}),f.jsxs("div",{className:"flex items-center gap-1",children:[f.jsx(zD,{providers:_e.data?.providers??[],active:ve,override:R,onPick:tt,disabled:b}),f.jsx("button",{type:"button",onClick:wn(W),className:"rounded-md p-1.5 text-zinc-500 transition hover:bg-zinc-800/60 hover:text-zinc-200","aria-label":"Reset conversation",title:"Reset conversation",children:f.jsx(jv,{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-zinc-500 transition hover:bg-zinc-800/60 hover:text-zinc-200","aria-label":r?"Collapse":"Expand",title:r?"Collapse":"Expand",children:r?f.jsx(oA,{className:"h-3.5 w-3.5","aria-hidden":"true"}):f.jsx(aA,{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-zinc-500 transition hover:bg-zinc-800/60 hover:text-zinc-200","aria-label":"Close Aero",children:f.jsx(Ps,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),f.jsxs("div",{ref:J,className:Qe,children:[k&&f.jsx("div",{className:"mb-2 rounded-md border border-rose-700/40 bg-rose-950/40 px-3 py-2 text-xs text-rose-200",children:k}),fe&&!b&&f.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[f.jsxs("p",{className:"text-xs text-zinc-500",children:["Ask anything about ",f.jsx("span",{className:"text-zinc-300",children:e}),", or start with:"]}),f.jsx("div",{className:"flex flex-wrap gap-1.5",children:kD.map(F=>f.jsx("button",{type:"button",onClick:()=>{me(F.prompt)},className:"rounded-full border border-zinc-800 bg-zinc-900/70 px-3 py-1 text-xs text-zinc-300 transition hover:border-zinc-700 hover:bg-zinc-800/70 hover:text-zinc-100",children:F.label},F.label))})]}),DD(c,e,R,H),S.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:S.map(F=>f.jsx(o1,{trail:F},F.id))}),b&&_&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-emerald-400",children:"Aero"}),f.jsx(l1,{content:_})]}),b&&!_&&S.every(F=>F.endedAt!==void 0)&&f.jsx(LD,{})]}),f.jsx(CD,{projectName:e,activeProvider:ve,scope:H,onToggleScope:re,disabled:b}),f.jsxs("div",{className:"relative",children:[ke.length>0&&f.jsx(TD,{matches:ke,selectedIndex:M,onHover:oe,onPick:F=>{g(""),O.current?.focus(),F.action==="clear"?W():me(F.prompt)}}),f.jsxs("form",{className:"flex items-end gap-2 border-t border-zinc-800/70 bg-zinc-950/80 px-3 py-2.5",onSubmit:F=>{if(F.preventDefault(),ke.length>0){const le=ke[M];g(""),le.action==="clear"?W():me(le.prompt);return}me(h)},children:[f.jsx("textarea",{ref:O,value:h,onChange:F=>g(F.target.value),onKeyDown:F=>{if(ke.length>0){if(F.key==="ArrowDown"){F.preventDefault(),oe(le=>(le+1)%ke.length);return}if(F.key==="ArrowUp"){F.preventDefault(),oe(le=>(le-1+ke.length)%ke.length);return}if(F.key==="Tab"){F.preventDefault();const le=ke[M];g(`${le.command} `);return}if(F.key==="Escape"){F.preventDefault(),g("");return}}if(F.key==="Enter"&&!F.shiftKey)if(F.preventDefault(),ke.length>0){const le=ke[M];g(""),le.action==="clear"?W():me(le.prompt)}else me(h)},placeholder:"Ask Aero, or / for commands…",disabled:b,rows:r?3:1,className:"flex-1 resize-none bg-transparent text-sm text-zinc-100 placeholder:text-zinc-600 focus:outline-none disabled:opacity-60"}),f.jsx("button",{type:"submit",disabled:b||!h.trim(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md bg-emerald-500 text-zinc-950 transition hover:bg-emerald-400 disabled:opacity-40","aria-label":"Send",children:f.jsx(Mk,{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-zinc-800/80 bg-zinc-950/95 px-4 py-2 text-left text-sm text-zinc-400 shadow-lg backdrop-blur transition hover:border-zinc-700 hover:bg-zinc-900/90 hover:text-zinc-200",children:[f.jsxs("span",{className:"flex items-center gap-2",children:[f.jsx($y,{className:"h-4 w-4 text-emerald-400","aria-hidden":"true"}),"Ask Aero about ",e,"…"]}),f.jsx("span",{className:"text-[10px] uppercase tracking-wider text-zinc-600",children:"Enter"})]})})})}function zD({providers:e,active:n,override:i,onPick:r,disabled:l}){const[c,d]=q.useState(!1),h=q.useRef(null);if(q.useEffect(()=>{if(!c)return;const v=j=>{h.current?.contains(j.target)||d(!1)},S=j=>{j.key==="Escape"&&d(!1)};return window.addEventListener("mousedown",v),window.addEventListener("keydown",S),()=>{window.removeEventListener("mousedown",v),window.removeEventListener("keydown",S)}},[c]),e.length===0)return null;const g=n?.label.replace(/\s+\(.+\)$/,"")??"No provider",b=n?.defaultModel;return f.jsxs("div",{ref:h,className:"relative",children:[f.jsxs("button",{type:"button",onClick:()=>d(v=>!v),disabled:l,className:"flex items-center gap-1 rounded-md px-1.5 py-1 text-[11px] text-zinc-400 transition hover:bg-zinc-800/60 hover:text-zinc-200 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-zinc-200",children:g}),b&&f.jsx("span",{className:"hidden font-mono text-[10px] text-zinc-500 sm:inline",children:b}),f.jsx($k,{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-zinc-800 bg-zinc-950 shadow-xl",children:[f.jsx("div",{className:"border-b border-zinc-800/60 px-3 py-2 text-[10px] uppercase tracking-wider text-zinc-500",children:"Aero provider"}),f.jsx("ul",{className:"max-h-72 overflow-y-auto py-1",children:e.map(v=>{const S=n?.id===v.id,j=i===v.id;return f.jsx("li",{children:f.jsxs("button",{type:"button",role:"option","aria-selected":S,disabled:!v.configured,onClick:()=>{v.configured&&(r(j?null:v.id),d(!1))},className:"flex w-full items-start gap-2 px-3 py-2 text-left text-xs transition enabled:hover:bg-zinc-900 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:S?f.jsx(wv,{className:"h-3 w-3 text-emerald-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-zinc-100",children:v.label}),j&&f.jsx("span",{className:"rounded-full border border-emerald-800/60 bg-emerald-950/60 px-1.5 text-[9px] uppercase tracking-wider text-emerald-300",children:"Pinned"}),!v.configured&&f.jsx("span",{className:"rounded-full border border-zinc-800 px-1.5 text-[9px] uppercase tracking-wider text-zinc-500",children:"Key missing"})]}),f.jsx("span",{className:"mt-0.5 block font-mono text-[10px] text-zinc-500",children:v.defaultModel}),v.keySource==="env"&&f.jsx("span",{className:"mt-0.5 block text-[10px] text-zinc-600",children:"via env var"}),!v.configured&&f.jsxs("span",{className:"mt-0.5 block text-[10px] text-zinc-600",children:["Add key in config.yaml or export"," ",f.jsx("code",{className:"font-mono text-zinc-400",children:ED(v.id)})]})]})]})},v.id)})}),i&&f.jsx("button",{type:"button",onClick:()=>{r(null),d(!1)},className:"w-full border-t border-zinc-800/60 px-3 py-2 text-left text-[11px] text-zinc-400 transition hover:bg-zinc-900 hover:text-zinc-100",children:"Reset to auto-detected default"})]})]})}function CD({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-zinc-800/70 bg-zinc-950/80 px-3 pt-2",children:[f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-zinc-800 bg-zinc-900/70 px-2 py-0.5 text-[10px] text-zinc-400",children:[f.jsx("span",{className:"text-zinc-600",children:"project"}),f.jsx("span",{className:"font-medium text-zinc-200",children:e})]}),c&&f.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-zinc-800 bg-zinc-900/70 px-2 py-0.5 text-[10px] text-zinc-400",children:[f.jsx("span",{className:"text-zinc-600",children:"model"}),f.jsx("span",{className:"font-medium text-zinc-200",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-amber-800/60 bg-amber-950/40 text-amber-300 hover:border-amber-700 hover:text-amber-200":"border-zinc-800 bg-zinc-900/70 text-zinc-400 hover:border-zinc-700 hover:text-zinc-200"}`,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-amber-500":"text-zinc-600",children:"scope"}),f.jsx("span",{className:"font-medium",children:d?"all tools":"read-only"})]})]})}function TD({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-zinc-800 bg-zinc-950/98 shadow-2xl",children:[f.jsx("div",{className:"border-b border-zinc-800/60 px-3 py-1.5 text-[10px] uppercase tracking-wider text-zinc-500",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-zinc-900 text-zinc-100":"text-zinc-300 hover:bg-zinc-900/60"}`,children:[f.jsx("span",{className:"font-mono text-[11px] text-emerald-400",children:l.command}),f.jsx("span",{className:"font-medium",children:l.label}),f.jsx("span",{className:"ml-auto text-[10px] text-zinc-500",children:l.hint})]})},l.command)})}),f.jsxs("div",{className:"border-t border-zinc-800/60 px-3 py-1.5 text-[10px] text-zinc-600",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 ED(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"}}function OD(e,n){const i=e.timestamp??0;return`${e.role}:${i}:${n}`}function DD(e,n,i,r){const l=[];for(let c=0;c<e.length;c++){const d=e[c],h=OD(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(RD,{text:g,projectName:n,providerOverride:i,scope:r},h));continue}if(d.role==="assistant"){const g=new Map;let b=c+1;for(;b<e.length&&e[b].role==="toolResult";){const j=e[b];g.set(j.toolCallId,j),b++}const v=BD(d,g,d.timestamp??0),S=r1(d);l.push(f.jsxs(q.Fragment,{children:[v.length>0&&f.jsx("div",{className:"mt-3 space-y-1.5",children:v.map(j=>f.jsx(o1,{trail:j},j.id))}),S.trim()&&f.jsxs("div",{className:"mt-3",children:[f.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wider text-emerald-400",children:"Aero"}),f.jsx(l1,{content:S})]})]},h)),c=b-1;continue}}return l}function RD({text:e,projectName:n,providerOverride:i,scope:r}){const[l,c]=q.useState(!1),d=q.useMemo(()=>MD(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-zinc-900/60 px-3 py-2 text-zinc-200",children:[f.jsxs("div",{className:"flex items-center justify-between gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:"You"}),f.jsx("button",{type:"button",onClick:wn(h),className:"inline-flex items-center gap-1 rounded border border-zinc-800/70 bg-zinc-950/60 px-1.5 py-0.5 text-[10px] text-zinc-400 opacity-0 transition hover:border-zinc-700 hover:text-zinc-100 group-hover:opacity-100 focus:opacity-100","aria-label":"Copy as CLI command",title:d,children:l?f.jsxs(f.Fragment,{children:[f.jsx(wv,{className:"h-2.5 w-2.5 text-emerald-400","aria-hidden":"true"}),"Copied"]}):f.jsxs(f.Fragment,{children:[f.jsx(Gk,{className:"h-2.5 w-2.5","aria-hidden":"true"}),"Copy as CLI"]})})]}),f.jsx("div",{className:"whitespace-pre-wrap",children:e})]})}function MD(e,n,i,r){const l=["canonry","agent","ask",Bb(e),Bb(n)];return i&&l.push("--provider",i),r==="read-only"&&l.push("--scope","read-only"),l.join(" ")}function Bb(e){return`'${e.replace(/'/g,"'\\''")}'`}function BD(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 o1({trail:e}){const[n,i]=q.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-rose-800/50":r?"border-emerald-800/50":"border-zinc-800/70",g=l?"bg-rose-950/20":r?"bg-emerald-950/20":"bg-zinc-900/40";return f.jsxs("div",{className:`rounded-md border ${h} ${g} font-mono`,children:[f.jsxs("button",{type:"button",onClick:()=>i(b=>!b),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(tA,{className:"h-3 w-3 animate-spin text-emerald-400","aria-hidden":"true"}):l?f.jsx(Nv,{className:"h-3 w-3 text-rose-400","aria-hidden":"true"}):f.jsx(jA,{className:"h-3 w-3 text-zinc-500","aria-hidden":"true"})}),f.jsx("span",{className:"text-[11px] font-semibold text-zinc-100",children:e.name}),f.jsxs("span",{className:"ml-auto flex items-center gap-2 text-[10px] text-zinc-500",children:[r?f.jsx("span",{className:"text-emerald-400",children:"running…"}):f.jsxs(f.Fragment,{children:[f.jsx("span",{children:l?"failed":"ok"}),d&&f.jsx("span",{children:d})]}),f.jsx(Vf,{className:`h-3 w-3 transition-transform ${n?"rotate-90":""}`,"aria-hidden":"true"})]})]}),n&&f.jsxs("div",{className:"border-t border-zinc-800/60 px-2.5 py-2 text-[11px] text-zinc-400",children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-zinc-600",children:"Args"}),f.jsx("pre",{className:"mb-2 overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-zinc-300",children:Lb(e.args)}),!r&&e.result!==void 0&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"mb-1 text-[9px] uppercase tracking-wider text-zinc-600",children:l?"Error":"Result"}),f.jsx("pre",{className:"overflow-x-auto whitespace-pre-wrap break-all text-[10px] text-zinc-300",children:Lb(e.result)})]})]})]})}function Lb(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 l1({content:e}){return f.jsx("div",{className:"aero-markdown text-zinc-100",children:f.jsx(bw,{components:{h1:n=>f.jsx("h1",{...n,className:"mt-3 mb-2 text-base font-semibold text-zinc-50"}),h2:n=>f.jsx("h2",{...n,className:"mt-3 mb-2 text-sm font-semibold text-zinc-50"}),h3:n=>f.jsx("h3",{...n,className:"mt-3 mb-1.5 text-sm font-semibold text-zinc-100"}),h4:n=>f.jsx("h4",{...n,className:"mt-2 mb-1 text-xs font-semibold uppercase tracking-wide text-zinc-300"}),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-zinc-600"}),strong:n=>f.jsx("strong",{...n,className:"font-semibold text-zinc-50"}),em:n=>f.jsx("em",{...n,className:"text-zinc-200"}),code:({children:n,...i})=>f.jsx("code",{...i,className:"rounded bg-zinc-800/70 px-1 py-0.5 font-mono text-[12px] text-emerald-200",children:n}),pre:n=>f.jsx("pre",{...n,className:"mb-2 overflow-x-auto rounded-md border border-zinc-800 bg-zinc-900/70 p-3 font-mono text-xs text-zinc-200"}),a:n=>f.jsx("a",{...n,className:"text-emerald-400 underline decoration-emerald-700 hover:decoration-emerald-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-zinc-800"}),th:n=>f.jsx("th",{...n,className:"px-2 py-1 text-left font-semibold text-zinc-300"}),tr:n=>f.jsx("tr",{...n,className:"border-b border-zinc-900"}),td:n=>f.jsx("td",{...n,className:"px-2 py-1 text-zinc-200"}),blockquote:n=>f.jsx("blockquote",{...n,className:"mb-2 border-l-2 border-zinc-700 pl-3 italic text-zinc-400"}),hr:()=>f.jsx("hr",{className:"my-3 border-zinc-800"})},children:e})})}function LD(){return f.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wider text-emerald-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-emerald-400/80"}),f.jsx("span",{className:"aero-dot aero-dot-2 h-1.5 w-1.5 rounded-full bg-emerald-400/60"}),f.jsx("span",{className:"aero-dot aero-dot-3 h-1.5 w-1.5 rounded-full bg-emerald-400/40"})]})]})}function qD(){const e=Fb(),n=/^\/projects\/([^/]+)/.exec(e.pathname),i=n?decodeURIComponent(n[1]):null,r=un({...lp({client:ae}),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(_D,{projectName:c.name},c.name):null}function As(e,n){e.invalidateQueries({predicate:i=>{const r=i.queryKey[0];return typeof r?._id=="string"&&r._id.startsWith(n)}})}function wc(e,n,i){switch(e.invalidateQueries({queryKey:cp({client:ae})}),e.invalidateQueries({queryKey:Qs({client:ae})}),n){case Te["answer-visibility"]:case Te["site-audit"]:case Te["backlink-extract"]:return;case Te["gsc-sync"]:case Te["inspect-sitemap"]:As(e,"getApiV1ProjectsByNameGoogleGsc");return;case Te["ga-sync"]:As(e,"getApiV1ProjectsByNameGa");return;case Te["traffic-sync"]:As(e,"getApiV1ProjectsByNameGa"),As(e,"getApiV1ProjectsByNameTraffic");return;case Te["bing-inspect"]:case Te["bing-inspect-sitemap"]:As(e,"getApiV1ProjectsByNameBing");return;case Te["aeo-discover-seed"]:case Te["aeo-discover-probe"]:return;case Te["gbp-sync"]:As(e,"getApiV1ProjectsByNameGbp");return;default:return n}}const qb=[{label:"GitHub",href:"https://github.com/AINYC/canonry",Icon:Kk},{label:"Docs",href:"https://github.com/AINYC/canonry/tree/main/docs",Icon:Lk},{label:"Changelog",href:"https://github.com/AINYC/canonry/releases",Icon:Pk}],Ub=e=>({label:e,state:"checking",detail:"Checking service health"}),UD={apiStatus:Ub("API"),workerStatus:Ub("Worker")};function $D(e){switch(e){case Te["answer-visibility"]:return"Visibility sweep";case Te["gsc-sync"]:return"GSC sync";case Te["inspect-sitemap"]:return"Sitemap inspection";case Te["ga-sync"]:return"GA sync";case Te["traffic-sync"]:return"Traffic sync";case Te["bing-inspect"]:return"Bing URL inspection";case Te["bing-inspect-sitemap"]:return"Bing sitemap inspection";case Te["site-audit"]:return"Site audit";case Te["backlink-extract"]:return"Backlink extract";case Te["aeo-discover-seed"]:return"Discovery (seed phase)";case Te["aeo-discover-probe"]:return"Discovery (probe phase)";case Te["gbp-sync"]:return"Business Profile sync"}}function VD(e){return e==="completed"?"positive":e==="partial"?"caution":"negative"}function ID(e){const n=$D(e.kind);return e.status==="completed"?`${n} completed`:e.status==="partial"?`${n} completed with partial results`:e.status==="cancelled"?`${n} cancelled`:`${n} failed`}function GD(e,n){return e.error?`${n}: ${Xf(e.error)}`:e.location?`${n} · ${e.location}`:n}function HD(e,n,i){if(n)return n;const r=i.find(l=>l.id===e);return r?.displayName||r?.name||e}function PD(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 ZD(e){return e.failed>0||e.cancelled>0?"negative":e.partial>0?"caution":"positive"}function KD(){const e=Ya(),n=q.useSyncExternalStore(T4,ki,ki),i=Object.keys(n.runs).length>0||Object.keys(n.batches).length>0,r=un({...up({client:ae}),enabled:i,staleTime:so,refetchInterval:3e3}),l=un({...lp({client:ae}),enabled:i}),c=q.useRef({}),d=q.useCallback(()=>{r.refetch()},[r.refetch]);return q.useEffect(()=>{i&&d()},[i,d]),q.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]),q.useEffect(()=>{const h=r.data??[],g=l.data??[],b=Object.fromEntries(h.map(S=>[S.id,S])),v=Object.fromEntries(h.map(S=>[S.id,S.status]));for(const S of Object.values(n.runs)){const j=b[S.runId];if(!j||!D4(j.status)||(c.current[j.id]??S.lastAnnouncedStatus)===j.status)continue;const C=g.find(E=>E.id===j.projectId);if(C&&wc(e,j.kind,C.name),S.sourceAction==="run-all"){bb(j.id);continue}const k=HD(j.projectId,S.projectLabel,g);dn({title:ID(j),detail:GD(j,k),tone:VD(j.status),dedupeKey:`run:${j.id}`,dedupeMode:"replace",cta:{label:"View run",intent:"open-run-drawer",runId:j.id}}),bb(j.id)}for(const S of Object.values(n.batches)){const j=R4(S.runIds,b);j.finished&&(dn({title:"Run-all batch finished",detail:PD(j,S.skippedCount),tone:ZD(j),dedupeKey:`batch:${S.batchId}`,dedupeMode:"replace",cta:{label:"View runs",intent:"go-to-runs"}}),O4(S.batchId))}c.current=v},[l.data,r.data,n,e]),null}function QD(){const e=fo(),{dashboard:n,isLoading:i,refetch:r}=xc(),d=hp(!e,e?.health).data??e?.health??UD,h=Fb(),{runId:g,evidenceId:b,closeDrawer:v}=gp(),[S,j]=q.useState(!1),[_,C]=q.useState(()=>{if(typeof window>"u")return null;try{return window.localStorage.getItem("canonry:dismissedUpdateVersion")}catch{return null}}),[k]=q.useState(()=>typeof window>"u"?null:new URLSearchParams(window.location.search).get("force-update")),E=k?{current:d.apiStatus.version??"0.0.0",latest:k,url:"https://www.npmjs.com/package/@ainyc/canonry",upgradeCommand:"npm install -g @ainyc/canonry"}:d.apiStatus.updateAvailable,R=E&&E.latest!==_,I=()=>{if(E){try{window.localStorage.setItem("canonry:dismissedUpdateVersion",E.latest)}catch{}C(E.latest)}},H=yD(g),K=H.data??null,Y=H.isLoading;q.useEffect(()=>{K&&K.status!=="running"&&K.status!=="queued"&&r()},[K?.status,r]),q.useEffect(()=>{j(!1)},[h.pathname]),q.useEffect(()=>{if(typeof window>"u"||!g&&!b)return;const re=me=>{me.key==="Escape"&&v()};return window.addEventListener("keydown",re),()=>{window.removeEventListener("keydown",re)}},[g,b,v]);const J=n??e?.dashboard??null,O=h.pathname==="/setup"&&J!==null&&J.portfolioOverview.projects.length===0,M=g&&J?H3(J,g):void 0,oe=q.useMemo(()=>h.pathname.match(/^\/projects\/([^/]+)/)?.[1]??null,[h.pathname]),ke=q.useMemo(()=>!oe||!J?null:J.projects.find(re=>re.project.id===oe)?.project.name??null,[oe,J]),{commandCenter:_e}=mD(ke),ve=q.useMemo(()=>{if(b)return Z3(_e,J,b)},[b,_e,J]),tt=(()=>{const re=h.pathname;if(re==="/")return"Portfolio";if(re==="/projects")return"Projects";if(re==="/runs")return"Runs";if(re==="/settings")return"Settings";if(re==="/setup")return"Setup";if(re==="/backlinks")return"Backlinks";if(re==="/traffic"||re.startsWith("/traffic/"))return"Server traffic";if(re.startsWith("/projects/")){const $=re.split("/").filter(Boolean)[1];if($&&J){const W=J.projects.find(fe=>fe.project.id===$);if(W)return W.project.name}return"Project"}return"Not found"})();return f.jsxs("div",{className:`app-shell ${O?"app-shell-focus":""}`,children:[f.jsx("a",{className:"skip-link",href:"#content",children:"Skip to content"}),!O&&f.jsxs("aside",{className:"sidebar","aria-label":"Primary navigation",children:[f.jsx("div",{className:"sidebar-brand",children:f.jsx(_b,{version:d.apiStatus.version,updateAvailable:R?E:null,onDismissUpdate:I})}),f.jsxs("nav",{className:"sidebar-nav",children:[f.jsxs(rt,{to:"/",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(Jk,{className:"sidebar-icon"}),f.jsx("span",{children:"Overview"})]}),f.jsxs(rt,{to:"/projects",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(Yk,{className:"sidebar-icon"}),f.jsx("span",{children:"Projects"})]}),f.jsxs(rt,{to:"/runs",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(cA,{className:"sidebar-icon"}),f.jsx("span",{children:"Runs"})]}),f.jsxs(rt,{to:"/traffic",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!1},children:[f.jsx(fA,{className:"sidebar-icon"}),f.jsx("span",{children:"Server traffic"})]}),f.jsxs(rt,{to:"/backlinks",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(Wk,{className:"sidebar-icon"}),f.jsx("span",{children:"Backlinks"})]}),f.jsxs(rt,{to:"/settings",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(SA,{className:"sidebar-icon"}),f.jsx("span",{children:"Settings"})]}),i?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),[1,2,3].map(re=>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+re*15}%`}})]},re))]}):J&&J.projects.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Projects"}),J.projects.map(re=>{const me=re.visibilitySummary.tone;return f.jsxs(rt,{to:"/projects/$projectId",params:{projectId:re.project.id},className:"sidebar-project",activeProps:{className:"sidebar-project sidebar-project-active"},children:[f.jsx("span",{className:`sidebar-dot sidebar-dot-${me}`}),f.jsx("span",{children:re.project.displayName||re.project.name})]},re.project.id)})]}):i?null:f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"sidebar-section-title",children:"Resources"}),f.jsxs(rt,{to:"/setup",className:"sidebar-link",activeProps:{className:"sidebar-link sidebar-link-active"},activeOptions:{exact:!0},children:[f.jsx(hA,{className:"sidebar-icon"}),f.jsx("span",{children:"Setup"})]})]})]}),f.jsx("div",{className:"sidebar-footer",children:qb.map(({label:re,href:me,Icon:$})=>f.jsx("a",{className:"sidebar-footer-icon",href:me,target:"_blank",rel:"noopener noreferrer",title:re,"aria-label":re,children:f.jsx($,{className:"size-4"})},me))})]}),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(_b,{compact:!0})}),f.jsxs("nav",{className:"breadcrumb","aria-label":"Breadcrumb",children:[f.jsx(rt,{to:"/",children:"Home"}),f.jsx(Vf,{className:"breadcrumb-sep size-3"}),f.jsx("span",{className:"breadcrumb-current",children:tt})]})]}),f.jsxs("div",{className:"topbar-actions",children:[f.jsxs("div",{className:"health-pill-row",children:[f.jsxs("span",{className:`health-pill health-pill-${d.apiStatus.state}`,title:$s(d.apiStatus),children:["API ",d.apiStatus.state==="ok"?"ok":d.apiStatus.state]}),f.jsxs("span",{className:`health-pill health-pill-${d.workerStatus.state}`,title:$s(d.workerStatus),children:["Worker ",d.workerStatus.state==="ok"?"ok":d.workerStatus.state]})]}),f.jsxs(Ue,{className:"nav-toggle",variant:"secondary",size:"icon",type:"button","aria-expanded":S,"aria-controls":"mobile-nav",onClick:()=>j(re=>!re),children:[f.jsx(sA,{className:"size-4"}),f.jsx("span",{className:"sr-only",children:"Open navigation"})]})]})]}),f.jsxs("div",{id:"mobile-nav",className:`mobile-nav ${S?"mobile-nav-open":""}`,children:[f.jsxs(Ue,{className:"mobile-nav-close",variant:"ghost",size:"icon",type:"button",onClick:()=>j(!1),children:[f.jsx(Ps,{className:"size-5"}),f.jsx("span",{className:"sr-only",children:"Close navigation"})]}),f.jsx(rt,{to:"/",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Overview"}),f.jsx(rt,{to:"/projects",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Projects"}),f.jsx(rt,{to:"/runs",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Runs"}),f.jsx(rt,{to:"/traffic",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!1},children:"Server traffic"}),f.jsx(rt,{to:"/settings",className:"mobile-nav-link",activeProps:{className:"mobile-nav-link mobile-nav-link-active"},activeOptions:{exact:!0},children:"Settings"}),J&&J.projects.length>0?f.jsxs("div",{className:"mobile-nav-section",children:[f.jsx("p",{className:"mobile-nav-section-title",children:"Projects"}),J.projects.map(re=>f.jsx(rt,{to:"/projects/$projectId",params:{projectId:re.project.id},className:"mobile-nav-link",children:re.project.name},re.project.id))]}):null]}),f.jsx("main",{id:"content",className:"page-shell",children:i&&!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(re=>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"})]},re))}),f.jsx("div",{className:"page-skeleton-grid",style:{gridTemplateColumns:"1fr 1fr"},children:[1,2].map(re=>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(me=>f.jsx("div",{className:"skeleton-text-sm w-full"},me))})]},re))})]}):f.jsx(Wb,{})}),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"})}),d.apiStatus.version&&d.apiStatus.version!=="unknown"?f.jsxs("span",{className:"footer-version",children:["v",d.apiStatus.version]}):null]}),f.jsx("div",{className:"footer-links",children:qb.map(({label:re,href:me,Icon:$})=>f.jsx("a",{href:me,target:"_blank",rel:"noopener noreferrer",title:re,"aria-label":re,className:"footer-icon",children:f.jsx($,{className:"size-3.5"})},me))})]})]}),M?f.jsxs(R3,{open:!0,title:M.summary,subtitle:`${M.projectName} · ${M.kindLabel}`,onClose:v,children:[f.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-1 text-sm",children:[f.jsx(pp,{status:M.status}),f.jsx("span",{className:"text-zinc-400",children:M.startedAt}),f.jsx("span",{className:"text-zinc-500",children:M.duration}),f.jsx("span",{className:"text-zinc-600",children:M.triggerLabel})]}),M.status==="failed"&&M.statusDetail&&f.jsx("p",{className:"text-sm text-rose-300/80 mt-2",children:M.statusDetail}),f.jsxs("div",{className:"mt-4",children:[f.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-zinc-500 mb-2",children:"Activity Log"}),Y?f.jsx("p",{className:"text-sm text-zinc-500",children:"Loading run details..."}):K?.snapshots&&K.snapshots.length>0?f.jsxs("div",{className:"space-y-2",children:[K.snapshots.map(re=>f.jsxs("div",{className:"rounded-lg border border-zinc-800/60 bg-zinc-900/30 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-zinc-200 truncate",children:re.query??"Unknown query"}),f.jsxs("div",{className:"flex items-center gap-1.5",children:[f.jsx(_3,{provider:re.provider}),f.jsx(X0,{variant:re.citationState===ic.cited?"success":"neutral",children:re.citationState})]})]}),re.model&&f.jsx("p",{className:"text-[11px] text-zinc-500 font-mono",children:re.model}),re.citedDomains.length>0&&f.jsxs("p",{className:"text-xs text-zinc-500 mt-1",children:[f.jsx("span",{className:"text-zinc-400",children:"Sources:"})," ",re.citedDomains.join(", ")]}),re.competitorOverlap.length>0&&f.jsxs("p",{className:"text-xs text-rose-400/80 mt-0.5",children:["Competitor cited: ",re.competitorOverlap.join(", ")]}),re.groundingSources&&re.groundingSources.length>0&&f.jsxs("details",{className:"mt-2",children:[f.jsxs("summary",{className:"text-xs text-zinc-500 cursor-pointer hover:text-zinc-400",children:[re.groundingSources.length," grounding source",re.groundingSources.length!==1?"s":""]}),f.jsx("ul",{className:"mt-1 space-y-0.5",children:re.groundingSources.map((me,$)=>f.jsx("li",{className:"text-xs text-zinc-500 truncate",children:f.jsx("a",{href:me.uri,target:"_blank",rel:"noopener noreferrer",className:"hover:text-zinc-300",children:me.title||me.uri})},$))})]}),re.answerText&&f.jsxs("details",{className:"mt-1",children:[f.jsx("summary",{className:"text-xs text-zinc-500 cursor-pointer hover:text-zinc-400",children:"Answer preview"}),f.jsx("p",{className:"mt-1 text-xs text-zinc-400 leading-relaxed whitespace-pre-wrap",children:re.answerText})]})]},re.id)),K.status==="running"&&f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-zinc-500",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),"Running remaining queries..."]})]}):K&&K.status==="running"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-zinc-500",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),"Waiting for first query result..."]}):K&&K.status==="queued"?f.jsxs("div",{className:"flex items-center gap-2 p-3 text-sm text-zinc-500",children:[f.jsx("span",{className:"inline-block h-2 w-2 rounded-full bg-zinc-500 animate-pulse"}),"Run queued, waiting for execution slot..."]}):K&&K.error?f.jsxs("div",{className:"rounded-lg border border-rose-800/40 bg-rose-950/20 p-3",children:[f.jsx("p",{className:"text-sm font-medium text-rose-300 mb-2",children:"Run failed"}),f.jsx("pre",{className:"text-xs text-rose-300/80 whitespace-pre-wrap break-words max-h-48 overflow-y-auto font-mono leading-5",children:MO(K.error)})]}):f.jsx("p",{className:"text-sm text-zinc-500",children:"No snapshot data available."})]})]}):null,ve?f.jsx(q3,{evidence:ve.evidence,project:ve.project,onClose:v}):null,f.jsx(KD,{}),f.jsx(SD,{}),f.jsx(qD,{})]})}class YD extends q.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-rose-950/40 p-3",children:f.jsx(Nv,{className:"size-6 text-rose-400"})}),f.jsx("h2",{className:"text-lg font-semibold text-zinc-100",children:"Something went wrong"}),f.jsx("p",{className:"text-sm text-zinc-400 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(jv,{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 jn=q.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:zn("rounded-xl border border-zinc-800 bg-zinc-950/75 shadow-[0_0_0_1px_rgba(255,255,255,0.01)]",e),...n}));jn.displayName="Card";const kf=q.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:zn("flex flex-col gap-1.5 p-5",e),...n}));kf.displayName="CardHeader";const Af=q.forwardRef(({className:e,...n},i)=>f.jsx("h3",{ref:i,className:zn("font-medium tracking-tight text-zinc-50",e),...n}));Af.displayName="CardTitle";const _f=q.forwardRef(({className:e,...n},i)=>f.jsx("p",{ref:i,className:zn("text-sm text-zinc-500",e),...n}));_f.displayName="CardDescription";const Ql=q.forwardRef(({className:e,...n},i)=>f.jsx("div",{ref:i,className:zn("p-5 pt-0",e),...n}));Ql.displayName="CardContent";function XD({points:e,tone:n}){const i=q.useId();if(e.length===0)return null;const r=42,l=132,c=5,d=Math.min(...e),g=Math.max(...e)-d||1,b=l-c*2,v=r-c*2,S=e.map((j,_)=>{const C=c+_/Math.max(e.length-1,1)*b,k=c+(1-(j-d)/g)*v;return`${C},${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:b,height:v,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:S,vectorEffect:"non-scaling-stroke"})]})}function JD({project:e}){return f.jsxs(rt,{to:"/projects/$projectId",params:{projectId:e.project.id},className:"project-row cursor-pointer",children:[f.jsx("div",{className:"project-row-chart",children:f.jsx(XD,{points:e.trend,tone:E0(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-amber-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-amber-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(Vf,{className:"h-4 w-4 text-zinc-500"})})]})}function FD(){const e=fo(),{dashboard:n,isLoading:i}=xc(),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(v=>f.jsxs("div",{className:"rounded-xl border border-zinc-800/60 bg-zinc-900/30 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"})]},v))})]});const l=r.portfolioOverview,h=hp(!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=j4(l.systemHealth,h,r.settings),{openRun:b}=gp();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-zinc-600",children:l.lastUpdatedAt})})]}),l.projects.length>0?f.jsx("div",{className:"project-list project-list-scrollable",children:l.projects.map(v=>f.jsx(JD,{project:v},v.project.id))}):f.jsxs(jn,{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(rt,{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(v=>v.href?f.jsxs(rt,{to:v.href,className:`attention-item attention-item-${v.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:v.title}),f.jsx("p",{className:"attention-detail",children:v.detail})]}),v.actionLabel&&f.jsx("span",{className:"attention-action",children:v.actionLabel})]},v.id):f.jsxs("div",{className:`attention-item attention-item-static attention-item-${v.tone}`,children:[f.jsxs("div",{children:[f.jsx("p",{className:"attention-title",children:v.title}),f.jsx("p",{className:"attention-detail",children:v.detail})]}),v.actionLabel&&f.jsx("span",{className:"attention-action",children:v.actionLabel})]},v.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(v=>f.jsxs("button",{className:"compact-run",type:"button",onClick:()=>b(v.id),children:[f.jsxs("div",{children:[f.jsx("p",{className:"compact-run-title",children:v.projectName}),f.jsx("p",{className:"compact-run-detail",children:v.summary})]}),f.jsx(pp,{status:v.status})]},v.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(v=>f.jsxs(jn,{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:v.label}),f.jsx("h3",{children:v.detail})]}),f.jsx(Ln,{tone:v.tone,title:v.id==="api"?$s(h.apiStatus):v.id==="worker"?$s(h.workerStatus):void 0,children:v.label})]}),f.jsx("p",{className:"supporting-copy",children:v.meta})]},v.id))})]})]})}const Sp=Symbol.for("yaml.alias"),zf=Symbol.for("yaml.document"),Za=Symbol.for("yaml.map"),c1=Symbol.for("yaml.pair"),Pn=Symbol.for("yaml.scalar"),Ys=Symbol.for("yaml.seq"),An=Symbol.for("yaml.node.type"),Ti=e=>!!e&&typeof e=="object"&&e[An]===Sp,jc=e=>!!e&&typeof e=="object"&&e[An]===zf,po=e=>!!e&&typeof e=="object"&&e[An]===Za,vt=e=>!!e&&typeof e=="object"&&e[An]===c1,at=e=>!!e&&typeof e=="object"&&e[An]===Pn,mo=e=>!!e&&typeof e=="object"&&e[An]===Ys;function yt(e){if(e&&typeof e=="object")switch(e[An]){case Za:case Ys:return!0}return!1}function bt(e){if(e&&typeof e=="object")switch(e[An]){case Sp:case Za:case Pn:case Ys:return!0}return!1}const u1=e=>(at(e)||yt(e))&&!!e.anchor,xi=Symbol("break visit"),WD=Symbol("skip children"),ao=Symbol("remove node");function Xs(e,n){const i=e5(n);jc(e)?Es(null,e.contents,i,Object.freeze([e]))===ao&&(e.contents=null):Es(null,e,i,Object.freeze([]))}Xs.BREAK=xi;Xs.SKIP=WD;Xs.REMOVE=ao;function Es(e,n,i,r){const l=t5(e,n,i,r);if(bt(l)||vt(l))return n5(e,r,l),Es(e,l,i,r);if(typeof l!="symbol"){if(yt(n)){r=Object.freeze(r.concat(n));for(let c=0;c<n.items.length;++c){const d=Es(c,n.items[c],i,r);if(typeof d=="number")c=d-1;else{if(d===xi)return xi;d===ao&&(n.items.splice(c,1),c-=1)}}}else if(vt(n)){r=Object.freeze(r.concat(n));const c=Es("key",n.key,i,r);if(c===xi)return xi;c===ao&&(n.key=null);const d=Es("value",n.value,i,r);if(d===xi)return xi;d===ao&&(n.value=null)}}return l}function e5(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 t5(e,n,i,r){if(typeof i=="function")return i(e,n,r);if(po(n))return i.Map?.(e,n,r);if(mo(n))return i.Seq?.(e,n,r);if(vt(n))return i.Pair?.(e,n,r);if(at(n))return i.Scalar?.(e,n,r);if(Ti(n))return i.Alias?.(e,n,r)}function n5(e,n,i){const r=n[n.length-1];if(yt(r))r.items[e]=i;else if(vt(r))e==="key"?r.key=i:r.value=i;else if(jc(r))r.contents=i;else{const l=Ti(r)?"alias":"scalar";throw new Error(`Cannot replace node with ${l} parent`)}}const a5={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},i5=e=>e.replace(/[!,[\]{}]/g,n=>a5[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+i5(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&&bt(n.contents)){const c={};Xs(n.contents,(d,h)=>{bt(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 d1(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 f1(e){const n=new Set;return Xs(e,{Value(i,r){r.anchor&&n.add(r.anchor)}}),n}function p1(e,n){for(let i=1;;++i){const r=`${e}${i}`;if(!n.has(r))return r}}function s5(e,n){const i=[],r=new Map;let l=null;return{onAnchor:c=>{i.push(c),l??(l=f1(e));const d=p1(n,l);return l.add(d),d},setAnchors:()=>{for(const c of i){const d=r.get(c);if(typeof d=="object"&&d.anchor&&(at(d.node)||yt(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 Os(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=Os(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=Os(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=Os(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=Os(e,r,l,c);d===void 0?delete r[l]:d!==c&&(r[l]=d)}return e.call(n,i,r)}function kn(e,n,i){if(Array.isArray(e))return e.map((r,l)=>kn(r,String(l),i));if(e&&typeof e.toJSON=="function"){if(!i||!u1(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 xp{constructor(n){Object.defineProperty(this,An,{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(!jc(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=kn(this,"",d);if(typeof l=="function")for(const{count:g,res:b}of d.anchors.values())l(b,g);return typeof c=="function"?Os(c,{"":h},"",h):h}}class wp extends xp{constructor(n){super(Sp),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=[],Xs(n,{Node:(c,d)=>{(Ti(d)||u1(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||(kn(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=Yl(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(d1(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 Yl(e,n,i){if(Ti(n)){const r=n.resolve(e),l=i&&r&&i.get(r);return l?l.count*l.aliasCount:0}else if(yt(n)){let r=0;for(const l of n.items){const c=Yl(e,l,i);c>r&&(r=c)}return r}else if(vt(n)){const r=Yl(e,n.key,i),l=Yl(e,n.value,i);return Math.max(r,l)}return 1}const m1=e=>!e||typeof e!="function"&&typeof e!="object";class Ae extends xp{constructor(n){super(Pn),this.value=n}toJSON(n,i){return i?.keep?this.value:kn(this.value,n,i)}toString(){return String(this.value)}}Ae.BLOCK_FOLDED="BLOCK_FOLDED";Ae.BLOCK_LITERAL="BLOCK_LITERAL";Ae.PLAIN="PLAIN";Ae.QUOTE_DOUBLE="QUOTE_DOUBLE";Ae.QUOTE_SINGLE="QUOTE_SINGLE";const r5="tag:yaml.org,2002:";function o5(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 lo(e,n,i){if(jc(e)&&(e=e.contents),bt(e))return e;if(vt(e)){const S=i.schema[Za].createNode?.(i.schema,null,i);return S.items.push(e),S}(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 wp(g.anchor);g={anchor:null,node:null},h.set(e,g)}n?.startsWith("!!")&&(n=r5+n.slice(2));let b=o5(e,n,d.tags);if(!b){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const S=new Ae(e);return g&&(g.node=S),S}b=e instanceof Map?d[Za]:Symbol.iterator in Object(e)?d[Ys]:d[Za]}c&&(c(b),delete i.onTagObj);const v=b?.createNode?b.createNode(i.schema,e,i):typeof b?.nodeClass?.from=="function"?b.nodeClass.from(i.schema,e,i):new Ae(e);return n?v.tag=n:b.default||(v.tag=b.tag),g&&(g.node=v),v}function cc(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 lo(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 no=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class h1 extends xp{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=>bt(r)||vt(r)?r.clone(n):r),this.range&&(i.range=this.range.slice()),i}addIn(n,i){if(no(n))this.add(i);else{const[r,...l]=n,c=this.get(r,!0);if(yt(c))c.addIn(l,i);else if(c===void 0&&this.schema)this.set(r,cc(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(yt(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&&at(c)?c.value:c:yt(c)?c.getIn(l,i):void 0}hasAllNullValues(n){return this.items.every(i=>{if(!vt(i))return!1;const r=i.value;return r==null||n&&at(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 yt(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(yt(c))c.setIn(l,i);else if(c===void 0&&this.schema)this.set(r,cc(this.schema,l,i));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${l}`)}}}const l5=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function pa(e,n){return/^\n+$/.test(e)?e.substring(1):n?e.replace(/^(?! *$)/gm,n):e}const wi=(e,n,i)=>e.endsWith(`
|
|
66
66
|
`)?pa(i,n):i.includes(`
|
|
67
67
|
`)?`
|
|
68
68
|
`+pa(i,n):(e.endsWith(" ")?"":" ")+i,g1="flow",Cf="block",Xl="quoted";function Nc(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 b=[],v={};let S=l-n.length;typeof r=="number"&&(r>l-Math.max(2,c)?b.push(0):S=l-r);let j,_,C=!1,k=-1,E=-1,R=-1;i===Cf&&(k=$b(e,k,n.length),k!==-1&&(S=k+g));for(let H;H=e[k+=1];){if(i===Xl&&H==="\\"){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(H===`
|
|
@@ -71,7 +71,7 @@ ${JSON.stringify(r.raw,null,2)}`):n.push(l)}return n.length>0?n.join(`
|
|
|
71
71
|
`&&K!==" "&&(j=k)}if(k>=S)if(j)b.push(j),S=j+g,j=void 0;else if(i===Xl){for(;_===" "||_===" ";)_=H,H=e[k+=1],C=!0;const K=k>R+1?k-2:E-1;if(v[K])return e;b.push(K),v[K]=!0,S=K+g,j=void 0}else C=!0}_=H}if(C&&h&&h(),b.length===0)return e;d&&d();let I=e.slice(0,b[0]);for(let H=0;H<b.length;++H){const K=b[H],Y=b[H+1]||e.length;K===0?I=`
|
|
72
72
|
${n}${e.slice(0,Y)}`:(i===Xl&&v[K]&&(I+=`${e[K]}\\`),I+=`
|
|
73
73
|
${n}${e.slice(K+1,Y)}`)}return I}function $b(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 kc=(e,n)=>({indentAtStart:n?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ac=e=>/^(%|---|\.\.\.)/m.test(e);function
|
|
74
|
+
`);r=n,l=n+1,c=e[l]}return r}const kc=(e,n)=>({indentAtStart:n?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ac=e=>/^(%|---|\.\.\.)/m.test(e);function c5(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 io(e,n){const i=JSON.stringify(e);if(n.options.doubleQuotedAsJSON)return i;const{implicitKey:r}=n,l=n.options.doubleQuotedMinMultiLineLength,c=n.indent||(Ac(e)?" ":"");let d="",h=0;for(let g=0,b=i[g];b;b=i[++g])if(b===" "&&i[g+1]==="\\"&&i[g+2]==="n"&&(d+=i.slice(h,g)+"\\ ",g+=1,h=g,b="\\"),b==="\\")switch(i[g+1]){case"u":{d+=i.slice(h,g);const v=i.substr(g+2,4);switch(v){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:v.substr(0,2)==="00"?d+="\\x"+v.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(K+1,Y)}`)}return I}function $b(e,n,i){let r=n,l=n+1,c=e[l];for(;c=
|
|
|
80
80
|
${i}`)+"'";return n.implicitKey?r:Nc(r,i,g1,kc(n,!1))}function Ds(e,n){const{singleQuote:i}=n.options;let r;if(i===!1)r=io;else{const l=e.includes('"'),c=e.includes("'");l&&!c?r=Tf:c&&!l?r=io:r=i?Tf:io}return r(e,n)}let Ef;try{Ef=new RegExp(`(^|(?<!
|
|
81
81
|
))
|
|
82
82
|
+(?!
|
|
83
|
-
|$)`,"g")}catch{Ef=/\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 b=r.indent||(r.forceBlockIndent||Ac(i)?" ":""),v=d==="literal"?!0:d==="folded"||n===Ae.BLOCK_FOLDED?!1:n===Ae.BLOCK_LITERAL?!0:!
|
|
83
|
+
|$)`,"g")}catch{Ef=/\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 b=r.indent||(r.forceBlockIndent||Ac(i)?" ":""),v=d==="literal"?!0:d==="folded"||n===Ae.BLOCK_FOLDED?!1:n===Ae.BLOCK_LITERAL?!0:!c5(i,g,b.length);if(!i)return v?`|
|
|
84
84
|
`:`>
|
|
85
85
|
`;let S,j;for(j=i.length;j>0;--j){const Y=i[j-1];if(Y!==`
|
|
86
86
|
`&&Y!==" "&&Y!==" ")break}let _=i.substring(j);const C=_.indexOf(`
|
|
@@ -89,12 +89,12 @@ ${i}`)+"'";return n.implicitKey?r:Nc(r,i,g1,kc(n,!1))}function Ds(e,n){const{sin
|
|
|
89
89
|
`)R=E;else break}let I=i.substring(0,R<E?R+1:E);I&&(i=i.substring(I.length),I=I.replace(/\n+/g,`$&${b}`));let K=(k?b?"2":"1":"")+S;if(e&&(K+=" "+h(e.replace(/ ?[\r\n]+/g," ")),l&&l()),!v){const Y=i.replace(/\n+/g,`
|
|
90
90
|
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${b}`);let J=!1;const O=kc(r,!0);d!=="folded"&&n!==Ae.BLOCK_FOLDED&&(O.onOverflow=()=>{J=!0});const M=Nc(`${I}${Y}${_}`,b,Cf,O);if(!J)return`>${K}
|
|
91
91
|
${b}${M}`}return i=i.replace(/\n+/g,`$&${b}`),`|${K}
|
|
92
|
-
${b}${I}${i}${_}`}function
|
|
92
|
+
${b}${I}${i}${_}`}function u5(e,n,i,r){const{type:l,value:c}=e,{actualString:d,implicitKey:h,indent:g,indentStep:b,inFlow:v}=n;if(h&&c.includes(`
|
|
93
93
|
`)||v&&/[[\]{},]/.test(c))return Ds(c,n);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(c))return h||v||!c.includes(`
|
|
94
94
|
`)?Ds(c,n):Jl(e,n,i,r);if(!h&&!v&&l!==Ae.PLAIN&&c.includes(`
|
|
95
95
|
`))return Jl(e,n,i,r);if(Ac(c)){if(g==="")return n.forceBlockIndent=!0,Jl(e,n,i,r);if(h&&g===b)return Ds(c,n)}const S=c.replace(/\n+/g,`$&
|
|
96
|
-
${g}`);if(d){const j=k=>k.default&&k.tag!=="tag:yaml.org,2002:str"&&k.test?.test(S),{compat:_,tags:C}=n.doc.schema;if(C.some(j)||_?.some(j))return Ds(c,n)}return h?S:Nc(S,g,g1,kc(n,!1))}function jp(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!==Ae.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(d.value)&&(h=Ae.QUOTE_DOUBLE);const g=v=>{switch(v){case Ae.BLOCK_FOLDED:case Ae.BLOCK_LITERAL:return l||c?Ds(d.value,n):Jl(d,n,i,r);case Ae.QUOTE_DOUBLE:return io(d.value,n);case Ae.QUOTE_SINGLE:return Tf(d.value,n);case Ae.PLAIN:return
|
|
97
|
-
${n.indent}${h}`:h}function
|
|
96
|
+
${g}`);if(d){const j=k=>k.default&&k.tag!=="tag:yaml.org,2002:str"&&k.test?.test(S),{compat:_,tags:C}=n.doc.schema;if(C.some(j)||_?.some(j))return Ds(c,n)}return h?S:Nc(S,g,g1,kc(n,!1))}function jp(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!==Ae.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(d.value)&&(h=Ae.QUOTE_DOUBLE);const g=v=>{switch(v){case Ae.BLOCK_FOLDED:case Ae.BLOCK_LITERAL:return l||c?Ds(d.value,n):Jl(d,n,i,r);case Ae.QUOTE_DOUBLE:return io(d.value,n);case Ae.QUOTE_SINGLE:return Tf(d.value,n);case Ae.PLAIN:return u5(d,n,i,r);default:return null}};let b=g(h);if(b===null){const{defaultKeyType:v,defaultStringType:S}=n.options,j=l&&v||S;if(b=g(j),b===null)throw new Error(`Unsupported default string type ${j}`)}return b}function y1(e,n){const i=Object.assign({blockQuote:!0,commentString:l5,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 d5(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(at(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 f5(e,n,{anchors:i,doc:r}){if(!r.directives)return"";const l=[],c=(at(e)||yt(e))&&e.anchor;c&&d1(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(vt(e))return e.toString(n,i,r);if(Ti(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=bt(e)?e:n.doc.createNode(e,{onTagObj:g=>l=g});l??(l=d5(n.doc.schema.tags,c));const d=f5(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):at(c)?jp(c,n,i,r):c.toString(n,i,r);return d?at(c)||h[0]==="{"||h[0]==="["?`${d} ${h}`:`${d}
|
|
97
|
+
${n.indent}${h}`:h}function p5({key:e,value:n},i,r,l){const{allNullValues:c,doc:d,indent:h,indentStep:g,options:{commentString:b,indentSeq:v,simpleKeys:S}}=i;let j=bt(e)&&e.comment||null;if(S){if(j)throw new Error("With simple keys, key nodes cannot have comments");if(yt(e)||!bt(e)&&typeof e=="object"){const O="With simple keys, collection cannot be used as a key value";throw new Error(O)}}let _=!S&&(!e||j&&n==null&&!i.inFlow||yt(e)||(at(e)?e.type===Ae.BLOCK_FOLDED||e.type===Ae.BLOCK_LITERAL:typeof e=="object"));i=Object.assign({},i,{allNullValues:!1,implicitKey:!_&&(S||!c),indent:h+g});let C=!1,k=!1,E=Vs(e,i,()=>C=!0,()=>k=!0);if(!_&&!i.inFlow&&E.length>1024){if(S)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 C&&r&&r(),E===""?"?":_?`? ${E}`:E}else if(c&&!S||n==null&&_)return E=`? ${E}`,j&&!C?E+=wi(E,i.indent,b(j)):k&&l&&l(),E;C&&(j=null),_?(j&&(E+=wi(E,i.indent,b(j))),E=`? ${E}
|
|
98
98
|
${h}:`):(E=`${E}:`,j&&(E+=wi(E,i.indent,b(j))));let R,I,H;bt(n)?(R=!!n.spaceBefore,I=n.commentBefore,H=n.comment):(R=!1,I=null,H=null,n&&typeof n=="object"&&(n=d.createNode(n))),i.implicitKey=!1,!_&&!j&&at(n)&&(i.indentAtStart=E.length+1),k=!1,!v&&g.length>=2&&!i.inFlow&&!_&&mo(n)&&!n.flow&&!n.tag&&!n.anchor&&(i.indent=i.indent.substring(2));let K=!1;const Y=Vs(n,i,()=>K=!0,()=>k=!0);let J=" ";if(j||R||I){if(J=R?`
|
|
99
99
|
`:"",I){const O=b(I);J+=`
|
|
100
100
|
${pa(O,i.indent)}`}Y===""&&!i.inFlow?J===`
|
|
@@ -104,32 +104,32 @@ ${pa(O,i.indent)}`}Y===""&&!i.inFlow?J===`
|
|
|
104
104
|
${i.indent}`}else if(!_&&yt(n)){const O=Y[0],M=Y.indexOf(`
|
|
105
105
|
`),oe=M!==-1,ke=i.inFlow??n.flow??n.items.length===0;if(oe||!ke){let _e=!1;if(oe&&(O==="&"||O==="!")){let ve=Y.indexOf(" ");O==="&"&&ve!==-1&&ve<M&&Y[ve+1]==="!"&&(ve=Y.indexOf(" ",ve+1)),(ve===-1||M<ve)&&(_e=!0)}_e||(J=`
|
|
106
106
|
${i.indent}`)}}else(Y===""||Y[0]===`
|
|
107
|
-
`)&&(J="");return E+=J+Y,i.inFlow?K&&r&&r():H&&!K?E+=wi(E,i.indent,b(H)):k&&l&&l(),E}function
|
|
107
|
+
`)&&(J="");return E+=J+Y,i.inFlow?K&&r&&r():H&&!K?E+=wi(E,i.indent,b(H)):k&&l&&l(),E}function m5(e,n){(e==="debug"||e==="warn")&&console.warn(n)}const Il="<<",ma={identify:e=>e===Il||typeof e=="symbol"&&e.description===Il,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ae(Symbol(Il)),{addToJSMap:b1}),stringify:()=>Il},h5=(e,n)=>(ma.identify(n)||at(n)&&(!n.type||n.type===Ae.PLAIN)&&ma.identify(n.value))&&e?.doc.schema.tags.some(i=>i.tag===ma.tag&&i.default);function b1(e,n,i){if(i=e&&Ti(i)?i.resolve(e.doc):i,mo(i))for(const r of i.items)rf(e,n,r);else if(Array.isArray(i))for(const r of i)rf(e,n,r);else rf(e,n,i)}function rf(e,n,i){const r=e&&Ti(i)?i.resolve(e.doc):i;if(!po(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 v1(e,n,{key:i,value:r}){if(bt(i)&&i.addToJSMap)i.addToJSMap(e,n,r);else if(h5(e,i))b1(e,n,r);else{const l=kn(i,"",e);if(n instanceof Map)n.set(l,kn(r,l,e));else if(n instanceof Set)n.add(l);else{const c=g5(i,l,e),d=kn(r,c,e);c in n?Object.defineProperty(n,c,{value:d,writable:!0,enumerable:!0,configurable:!0}):n[c]=d}}return n}function g5(e,n,i){if(n===null)return"";if(typeof n!="object")return String(n);if(bt(e)&&i?.doc){const r=y1(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)+'..."'),m5(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 Np(e,n,i){const r=lo(e,void 0,i),l=lo(n,void 0,i);return new Zt(r,l)}class Zt{constructor(n,i=null){Object.defineProperty(this,An,{value:c1}),this.key=n,this.value=i}clone(n){let{key:i,value:r}=this;return bt(i)&&(i=i.clone(n)),bt(r)&&(r=r.clone(n)),new Zt(i,r)}toJSON(n,i){const r=i?.mapAsMap?new Map:{};return v1(i,r,this)}toString(n,i,r){return n?.doc?p5(this,n,i,r):JSON.stringify(this)}}function S1(e,n,i){return(n.inFlow??e.flow?b5:y5)(e,n,i)}function y5({comment:e,items:n},i,{blockItemPrefix:r,flowChars:l,itemIndent:c,onChompKeep:d,onComment:h}){const{indent:g,options:{commentString:b}}=i,v=Object.assign({},i,{indent:c,type:null});let S=!1;const j=[];for(let C=0;C<n.length;++C){const k=n[C];let E=null;if(bt(k))!S&&k.spaceBefore&&j.push(""),uc(i,j,k.commentBefore,S),k.comment&&(E=k.comment);else if(vt(k)){const I=bt(k.key)?k.key:null;I&&(!S&&I.spaceBefore&&j.push(""),uc(i,j,I.commentBefore,S))}S=!1;let R=Vs(k,v,()=>E=null,()=>S=!0);E&&(R+=wi(R,c,b(E))),S&&E&&(S=!1),j.push(r+R)}let _;if(j.length===0)_=l.start+l.end;else{_=j[0];for(let C=1;C<j.length;++C){const k=j[C];_+=k?`
|
|
108
108
|
${g}${k}`:`
|
|
109
109
|
`}}return e?(_+=`
|
|
110
|
-
`+pa(b(e),g),h&&h()):S&&d&&d(),_}function
|
|
110
|
+
`+pa(b(e),g),h&&h()):S&&d&&d(),_}function b5({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 b=!1,v=0;const S=[];for(let C=0;C<e.length;++C){const k=e[C];let E=null;if(bt(k))k.spaceBefore&&S.push(""),uc(n,S,k.commentBefore,!1),k.comment&&(E=k.comment);else if(vt(k)){const I=bt(k.key)?k.key:null;I&&(I.spaceBefore&&S.push(""),uc(n,S,I.commentBefore,!1),I.comment&&(b=!0));const H=bt(k.value)?k.value:null;H?(H.comment&&(E=H.comment),H.commentBefore&&(b=!0)):k.value==null&&I?.comment&&(E=I.comment)}E&&(b=!0);let R=Vs(k,g,()=>E=null);C<e.length-1&&(R+=","),E&&(R+=wi(R,r,h(E))),!b&&(S.length>v||R.includes(`
|
|
111
111
|
`))&&(b=!0),S.push(R),v=S.length}const{start:j,end:_}=i;if(S.length===0)return j+_;if(!b){const C=S.reduce((k,E)=>k+E.length+2,2);b=n.options.lineWidth>0&&C>n.options.lineWidth}if(b){let C=j;for(const k of S)C+=k?`
|
|
112
112
|
${c}${l}${k}`:`
|
|
113
113
|
`;return`${C}
|
|
114
|
-
${l}${_}`}else return`${j}${d}${S.join(" ")}${d}${_}`}function uc({indent:e,options:{commentString:n}},i,r,l){if(r&&l&&(r=r.replace(/^\n+/,"")),r){const c=pa(n(r),e);i.push(c.trimStart())}}function ji(e,n){const i=at(n)?n.value:n;for(const r of e)if(vt(r)&&(r.key===n||r.key===i||at(r.key)&&r.key.value===i))return r}class Nn extends h1{static get tagName(){return"tag:yaml.org,2002:map"}constructor(n){super(Za,n),this.items=[]}static from(n,i,r){const{keepUndefined:l,replacer:c}=r,d=new this(n),h=(g,b)=>{if(typeof c=="function")b=c.call(i,g,b);else if(Array.isArray(c)&&!c.includes(g))return;(b!==void 0||l)&&d.items.push(Np(g,b,r))};if(i instanceof Map)for(const[g,b]of i)h(g,b);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;vt(n)?r=n:!n||typeof n!="object"||!("key"in n)?r=new Zt(n,n?.value):r=new Zt(n.key,n.value);const l=ji(this.items,r.key),c=this.schema?.sortMapEntries;if(l){if(!i)throw new Error(`Key ${r.key} already set`);at(l.value)&&m1(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=ji(this.items,n);return i?this.items.splice(this.items.indexOf(i),1).length>0:!1}get(n,i){const l=ji(this.items,n)?.value;return(!i&&at(l)?l.value:l)??void 0}has(n){return!!ji(this.items,n)}set(n,i){this.add(new Zt(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)v1(i,l,c);return l}toString(n,i,r){if(!n)return JSON.stringify(this);for(const l of this.items)if(!vt(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})),S1(this,n,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:n.indent||"",onChompKeep:r,onComment:i})}}const Js={collection:"map",default:!0,nodeClass:Nn,tag:"tag:yaml.org,2002:map",resolve(e,n){return po(e)||n("Expected a mapping for this tag"),e},createNode:(e,n,i)=>Nn.from(e,n,i)};class Ai extends h1{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(n){super(Ys,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&&at(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];at(l)&&m1(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(kn(c,String(l++),i));return r}toString(n,i,r){return n?S1(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(lo(h,void 0,r))}}return c}}function Gl(e){let n=at(e)?e.value:e;return n&&typeof n=="string"&&(n=Number(n)),typeof n=="number"&&Number.isInteger(n)&&n>=0?n:null}const Fs={collection:"seq",default:!0,nodeClass:Ai,tag:"tag:yaml.org,2002:seq",resolve(e,n){return mo(e)||n("Expected a sequence for this tag"),e},createNode:(e,n,i)=>Ai.from(e,n,i)},_c={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),jp(e,n,i,r)}},zc={identify:e=>e==null,createNode:()=>new Ae(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ae(null),stringify:({source:e},n)=>typeof e=="string"&&zc.test.test(e)?e:n.options.nullStr},kp={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ae(e[0]==="t"||e[0]==="T"),stringify({source:e,value:n},i){if(e&&kp.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 x1={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},w1={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)}},j1={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 Ae(parseFloat(e)),i=e.indexOf(".");return i!==-1&&e[e.length-1]==="0"&&(n.minFractionDigits=e.length-i-1),n},stringify:qn},Cc=e=>typeof e=="bigint"||Number.isInteger(e),Ap=(e,n,i,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(n),i);function N1(e,n,i){const{value:r}=e;return Cc(r)&&r>=0?i+r.toString(n):qn(e)}const k1={identify:e=>Cc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,n,i)=>Ap(e,2,8,i),stringify:e=>N1(e,8,"0o")},A1={identify:Cc,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,n,i)=>Ap(e,0,10,i),stringify:qn},_1={identify:e=>Cc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,n,i)=>Ap(e,2,16,i),stringify:e=>N1(e,16,"0x")},
|
|
114
|
+
${l}${_}`}else return`${j}${d}${S.join(" ")}${d}${_}`}function uc({indent:e,options:{commentString:n}},i,r,l){if(r&&l&&(r=r.replace(/^\n+/,"")),r){const c=pa(n(r),e);i.push(c.trimStart())}}function ji(e,n){const i=at(n)?n.value:n;for(const r of e)if(vt(r)&&(r.key===n||r.key===i||at(r.key)&&r.key.value===i))return r}class Nn extends h1{static get tagName(){return"tag:yaml.org,2002:map"}constructor(n){super(Za,n),this.items=[]}static from(n,i,r){const{keepUndefined:l,replacer:c}=r,d=new this(n),h=(g,b)=>{if(typeof c=="function")b=c.call(i,g,b);else if(Array.isArray(c)&&!c.includes(g))return;(b!==void 0||l)&&d.items.push(Np(g,b,r))};if(i instanceof Map)for(const[g,b]of i)h(g,b);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;vt(n)?r=n:!n||typeof n!="object"||!("key"in n)?r=new Zt(n,n?.value):r=new Zt(n.key,n.value);const l=ji(this.items,r.key),c=this.schema?.sortMapEntries;if(l){if(!i)throw new Error(`Key ${r.key} already set`);at(l.value)&&m1(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=ji(this.items,n);return i?this.items.splice(this.items.indexOf(i),1).length>0:!1}get(n,i){const l=ji(this.items,n)?.value;return(!i&&at(l)?l.value:l)??void 0}has(n){return!!ji(this.items,n)}set(n,i){this.add(new Zt(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)v1(i,l,c);return l}toString(n,i,r){if(!n)return JSON.stringify(this);for(const l of this.items)if(!vt(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})),S1(this,n,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:n.indent||"",onChompKeep:r,onComment:i})}}const Js={collection:"map",default:!0,nodeClass:Nn,tag:"tag:yaml.org,2002:map",resolve(e,n){return po(e)||n("Expected a mapping for this tag"),e},createNode:(e,n,i)=>Nn.from(e,n,i)};class Ai extends h1{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(n){super(Ys,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&&at(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];at(l)&&m1(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(kn(c,String(l++),i));return r}toString(n,i,r){return n?S1(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(lo(h,void 0,r))}}return c}}function Gl(e){let n=at(e)?e.value:e;return n&&typeof n=="string"&&(n=Number(n)),typeof n=="number"&&Number.isInteger(n)&&n>=0?n:null}const Fs={collection:"seq",default:!0,nodeClass:Ai,tag:"tag:yaml.org,2002:seq",resolve(e,n){return mo(e)||n("Expected a sequence for this tag"),e},createNode:(e,n,i)=>Ai.from(e,n,i)},_c={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),jp(e,n,i,r)}},zc={identify:e=>e==null,createNode:()=>new Ae(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ae(null),stringify:({source:e},n)=>typeof e=="string"&&zc.test.test(e)?e:n.options.nullStr},kp={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ae(e[0]==="t"||e[0]==="T"),stringify({source:e,value:n},i){if(e&&kp.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 x1={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},w1={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)}},j1={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 Ae(parseFloat(e)),i=e.indexOf(".");return i!==-1&&e[e.length-1]==="0"&&(n.minFractionDigits=e.length-i-1),n},stringify:qn},Cc=e=>typeof e=="bigint"||Number.isInteger(e),Ap=(e,n,i,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(n),i);function N1(e,n,i){const{value:r}=e;return Cc(r)&&r>=0?i+r.toString(n):qn(e)}const k1={identify:e=>Cc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,n,i)=>Ap(e,2,8,i),stringify:e=>N1(e,8,"0o")},A1={identify:Cc,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,n,i)=>Ap(e,0,10,i),stringify:qn},_1={identify:e=>Cc(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,n,i)=>Ap(e,2,16,i),stringify:e=>N1(e,16,"0x")},v5=[Js,Fs,_c,zc,kp,k1,A1,_1,x1,w1,j1];function Vb(e){return typeof e=="bigint"||Number.isInteger(e)}const Hl=({value:e})=>JSON.stringify(e),S5=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Hl},{identify:e=>e==null,createNode:()=>new Ae(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:Vb,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})=>Vb(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}],x5={default:!0,tag:"",test:/^/,resolve(e,n){return n(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},w5=[Js,Fs].concat(S5,x5),_p={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 b=0;b<d.length;++b)g+=String.fromCharCode(d[b]);h=btoa(g)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(n??(n=Ae.BLOCK_LITERAL),n!==Ae.QUOTE_DOUBLE){const g=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),b=Math.ceil(h.length/g),v=new Array(b);for(let S=0,j=0;S<b;++S,j+=g)v[S]=h.substr(j,g);h=v.join(n===Ae.BLOCK_LITERAL?`
|
|
115
115
|
`:" ")}return jp({comment:e,type:n,value:h},r,l,c)}};function z1(e,n){if(mo(e))for(let i=0;i<e.items.length;++i){let r=e.items[i];if(!vt(r)){if(po(r)){r.items.length>1&&n("Each pair must have its own sequence indicator");const l=r.items[0]||new Zt(new Ae(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]=vt(r)?r:new Zt(r)}}else n("Expected a sequence for this tag");return e}function C1(e,n,i){const{replacer:r}=i,l=new Ai(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 b=Object.keys(d);if(b.length===1)h=b[0],g=d[h];else throw new TypeError(`Expected tuple with one key, not ${b.length} keys`)}else h=d;l.items.push(Np(h,g,i))}return l}const zp={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:z1,createNode:C1};class Bs extends Ai{constructor(){super(),this.add=Nn.prototype.add.bind(this),this.delete=Nn.prototype.delete.bind(this),this.get=Nn.prototype.get.bind(this),this.has=Nn.prototype.has.bind(this),this.set=Nn.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(vt(l)?(c=kn(l.key,"",i),d=kn(l.value,c,i)):c=kn(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=C1(n,i,r),c=new this;return c.items=l.items,c}}Bs.tag="tag:yaml.org,2002:omap";const Cp={collection:"seq",identify:e=>e instanceof Map,nodeClass:Bs,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,n){const i=z1(e,n),r=[];for(const{key:l}of i.items)at(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 T1({value:e,source:n},i){return n&&(e?E1:O1).test.test(n)?n:e?i.options.trueStr:i.options.falseStr}const E1={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 Ae(!0),stringify:T1},O1={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 Ae(!1),stringify:T1},
|
|
117
|
+
${c.comment}`:r.comment}r=l}e.items[i]=vt(r)?r:new Zt(r)}}else n("Expected a sequence for this tag");return e}function C1(e,n,i){const{replacer:r}=i,l=new Ai(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 b=Object.keys(d);if(b.length===1)h=b[0],g=d[h];else throw new TypeError(`Expected tuple with one key, not ${b.length} keys`)}else h=d;l.items.push(Np(h,g,i))}return l}const zp={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:z1,createNode:C1};class Bs extends Ai{constructor(){super(),this.add=Nn.prototype.add.bind(this),this.delete=Nn.prototype.delete.bind(this),this.get=Nn.prototype.get.bind(this),this.has=Nn.prototype.has.bind(this),this.set=Nn.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(vt(l)?(c=kn(l.key,"",i),d=kn(l.value,c,i)):c=kn(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=C1(n,i,r),c=new this;return c.items=l.items,c}}Bs.tag="tag:yaml.org,2002:omap";const Cp={collection:"seq",identify:e=>e instanceof Map,nodeClass:Bs,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,n){const i=z1(e,n),r=[];for(const{key:l}of i.items)at(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 T1({value:e,source:n},i){return n&&(e?E1:O1).test.test(n)?n:e?i.options.trueStr:i.options.falseStr}const E1={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 Ae(!0),stringify:T1},O1={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 Ae(!1),stringify:T1},j5={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},N5={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)}},k5={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 Ae(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},ho=e=>typeof e=="bigint"||Number.isInteger(e);function Tc(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 Tp(e,n,i){const{value:r}=e;if(ho(r)){const l=r.toString(n);return r<0?"-"+i+l.substr(1):i+l}return qn(e)}const A5={identify:ho,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,n,i)=>Tc(e,2,2,i),stringify:e=>Tp(e,2,"0b")},_5={identify:ho,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,n,i)=>Tc(e,1,8,i),stringify:e=>Tp(e,8,"0")},z5={identify:ho,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,n,i)=>Tc(e,0,10,i),stringify:qn},C5={identify:ho,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,n,i)=>Tc(e,2,16,i),stringify:e=>Tp(e,16,"0x")};class Ls extends Nn{constructor(n){super(n),this.tag=Ls.tag}add(n){let i;vt(n)?i=n:n&&typeof n=="object"&&"key"in n&&"value"in n&&n.value===null?i=new Zt(n.key,null):i=new Zt(n,null),ji(this.items,i.key)||this.items.push(i)}get(n,i){const r=ji(this.items,n);return!i&&vt(r)?at(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=ji(this.items,n);r&&!i?this.items.splice(this.items.indexOf(r),1):!r&&i&&this.items.push(new Zt(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(Np(d,null,r));return c}}Ls.tag="tag:yaml.org,2002:set";const Ep={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(po(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 Op(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 D1(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 R1={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})=>Op(e,i),stringify:D1},M1={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=>Op(e,!1),stringify:D1},Ec={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(Ec.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 b=Date.UTC(i,r-1,l,c||0,d||0,h||0,g);const v=n[8];if(v&&v!=="Z"){let S=Op(v,!1);Math.abs(S)<30&&(S*=60),b-=6e4*S}return new Date(b)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""},Ib=[Js,Fs,_c,zc,E1,O1,A5,_5,z5,C5,j5,N5,k5,_p,ma,Cp,zp,Ep,R1,M1,Ec],Gb=new Map([["core",v5],["failsafe",[Js,Fs,_c]],["json",w5],["yaml11",Ib],["yaml-1.1",Ib]]),Hb={binary:_p,bool:kp,float:j1,floatExp:w1,floatNaN:x1,floatTime:M1,int:A1,intHex:_1,intOct:k1,intTime:R1,map:Js,merge:ma,null:zc,omap:Cp,pairs:zp,seq:Fs,set:Ep,timestamp:Ec},T5={"tag:yaml.org,2002:binary":_p,"tag:yaml.org,2002:merge":ma,"tag:yaml.org,2002:omap":Cp,"tag:yaml.org,2002:pairs":zp,"tag:yaml.org,2002:set":Ep,"tag:yaml.org,2002:timestamp":Ec};function of(e,n,i){const r=Gb.get(n);if(r&&!e)return i&&!r.includes(ma)?r.concat(ma):r.slice();let l=r;if(!l)if(Array.isArray(e))l=[];else{const c=Array.from(Gb.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(ma)),l.reduce((c,d)=>{const h=typeof d=="string"?Hb[d]:d;if(!h){const g=JSON.stringify(d),b=Object.keys(Hb).map(v=>JSON.stringify(v)).join(", ");throw new Error(`Unknown custom tag ${g}; use one of ${b}`)}return c.includes(h)||c.push(h),c},[])}const E5=(e,n)=>e.key<n.key?-1:e.key>n.key?1:0;class Dp{constructor({compat:n,customTags:i,merge:r,resolveKnownTags:l,schema:c,sortMapEntries:d,toStringDefaults:h}){this.compat=Array.isArray(n)?of(n,"compat"):n?of(null,n):null,this.name=typeof c=="string"&&c||"core",this.knownTags=l?T5:{},this.tags=of(i,this.name,r),this.toStringOptions=h??null,Object.defineProperty(this,Za,{value:Js}),Object.defineProperty(this,Pn,{value:_c}),Object.defineProperty(this,Ys,{value:Fs}),this.sortMapEntries=typeof d=="function"?d:d===!0?E5:null}clone(){const n=Object.create(Dp.prototype,Object.getOwnPropertyDescriptors(this));return n.tags=this.tags.slice(),n}}function O5(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=y1(e,n),{commentString:c}=l.options;if(e.commentBefore){i.length!==1&&i.unshift("");const g=c(e.commentBefore);i.unshift(pa(g,""))}let d=!1,h=null;if(e.contents){if(bt(e.contents)){if(e.contents.spaceBefore&&r&&i.push(""),e.contents.commentBefore){const v=c(e.contents.commentBefore);i.push(pa(v,""))}l.forceBlockIndent=!!e.comment,h=e.contents.comment}const g=h?void 0:()=>d=!0;let b=Vs(e.contents,l,()=>h=null,g);h&&(b+=wi(b,"",c(h))),(b[0]==="|"||b[0]===">")&&i[i.length-1]==="---"?i[i.length-1]=`--- ${b}`:i.push(b)}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(pa(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(pa(c(g),"")))}return i.join(`
|
|
119
119
|
`)+`
|
|
120
|
-
`}class Oc{constructor(n,i,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,An,{value:zf});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(Oc.prototype,{[An]:{value:zf}});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=bt(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=f1(this);n.anchor=!i||r.has(i)?p1(i||"a",r):i}return new wp(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=I=>typeof I=="number"||I instanceof String||I 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:b,tag:v}=r??{},{onAnchor:S,setAnchors:j,sourceObjects:_}=
|
|
120
|
+
`}class Oc{constructor(n,i,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,An,{value:zf});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(Oc.prototype,{[An]:{value:zf}});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=bt(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=f1(this);n.anchor=!i||r.has(i)?p1(i||"a",r):i}return new wp(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=I=>typeof I=="number"||I instanceof String||I 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:b,tag:v}=r??{},{onAnchor:S,setAnchors:j,sourceObjects:_}=s5(this,d||"a"),C={aliasDuplicateObjects:c??!0,keepUndefined:g??!1,onAnchor:S,onTagObj:b,replacer:l,schema:this.schema,sourceObjects:_},k=lo(n,v,C);return h&&yt(k)&&(k.flow=!0),j(),k}createPair(n,i,r={}){const l=this.createNode(n,null,r),c=this.createNode(i,null,r);return new Zt(l,c)}delete(n){return _s(this.contents)?this.contents.delete(n):!1}deleteIn(n){return no(n)?this.contents==null?!1:(this.contents=null,!0):_s(this.contents)?this.contents.deleteIn(n):!1}get(n,i){return yt(this.contents)?this.contents.get(n,i):void 0}getIn(n,i){return no(n)?!i&&at(this.contents)?this.contents.value:this.contents:yt(this.contents)?this.contents.getIn(n,i):void 0}has(n){return yt(this.contents)?this.contents.has(n):!1}hasIn(n){return no(n)?this.contents!==void 0:yt(this.contents)?this.contents.hasIn(n):!1}set(n,i){this.contents==null?this.contents=cc(this.schema,[n],i):_s(this.contents)&&this.contents.set(n,i)}setIn(n,i){no(n)?this.contents=i:this.contents==null?this.contents=cc(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 Dp(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=kn(this.contents,i??"",h);if(typeof c=="function")for(const{count:b,res:v}of h.anchors.values())c(v,b);return typeof d=="function"?Os(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 O5(this,n)}}function _s(e){if(yt(e))return!0;throw new Error("Expected a YAML collection as document contents")}class B1 extends Error{constructor(n,i,r,l){super(),this.name=n,this.code=r,this.message=l,this.pos=i}}class Pl extends B1{constructor(n,i,r){super("YAMLParseError",n,i,r)}}class D5 extends B1{constructor(n,i,r){super("YAMLWarning",n,i,r)}}const Pb=(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 b=" ".repeat(c)+"^".repeat(h);i.message+=`:
|
|
122
122
|
|
|
123
123
|
${d}
|
|
124
124
|
${b}
|
|
125
125
|
`}};function Is(e,{flow:n,indicator:i,next:r,offset:l,onError:c,parentIndent:d,startOnNewline:h}){let g=!1,b=h,v=h,S="",j="",_=!1,C=!1,k=null,E=null,R=null,I=null,H=null,K=null,Y=null;for(const M of e)switch(C&&(M.type!=="space"&&M.type!=="newline"&&M.type!=="comma"&&c(M.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),C=!1),k&&(b&&M.type!=="comment"&&M.type!=="newline"&&c(k,"TAB_AS_INDENT","Tabs are not allowed as indentation"),k=null),M.type){case"space":!n&&(i!=="doc-start"||r?.type!=="flow-collection")&&M.source.includes(" ")&&(k=M),v=!0;break;case"comment":{v||c(M,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const oe=M.source.substring(1)||" ";S?S+=j+oe:S=oe,j="",b=!1;break}case"newline":b?S?S+=M.source:(!K||i!=="seq-item-ind")&&(g=!0):j+=M.source,b=!0,_=!0,(E||R)&&(I=M),v=!0;break;case"anchor":E&&c(M,"MULTIPLE_ANCHORS","A node can have at most one anchor"),M.source.endsWith(":")&&c(M.offset+M.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),E=M,Y??(Y=M.offset),b=!1,v=!1,C=!0;break;case"tag":{R&&c(M,"MULTIPLE_TAGS","A node can have at most one tag"),R=M,Y??(Y=M.offset),b=!1,v=!1,C=!0;break}case i:(E||R)&&c(M,"BAD_PROP_ORDER",`Anchors and tags must be after the ${M.source} indicator`),K&&c(M,"UNEXPECTED_TOKEN",`Unexpected ${M.source} in ${n??"collection"}`),K=M,b=i==="seq-item-ind"||i==="explicit-key-ind",v=!1;break;case"comma":if(n){H&&c(M,"UNEXPECTED_TOKEN",`Unexpected , in ${n}`),H=M,b=!1,v=!1;break}default:c(M,"UNEXPECTED_TOKEN",`Unexpected ${M.type} token`),b=!1,v=!1}const J=e[e.length-1],O=J?J.offset+J.source.length:l;return C&&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&&(b&&k.indent<=d||r?.type==="block-map"||r?.type==="block-seq")&&c(k,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:H,found:K,spaceBefore:g,comment:S,hasNewline:_,anchor:E,tag:R,newlineAfterProp:I,end:O,start:Y??O}}function co(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(co(n.key)||co(n.value))return!0}return!1;default:return!0}}function Of(e,n,i){if(n?.type==="flow-collection"){const r=n.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&co(n)&&i(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function L1(e,n,i){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const l=typeof r=="function"?r:(c,d)=>c===d||at(c)&&at(d)&&c.value===d.value;return n.some(c=>l(c.key,i))}const Zb="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(co(n.key)||co(n.value))return!0}return!1;default:return!0}}function Of(e,n,i){if(n?.type==="flow-collection"){const r=n.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&co(n)&&i(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function L1(e,n,i){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const l=typeof r=="function"?r:(c,d)=>c===d||at(c)&&at(d)&&c.value===d.value;return n.some(c=>l(c.key,i))}const Zb="All mapping items must start at the same column";function R5({composeNode:e,composeEmptyNode:n},i,r,l,c){const d=c?.nodeClass??Nn,h=new d(i.schema);i.atRoot&&(i.atRoot=!1);let g=r.offset,b=null;for(const v of r.items){const{start:S,key:j,sep:_,value:C}=v,k=Is(S,{indicator:"explicit-key-ind",next:j??_?.[0],offset:g,onError:l,parentIndent:r.indent,startOnNewline:!0}),E=!k.found;if(E){if(j&&(j.type==="block-seq"?l(g,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in j&&j.indent!==r.indent&&l(g,"BAD_INDENT",Zb)),!k.anchor&&!k.tag&&!_){b=k.end,k.comment&&(h.comment?h.comment+=`
|
|
127
127
|
`+k.comment:h.comment=k.comment);continue}(k.newlineAfterProp||co(j))&&l(j??S[S.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else k.found?.indent!==r.indent&&l(g,"BAD_INDENT",Zb);i.atKey=!0;const R=k.end,I=j?e(i,j,k,l):n(i,R,S,null,k,l);i.schema.compat&&Of(r.indent,j,l),i.atKey=!1,L1(i,h.items,I)&&l(R,"DUPLICATE_KEY","Map keys must be unique");const H=Is(_??[],{indicator:"map-value-ind",next:C,offset:I.range[2],onError:l,parentIndent:r.indent,startOnNewline:!j||j.type==="block-scalar"});if(g=H.end,H.found){E&&(C?.type==="block-map"&&!H.hasNewline&&l(g,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),i.options.strict&&k.start<H.found.offset-1024&&l(I.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));const K=C?e(i,C,H,l):n(i,g,_,null,H,l);i.schema.compat&&Of(r.indent,C,l),g=K.range[2];const Y=new Zt(I,K);i.options.keepSourceTokens&&(Y.srcToken=v),h.items.push(Y)}else{E&&l(I.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),H.comment&&(I.comment?I.comment+=`
|
|
128
|
-
`+H.comment:I.comment=H.comment);const K=new Zt(I);i.options.keepSourceTokens&&(K.srcToken=v),h.items.push(K)}}return b&&b<g&&l(b,"IMPOSSIBLE","Map comment with trailing content"),h.range=[r.offset,g,b??g],h}function
|
|
128
|
+
`+H.comment:I.comment=H.comment);const K=new Zt(I);i.options.keepSourceTokens&&(K.srcToken=v),h.items.push(K)}}return b&&b<g&&l(b,"IMPOSSIBLE","Map comment with trailing content"),h.range=[r.offset,g,b??g],h}function M5({composeNode:e,composeEmptyNode:n},i,r,l,c){const d=c?.nodeClass??Ai,h=new d(i.schema);i.atRoot&&(i.atRoot=!1),i.atKey&&(i.atKey=!1);let g=r.offset,b=null;for(const{start:v,value:S}of r.items){const j=Is(v,{indicator:"seq-item-ind",next:S,offset:g,onError:l,parentIndent:r.indent,startOnNewline:!0});if(!j.found)if(j.anchor||j.tag||S)S?.type==="block-seq"?l(j.end,"BAD_INDENT","All sequence items must start at the same column"):l(g,"MISSING_CHAR","Sequence item without - indicator");else{b=j.end,j.comment&&(h.comment=j.comment);continue}const _=S?e(i,S,j,l):n(i,j.end,v,null,j,l);i.schema.compat&&Of(r.indent,S,l),g=_.range[2],h.items.push(_)}return h.range=[r.offset,g,b??g],h}function go(e,n,i,r){let l="";if(e){let c=!1,d="";for(const h of e){const{source:g,type:b}=h;switch(b){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 v=g.substring(1)||" ";l?l+=d+v:l=v,d="";break}case"newline":l&&(d+=g),c=!0;break;default:r(h,"UNEXPECTED_TOKEN",`Unexpected ${b} at node end`)}n+=g.length}}return{comment:l,offset:n}}const lf="Block collections are not allowed within flow collections",cf=e=>e&&(e.type==="block-map"||e.type==="block-seq");function B5({composeNode:e,composeEmptyNode:n},i,r,l,c){const d=r.start.source==="{",h=d?"flow map":"flow sequence",g=c?.nodeClass??(d?Nn:Ai),b=new g(i.schema);b.flow=!0;const v=i.atRoot;v&&(i.atRoot=!1),i.atKey&&(i.atKey=!1);let S=r.offset+r.start.source.length;for(let E=0;E<r.items.length;++E){const R=r.items[E],{start:I,key:H,sep:K,value:Y}=R,J=Is(I,{flow:h,indicator:"explicit-key-ind",next:H??K?.[0],offset:S,onError:l,parentIndent:r.indent,startOnNewline:!1});if(!J.found){if(!J.anchor&&!J.tag&&!K&&!Y){E===0&&J.comma?l(J.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${h}`):E<r.items.length-1&&l(J.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${h}`),J.comment&&(b.comment?b.comment+=`
|
|
129
129
|
`+J.comment:b.comment=J.comment),S=J.end;continue}!d&&i.options.strict&&co(H)&&l(H,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(E===0)J.comma&&l(J.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${h}`);else if(J.comma||l(J.start,"MISSING_CHAR",`Missing , between ${h} items`),J.comment){let O="";e:for(const M of I)switch(M.type){case"comma":case"space":break;case"comment":O=M.source.substring(1);break e;default:break e}if(O){let M=b.items[b.items.length-1];vt(M)&&(M=M.value??M.key),M.comment?M.comment+=`
|
|
130
130
|
`+O:M.comment=O,J.comment=J.comment.substring(O.length+1)}}if(!d&&!K&&!J.found){const O=Y?e(i,Y,J,l):n(i,J.end,K,null,J,l);b.items.push(O),S=O.range[2],cf(Y)&&l(O.range,"BLOCK_IN_FLOW",lf)}else{i.atKey=!0;const O=J.end,M=H?e(i,H,J,l):n(i,O,I,null,J,l);cf(H)&&l(M.range,"BLOCK_IN_FLOW",lf),i.atKey=!1;const oe=Is(K??[],{flow:h,indicator:"map-value-ind",next:Y,offset:M.range[2],onError:l,parentIndent:r.indent,startOnNewline:!1});if(oe.found){if(!d&&!J.found&&i.options.strict){if(K)for(const ve of K){if(ve===oe.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}}J.start<oe.found.offset-1024&&l(oe.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else Y&&("source"in Y&&Y.source?.[0]===":"?l(Y,"MISSING_CHAR",`Missing space after : in ${h}`):l(oe.start,"MISSING_CHAR",`Missing , or : between ${h} items`));const ke=Y?e(i,Y,oe,l):oe.found?n(i,oe.end,K,null,oe,l):null;ke?cf(Y)&&l(ke.range,"BLOCK_IN_FLOW",lf):oe.comment&&(M.comment?M.comment+=`
|
|
131
131
|
`+oe.comment:M.comment=oe.comment);const _e=new Zt(M,ke);if(i.options.keepSourceTokens&&(_e.srcToken=R),d){const ve=b;L1(i,ve.items,M)&&l(O,"DUPLICATE_KEY","Map keys must be unique"),ve.items.push(_e)}else{const ve=new Nn(i.schema);ve.flow=!0,ve.items.push(_e);const tt=(ke??M).range;ve.range=[M.range[0],tt[1],tt[2]],b.items.push(ve)}S=ke?ke.range[2]:oe.end}}const j=d?"}":"]",[_,...C]=r.end;let k=S;if(_?.source===j)k=_.offset+_.source.length;else{const E=h[0].toUpperCase()+h.substring(1),R=v?`${E} must end with a ${j}`:`${E} in block collection must be sufficiently indented and end with a ${j}`;l(S,v?"MISSING_CHAR":"BAD_INDENT",R),_&&_.source.length!==1&&C.unshift(_)}if(C.length>0){const E=go(C,k,i.options.strict,l);E.comment&&(b.comment?b.comment+=`
|
|
132
|
-
`+E.comment:b.comment=E.comment),b.range=[r.offset,k,E.offset]}else b.range=[r.offset,k,k];return b}function uf(e,n,i,r,l,c){const d=i.type==="block-map"?
|
|
132
|
+
`+E.comment:b.comment=E.comment),b.range=[r.offset,k,E.offset]}else b.range=[r.offset,k,k];return b}function uf(e,n,i,r,l,c){const d=i.type==="block-map"?R5(e,n,i,r,c):i.type==="block-seq"?M5(e,n,i,r,c):B5(e,n,i,r,c),h=d.constructor;return l==="!"||l===h.tagName?(d.tag=h.tagName,d):(l&&(d.tag=l),d)}function L5(e,n,i,r,l){const c=r.tag,d=c?n.directives.tagName(c.source,j=>l(c,"TAG_RESOLVE_FAILED",j)):null;if(i.type==="block-seq"){const{anchor:j,newlineAfterProp:_}=r,C=j&&c?j.offset>c.offset?j:c:j??c;C&&(!_||_.offset<C.offset)&&l(C,"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===Nn.tagName&&h==="map"||d===Ai.tagName&&h==="seq")return uf(e,n,i,l,d);let g=n.schema.tags.find(j=>j.tag===d&&j.collection===h);if(!g){const j=n.schema.knownTags[d];if(j?.collection===h)n.schema.tags.push(Object.assign({},j,{default:!1})),g=j;else return j?l(c,"BAD_COLLECTION_TYPE",`${j.tag} used for ${h} collection, but expects ${j.collection??"scalar"}`,!0):l(c,"TAG_RESOLVE_FAILED",`Unresolved tag: ${d}`,!0),uf(e,n,i,l,d)}const b=uf(e,n,i,l,d,g),v=g.resolve?.(b,j=>l(c,"TAG_RESOLVE_FAILED",j),n.options)??b,S=bt(v)?v:new Ae(v);return S.range=b.range,S.tag=d,g?.format&&(S.format=g.format),S}function q5(e,n,i){const r=n.offset,l=U5(n,e.options.strict,i);if(!l)return{value:"",type:null,comment:"",range:[r,r,r]};const c=l.mode===">"?Ae.BLOCK_FOLDED:Ae.BLOCK_LITERAL,d=n.source?$5(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,b=n.offset+l.length,v=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(b+E.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),l.indent===0&&(g=E.length),v=k,g===0&&!e.atRoot&&i(b,"BAD_INDENT","Block scalar values in collections must be indented");break}b+=E.length+R.length+1}for(let k=d.length-1;k>=h;--k)d[k][0].length>g&&(h=k+1);let S="",j="",_=!1;for(let k=0;k<v;++k)S+=d[k][0].slice(g)+`
|
|
134
134
|
`;for(let k=v;k<h;++k){let[E,R]=d[k];b+=E.length+R.length+1;const I=R[R.length-1]==="\r";if(I&&(R=R.slice(0,-1)),R&&E.length<g){const K=`Block scalar lines must not be less indented than their ${l.indent?"explicit indentation indicator":"first line"}`;i(b-R.length-(I?2:1),"BAD_INDENT",K),E=""}c===Ae.BLOCK_LITERAL?(S+=j+E.slice(g)+R,j=`
|
|
135
135
|
`):E.length>g||R[0]===" "?(j===" "?j=`
|
|
@@ -144,33 +144,33 @@ ${b}
|
|
|
144
144
|
`+d[k][0].slice(g);S[S.length-1]!==`
|
|
145
145
|
`&&(S+=`
|
|
146
146
|
`);break;default:S+=`
|
|
147
|
-
`}const C=r+l.length+n.source.length;return{value:S,type:c,comment:l.comment,range:[r,C,C]}}function
|
|
147
|
+
`}const C=r+l.length+n.source.length;return{value:S,type:c,comment:l.comment,range:[r,C,C]}}function U5({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 j=1;j<l.length;++j){const _=l[j];if(!h&&(_==="-"||_==="+"))h=_;else{const C=Number(_);!d&&C?d=C:g===-1&&(g=e+j)}}g!==-1&&r(g,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${l}`);let b=!1,v="",S=l.length;for(let j=1;j<n.length;++j){const _=n[j];switch(_.type){case"space":b=!0;case"newline":S+=_.source.length;break;case"comment":i&&!b&&r(_,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),S+=_.source.length,v=_.source.substring(1);break;case"error":r(_,"UNEXPECTED_TOKEN",_.message),S+=_.source.length;break;default:{const C=`Unexpected token in block scalar header: ${_.type}`;r(_,"UNEXPECTED_TOKEN",C);const k=_.source;k&&typeof k=="string"&&(S+=k.length)}}}return{mode:c,indent:d,chomp:h,comment:v,length:S}}function $5(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 V5(e,n,i){const{offset:r,type:l,source:c,end:d}=e;let h,g;const b=(j,_,C)=>i(r+j,_,C);switch(l){case"scalar":h=Ae.PLAIN,g=I5(c,b);break;case"single-quoted-scalar":h=Ae.QUOTE_SINGLE,g=G5(c,b);break;case"double-quoted-scalar":h=Ae.QUOTE_DOUBLE,g=H5(c,b);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 v=r+c.length,S=go(d,v,n,i);return{value:g,type:h,comment:S.comment,range:[r,v,S.offset]}}function I5(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}`),q1(e)}function G5(e,n){return(e[e.length-1]!=="'"||e.length===1)&&n(e.length,"MISSING_CHAR","Missing closing 'quote"),q1(e.slice(1,-1)).replace(/''/g,"'")}function q1(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 H5(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}=P5(e,r);i+=c,r=d}else if(l==="\\"){let c=e[++r];const d=Z5[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+=K5(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 P5(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 Z5={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
162
|
+
`,r:"\r",t:" ",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function K5(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 U1(e,n,i,r){const{value:l,type:c,comment:d,range:h}=n.type==="block-scalar"?q5(e,n,r):V5(n,e.options.strict,r),g=i?e.directives.tagName(i.source,S=>r(i,"TAG_RESOLVE_FAILED",S)):null;let b;e.options.stringKeys&&e.atKey?b=e.schema[Pn]:g?b=Q5(e.schema,l,g,i,r):n.type==="scalar"?b=Y5(e,l,n,r):b=e.schema[Pn];let v;try{const S=b.resolve(l,j=>r(i??n,"TAG_RESOLVE_FAILED",j),e.options);v=at(S)?S:new Ae(S)}catch(S){const j=S instanceof Error?S.message:String(S);r(i??n,"TAG_RESOLVE_FAILED",j),v=new Ae(l)}return v.range=h,v.source=l,c&&(v.type=c),g&&(v.tag=g),b.format&&(v.format=b.format),d&&(v.comment=d),v}function Q5(e,n,i,r,l){if(i==="!")return e[Pn];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[Pn])}function Y5({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[Pn];if(i.compat){const h=i.compat.find(g=>g.default&&g.test?.test(r))??i[Pn];if(d.tag!==h.tag){const g=n.tagString(d.tag),b=n.tagString(h.tag),v=`Value may be parsed as either ${g} or ${b}`;c(l,"TAG_RESOLVE_FAILED",v,!0)}}return d}function X5(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 J5={composeNode:$1,composeEmptyNode:Rp};function $1(e,n,i,r){const l=e.atKey,{spaceBefore:c,comment:d,anchor:h,tag:g}=i;let b,v=!0;switch(n.type){case"alias":b=F5(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":b=U1(e,n,g,r),h&&(b.anchor=h.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":b=L5(J5,e,n,i,r),h&&(b.anchor=h.source.substring(1));break;default:{const S=n.type==="error"?n.message:`Unsupported token (type: ${n.type})`;r(n,"UNEXPECTED_TOKEN",S),b=Rp(e,n.offset,void 0,null,i,r),v=!1}}return h&&b.anchor===""&&r(h,"BAD_ALIAS","Anchor cannot be an empty string"),l&&e.options.stringKeys&&(!at(b)||typeof b.value!="string"||b.tag&&b.tag!=="tag:yaml.org,2002:str")&&r(g??n,"NON_STRING_KEY","With stringKeys, all keys must be strings"),c&&(b.spaceBefore=!0),d&&(n.type==="scalar"&&n.source===""?b.comment=d:b.commentBefore=d),e.options.keepSourceTokens&&v&&(b.srcToken=n),b}function Rp(e,n,i,r,{spaceBefore:l,comment:c,anchor:d,tag:h,end:g},b){const v={type:"scalar",offset:X5(n,i,r),indent:-1,source:""},S=U1(e,v,h,b);return d&&(S.anchor=d.source.substring(1),S.anchor===""&&b(d,"BAD_ALIAS","Anchor cannot be an empty string")),l&&(S.spaceBefore=!0),c&&(S.comment=c,S.range[2]=g),S}function F5({options:e},{offset:n,source:i,end:r},l){const c=new wp(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=go(r,d,e.strict,l);return c.range=[n,d,h.offset],h.comment&&(c.comment=h.comment),c}function W5(e,n,{offset:i,start:r,value:l,end:c},d){const h=Object.assign({_directives:n},e),g=new Oc(void 0,h),b={atKey:!1,atRoot:!0,directives:g.directives,options:g.options,schema:g.schema},v=Is(r,{indicator:"doc-start",next:l??c?.[0],offset:i,onError:d,parentIndent:0,startOnNewline:!0});v.found&&(g.directives.docStart=!0,l&&(l.type==="block-map"||l.type==="block-seq")&&!v.hasNewline&&d(v.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),g.contents=l?$1(b,l,v,d):Rp(b,v.end,r,null,v,d);const S=g.contents.range[2],j=go(c,S,!1,d);return j.comment&&(g.comment=j.comment),g.range=[i,S,j.offset],g}function eo(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 Kb(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 eR{constructor(n={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(i,r,l,c)=>{const d=eo(i);c?this.warnings.push(new D5(d,r,l)):this.errors.push(new Pl(d,r,l))},this.directives=new Ht({version:n.version||"1.2"}),this.options=n}decorate(n,i){const{comment:r,afterEmptyLine:l}=Kb(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(yt(c)&&!c.flow&&c.items.length>0){let d=c.items[0];vt(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:Kb(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=eo(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 Pl(eo(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 Oc(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 V1="\uFEFF",I1="",G1="",Df="";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:Kb(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=eo(n);c[0]+=i,this.onError(c,"BAD_DIRECTIVE",r,l)}),this.prelude.push(n.source),this.atDirectives=!0;break;case"document":{const i=W5(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 Pl(eo(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 Pl(eo(n),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const i=go(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 Pl(eo(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 Oc(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 V1="\uFEFF",I1="",G1="",Df="";function tR(e){switch(e){case V1:return"byte-order-mark";case I1:return"doc-mode";case G1:return"flow-error-end";case Df: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 Mn(e){switch(e){case void 0:case" ":case`
|
|
172
|
-
`:case"\r":case" ":return!0;default:return!1}}const Qb=new Set("0123456789ABCDEFabcdef"),
|
|
173
|
-
\r `),df=e=>!e||
|
|
172
|
+
`:case"\r":case" ":return!0;default:return!1}}const Qb=new Set("0123456789ABCDEFabcdef"),nR=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Zl=new Set(",[]{}"),aR=new Set(` ,[]{}
|
|
173
|
+
\r `),df=e=>!e||aR.has(e);class iR{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 Df,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(Mn(c)||n&&Zl.has(c))break;i=r}else if(Mn(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&&Zl.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&&Zl.has(l))break;i=r}return!l&&!this.atEnd?this.setNext("plain-scalar"):(yield Df,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(df))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const n=this.flowLevel>0,i=this.charAt(1);if(Mn(i)||n&&Zl.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(;!Mn(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&&Zl.has(l))break;i=r}return!l&&!this.atEnd?this.setNext("plain-scalar"):(yield Df,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(df))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const n=this.flowLevel>0,i=this.charAt(1);if(Mn(i)||n&&Zl.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(;!Mn(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(nR.has(i))i=this.buffer[++n];else if(i==="%"&&Qb.has(this.buffer[n+1])&&Qb.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 sR{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 Pa(e,n){for(let i=0;i<e.length;++i)if(e[i].type===n)return!0;return!1}function Yb(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 H1(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 Kl(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 zs(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 Xb(e){if(e.start.type==="flow-seq-start")for(const n of e.items)n.sep&&!n.value&&!Pa(n.start,"explicit-key-ind")&&!Pa(n.sep,"map-value-ind")&&(n.key&&(n.value=n.key),delete n.key,H1(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 rR{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 iR,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=tR(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"&&Xb(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&&Yb(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":{Yb(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=Kl(this.peek(2)),r=zs(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(Pa(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(H1(i.key)&&!Pa(i.sep,"newline")){const d=zs(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(Pa(i.start,"newline"))Object.assign(i,{key:null,sep:[this.sourceToken]});else{const d=zs(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]}):Pa(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&&!Pa(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||Pa(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=Kl(r),c=zs(l);Xb(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=Kl(n),r=zs(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=Kl(n),r=zs(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=Kl(n),r=zs(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=Kl(n),r=zs(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 oR(e){const n=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||n&&new sR||null,prettyErrors:n}}function lR(e,n={}){const{lineCounter:i,prettyErrors:r}=oR(n),l=new rR(i?.addNewLine),c=new eR(n),d=Array.from(c.compose(l.parse(e)));if(r&&i)for(const h of d)h.errors.forEach(Pb(e,i)),h.warnings.forEach(Pb(e,i));return d.length>0?d:Object.assign([],{empty:!0},c.streamInfo())}function cR({onApplied:e}){const[n,i]=q.useState(""),[r,l]=q.useState(!1),[c,d]=q.useState([]),[h,g]=q.useState([]),b=async()=>{if(!n.trim())return;l(!0),d([]),g([]);const v=lR(n),S=[],j=[];for(let _=0;_<v.length;_++){const C=v[_];if(C.errors.length>0){S.push(`Document ${_+1}: ${C.errors[0]?.message}`);continue}const k=C.toJSON();if(!(!k||typeof k!="object"))try{const E=await ik(k);j.push(`Applied "${E.displayName||E.name}" (revision ${E.configRevision})`)}catch(E){S.push(`Document ${_+1}: ${E instanceof Error?E.message:String(E)}`)}}d(j),g(S),l(!1),j.length>0&&(dn({title:"YAML applied",detail:`Applied ${j.length} document${j.length===1?"":"s"} successfully.`,tone:S.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-zinc-200",children:"Apply YAML"})]})}),f.jsxs("p",{className:"text-zinc-500 text-sm mb-3",children:["Paste a ",f.jsx("code",{className:"text-zinc-400",children:"canonry.yaml"})," config (multi-document YAML with ",f.jsx("code",{className:"text-zinc-400",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,7 +199,7 @@ spec:
|
|
|
199
199
|
canonicalDomain: example.com
|
|
200
200
|
country: US
|
|
201
201
|
language: en
|
|
202
|
-
queries: []`,value:n,onChange:v=>i(v.target.value)}),c.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:c.map((v,S)=>f.jsx("li",{className:"text-emerald-400 text-sm",children:v},S))}),h.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:h.map((v,S)=>f.jsx("li",{className:"text-rose-400 text-sm",children:v},S))}),f.jsx("div",{className:"mt-3",children:f.jsx(Ue,{type:"button",disabled:!n.trim()||r,onClick:wn(b),children:r?"Applying...":"Apply"})})]})}function cR(){const{dashboard:e,isLoading:n,refetch:i}=xc();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-zinc-800/60 bg-zinc-900/30 overflow-hidden",children:[f.jsx("div",{className:"p-3 border-b border-zinc-800/60 flex gap-8",children:["Name","Domain","Mentions","Last run","Country"].map(O=>f.jsx("div",{className:"skeleton-text-sm w-16"},O))}),[1,2,3].map(O=>f.jsxs("div",{className:"p-3 border-b border-zinc-800/40 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"})]},O))]})]});const r=e.projects,l=dc(),[c,d]=q.useState(!1),[h,g]=q.useState(""),[b,v]=q.useState(""),[S,j]=q.useState(""),[_,C]=q.useState("US"),[k,E]=q.useState("en"),[R,I]=q.useState(!1),[H,K]=q.useState(null),Y=h.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),J=async()=>{if(!(!Y||!S)){I(!0),K(null);try{const O=await uo(Y,{displayName:b||h,canonicalDomain:S,country:_,language:k});dn({title:"Project created",detail:`${O.displayName||O.name} is ready to configure.`,tone:"positive",dedupeKey:`project:create:${O.name}`,dedupeMode:"drop"}),i(),g(""),v(""),j(""),C("US"),E("en"),d(!1),l({to:"/projects/$projectId",params:{projectId:O.id}})}catch(O){K(O instanceof Error?O.message:"Failed to create project")}finally{I(!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(O=>!O),children:[f.jsx(Uy,{className:"size-4 mr-1.5"}),"Add project"]})})]}),c?f.jsxs(jn,{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-zinc-200",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:O=>g(O.target.value)}),Y&&Y!==h?f.jsxs("p",{className:"supporting-copy",children:["Slug: ",Y]}):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:b,onChange:O=>v(O.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:S,onChange:O=>j(O.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:O=>C(O.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:O=>E(O.target.value.toLowerCase())})]})]})]}),H?f.jsx("p",{className:"text-rose-400 text-sm mt-3",children:H}):null,f.jsxs("div",{className:"flex items-center gap-3 mt-4",children:[f.jsx(Ue,{type:"button",disabled:!Y||!S||R,onClick:wn(J),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(O=>{const M=O.recentRuns[0];return f.jsxs("tr",{className:"cursor-pointer",onClick:()=>{l({to:"/projects/$projectId",params:{projectId:O.project.id}})},children:[f.jsxs("td",{children:[f.jsx(rt,{to:"/projects/$projectId",params:{projectId:O.project.id},className:"text-zinc-100 font-medium hover:underline",onClick:oe=>oe.stopPropagation(),children:O.project.displayName||O.project.name}),f.jsx("p",{className:"text-[11px] text-zinc-500",children:O.project.name})]}),f.jsx("td",{className:"text-zinc-400",children:O.project.canonicalDomain}),f.jsx("td",{children:f.jsx(Ln,{tone:O.mentionSummary.tone,children:O.mentionSummary.value})}),f.jsx("td",{className:"text-zinc-500 text-sm",children:M?f.jsx(pp,{status:M.status}):f.jsx("span",{className:"text-zinc-600",children:"No runs"})}),f.jsx("td",{className:"text-right text-zinc-500",children:O.project.country})]},O.project.id)})})]})}):c?null:f.jsxs(jn,{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(Uy,{className:"size-4 mr-1.5"}),"Add project"]})]}),f.jsx(lR,{onApplied:()=>{i()}})]})}function P1(e){e.invalidateQueries({queryKey:cp({client:ae})}),e.invalidateQueries({queryKey:Qs({client:ae})})}function uR(e){return e==="gsc-sync"?"GSC sync queued":e==="inspect-sitemap"?"Sitemap inspection queued":"Visibility sweep queued"}function dR(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 Dc(e,n){R0({id:e.id,projectId:e.projectId,kind:e.kind,projectLabel:n.projectLabel,sourceAction:n.sourceAction,lastAnnouncedStatus:"queued"}),dn({title:uR(e.kind),detail:dR(n.projectLabel,e.kind),tone:"neutral",dedupeKey:`run:${e.id}`,dedupeMode:"replace"})}function fR(e){const n=e.filter(l=>l.status!=="conflict"),i=e.filter(l=>l.status==="conflict");if(n.length===0){dn({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)R0({id:l.id,projectId:l.projectId,kind:l.kind,projectLabel:l.projectName,sourceAction:"run-all",lastAnnouncedStatus:"queued"});const r=T4({runIds:n.map(l=>l.id),queuedCount:n.length,skippedCount:i.length});dn({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 Rc(e,n){if(e instanceof Hn&&e.code==="RUN_IN_PROGRESS"){dn({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}dn({title:e instanceof Error?e.message:"Failed to queue run",tone:"negative"})}function pR(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>WN(n,i),onSuccess:(n,i)=>{P1(e),Dc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})}})}function oL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:n=>sk(n),onSuccess:n=>{P1(e),fR(n)},onError:n=>{dn({title:n instanceof Error?n.message:"Failed to queue runs",tone:"negative"})}})}function lL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>rk(n,i),onSuccess:(n,i)=>{wc(e,Te["gsc-sync"],i.projectName),Dc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})}})}function cL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n})=>ck(n),onSuccess:(n,i)=>{wc(e,n.run.kind,i.projectName),Dc(n.run,{projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})}})}function uL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>lk(n,i),onSuccess:(n,i)=>{wc(e,Te["inspect-sitemap"],i.projectName),Dc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})}})}function Z1(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 dL(){const e=Ya();return _i({mutationFn:({projectName:n,queries:i})=>XN(n,i),onSuccess:()=>{e.invalidateQueries({queryKey:Qs({client:ae})}),e.invalidateQueries({predicate:Z1})}})}function fL(){const e=Ya();return _i({mutationFn:({projectName:n,body:i})=>JN(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:Z1})}})}const mR=[{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 hR({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 gR(){const e=fo(),{dashboard:n,isLoading:i,refetch:r}=xc(),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(te=>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"})]},te))})]})]});const c=l.settings,g=hp(!e,e?.health).data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},b=N4(l.setup,g,c),v=dc(),[S,j]=q.useState(0),[_,C]=q.useState(""),[k,E]=q.useState(""),[R,I]=q.useState(""),[H,K]=q.useState("US"),[Y,J]=q.useState("en"),[O,M]=q.useState(!1),[oe,ke]=q.useState(null),[_e,ve]=q.useState(null),[tt,re]=q.useState(null),[me,$]=q.useState(!1),[W,fe]=q.useState(""),[je,ie]=q.useState(!1),[Qe,F]=q.useState(null),[le,ee]=q.useState(!1),ce=c.providerStatuses.filter(te=>te.state==="ready"),[ne,Ne]=q.useState(ce[0]?.name??""),[nt,xe]=q.useState(5),[$e,Pe]=q.useState(!1),[Et,Cn]=q.useState(null),[Ot,Ws]=q.useState(""),[Ei,Mc]=q.useState(!1),[er,Oi]=q.useState(null),[Di,Ri]=q.useState(!1),[yo,Bc]=q.useState(!1),[qt,bo]=q.useState(!1),[tr,vo]=q.useState(null),Mi=pR(),Lc=un({...T0({client:ae,path:{id:tr??""}}),enabled:!!tr,refetchInterval:({state:te})=>{const Fe=te.data?.status;return Fe==="completed"||Fe==="partial"||Fe==="failed"||Fe==="cancelled"?!1:2e3},refetchIntervalInBackground:!0}),[Bi,So]=q.useState(""),[nr,ba]=q.useState(!1),[Ut,Tn]=q.useState(null),mt=_.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),Un=W.split(`
|
|
202
|
+
queries: []`,value:n,onChange:v=>i(v.target.value)}),c.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:c.map((v,S)=>f.jsx("li",{className:"text-emerald-400 text-sm",children:v},S))}),h.length>0&&f.jsx("ul",{className:"mt-2 space-y-1",children:h.map((v,S)=>f.jsx("li",{className:"text-rose-400 text-sm",children:v},S))}),f.jsx("div",{className:"mt-3",children:f.jsx(Ue,{type:"button",disabled:!n.trim()||r,onClick:wn(b),children:r?"Applying...":"Apply"})})]})}function uR(){const{dashboard:e,isLoading:n,refetch:i}=xc();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-zinc-800/60 bg-zinc-900/30 overflow-hidden",children:[f.jsx("div",{className:"p-3 border-b border-zinc-800/60 flex gap-8",children:["Name","Domain","Mentions","Last run","Country"].map(O=>f.jsx("div",{className:"skeleton-text-sm w-16"},O))}),[1,2,3].map(O=>f.jsxs("div",{className:"p-3 border-b border-zinc-800/40 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"})]},O))]})]});const r=e.projects,l=dc(),[c,d]=q.useState(!1),[h,g]=q.useState(""),[b,v]=q.useState(""),[S,j]=q.useState(""),[_,C]=q.useState("US"),[k,E]=q.useState("en"),[R,I]=q.useState(!1),[H,K]=q.useState(null),Y=h.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),J=async()=>{if(!(!Y||!S)){I(!0),K(null);try{const O=await uo(Y,{displayName:b||h,canonicalDomain:S,country:_,language:k});dn({title:"Project created",detail:`${O.displayName||O.name} is ready to configure.`,tone:"positive",dedupeKey:`project:create:${O.name}`,dedupeMode:"drop"}),i(),g(""),v(""),j(""),C("US"),E("en"),d(!1),l({to:"/projects/$projectId",params:{projectId:O.id}})}catch(O){K(O instanceof Error?O.message:"Failed to create project")}finally{I(!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(O=>!O),children:[f.jsx(Uy,{className:"size-4 mr-1.5"}),"Add project"]})})]}),c?f.jsxs(jn,{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-zinc-200",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:O=>g(O.target.value)}),Y&&Y!==h?f.jsxs("p",{className:"supporting-copy",children:["Slug: ",Y]}):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:b,onChange:O=>v(O.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:S,onChange:O=>j(O.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:O=>C(O.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:O=>E(O.target.value.toLowerCase())})]})]})]}),H?f.jsx("p",{className:"text-rose-400 text-sm mt-3",children:H}):null,f.jsxs("div",{className:"flex items-center gap-3 mt-4",children:[f.jsx(Ue,{type:"button",disabled:!Y||!S||R,onClick:wn(J),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(O=>{const M=O.recentRuns[0];return f.jsxs("tr",{className:"cursor-pointer",onClick:()=>{l({to:"/projects/$projectId",params:{projectId:O.project.id}})},children:[f.jsxs("td",{children:[f.jsx(rt,{to:"/projects/$projectId",params:{projectId:O.project.id},className:"text-zinc-100 font-medium hover:underline",onClick:oe=>oe.stopPropagation(),children:O.project.displayName||O.project.name}),f.jsx("p",{className:"text-[11px] text-zinc-500",children:O.project.name})]}),f.jsx("td",{className:"text-zinc-400",children:O.project.canonicalDomain}),f.jsx("td",{children:f.jsx(Ln,{tone:O.mentionSummary.tone,children:O.mentionSummary.value})}),f.jsx("td",{className:"text-zinc-500 text-sm",children:M?f.jsx(pp,{status:M.status}):f.jsx("span",{className:"text-zinc-600",children:"No runs"})}),f.jsx("td",{className:"text-right text-zinc-500",children:O.project.country})]},O.project.id)})})]})}):c?null:f.jsxs(jn,{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(Uy,{className:"size-4 mr-1.5"}),"Add project"]})]}),f.jsx(cR,{onApplied:()=>{i()}})]})}function P1(e){e.invalidateQueries({queryKey:cp({client:ae})}),e.invalidateQueries({queryKey:Qs({client:ae})})}function dR(e){return e==="gsc-sync"?"GSC sync queued":e==="inspect-sitemap"?"Sitemap inspection queued":"Visibility sweep queued"}function fR(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 Dc(e,n){R0({id:e.id,projectId:e.projectId,kind:e.kind,projectLabel:n.projectLabel,sourceAction:n.sourceAction,lastAnnouncedStatus:"queued"}),dn({title:dR(e.kind),detail:fR(n.projectLabel,e.kind),tone:"neutral",dedupeKey:`run:${e.id}`,dedupeMode:"replace"})}function pR(e){const n=e.filter(l=>l.status!=="conflict"),i=e.filter(l=>l.status==="conflict");if(n.length===0){dn({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)R0({id:l.id,projectId:l.projectId,kind:l.kind,projectLabel:l.projectName,sourceAction:"run-all",lastAnnouncedStatus:"queued"});const r=E4({runIds:n.map(l=>l.id),queuedCount:n.length,skippedCount:i.length});dn({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 Rc(e,n){if(e instanceof Hn&&e.code==="RUN_IN_PROGRESS"){dn({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}dn({title:e instanceof Error?e.message:"Failed to queue run",tone:"negative"})}function mR(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>WN(n,i),onSuccess:(n,i)=>{P1(e),Dc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:i.sourceAction})}})}function lL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:n=>sk(n),onSuccess:n=>{P1(e),pR(n)},onError:n=>{dn({title:n instanceof Error?n.message:"Failed to queue runs",tone:"negative"})}})}function cL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>rk(n,i),onSuccess:(n,i)=>{wc(e,Te["gsc-sync"],i.projectName),Dc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"gsc-sync"})}})}function uL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n})=>ck(n),onSuccess:(n,i)=>{wc(e,n.run.kind,i.projectName),Dc(n.run,{projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"discover-sitemaps"})}})}function dL(){const e=Ya();return _i({meta:{skipGlobalErrorToast:!0},mutationFn:({projectName:n,opts:i})=>lk(n,i),onSuccess:(n,i)=>{wc(e,Te["inspect-sitemap"],i.projectName),Dc(n,{projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})},onError:(n,i)=>{Rc(n,{projectKey:i.projectName,projectLabel:i.projectLabel??i.projectName,sourceAction:"inspect-sitemap"})}})}function Z1(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 fL(){const e=Ya();return _i({mutationFn:({projectName:n,queries:i})=>XN(n,i),onSuccess:()=>{e.invalidateQueries({queryKey:Qs({client:ae})}),e.invalidateQueries({predicate:Z1})}})}function pL(){const e=Ya();return _i({mutationFn:({projectName:n,body:i})=>JN(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:Z1})}})}const hR=[{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 gR({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 yR(){const e=fo(),{dashboard:n,isLoading:i,refetch:r}=xc(),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(te=>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"})]},te))})]})]});const c=l.settings,g=hp(!e,e?.health).data??e?.health??{apiStatus:{label:"API",state:"checking",detail:"Checking service health"},workerStatus:{label:"Worker",state:"checking",detail:"Checking service health"}},b=k4(l.setup,g,c),v=dc(),[S,j]=q.useState(0),[_,C]=q.useState(""),[k,E]=q.useState(""),[R,I]=q.useState(""),[H,K]=q.useState("US"),[Y,J]=q.useState("en"),[O,M]=q.useState(!1),[oe,ke]=q.useState(null),[_e,ve]=q.useState(null),[tt,re]=q.useState(null),[me,$]=q.useState(!1),[W,fe]=q.useState(""),[je,ie]=q.useState(!1),[Qe,F]=q.useState(null),[le,ee]=q.useState(!1),ce=c.providerStatuses.filter(te=>te.state==="ready"),[ne,Ne]=q.useState(ce[0]?.name??""),[nt,xe]=q.useState(5),[$e,Pe]=q.useState(!1),[Et,Cn]=q.useState(null),[Ot,Ws]=q.useState(""),[Ei,Mc]=q.useState(!1),[er,Oi]=q.useState(null),[Di,Ri]=q.useState(!1),[yo,Bc]=q.useState(!1),[qt,bo]=q.useState(!1),[tr,vo]=q.useState(null),Mi=mR(),Lc=un({...T0({client:ae,path:{id:tr??""}}),enabled:!!tr,refetchInterval:({state:te})=>{const Fe=te.data?.status;return Fe==="completed"||Fe==="partial"||Fe==="failed"||Fe==="cancelled"?!1:2e3},refetchIntervalInBackground:!0}),[Bi,So]=q.useState(""),[nr,ba]=q.useState(!1),[Ut,Tn]=q.useState(null),mt=_.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),Un=W.split(`
|
|
203
203
|
`).map(te=>te.trim()).filter(Boolean),ei=Ot.split(`
|
|
204
204
|
`).map(te=>te.trim()).filter(Boolean),qc=b.healthChecks.some(te=>te.id==="api"&&te.state==="ready"),Li=async()=>{if(!(!mt||!R)){$(!0),re(null);try{const te=await uo(mt,{displayName:k||_,canonicalDomain:R,country:H,language:Y,autoExtractBacklinks:O});ke(mt),ve(te.id),dn({title:"Project created",detail:`${te.displayName||te.name} is ready for setup.`,tone:"positive",dedupeKey:`project:create:${te.name}`,dedupeMode:"drop"}),await r(),j(2)}catch(te){re(te instanceof Error?te.message:"Failed to create project")}finally{$(!1)}}},qi=async()=>{if(!oe)return;const te=Un;if(te.length!==0){ee(!0),F(null);try{await YN(oe,te),ie(!0),await r(),j(3)}catch(Fe){F(Fe instanceof Error?Fe.message:"Failed to save queries")}finally{ee(!1)}}},Ui=async()=>{if(!(!oe||!ne)){Pe(!0),Cn(null);try{const te=await ak(oe,ne,nt);if(te.queries.length>0){const Fe=W?W.trimEnd()+`
|
|
205
205
|
`+te.queries.join(`
|
|
@@ -207,4 +207,4 @@ spec:
|
|
|
207
207
|
`);fe(Fe)}}catch(te){Cn(te instanceof Error?te.message:"Failed to generate queries")}finally{Pe(!1)}}},Zn=async()=>{if(!oe)return;const te=ei;if(te.length!==0){Ri(!0),Oi(null);try{await FN(oe,te),Mc(!0),await r(),j(4)}catch(Fe){Oi(Fe instanceof Error?Fe.message:"Failed to save competitors")}finally{Ri(!1)}}},$i=async()=>{const te=Bi.trim();if(te){ba(!0),Tn(null);try{await nk("gemini",{apiKey:te}),dn({title:"Gemini configured",detail:"Provider is ready — continuing setup.",tone:"positive",dedupeKey:"setup:gemini:configured",dedupeMode:"drop"}),So(""),await r()}catch(Fe){Tn(Fe instanceof Error?Fe.message:"Failed to save Gemini key")}finally{ba(!1)}}},ti=async()=>{if(oe){bo(!0);try{const te=await Mi.mutateAsync({projectName:oe,projectLabel:k||_||oe,sourceAction:"setup-launch"});vo(te.id),Bc(!0),await r()}catch{}finally{bo(!1)}}},Kn=()=>j(te=>Math.max(0,te-1)),xo=(()=>{switch(S){case 0:return f.jsxs(jn,{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:b.healthChecks.map(te=>f.jsxs("div",{className:"health-check-row",children:[f.jsxs("div",{children:[f.jsx("p",{className:"run-row-title",children:te.label}),f.jsx("p",{className:"supporting-copy",children:te.detail}),te.id==="provider"&&te.state!=="ready"&&f.jsxs("div",{className:"mt-3 rounded-md border border-zinc-800/60 bg-zinc-900/40 p-3 space-y-2",children:[f.jsxs("p",{className:"text-xs text-zinc-400",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-emerald-400 hover:text-emerald-300 underline underline-offset-2",children:"aistudio.google.com"}),")."]}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("input",{type:"password",value:Bi,onChange:Fe=>So(Fe.target.value),placeholder:"AI... (paste here)",className:"flex-1 rounded-md border border-zinc-800 bg-zinc-950 px-2.5 py-1.5 text-sm text-zinc-100 placeholder:text-zinc-600 focus:border-zinc-600 focus:outline-none font-mono",disabled:nr}),f.jsx(Ue,{type:"button",size:"sm",disabled:nr||!Bi.trim(),onClick:wn($i),children:nr?"Saving...":"Save"})]}),Ut&&f.jsx("p",{className:"text-xs text-rose-400",children:Ut}),f.jsxs("p",{className:"text-[11px] text-zinc-600",children:["Other providers (OpenAI, Claude, Perplexity) configurable later via"," ",f.jsx(rt,{to:"/settings",className:"text-zinc-500 hover:text-zinc-300 underline underline-offset-2",children:"/settings"}),"."]})]})]}),f.jsx(Ln,{tone:te.state==="ready"?"positive":"caution",title:te.id==="api"?$s(g.apiStatus):te.id==="worker"?$s(g.workerStatus):te.detail,children:te.state==="ready"?"Ready":"Attention"})]},te.id))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",disabled:!qc,onClick:()=>j(1),children:"Continue"})]})]});case 1:return f.jsxs(jn,{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"})]}),oe?f.jsx(Ln,{tone:"positive",children:"Created"}):null]}),oe?f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"text-zinc-300",children:["Project ",f.jsx("span",{className:"text-zinc-100 font-medium",children:oe})," created successfully."]}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>j(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:te=>C(te.target.value)}),mt&&mt!==_?f.jsxs("p",{className:"supporting-copy",children:["Slug: ",mt]}):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:te=>E(te.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:te=>I(te.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:H,onChange:te=>K(te.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:Y,onChange:te=>J(te.target.value.toLowerCase())})]})]}),f.jsxs("label",{className:"flex items-start gap-3 rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3 cursor-pointer hover:border-zinc-700",children:[f.jsx("input",{type:"checkbox",className:"mt-0.5 h-4 w-4 rounded border-zinc-700 bg-zinc-950",checked:O,onChange:te=>M(te.target.checked)}),f.jsxs("span",{className:"flex-1",children:[f.jsx("span",{className:"block text-sm text-zinc-100",children:"Auto-extract backlinks"}),f.jsxs("span",{className:"block text-xs text-zinc-500 mt-0.5",children:["When a new Common Crawl release syncs, automatically extract backlinks for this project."," ",f.jsx(rt,{to:"/backlinks",className:"text-emerald-400 hover:text-emerald-300 underline underline-offset-2",children:"Manage backlinks"})]})]})]}),tt?f.jsx("p",{className:"text-rose-400 text-sm",children:tt}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:!mt||!R||me,onClick:wn(Li),children:me?"Creating...":"Create project"})]})]})]});case 2:return f.jsxs(jn,{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"})]}),je?f.jsxs(Ln,{tone:"positive",children:[Un.length," saved"]}):f.jsxs(Ln,{tone:"neutral",children:[Un.length," quer",Un.length!==1?"ies":"y"]})]}),f.jsx("p",{className:"supporting-copy",children:"Enter the search queries you want to track. One per line."}),je?f.jsxs("div",{className:"compact-stack",children:[f.jsx("ul",{className:"detail-list",children:Un.map(te=>f.jsx("li",{children:te},te))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>j(3),children:"Continue"})]})]}):f.jsxs("div",{className:"compact-stack",children:[ce.length>0?f.jsxs("div",{className:"compact-stack",children:[f.jsxs("div",{className:"flex items-center gap-2 text-zinc-500 text-xs uppercase tracking-wide",children:[f.jsx("span",{className:"flex-1 border-t border-zinc-800"}),"auto-generate",f.jsx("span",{className:"flex-1 border-t border-zinc-800"})]}),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:ne,onChange:te=>Ne(te.target.value),children:ce.map(te=>f.jsxs("option",{value:te.name,children:[te.displayName??te.name,te.model?` (${te.model})`:""]},te.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:nt,onChange:te=>xe(Number(te.target.value)),children:[3,5,10,15,20].map(te=>f.jsx("option",{value:te,children:te},te))})]}),f.jsx(Ue,{type:"button",variant:"outline",disabled:$e||!ne,onClick:wn(Ui),children:$e?"Analyzing site...":"Generate"})]}),Et?f.jsx("p",{className:"text-rose-400 text-sm",children:Et}):null]}):null,f.jsxs("div",{className:"flex items-center gap-2 text-zinc-500 text-xs uppercase tracking-wide",children:[f.jsx("span",{className:"flex-1 border-t border-zinc-800"}),"or type manually",f.jsx("span",{className:"flex-1 border-t border-zinc-800"})]}),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:W,onChange:te=>fe(te.target.value)})]}),Qe?f.jsx("p",{className:"text-rose-400 text-sm",children:Qe}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:Un.length===0||le,onClick:wn(qi),children:le?"Saving...":`Save ${Un.length} quer${Un.length!==1?"ies":"y"}`})]})]})]});case 3:return f.jsxs(jn,{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"})]}),Ei?f.jsx(Ln,{tone:"positive",children:"Saved"}):null]}),f.jsx("p",{className:"supporting-copy",children:"Domains that compete for the same queries. One per line."}),Ei?f.jsxs("div",{className:"compact-stack",children:[f.jsx("ul",{className:"detail-list",children:ei.map(te=>f.jsx("li",{children:te},te))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>j(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:Ot,onChange:te=>Ws(te.target.value)})]}),er?f.jsx("p",{className:"text-rose-400 text-sm",children:er}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>j(4),children:"Skip"}),f.jsx(Ue,{type:"button",disabled:ei.length===0||Di,onClick:wn(Zn),children:Di?"Saving...":`Save ${ei.length} competitor${ei.length!==1?"s":""}`})]})]})]})]});case 4:{const te=Lc.data,Fe=te?.status==="completed"||te?.status==="partial"||te?.status==="failed"||te?.status==="cancelled",ni=te?.snapshots??[],wo=ni.filter(En=>En.citationState==="cited").length,jo=ni.filter(En=>En.answerMentioned===!0).length,ar=new Set(ni.map(En=>En.query).filter(En=>!!En)).size,ir=yo?Fe&&(te?.status==="completed"||te?.status==="partial")?f.jsx(Ln,{tone:"positive",children:"Complete"}):Fe?f.jsx(Ln,{tone:"negative",children:"Failed"}):f.jsx(Ln,{tone:"caution",children:"Running"}):null;return f.jsxs(jn,{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"})]}),ir]}),yo?Fe?te?.status==="failed"?f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-rose-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:()=>{v({to:_e?`/projects/${_e}`:"/"})},children:"Open project"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"text-zinc-300",children:["Sweep complete. Your first answer-visibility snapshot for"," ",f.jsx("span",{className:"text-zinc-100 font-medium",children:oe}),":"]}),f.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[f.jsxs("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500",children:"Mentioned"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-zinc-50 mt-1",children:[jo,f.jsxs("span",{className:"text-zinc-600 text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-zinc-500 mt-0.5",children:"queries with brand in answer"})]}),f.jsxs("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500",children:"Cited"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-zinc-50 mt-1",children:[wo,f.jsxs("span",{className:"text-zinc-600 text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-zinc-500 mt-0.5",children:"queries with domain in sources"})]}),f.jsxs("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500",children:"Snapshots"}),f.jsx("p",{className:"text-2xl font-bold tabular-nums text-zinc-50 mt-1",children:ni.length}),f.jsx("p",{className:"text-[11px] text-zinc-500 mt-0.5",children:"total (query × provider)"})]})]}),f.jsx("p",{className:"text-[11px] text-zinc-500 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:()=>{v({to:_e?`/projects/${_e}`:"/"})},children:"Open project dashboard →"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-zinc-300",children:"Sweep running — typically 30-60s. Polling every 2s…"}),f.jsx("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3 text-xs text-zinc-500",children:f.jsxs("p",{children:["Status: ",f.jsx("span",{className:"text-zinc-300",children:te?.status??"queued"})]})}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>{v({to:_e?`/projects/${_e}`:"/"})},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-zinc-100 font-medium",children:oe}),"."]}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:qt,onClick:wn(ti),children:qt?"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(hR,{current:S,labels:mR}),f.jsx("section",{className:"setup-wizard",children:xo})]})}function yR(){return f.jsx("div",{className:"page-container",children:f.jsx("section",{className:"page-section",children:f.jsxs(jn,{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(rt,{to:"/",children:"Return to overview"})})]})})})}const Wa=Gs(()=>Hs(()=>import("./ProjectPage-BXgxWKyT.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"ProjectPage"),bR=Gs(()=>Hs(()=>import("./RunsPage-DVl_pgqe.js"),__vite__mapDeps([9,1,2,7,5,8]),import.meta.url),"RunsPage"),vR=Gs(()=>Hs(()=>import("./SettingsPage-CAiVL2mo.js"),__vite__mapDeps([10,1,7,5,8]),import.meta.url),"SettingsPage"),SR=Gs(()=>Hs(()=>import("./BacklinksPage-B9Q2r9zM.js"),__vite__mapDeps([11,1,6,7,5,8]),import.meta.url),"BacklinksPage"),xR=Gs(()=>Hs(()=>import("./TrafficPage-B8dnHFqk.js"),__vite__mapDeps([12,1,4,13,7,5,8]),import.meta.url),"TrafficPage"),wR=Gs(()=>Hs(()=>import("./TrafficSourceDetailPage-37s8p8eZ.js"),__vite__mapDeps([14,1,13,3,4,5,7,8]),import.meta.url),"TrafficSourceDetailPage");function jR(){return f.jsx(QD,{children:f.jsx(KD,{})})}const en=pw()({component:jR,validateSearch:e=>({runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0})}),NR=Tt({getParentRoute:()=>en,path:"/",component:JD,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Qs({client:ae}));if(n&&n.length===0)throw ev({to:"/setup"})}}),kR=Tt({getParentRoute:()=>en,path:"/projects",component:cR}),ya=Tt({getParentRoute:()=>en,path:"/projects/$projectId",component:()=>f.jsx(Wb,{})}),AR=Tt({getParentRoute:()=>ya,path:"/",component:()=>f.jsx(Wa,{tab:"overview"})}),_R=Tt({getParentRoute:()=>ya,path:"/search-console",component:()=>f.jsx(Wa,{tab:"search-console"})}),zR=Tt({getParentRoute:()=>ya,path:"/local",component:()=>f.jsx(Wa,{tab:"local"})}),CR=Tt({getParentRoute:()=>ya,path:"/discovery",component:()=>f.jsx(Wa,{tab:"discovery"})}),TR=Tt({getParentRoute:()=>ya,path:"/report",component:()=>f.jsx(Wa,{tab:"report"})}),ER=Tt({getParentRoute:()=>ya,path:"/activity",component:()=>f.jsx(Wa,{tab:"activity"})}),OR=Tt({getParentRoute:()=>ya,path:"/backlinks",component:()=>f.jsx(Wa,{tab:"backlinks"})}),DR=Tt({getParentRoute:()=>ya,path:"/settings",component:()=>f.jsx(Wa,{tab:"settings"})}),RR=Tt({getParentRoute:()=>en,path:"/runs",component:bR}),MR=Tt({getParentRoute:()=>en,path:"/settings",component:vR,beforeLoad:({context:e})=>{}}),BR=Tt({getParentRoute:()=>en,path:"/setup",component:gR,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Qs({client:ae}));if(n&&n.length>0)throw ev({to:"/"})}}),LR=Tt({getParentRoute:()=>en,path:"/backlinks",component:SR}),qR=Tt({getParentRoute:()=>en,path:"/traffic",component:xR}),UR=Tt({getParentRoute:()=>en,path:"/traffic/$projectName/$sourceId",component:wR}),$R=Tt({getParentRoute:()=>en,path:"*",component:yR}),VR=en.addChildren([NR,kR,ya.addChildren([AR,_R,zR,CR,TR,ER,OR,DR]),RR,MR,BR,LR,qR,UR,$R]);function IR(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const Jb=IR(),GR=Jb==="/"?"":Jb.replace(/\/$/,"");function HR(e,n){return mw({routeTree:VR,basepath:GR||"/",context:{queryClient:e},...n?.initialEntries})}const PR=6e4;function ZR(){const[e,n]=q.useState(Fd()?"ready":"checking"),[i,r]=q.useState(""),[l,c]=q.useState(""),[d,h]=q.useState(null),[g,b]=q.useState(!1),[v,S]=q.useState(!1),j=q.useRef(null),_=q.useRef(null),C=()=>{if(!j.current){const R=Nk();_.current=R,j.current=HR(R)}return{queryClient:_.current,router:j.current}};q.useEffect(()=>{if(Fd())return;let R=!1;return Ry().then(I=>{R||(I.authenticated?n("ready"):n(I.setupRequired?"setup":"login"))}).catch(I=>{R||(h(I instanceof Error?I.message:"Failed to reach the Canonry API"),n("login"))}),()=>{R=!0}},[]),q.useEffect(()=>{if(e!=="ready"||Fd())return;const R=setInterval(()=>{Ry().then(I=>{I.authenticated||(S(!0),n(I.setupRequired?"setup":"login"))}).catch(()=>{})},PR);return Dy(()=>{S(!0),n("login")}),()=>{clearInterval(R),Dy(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}b(!0),h(null);try{if(!(await ek(i.trim())).authenticated){h("Setup failed");return}r(""),c(""),S(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Setup failed")}finally{b(!1)}},E=async R=>{if(R.preventDefault(),!!i.trim()){b(!0),h(null);try{if(!(await tk(i.trim())).authenticated){h("Incorrect password");return}r(""),S(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Authentication failed")}finally{b(!1)}}};if(e==="ready"){const{queryClient:R,router:I}=C();return f.jsx(hw,{client:R,children:f.jsx(gw,{router:I})})}return f.jsx("div",{className:"min-h-screen bg-zinc-950 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(jn,{className:"surface-card w-full",children:e==="checking"?f.jsx(Ql,{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(kf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),f.jsx(Af,{children:"Create a dashboard password"}),f.jsx(_f,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),f.jsx(Ql,{children:f.jsxs("form",{className:"space-y-4",onSubmit:wn(k),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-zinc-400",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-100 outline-none transition focus:border-zinc-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-zinc-400",children:"Confirm password"}),f.jsx("input",{className:"w-full rounded-md border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-100 outline-none transition focus:border-zinc-600",type:"password",value:l,onChange:R=>c(R.target.value),placeholder:"Re-enter password"})]}),d?f.jsx("p",{className:"text-sm text-rose-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(kf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),f.jsx(Af,{children:"Sign in to Canonry"}),f.jsx(_f,{children:"Enter your dashboard password to continue."})]}),f.jsxs(Ql,{children:[v?f.jsx("p",{className:"mb-4 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-300",children:"Your session expired — please sign in again."}):null,f.jsxs("form",{className:"space-y-4",onSubmit:wn(E),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-zinc-400",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-100 outline-none transition focus:border-zinc-600",type:"password",value:i,onChange:R=>r(R.target.value),placeholder:"Dashboard password"})]}),d?f.jsx("p",{className:"text-sm text-rose-400",children:d}):null,f.jsx(Ue,{type:"submit",disabled:g||!i.trim(),children:g?"Signing in…":"Open dashboard"})]})]})]})})})})}const K1=document.getElementById("root");if(!K1)throw new Error("Expected #root element for web app bootstrap.");jw.createRoot(K1).render(f.jsx(q.StrictMode,{children:f.jsx(ZR,{})}));export{MB as $,oM as A,Ue as B,ic as C,jB as D,kB as E,AB as F,aB as G,yM as H,Fr as I,gM as J,vM as K,dn as L,_M as M,CB as N,TB as O,A3 as P,xM as Q,_B as R,RO as S,Ln as T,zB as U,NB as V,bM as W,wM as X,EB as Y,OB as Z,LB as _,aL as a,sM as a$,BB as a0,fk as a1,RB as a2,DB as a3,MT as a4,BT as a5,sB as a6,iB as a7,ZM as a8,FM as a9,oB as aA,uB as aB,dB as aC,rB as aD,lB as aE,iM as aF,aM as aG,nM as aH,cM as aI,xB as aJ,hb as aK,SB as aL,uM as aM,dM as aN,vB as aO,fM as aP,pM as aQ,hM as aR,mM as aS,fo as aT,lp as aU,pD as aV,pR as aW,Pt as aX,QN as aY,rL as aZ,sL as a_,WM as aa,Hn as ab,eB as ac,JR as ad,tA as ae,gB as af,Wk as ag,cA as ah,Te as ai,O4 as aj,Fl as ak,tB as al,gf as am,YB as an,SM as ao,eL as ap,tL as aq,nL as ar,jM as as,Qs as at,NM as au,cp as av,QB as aw,MM as ax,fL as ay,cB as az,Vf as b,WR as b0,eM as b1,rM as b2,KN as b3,FN as b4,FR as b5,XN as b6,tM as b7,dL as b8,VO as b9,YM as bA,XM as bB,Nv as bC,PM as bD,QM as bE,JM as bF,_3 as bG,F0 as bH,O3 as bI,W0 as bJ,e1 as bK,Yk as bL,GM as bM,Uy as bN,FB as bO,fB as bP,pB as bQ,ip as bR,wB as bS,Ps as bT,XB as bU,WB as bV,IM as bW,$M as bX,VM as bY,UM as bZ,JB as b_,qB as ba,$B as bb,rk as bc,VB as bd,OM as be,EM as bf,IB as bg,UB as bh,hB as bi,zM as bj,CM as bk,TM as bl,DM as bm,xc as bn,oL as bo,pp as bp,nk as bq,lM as br,kM as bs,AM as bt,hp as bu,RM as bv,$s as bw,gb as bx,HM as by,KM as bz,et as c,dT as d,iL as e,yB as f,jn as g,zb as h,wn as i,nB as j,GB as k,ae as l,HB as m,PB as n,KB as o,ZB as p,BM as q,qM as r,LM as s,C0 as t,gp as u,lL as v,cL as w,uL as x,mB as y,bB as z};
|
|
210
|
+
competitor2.com`,value:Ot,onChange:te=>Ws(te.target.value)})]}),er?f.jsx("p",{className:"text-rose-400 text-sm",children:er}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>j(4),children:"Skip"}),f.jsx(Ue,{type:"button",disabled:ei.length===0||Di,onClick:wn(Zn),children:Di?"Saving...":`Save ${ei.length} competitor${ei.length!==1?"s":""}`})]})]})]})]});case 4:{const te=Lc.data,Fe=te?.status==="completed"||te?.status==="partial"||te?.status==="failed"||te?.status==="cancelled",ni=te?.snapshots??[],wo=ni.filter(En=>En.citationState==="cited").length,jo=ni.filter(En=>En.answerMentioned===!0).length,ar=new Set(ni.map(En=>En.query).filter(En=>!!En)).size,ir=yo?Fe&&(te?.status==="completed"||te?.status==="partial")?f.jsx(Ln,{tone:"positive",children:"Complete"}):Fe?f.jsx(Ln,{tone:"negative",children:"Failed"}):f.jsx(Ln,{tone:"caution",children:"Running"}):null;return f.jsxs(jn,{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"})]}),ir]}),yo?Fe?te?.status==="failed"?f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-rose-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:()=>{v({to:_e?`/projects/${_e}`:"/"})},children:"Open project"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("p",{className:"text-zinc-300",children:["Sweep complete. Your first answer-visibility snapshot for"," ",f.jsx("span",{className:"text-zinc-100 font-medium",children:oe}),":"]}),f.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[f.jsxs("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500",children:"Mentioned"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-zinc-50 mt-1",children:[jo,f.jsxs("span",{className:"text-zinc-600 text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-zinc-500 mt-0.5",children:"queries with brand in answer"})]}),f.jsxs("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500",children:"Cited"}),f.jsxs("p",{className:"text-2xl font-bold tabular-nums text-zinc-50 mt-1",children:[wo,f.jsxs("span",{className:"text-zinc-600 text-lg",children:[" / ",ar]})]}),f.jsx("p",{className:"text-[11px] text-zinc-500 mt-0.5",children:"queries with domain in sources"})]}),f.jsxs("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3",children:[f.jsx("p",{className:"text-[10px] uppercase tracking-wide text-zinc-500",children:"Snapshots"}),f.jsx("p",{className:"text-2xl font-bold tabular-nums text-zinc-50 mt-1",children:ni.length}),f.jsx("p",{className:"text-[11px] text-zinc-500 mt-0.5",children:"total (query × provider)"})]})]}),f.jsx("p",{className:"text-[11px] text-zinc-500 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:()=>{v({to:_e?`/projects/${_e}`:"/"})},children:"Open project dashboard →"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsx("p",{className:"text-zinc-300",children:"Sweep running — typically 30-60s. Polling every 2s…"}),f.jsx("div",{className:"rounded-md border border-zinc-800/60 bg-zinc-900/30 p-3 text-xs text-zinc-500",children:f.jsxs("p",{children:["Status: ",f.jsx("span",{className:"text-zinc-300",children:te?.status??"queued"})]})}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>{v({to:_e?`/projects/${_e}`:"/"})},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-zinc-100 font-medium",children:oe}),"."]}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:Kn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:qt,onClick:wn(ti),children:qt?"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(gR,{current:S,labels:hR}),f.jsx("section",{className:"setup-wizard",children:xo})]})}function bR(){return f.jsx("div",{className:"page-container",children:f.jsx("section",{className:"page-section",children:f.jsxs(jn,{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(rt,{to:"/",children:"Return to overview"})})]})})})}const Wa=Gs(()=>Hs(()=>import("./ProjectPage-CaRqQ1vH.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"ProjectPage"),vR=Gs(()=>Hs(()=>import("./RunsPage-DRIlEete.js"),__vite__mapDeps([9,1,2,7,5,8]),import.meta.url),"RunsPage"),SR=Gs(()=>Hs(()=>import("./SettingsPage-CHaqBpnQ.js"),__vite__mapDeps([10,1,7,5,8]),import.meta.url),"SettingsPage"),xR=Gs(()=>Hs(()=>import("./BacklinksPage-DLsgGSXv.js"),__vite__mapDeps([11,1,6,7,5,8]),import.meta.url),"BacklinksPage"),wR=Gs(()=>Hs(()=>import("./TrafficPage-UbL0daLy.js"),__vite__mapDeps([12,1,4,13,7,5,8]),import.meta.url),"TrafficPage"),jR=Gs(()=>Hs(()=>import("./TrafficSourceDetailPage-CjLDbjf_.js"),__vite__mapDeps([14,1,13,3,4,5,7,8]),import.meta.url),"TrafficSourceDetailPage");function NR(){return f.jsx(YD,{children:f.jsx(QD,{})})}const en=pw()({component:NR,validateSearch:e=>({runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0})}),kR=Tt({getParentRoute:()=>en,path:"/",component:FD,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Qs({client:ae}));if(n&&n.length===0)throw ev({to:"/setup"})}}),AR=Tt({getParentRoute:()=>en,path:"/projects",component:uR}),ya=Tt({getParentRoute:()=>en,path:"/projects/$projectId",component:()=>f.jsx(Wb,{})}),_R=Tt({getParentRoute:()=>ya,path:"/",component:()=>f.jsx(Wa,{tab:"overview"})}),zR=Tt({getParentRoute:()=>ya,path:"/search-console",component:()=>f.jsx(Wa,{tab:"search-console"})}),CR=Tt({getParentRoute:()=>ya,path:"/local",component:()=>f.jsx(Wa,{tab:"local"})}),TR=Tt({getParentRoute:()=>ya,path:"/discovery",component:()=>f.jsx(Wa,{tab:"discovery"})}),ER=Tt({getParentRoute:()=>ya,path:"/report",component:()=>f.jsx(Wa,{tab:"report"})}),OR=Tt({getParentRoute:()=>ya,path:"/activity",component:()=>f.jsx(Wa,{tab:"activity"})}),DR=Tt({getParentRoute:()=>ya,path:"/backlinks",component:()=>f.jsx(Wa,{tab:"backlinks"})}),RR=Tt({getParentRoute:()=>ya,path:"/settings",component:()=>f.jsx(Wa,{tab:"settings"})}),MR=Tt({getParentRoute:()=>en,path:"/runs",component:vR}),BR=Tt({getParentRoute:()=>en,path:"/settings",component:SR,beforeLoad:({context:e})=>{}}),LR=Tt({getParentRoute:()=>en,path:"/setup",component:yR,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Qs({client:ae}));if(n&&n.length>0)throw ev({to:"/"})}}),qR=Tt({getParentRoute:()=>en,path:"/backlinks",component:xR}),UR=Tt({getParentRoute:()=>en,path:"/traffic",component:wR}),$R=Tt({getParentRoute:()=>en,path:"/traffic/$projectName/$sourceId",component:jR}),VR=Tt({getParentRoute:()=>en,path:"*",component:bR}),IR=en.addChildren([kR,AR,ya.addChildren([_R,zR,CR,TR,ER,OR,DR,RR]),MR,BR,LR,qR,UR,$R,VR]);function GR(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const Jb=GR(),HR=Jb==="/"?"":Jb.replace(/\/$/,"");function PR(e,n){return mw({routeTree:IR,basepath:HR||"/",context:{queryClient:e},...n?.initialEntries})}const ZR=6e4;function KR(){const[e,n]=q.useState(Fd()?"ready":"checking"),[i,r]=q.useState(""),[l,c]=q.useState(""),[d,h]=q.useState(null),[g,b]=q.useState(!1),[v,S]=q.useState(!1),j=q.useRef(null),_=q.useRef(null),C=()=>{if(!j.current){const R=Nk();_.current=R,j.current=PR(R)}return{queryClient:_.current,router:j.current}};q.useEffect(()=>{if(Fd())return;let R=!1;return Ry().then(I=>{R||(I.authenticated?n("ready"):n(I.setupRequired?"setup":"login"))}).catch(I=>{R||(h(I instanceof Error?I.message:"Failed to reach the Canonry API"),n("login"))}),()=>{R=!0}},[]),q.useEffect(()=>{if(e!=="ready"||Fd())return;const R=setInterval(()=>{Ry().then(I=>{I.authenticated||(S(!0),n(I.setupRequired?"setup":"login"))}).catch(()=>{})},ZR);return Dy(()=>{S(!0),n("login")}),()=>{clearInterval(R),Dy(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}b(!0),h(null);try{if(!(await ek(i.trim())).authenticated){h("Setup failed");return}r(""),c(""),S(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Setup failed")}finally{b(!1)}},E=async R=>{if(R.preventDefault(),!!i.trim()){b(!0),h(null);try{if(!(await tk(i.trim())).authenticated){h("Incorrect password");return}r(""),S(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Authentication failed")}finally{b(!1)}}};if(e==="ready"){const{queryClient:R,router:I}=C();return f.jsx(hw,{client:R,children:f.jsx(gw,{router:I})})}return f.jsx("div",{className:"min-h-screen bg-zinc-950 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(jn,{className:"surface-card w-full",children:e==="checking"?f.jsx(Ql,{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(kf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),f.jsx(Af,{children:"Create a dashboard password"}),f.jsx(_f,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),f.jsx(Ql,{children:f.jsxs("form",{className:"space-y-4",onSubmit:wn(k),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-zinc-400",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-100 outline-none transition focus:border-zinc-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-zinc-400",children:"Confirm password"}),f.jsx("input",{className:"w-full rounded-md border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-100 outline-none transition focus:border-zinc-600",type:"password",value:l,onChange:R=>c(R.target.value),placeholder:"Re-enter password"})]}),d?f.jsx("p",{className:"text-sm text-rose-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(kf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),f.jsx(Af,{children:"Sign in to Canonry"}),f.jsx(_f,{children:"Enter your dashboard password to continue."})]}),f.jsxs(Ql,{children:[v?f.jsx("p",{className:"mb-4 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-300",children:"Your session expired — please sign in again."}):null,f.jsxs("form",{className:"space-y-4",onSubmit:wn(E),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-zinc-400",children:"Password"}),f.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-zinc-800 bg-zinc-950 px-3 py-2 text-sm text-zinc-100 outline-none transition focus:border-zinc-600",type:"password",value:i,onChange:R=>r(R.target.value),placeholder:"Dashboard password"})]}),d?f.jsx("p",{className:"text-sm text-rose-400",children:d}):null,f.jsx(Ue,{type:"submit",disabled:g||!i.trim(),children:g?"Signing in…":"Open dashboard"})]})]})]})})})})}const K1=document.getElementById("root");if(!K1)throw new Error("Expected #root element for web app bootstrap.");jw.createRoot(K1).render(f.jsx(q.StrictMode,{children:f.jsx(KR,{})}));export{BB as $,lM as A,Ue as B,ic as C,NB as D,AB as E,_B as F,iB as G,bM as H,Fr as I,yM as J,SM as K,dn as L,zM as M,TB as N,EB as O,_3 as P,wM as Q,zB as R,RO as S,Ln as T,CB as U,kB as V,vM as W,jM as X,OB as Y,DB as Z,qB as _,iL as a,rM as a$,LB as a0,fk as a1,MB as a2,RB as a3,MT as a4,BT as a5,rB as a6,sB as a7,KM as a8,WM as a9,lB as aA,dB as aB,fB as aC,oB as aD,cB as aE,sM as aF,iM as aG,aM as aH,uM as aI,wB as aJ,hb as aK,xB as aL,dM as aM,fM as aN,SB as aO,pM as aP,mM as aQ,gM as aR,hM as aS,fo as aT,lp as aU,mD as aV,mR as aW,Pt as aX,QN as aY,oL as aZ,rL as a_,eB as aa,Hn as ab,tB as ac,FR as ad,tA as ae,yB as af,Wk as ag,cA as ah,Te as ai,D4 as aj,Fl as ak,nB as al,gf as am,XB as an,xM as ao,tL as ap,nL as aq,aL as ar,NM as as,Qs as at,kM as au,cp as av,YB as aw,BM as ax,pL as ay,uB as az,Vf as b,eM as b0,tM as b1,oM as b2,KN as b3,FN as b4,WR as b5,XN as b6,nM as b7,fL as b8,IO as b9,XM as bA,JM as bB,Nv as bC,ZM as bD,YM as bE,FM as bF,z3 as bG,F0 as bH,D3 as bI,W0 as bJ,e1 as bK,Yk as bL,HM as bM,Uy as bN,WB as bO,pB as bP,mB as bQ,ip as bR,jB as bS,Ps as bT,JB as bU,eL as bV,GM as bW,VM as bX,IM as bY,$M as bZ,FB as b_,UB as ba,VB as bb,rk as bc,IB as bd,DM as be,OM as bf,GB as bg,$B as bh,gB as bi,CM as bj,TM as bk,EM as bl,RM as bm,xc as bn,lL as bo,pp as bp,nk as bq,cM as br,AM as bs,_M as bt,hp as bu,MM as bv,$s as bw,gb as bx,PM as by,QM as bz,et as c,dT as d,sL as e,bB as f,jn as g,zb as h,wn as i,aB as j,HB as k,ae as l,PB as m,ZB as n,QB as o,KB as p,LM as q,UM as r,qM as s,BO as t,gp as u,cL as v,uL as w,dL as x,hB as y,vB as z};
|