@ainyc/canonry 4.106.2 → 4.107.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/assets/assets/{BacklinksPage-BheRgyA3.js → BacklinksPage-Cuvg9TTn.js} +1 -1
  2. package/assets/assets/{ChartPrimitives-BnYX5sRb.js → ChartPrimitives-CoNjLN3a.js} +1 -1
  3. package/assets/assets/{ProjectPage-Bd3YW6WQ.js → ProjectPage-DhEoUnmx.js} +1 -1
  4. package/assets/assets/{RunRow-CZ1bXteZ.js → RunRow-Du9r-Mik.js} +1 -1
  5. package/assets/assets/{RunsPage-BBEuL03-.js → RunsPage-LIvuym9f.js} +1 -1
  6. package/assets/assets/{SettingsPage-CJ6kyLmY.js → SettingsPage-BrFy3IsH.js} +1 -1
  7. package/assets/assets/{TrafficPage-DPrsjoFM.js → TrafficPage-C16J18tV.js} +1 -1
  8. package/assets/assets/{TrafficSourceDetailPage-EdC_c26M.js → TrafficSourceDetailPage-BtOwcgWX.js} +1 -1
  9. package/assets/assets/{arrow-left-B4_PxNUG.js → arrow-left-DL0hZP8l.js} +1 -1
  10. package/assets/assets/{extract-error-message-DoIzPHJI.js → extract-error-message-CgHHv6eH.js} +1 -1
  11. package/assets/assets/{index-Dr2rxkFR.js → index-54KuHvPl.js} +3 -3
  12. package/assets/assets/{trash-2-C9Ebw5p4.js → trash-2-CpYdnCg2.js} +1 -1
  13. package/assets/index.html +1 -1
  14. package/dist/{chunk-VGMTLUUM.js → chunk-KRP555VO.js} +2 -1
  15. package/dist/{chunk-VOR5ZTUU.js → chunk-MV3ZJOI7.js} +61 -0
  16. package/dist/{chunk-2AWATO4I.js → chunk-NDXV6EYD.js} +14 -4
  17. package/dist/{chunk-F3MKVMS5.js → chunk-QLWRJEII.js} +46 -3
  18. package/dist/cli.js +13 -8
  19. package/dist/index.js +4 -4
  20. package/dist/{intelligence-service-JGZU27U3.js → intelligence-service-2DQLZUPW.js} +2 -2
  21. package/dist/mcp.js +2 -2
  22. package/package.json +7 -7
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ProjectPage-Bd3YW6WQ.js","./vendor-tanstack-Be8JdV5M.js","./RunRow-CZ1bXteZ.js","./ChartPrimitives-BnYX5sRb.js","./extract-error-message-DoIzPHJI.js","./vendor-recharts-C9EZkgbP.js","./trash-2-C9Ebw5p4.js","./vendor-radix-CQ77EO2y.js","./vendor-markdown-6dwjPOKK.js","./RunsPage-BBEuL03-.js","./SettingsPage-CJ6kyLmY.js","./BacklinksPage-BheRgyA3.js","./TrafficPage-DPrsjoFM.js","./arrow-left-B4_PxNUG.js","./TrafficSourceDetailPage-EdC_c26M.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ProjectPage-DhEoUnmx.js","./vendor-tanstack-Be8JdV5M.js","./RunRow-Du9r-Mik.js","./ChartPrimitives-CoNjLN3a.js","./extract-error-message-CgHHv6eH.js","./vendor-recharts-C9EZkgbP.js","./trash-2-CpYdnCg2.js","./vendor-radix-CQ77EO2y.js","./vendor-markdown-6dwjPOKK.js","./RunsPage-LIvuym9f.js","./SettingsPage-BrFy3IsH.js","./BacklinksPage-Cuvg9TTn.js","./TrafficPage-C16J18tV.js","./arrow-left-DL0hZP8l.js","./TrafficSourceDetailPage-BtOwcgWX.js"])))=>i.map(i=>d[i]);
2
2
  import{c as Nw,d as kw,Q as Aw,M as _w,r as q,q as ze,j as f,L as st,a as Cw,e as ks,u as fn,f as zw,h as fc,k as Tw,l as Ew,m as dv,O as Sf,n as Wa,o as zi,p as Ow,s as Tt,t as Gf,v as Ps,x as Dw,y as Rw,z as Mw}from"./vendor-tanstack-Be8JdV5M.js";import{S as Bw,O as Hf,P as fv,C as Qf,a as pv,T as Kf,D as mv,R as hv}from"./vendor-radix-CQ77EO2y.js";import{c as gv}from"./vendor-recharts-C9EZkgbP.js";import{M as Lw}from"./vendor-markdown-6dwjPOKK.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&r(d)}).observe(document,{childList:!0,subtree:!0});function i(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function r(l){if(l.ep)return;l.ep=!0;const c=i(l);fetch(l.href,c)}})();var ef={exports:{}},Kr={},tf={exports:{}},nf={};var Uy;function qw(){return Uy||(Uy=1,(function(e){function n($,W){var fe=$.length;$.push(W);e:for(;0<fe;){var je=fe-1>>>1,se=$[je];if(0<l(se,W))$[je]=W,$[fe]=se,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,se=$.length,Ye=se>>>1;je<Ye;){var J=2*(je+1)-1,ue=$[J],ee=J+1,de=$[ee];if(0>l(ue,fe))ee<se&&0>l(de,ue)?($[je]=de,$[ee]=fe,je=ee):($[je]=ue,$[J]=fe,je=J);else if(ee<se&&0>l(de,fe))$[je]=de,$[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=[],v=[],S=1,x=null,N=3,_=!1,z=!1,k=!1,E=!1,R=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;function Z($){for(var W=i(v);W!==null;){if(W.callback===null)r(v);else if(W.startTime<=$)r(v),W.sortIndex=W.expirationTime,n(g,W);else break;W=i(v)}}function X($){if(k=!1,Z($),!z)if(i(g)!==null)z=!0,F||(F=!0,Se());else{var W=i(v);W!==null&&pe(X,W.startTime-$)}}var F=!1,O=-1,M=5,oe=-1;function ke(){return E?!0:!(e.unstable_now()-oe<M)}function Oe(){if(E=!1,F){var $=e.unstable_now();oe=$;var W=!0;try{e:{z=!1,k&&(k=!1,I(O),O=-1),_=!0;var fe=N;try{t:{for(Z($),x=i(g);x!==null&&!(x.expirationTime>$&&ke());){var je=x.callback;if(typeof je=="function"){x.callback=null,N=x.priorityLevel;var se=je(x.expirationTime<=$);if($=e.unstable_now(),typeof se=="function"){x.callback=se,Z($),W=!0;break t}x===i(g)&&r(g),Z($)}else r(g);x=i(g)}if(x!==null)W=!0;else{var Ye=i(v);Ye!==null&&pe(X,Ye.startTime-$),W=!1}}break e}finally{x=null,N=fe,_=!1}W=void 0}}finally{W?Se():F=!1}}}var Se;if(typeof P=="function")Se=function(){P(Oe)};else if(typeof MessageChannel<"u"){var He=new MessageChannel,le=He.port2;He.port1.onmessage=Oe,Se=function(){le.postMessage(null)}}else Se=function(){R(Oe,0)};function pe($,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 N},e.unstable_next=function($){switch(N){case 1:case 2:case 3:var W=3;break;default:W=N}var fe=N;N=W;try{return $()}finally{N=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=N;N=$;try{return W()}finally{N=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 se=-1;break;case 2:se=250;break;case 5:se=1073741823;break;case 4:se=1e4;break;default:se=5e3}return se=fe+se,$={id:S++,callback:W,priorityLevel:$,startTime:fe,expirationTime:se,sortIndex:-1},fe>je?($.sortIndex=fe,n(v,$),i(g)===null&&$===i(v)&&(k?(I(O),O=-1):k=!0,pe(X,fe-je))):($.sortIndex=se,n(g,$),z||_||(z=!0,F||(F=!0,Se()))),$},e.unstable_shouldYield=ke,e.unstable_wrapCallback=function($){var W=N;return function(){var fe=N;N=W;try{return $.apply(this,arguments)}finally{N=fe}}}})(nf)),nf}var $y;function Uw(){return $y||($y=1,tf.exports=qw()),tf.exports}var Vy;function $w(){if(Vy)return Kr;Vy=1;var e=Uw(),n=Nw(),i=kw();function r(t){var a="https://react.dev/errors/"+t;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)a+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+t+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function c(t){var a=t,s=t;if(t.alternate)for(;a.return;)a=a.return;else{t=a;do a=t,(a.flags&4098)!==0&&(s=a.return),t=a.return;while(t)}return a.tag===3?s:null}function d(t){if(t.tag===13){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function h(t){if(t.tag===31){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function g(t){if(c(t)!==t)throw Error(r(188))}function v(t){var a=t.alternate;if(!a){if(a=c(t),a===null)throw Error(r(188));return a!==t?null:t}for(var s=t,o=a;;){var u=s.return;if(u===null)break;var m=u.alternate;if(m===null){if(o=u.return,o!==null){s=o;continue}break}if(u.child===m.child){for(m=u.child;m;){if(m===s)return g(u),t;if(m===o)return g(u),a;m=m.sibling}throw Error(r(188))}if(s.return!==o.return)s=u,o=m;else{for(var b=!1,j=u.child;j;){if(j===s){b=!0,s=u,o=m;break}if(j===o){b=!0,o=u,s=m;break}j=j.sibling}if(!b){for(j=m.child;j;){if(j===s){b=!0,s=m,o=u;break}if(j===o){b=!0,o=m,s=u;break}j=j.sibling}if(!b)throw Error(r(189))}}if(s.alternate!==o)throw Error(r(190))}if(s.tag!==3)throw Error(r(188));return s.stateNode.current===s?t:a}function S(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t;for(t=t.child;t!==null;){if(a=S(t),a!==null)return a;t=t.sibling}return null}var x=Object.assign,N=Symbol.for("react.element"),_=Symbol.for("react.transitional.element"),z=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"),P=Symbol.for("react.context"),Z=Symbol.for("react.forward_ref"),X=Symbol.for("react.suspense"),F=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"),Oe=Symbol.iterator;function Se(t){return t===null||typeof t!="object"?null:(t=Oe&&t[Oe]||t["@@iterator"],typeof t=="function"?t:null)}var He=Symbol.for("react.client.reference");function le(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===He?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 X:return"Suspense";case F:return"SuspenseList";case oe:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case z:return"Portal";case P:return t.displayName||"Context";case I:return(t._context.displayName||"Context")+".Consumer";case Z: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:le(t.type)||"Memo";case M:a=t._payload,t=t._init;try{return le(t(a))}catch{}}return null}var pe=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=[],se=-1;function Ye(t){return{current:t}}function J(t){0>se||(t.current=je[se],je[se]=null,se--)}function ue(t,a){se++,je[se]=t.current,t.current=a}var ee=Ye(null),de=Ye(null),ae=Ye(null),Ne=Ye(null);function tt(t,a){switch(ue(ae,a),ue(de,t),ue(ee,null),a.nodeType){case 9:case 11:t=(t=a.documentElement)&&(t=t.namespaceURI)?ly(t):0;break;default:if(t=a.tagName,a=a.namespaceURI)a=ly(a),t=cy(a,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}J(ee),ue(ee,t)}function xe(){J(ee),J(de),J(ae)}function $e(t){t.memoizedState!==null&&ue(Ne,t);var a=ee.current,s=cy(a,t.type);a!==s&&(ue(de,t),ue(ee,s))}function Qe(t){de.current===t&&(J(ee),J(de)),Ne.current===t&&(J(Ne),Pr._currentValue=fe)}var Dt,Un;function Rt(t){if(Dt===void 0)try{throw Error()}catch(s){var a=s.stack.trim().match(/\n( *(at )?)/);Dt=a&&a[1]||"",Un=-1<s.stack.indexOf(`
3
3
  at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
4
4
  `+Dt+t+Un}var er=!1;function Ri(t,a){if(!t||er)return"";er=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(a){var Y=function(){throw Error()};if(Object.defineProperty(Y.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Y,[])}catch(V){var U=V}Reflect.construct(t,[],Y)}else{try{Y.call()}catch(V){U=V}t.call(Y.prototype)}}else{try{throw Error()}catch(V){U=V}(Y=t())&&typeof Y.catch=="function"&&Y.catch(function(){})}}catch(V){if(V&&U&&typeof V.stack=="string")return[V.stack,U.stack]}return[null,null]}};o.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var u=Object.getOwnPropertyDescriptor(o.DetermineComponentFrameRoot,"name");u&&u.configurable&&Object.defineProperty(o.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var m=o.DetermineComponentFrameRoot(),b=m[0],j=m[1];if(b&&j){var C=b.split(`
@@ -49,7 +49,7 @@ Error generating stack: `+o.message+`
49
49
 
50
50
  `)}_.write("payload.value = newResult;"),_.write("return payload;");const I=_.compile();return(P,Z)=>I(N,P,Z)};let c;const d=io,h=!qv.jitless,v=h&&t2.value,S=n.catchall;let x;e._zod.parse=(N,_)=>{x??(x=r.value);const z=N.value;return d(z)?h&&v&&_?.async===!1&&_.jitless!==!0?(c||(c=l(n.shape)),N=c(N,_),S?t0([],z,N,_,x,e):N):i(N,_):(N.issues.push({expected:"object",code:"invalid_type",input:z,inst:e}),N)}});function ab(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=>!zs(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=>Fa(d,r,Ja())))}),n)}const n0=Q("$ZodUnion",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.options.some(l=>l._zod.optin==="optional")?"optional":void 0),Ge(e._zod,"optout",()=>n.options.some(l=>l._zod.optout==="optional")?"optional":void 0),Ge(e._zod,"values",()=>{if(n.options.every(l=>l._zod.values))return new Set(n.options.flatMap(l=>Array.from(l._zod.values)))}),Ge(e._zod,"pattern",()=>{if(n.options.every(l=>l._zod.pattern)){const l=n.options.map(c=>c._zod.pattern);return new RegExp(`^(${l.map(c=>ep(c.source)).join("|")})$`)}});const i=n.options.length===1,r=n.options[0]._zod.run;e._zod.parse=(l,c)=>{if(i)return r(l,c);let d=!1;const h=[];for(const g of n.options){const v=g._zod.run({value:l.value,issues:[]},c);if(v instanceof Promise)h.push(v),d=!0;else{if(v.issues.length===0)return v;h.push(v)}}return d?Promise.all(h).then(g=>ab(g,l,e,c)):ab(h,l,e,c)}}),V_=Q("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=!1,n0.init(e,n);const i=e._zod.parse;Ge(e._zod,"propValues",()=>{const l={};for(const c of n.options){const d=c._zod.propValues;if(!d||Object.keys(d).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(c)}"`);for(const[h,g]of Object.entries(d)){l[h]||(l[h]=new Set);for(const v of g)l[h].add(v)}}return l});const r=mc(()=>{const l=n.options,c=new Map;for(const d of l){const h=d._zod.propValues?.[n.discriminator];if(!h||h.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(d)}"`);for(const g of h){if(c.has(g))throw new Error(`Duplicate discriminator value "${String(g)}"`);c.set(g,d)}}return c});e._zod.parse=(l,c)=>{const d=l.value;if(!io(d))return l.issues.push({code:"invalid_type",expected:"object",input:d,inst:e}),l;const h=r.value.get(d?.[n.discriminator]);return h?h._zod.run(l,c):n.unionFallback?i(l,c):(l.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,input:d,path:[n.discriminator],inst:e}),l)}}),I_=Q("$ZodIntersection",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{const l=i.value,c=n.left._zod.run({value:l,issues:[]},r),d=n.right._zod.run({value:l,issues:[]},r);return c instanceof Promise||d instanceof Promise?Promise.all([c,d]).then(([g,v])=>ib(i,g,v)):ib(i,c,d)}});function _f(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=_f(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=_f(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 ib(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}),zs(e))return e;const d=_f(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 P_=Q("$ZodRecord",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{const l=i.value;if(!qs(l))return i.issues.push({expected:"record",code:"invalid_type",input:l,inst:e}),i;const c=[],d=n.keyType._zod.values;if(d){i.value={};const h=new Set;for(const v of d)if(typeof v=="string"||typeof v=="number"||typeof v=="symbol"){h.add(typeof v=="number"?v.toString():v);const S=n.valueType._zod.run({value:l[v],issues:[]},r);S instanceof Promise?c.push(S.then(x=>{x.issues.length&&i.issues.push(...Ts(v,x.issues)),i.value[v]=x.value})):(S.issues.length&&i.issues.push(...Ts(v,S.issues)),i.value[v]=S.value)}let g;for(const v in l)h.has(v)||(g=g??[],g.push(v));g&&g.length>0&&i.issues.push({code:"unrecognized_keys",input:l,inst:e,keys:g})}else{i.value={};for(const h of Reflect.ownKeys(l)){if(h==="__proto__")continue;let g=n.keyType._zod.run({value:h,issues:[]},r);if(g instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof h=="string"&&Zv.test(h)&&g.issues.length){const x=n.keyType._zod.run({value:Number(h),issues:[]},r);if(x instanceof Promise)throw new Error("Async schemas not supported in object keys currently");x.issues.length===0&&(g=x)}if(g.issues.length){n.mode==="loose"?i.value[h]=l[h]:i.issues.push({code:"invalid_key",origin:"record",issues:g.issues.map(x=>Fa(x,r,Ja())),input:h,path:[h],inst:e});continue}const S=n.valueType._zod.run({value:l[h],issues:[]},r);S instanceof Promise?c.push(S.then(x=>{x.issues.length&&i.issues.push(...Ts(h,x.issues)),i.value[g.value]=x.value})):(S.issues.length&&i.issues.push(...Ts(h,S.issues)),i.value[g.value]=S.value)}}return c.length?Promise.all(c).then(()=>i):i}}),G_=Q("$ZodEnum",(e,n)=>{ut.init(e,n);const i=Uv(n.entries),r=new Set(i);e._zod.values=r,e._zod.pattern=new RegExp(`^(${i.filter(l=>n2.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}}),H_=Q("$ZodLiteral",(e,n)=>{if(ut.init(e,n),n.values.length===0)throw new Error("Cannot create literal schema with no valid values");const i=new Set(n.values);e._zod.values=i,e._zod.pattern=new RegExp(`^(${n.values.map(r=>typeof r=="string"?Us(r):r?Us(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,l)=>{const c=r.value;return i.has(c)||r.issues.push({code:"invalid_value",values:n.values,input:c,inst:e}),r}}),Q_=Q("$ZodTransform",(e,n)=>{ut.init(e,n),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new Lv(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 sb(e,n){return e.issues.length&&n===void 0?{issues:[],value:void 0}:e}const a0=Q("$ZodOptional",(e,n)=>{ut.init(e,n),e._zod.optin="optional",e._zod.optout="optional",Ge(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Ge(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${ep(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=>sb(c,i.value)):sb(l,i.value)}return i.value===void 0?i:n.innerType._zod.run(i,r)}}),K_=Q("$ZodExactOptional",(e,n)=>{a0.init(e,n),Ge(e._zod,"values",()=>n.innerType._zod.values),Ge(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(i,r)=>n.innerType._zod.run(i,r)}),Z_=Q("$ZodNullable",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.innerType._zod.optin),Ge(e._zod,"optout",()=>n.innerType._zod.optout),Ge(e._zod,"pattern",()=>{const i=n.innerType._zod.pattern;return i?new RegExp(`^(${ep(i.source)}|null)$`):void 0}),Ge(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),e._zod.parse=(i,r)=>i.value===null?i:n.innerType._zod.run(i,r)}),Y_=Q("$ZodDefault",(e,n)=>{ut.init(e,n),e._zod.optin="optional",Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);if(i.value===void 0)return i.value=n.defaultValue,i;const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>rb(c,n)):rb(l,n)}});function rb(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}const X_=Q("$ZodPrefault",(e,n)=>{ut.init(e,n),e._zod.optin="optional",Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>(r.direction==="backward"||i.value===void 0&&(i.value=n.defaultValue),n.innerType._zod.run(i,r))}),J_=Q("$ZodNonOptional",(e,n)=>{ut.init(e,n),Ge(e._zod,"values",()=>{const i=n.innerType._zod.values;return i?new Set([...i].filter(r=>r!==void 0)):void 0}),e._zod.parse=(i,r)=>{const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>ob(c,e)):ob(l,e)}});function ob(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 F_=Q("$ZodCatch",(e,n)=>{ut.init(e,n),Ge(e._zod,"optin",()=>n.innerType._zod.optin),Ge(e._zod,"optout",()=>n.innerType._zod.optout),Ge(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(c=>(i.value=c.value,c.issues.length&&(i.value=n.catchValue({...i,error:{issues:c.issues.map(d=>Fa(d,r,Ja()))},input:i.value}),i.issues=[]),i)):(i.value=l.value,l.issues.length&&(i.value=n.catchValue({...i,error:{issues:l.issues.map(c=>Fa(c,r,Ja()))},input:i.value}),i.issues=[]),i)}}),W_=Q("$ZodPipe",(e,n)=>{ut.init(e,n),Ge(e._zod,"values",()=>n.in._zod.values),Ge(e._zod,"optin",()=>n.in._zod.optin),Ge(e._zod,"optout",()=>n.out._zod.optout),Ge(e._zod,"propValues",()=>n.in._zod.propValues),e._zod.parse=(i,r)=>{if(r.direction==="backward"){const c=n.out._zod.run(i,r);return c instanceof Promise?c.then(d=>ql(d,n.in,r)):ql(c,n.in,r)}const l=n.in._zod.run(i,r);return l instanceof Promise?l.then(c=>ql(c,n.out,r)):ql(l,n.out,r)}});function ql(e,n,i){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:e.value,issues:e.issues},i)}const eC=Q("$ZodReadonly",(e,n)=>{ut.init(e,n),Ge(e._zod,"propValues",()=>n.innerType._zod.propValues),Ge(e._zod,"values",()=>n.innerType._zod.values),Ge(e._zod,"optin",()=>n.innerType?._zod?.optin),Ge(e._zod,"optout",()=>n.innerType?._zod?.optout),e._zod.parse=(i,r)=>{if(r.direction==="backward")return n.innerType._zod.run(i,r);const l=n.innerType._zod.run(i,r);return l instanceof Promise?l.then(lb):lb(l)}});function lb(e){return e.value=Object.freeze(e.value),e}const tC=Q("$ZodCustom",(e,n)=>{an.init(e,n),ut.init(e,n),e._zod.parse=(i,r)=>i,e._zod.check=i=>{const r=i.value,l=n.fn(r);if(l instanceof Promise)return l.then(c=>cb(c,i,r,e));cb(l,i,r,e)}});function cb(e,n,i,r){if(!e){const l={code:"custom",input:i,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(l.params=r._zod.def.params),n.issues.push(so(l))}}var ub;class nC{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 aC(){return new nC}(ub=globalThis).__zod_globalRegistry??(ub.__zod_globalRegistry=aC());const Wr=globalThis.__zod_globalRegistry;function iC(e,n){return new e({type:"string",...be(n)})}function sC(e,n){return new e({type:"string",format:"email",check:"string_format",abort:!1,...be(n)})}function db(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...be(n)})}function rC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...be(n)})}function oC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...be(n)})}function lC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...be(n)})}function cC(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...be(n)})}function uC(e,n){return new e({type:"string",format:"url",check:"string_format",abort:!1,...be(n)})}function dC(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...be(n)})}function fC(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...be(n)})}function pC(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...be(n)})}function mC(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...be(n)})}function hC(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...be(n)})}function gC(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...be(n)})}function yC(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...be(n)})}function bC(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...be(n)})}function vC(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...be(n)})}function SC(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...be(n)})}function xC(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...be(n)})}function wC(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...be(n)})}function jC(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...be(n)})}function NC(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...be(n)})}function kC(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...be(n)})}function AC(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...be(n)})}function _C(e,n){return new e({type:"string",format:"date",check:"string_format",...be(n)})}function CC(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...be(n)})}function zC(e,n){return new e({type:"string",format:"duration",check:"string_format",...be(n)})}function TC(e,n){return new e({type:"number",checks:[],...be(n)})}function EC(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...be(n)})}function OC(e,n){return new e({type:"boolean",...be(n)})}function DC(e){return new e({type:"unknown"})}function RC(e,n){return new e({type:"never",...be(n)})}function fb(e,n){return new Xv({check:"less_than",...be(n),value:e,inclusive:!1})}function rf(e,n){return new Xv({check:"less_than",...be(n),value:e,inclusive:!0})}function pb(e,n){return new Jv({check:"greater_than",...be(n),value:e,inclusive:!1})}function of(e,n){return new Jv({check:"greater_than",...be(n),value:e,inclusive:!0})}function mb(e,n){return new Y2({check:"multiple_of",...be(n),value:e})}function i0(e,n){return new J2({check:"max_length",...be(n),maximum:e})}function nc(e,n){return new F2({check:"min_length",...be(n),minimum:e})}function s0(e,n){return new W2({check:"length_equals",...be(n),length:e})}function MC(e,n){return new e_({check:"string_format",format:"regex",...be(n),pattern:e})}function BC(e){return new t_({check:"string_format",format:"lowercase",...be(e)})}function LC(e){return new n_({check:"string_format",format:"uppercase",...be(e)})}function qC(e,n){return new a_({check:"string_format",format:"includes",...be(n),includes:e})}function UC(e,n){return new i_({check:"string_format",format:"starts_with",...be(n),prefix:e})}function $C(e,n){return new s_({check:"string_format",format:"ends_with",...be(n),suffix:e})}function Qs(e){return new r_({check:"overwrite",tx:e})}function VC(e){return Qs(n=>n.normalize(e))}function IC(){return Qs(e=>e.trim())}function PC(){return Qs(e=>e.toLowerCase())}function GC(){return Qs(e=>e.toUpperCase())}function HC(){return Qs(e=>e2(e))}function QC(e,n,i){return new e({type:"array",element:n,...be(i)})}function KC(e,n,i){return new e({type:"custom",check:"custom",fn:n,...be(i)})}function ZC(e){const n=YC(i=>(i.addIssue=r=>{if(typeof r=="string")i.issues.push(so(r,i.value,n._zod.def));else{const l=r;l.fatal&&(l.continue=!1),l.code??(l.code="custom"),l.input??(l.input=i.value),l.inst??(l.inst=n),l.continue??(l.continue=!n._zod.def.abort),i.issues.push(so(l))}},e(i.value,i)));return n}function YC(e,n){const i=new an({check:"custom",...be(n)});return i._zod.check=e,i}function r0(e){let n=e?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Wr,target:n,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function At(e,n,i={path:[],schemaPath:[]}){var r;const l=e._zod.def,c=n.seen.get(e);if(c)return c.count++,i.schemaPath.includes(e)&&(c.cycle=i.path),c.schema;const d={schema:{},count:1,cycle:void 0,path:i.path};n.seen.set(e,d);const h=e._zod.toJSONSchema?.();if(h)d.schema=h;else{const S={...i,schemaPath:[...i.schemaPath,e],path:i.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,d.schema,S);else{const N=d.schema,_=n.processors[l.type];if(!_)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${l.type}`);_(e,n,N,S)}const x=e._zod.parent;x&&(d.ref||(d.ref=x),At(x,n,S),n.seen.get(x).isParent=!0)}const g=n.metadataRegistry.get(e);return g&&Object.assign(d.schema,g),n.io==="input"&&Gt(e)&&(delete d.schema.examples,delete d.schema.default),n.io==="input"&&d.schema._prefault&&((r=d.schema).default??(r.default=d.schema._prefault)),delete d.schema._prefault,n.seen.get(e).schema}function o0(e,n){const i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const d of e.seen.entries()){const h=e.metadataRegistry.get(d[0])?.id;if(h){const g=r.get(h);if(g&&g!==d[0])throw new Error(`Duplicate schema id "${h}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(h,d[0])}}const l=d=>{const h=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const x=e.external.registry.get(d[0])?.id,N=e.external.uri??(z=>z);if(x)return{ref:N(x)};const _=d[1].defId??d[1].schema.id??`schema${e.counter++}`;return d[1].defId=_,{defId:_,ref:`${N("__shared")}#/${h}/${_}`}}if(d[1]===i)return{ref:"#"};const v=`#/${h}/`,S=d[1].schema.id??`__schema${e.counter++}`;return{defId:S,ref:v+S}},c=d=>{if(d[1].schema.$ref)return;const h=d[1],{ref:g,defId:v}=l(d);h.def={...h.schema},v&&(h.defId=v);const S=h.schema;for(const x in S)delete S[x];S.$ref=g};if(e.cycles==="throw")for(const d of e.seen.entries()){const h=d[1];if(h.cycle)throw new Error(`Cycle detected: #/${h.cycle?.join("/")}/<root>
51
51
 
52
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const d of e.seen.entries()){const h=d[1];if(n===d[0]){c(d);continue}if(e.external){const v=e.external.registry.get(d[0])?.id;if(n!==d[0]&&v){c(d);continue}}if(e.metadataRegistry.get(d[0])?.id){c(d);continue}if(h.cycle){c(d);continue}if(h.count>1&&e.reused==="ref"){c(d);continue}}}function l0(e,n){const i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=d=>{const h=e.seen.get(d);if(h.ref===null)return;const g=h.def??h.schema,v={...g},S=h.ref;if(h.ref=null,S){r(S);const N=e.seen.get(S),_=N.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(g.allOf=g.allOf??[],g.allOf.push(_)):Object.assign(g,_),Object.assign(g,v),d._zod.parent===S)for(const k in g)k==="$ref"||k==="allOf"||k in v||delete g[k];if(_.$ref&&N.def)for(const k in g)k==="$ref"||k==="allOf"||k in N.def&&JSON.stringify(g[k])===JSON.stringify(N.def[k])&&delete g[k]}const x=d._zod.parent;if(x&&x!==S){r(x);const N=e.seen.get(x);if(N?.schema.$ref&&(g.$ref=N.schema.$ref,N.def))for(const _ in g)_==="$ref"||_==="allOf"||_ in N.def&&JSON.stringify(g[_])===JSON.stringify(N.def[_])&&delete g[_]}e.override({zodSchema:d,jsonSchema:g,path:h.path??[]})};for(const d of[...e.seen.entries()].reverse())r(d[0]);const l={};if(e.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?l.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?l.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const d=e.external.registry.get(n)?.id;if(!d)throw new Error("Schema is missing an `id` property");l.$id=e.external.uri(d)}Object.assign(l,i.def??i.schema);const c=e.external?.defs??{};for(const d of e.seen.entries()){const h=d[1];h.def&&h.defId&&(c[h.defId]=h.def)}e.external||Object.keys(c).length>0&&(e.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{const d=JSON.parse(JSON.stringify(l));return Object.defineProperty(d,"~standard",{value:{...n["~standard"],jsonSchema:{input:ac(n,"input",e.processors),output:ac(n,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function Gt(e,n){const i=n??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Gt(r.element,i);if(r.type==="set")return Gt(r.valueType,i);if(r.type==="lazy")return Gt(r.getter(),i);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Gt(r.innerType,i);if(r.type==="intersection")return Gt(r.left,i)||Gt(r.right,i);if(r.type==="record"||r.type==="map")return Gt(r.keyType,i)||Gt(r.valueType,i);if(r.type==="pipe")return Gt(r.in,i)||Gt(r.out,i);if(r.type==="object"){for(const l in r.shape)if(Gt(r.shape[l],i))return!0;return!1}if(r.type==="union"){for(const l of r.options)if(Gt(l,i))return!0;return!1}if(r.type==="tuple"){for(const l of r.items)if(Gt(l,i))return!0;return!!(r.rest&&Gt(r.rest,i))}return!1}const XC=(e,n={})=>i=>{const r=r0({...i,processors:n});return At(e,r),o0(r,e),l0(r,e)},ac=(e,n,i={})=>r=>{const{libraryOptions:l,target:c}=r??{},d=r0({...l??{},target:c,io:n,processors:i});return At(e,d),o0(d,e),l0(d,e)},JC={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},FC=(e,n,i,r)=>{const l=i;l.type="string";const{minimum:c,maximum:d,format:h,patterns:g,contentEncoding:v}=e._zod.bag;if(typeof c=="number"&&(l.minLength=c),typeof d=="number"&&(l.maxLength=d),h&&(l.format=JC[h]??h,l.format===""&&delete l.format,h==="time"&&delete l.format),v&&(l.contentEncoding=v),g&&g.size>0){const S=[...g];S.length===1?l.pattern=S[0].source:S.length>1&&(l.allOf=[...S.map(x=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:x.source}))])}},WC=(e,n,i,r)=>{const l=i,{minimum:c,maximum:d,format:h,multipleOf:g,exclusiveMaximum:v,exclusiveMinimum:S}=e._zod.bag;typeof h=="string"&&h.includes("int")?l.type="integer":l.type="number",typeof S=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.minimum=S,l.exclusiveMinimum=!0):l.exclusiveMinimum=S),typeof c=="number"&&(l.minimum=c,typeof S=="number"&&n.target!=="draft-04"&&(S>=c?delete l.minimum:delete l.exclusiveMinimum)),typeof v=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.maximum=v,l.exclusiveMaximum=!0):l.exclusiveMaximum=v),typeof d=="number"&&(l.maximum=d,typeof v=="number"&&n.target!=="draft-04"&&(v<=d?delete l.maximum:delete l.exclusiveMaximum)),typeof g=="number"&&(l.multipleOf=g)},ez=(e,n,i,r)=>{i.type="boolean"},tz=(e,n,i,r)=>{i.not={}},nz=(e,n,i,r)=>{},az=(e,n,i,r)=>{const l=e._zod.def,c=Uv(l.entries);c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),i.enum=c},iz=(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},sz=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},rz=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},oz=(e,n,i,r)=>{const l=i,c=e._zod.def,{minimum:d,maximum:h}=e._zod.bag;typeof d=="number"&&(l.minItems=d),typeof h=="number"&&(l.maxItems=h),l.type="array",l.items=At(c.element,n,{...r,path:[...r.path,"items"]})},lz=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object",l.properties={};const d=c.shape;for(const v in d)l.properties[v]=At(d[v],n,{...r,path:[...r.path,"properties",v]});const h=new Set(Object.keys(d)),g=new Set([...h].filter(v=>{const S=c.shape[v]._zod;return n.io==="input"?S.optin===void 0:S.optout===void 0}));g.size>0&&(l.required=Array.from(g)),c.catchall?._zod.def.type==="never"?l.additionalProperties=!1:c.catchall?c.catchall&&(l.additionalProperties=At(c.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(l.additionalProperties=!1)},cz=(e,n,i,r)=>{const l=e._zod.def,c=l.inclusive===!1,d=l.options.map((h,g)=>At(h,n,{...r,path:[...r.path,c?"oneOf":"anyOf",g]}));c?i.oneOf=d:i.anyOf=d},uz=(e,n,i,r)=>{const l=e._zod.def,c=At(l.left,n,{...r,path:[...r.path,"allOf",0]}),d=At(l.right,n,{...r,path:[...r.path,"allOf",1]}),h=v=>"allOf"in v&&Object.keys(v).length===1,g=[...h(c)?c.allOf:[c],...h(d)?d.allOf:[d]];i.allOf=g},dz=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object";const d=c.keyType,g=d._zod.bag?.patterns;if(c.mode==="loose"&&g&&g.size>0){const S=At(c.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});l.patternProperties={};for(const x of g)l.patternProperties[x.source]=S}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(l.propertyNames=At(c.keyType,n,{...r,path:[...r.path,"propertyNames"]})),l.additionalProperties=At(c.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const v=d._zod.values;if(v){const S=[...v].filter(x=>typeof x=="string"||typeof x=="number");S.length>0&&(l.required=S)}},fz=(e,n,i,r)=>{const l=e._zod.def,c=At(l.innerType,n,r),d=n.seen.get(e);n.target==="openapi-3.0"?(d.ref=l.innerType,i.nullable=!0):i.anyOf=[c,{type:"null"}]},pz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},mz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.default=JSON.parse(JSON.stringify(l.defaultValue))},hz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,n.io==="input"&&(i._prefault=JSON.parse(JSON.stringify(l.defaultValue)))},gz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType;let d;try{d=l.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}i.default=d},yz=(e,n,i,r)=>{const l=e._zod.def,c=n.io==="input"?l.in._zod.def.type==="transform"?l.out:l.in:l.out;At(c,n,r);const d=n.seen.get(e);d.ref=c},bz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.readOnly=!0},c0=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},vz=Q("ZodISODateTime",(e,n)=>{S_.init(e,n),ft.init(e,n)});function Sz(e){return AC(vz,e)}const xz=Q("ZodISODate",(e,n)=>{x_.init(e,n),ft.init(e,n)});function wz(e){return _C(xz,e)}const jz=Q("ZodISOTime",(e,n)=>{w_.init(e,n),ft.init(e,n)});function Nz(e){return CC(jz,e)}const kz=Q("ZodISODuration",(e,n)=>{j_.init(e,n),ft.init(e,n)});function Az(e){return zC(kz,e)}const _z=(e,n)=>{Pv.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>p2(e,i)},flatten:{value:i=>f2(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,Af,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,Af,2)}},isEmpty:{get(){return e.issues.length===0}}})},zn=Q("ZodError",_z,{Parent:Error}),Cz=np(zn),zz=ap(zn),Tz=hc(zn),Ez=gc(zn),Oz=g2(zn),Dz=y2(zn),Rz=b2(zn),Mz=v2(zn),Bz=S2(zn),Lz=x2(zn),qz=w2(zn),Uz=j2(zn),dt=Q("ZodType",(e,n)=>(ut.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ac(e,"input"),output:ac(e,"output")}}),e.toJSONSchema=XC(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...i)=>e.clone(ei(n,{checks:[...n.checks??[],...i.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(i,r)=>ti(e,i,r),e.brand=()=>e,e.register=((i,r)=>(i.add(e,r),e)),e.parse=(i,r)=>Cz(e,i,r,{callee:e.parse}),e.safeParse=(i,r)=>Tz(e,i,r),e.parseAsync=async(i,r)=>zz(e,i,r,{callee:e.parseAsync}),e.safeParseAsync=async(i,r)=>Ez(e,i,r),e.spa=e.safeParseAsync,e.encode=(i,r)=>Oz(e,i,r),e.decode=(i,r)=>Dz(e,i,r),e.encodeAsync=async(i,r)=>Rz(e,i,r),e.decodeAsync=async(i,r)=>Mz(e,i,r),e.safeEncode=(i,r)=>Bz(e,i,r),e.safeDecode=(i,r)=>Lz(e,i,r),e.safeEncodeAsync=async(i,r)=>qz(e,i,r),e.safeDecodeAsync=async(i,r)=>Uz(e,i,r),e.refine=(i,r)=>e.check(OT(i,r)),e.superRefine=i=>e.check(DT(i)),e.overwrite=i=>e.check(Qs(i)),e.optional=()=>yb(e),e.exactOptional=()=>vT(e),e.nullable=()=>bb(e),e.nullish=()=>yb(bb(e)),e.nonoptional=i=>kT(e,i),e.array=()=>A(e),e.or=i=>bc([e,i]),e.and=i=>pT(e,i),e.transform=i=>vb(e,yT(i)),e.default=i=>wT(e,i),e.prefault=i=>NT(e,i),e.catch=i=>_T(e,i),e.pipe=i=>vb(e,i),e.readonly=()=>TT(e),e.describe=i=>{const r=e.clone();return Wr.add(r,{description:i}),r},Object.defineProperty(e,"description",{get(){return Wr.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return Wr.get(e);const r=e.clone();return Wr.add(r,i[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),u0=Q("_ZodString",(e,n)=>{ip.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>FC(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(MC(...r)),e.includes=(...r)=>e.check(qC(...r)),e.startsWith=(...r)=>e.check(UC(...r)),e.endsWith=(...r)=>e.check($C(...r)),e.min=(...r)=>e.check(nc(...r)),e.max=(...r)=>e.check(i0(...r)),e.length=(...r)=>e.check(s0(...r)),e.nonempty=(...r)=>e.check(nc(1,...r)),e.lowercase=r=>e.check(BC(r)),e.uppercase=r=>e.check(LC(r)),e.trim=()=>e.check(IC()),e.normalize=(...r)=>e.check(VC(...r)),e.toLowerCase=()=>e.check(PC()),e.toUpperCase=()=>e.check(GC()),e.slugify=()=>e.check(HC())}),$z=Q("ZodString",(e,n)=>{ip.init(e,n),u0.init(e,n),e.email=i=>e.check(sC(Vz,i)),e.url=i=>e.check(uC(Iz,i)),e.jwt=i=>e.check(kC(aT,i)),e.emoji=i=>e.check(dC(Pz,i)),e.guid=i=>e.check(db(hb,i)),e.uuid=i=>e.check(rC(Ul,i)),e.uuidv4=i=>e.check(oC(Ul,i)),e.uuidv6=i=>e.check(lC(Ul,i)),e.uuidv7=i=>e.check(cC(Ul,i)),e.nanoid=i=>e.check(fC(Gz,i)),e.guid=i=>e.check(db(hb,i)),e.cuid=i=>e.check(pC(Hz,i)),e.cuid2=i=>e.check(mC(Qz,i)),e.ulid=i=>e.check(hC(Kz,i)),e.base64=i=>e.check(wC(eT,i)),e.base64url=i=>e.check(jC(tT,i)),e.xid=i=>e.check(gC(Zz,i)),e.ksuid=i=>e.check(yC(Yz,i)),e.ipv4=i=>e.check(bC(Xz,i)),e.ipv6=i=>e.check(vC(Jz,i)),e.cidrv4=i=>e.check(SC(Fz,i)),e.cidrv6=i=>e.check(xC(Wz,i)),e.e164=i=>e.check(NC(nT,i)),e.datetime=i=>e.check(Sz(i)),e.date=i=>e.check(wz(i)),e.time=i=>e.check(Nz(i)),e.duration=i=>e.check(Az(i))});function p(e){return iC($z,e)}const ft=Q("ZodStringFormat",(e,n)=>{ct.init(e,n),u0.init(e,n)}),Vz=Q("ZodEmail",(e,n)=>{d_.init(e,n),ft.init(e,n)}),hb=Q("ZodGUID",(e,n)=>{c_.init(e,n),ft.init(e,n)}),Ul=Q("ZodUUID",(e,n)=>{u_.init(e,n),ft.init(e,n)}),Iz=Q("ZodURL",(e,n)=>{f_.init(e,n),ft.init(e,n)}),Pz=Q("ZodEmoji",(e,n)=>{p_.init(e,n),ft.init(e,n)}),Gz=Q("ZodNanoID",(e,n)=>{m_.init(e,n),ft.init(e,n)}),Hz=Q("ZodCUID",(e,n)=>{h_.init(e,n),ft.init(e,n)}),Qz=Q("ZodCUID2",(e,n)=>{g_.init(e,n),ft.init(e,n)}),Kz=Q("ZodULID",(e,n)=>{y_.init(e,n),ft.init(e,n)}),Zz=Q("ZodXID",(e,n)=>{b_.init(e,n),ft.init(e,n)}),Yz=Q("ZodKSUID",(e,n)=>{v_.init(e,n),ft.init(e,n)}),Xz=Q("ZodIPv4",(e,n)=>{N_.init(e,n),ft.init(e,n)}),Jz=Q("ZodIPv6",(e,n)=>{k_.init(e,n),ft.init(e,n)}),Fz=Q("ZodCIDRv4",(e,n)=>{A_.init(e,n),ft.init(e,n)}),Wz=Q("ZodCIDRv6",(e,n)=>{__.init(e,n),ft.init(e,n)}),eT=Q("ZodBase64",(e,n)=>{C_.init(e,n),ft.init(e,n)}),tT=Q("ZodBase64URL",(e,n)=>{T_.init(e,n),ft.init(e,n)}),nT=Q("ZodE164",(e,n)=>{E_.init(e,n),ft.init(e,n)}),aT=Q("ZodJWT",(e,n)=>{D_.init(e,n),ft.init(e,n)}),d0=Q("ZodNumber",(e,n)=>{Wv.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>WC(e,r,l),e.gt=(r,l)=>e.check(pb(r,l)),e.gte=(r,l)=>e.check(of(r,l)),e.min=(r,l)=>e.check(of(r,l)),e.lt=(r,l)=>e.check(fb(r,l)),e.lte=(r,l)=>e.check(rf(r,l)),e.max=(r,l)=>e.check(rf(r,l)),e.int=r=>e.check(gb(r)),e.safe=r=>e.check(gb(r)),e.positive=r=>e.check(pb(0,r)),e.nonnegative=r=>e.check(of(0,r)),e.negative=r=>e.check(fb(0,r)),e.nonpositive=r=>e.check(rf(0,r)),e.multipleOf=(r,l)=>e.check(mb(r,l)),e.step=(r,l)=>e.check(mb(r,l)),e.finite=()=>e;const i=e._zod.bag;e.minValue=Math.max(i.minimum??Number.NEGATIVE_INFINITY,i.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(i.maximum??Number.POSITIVE_INFINITY,i.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(i.format??"").includes("int")||Number.isSafeInteger(i.multipleOf??.5),e.isFinite=!0,e.format=i.format??null});function y(e){return TC(d0,e)}const iT=Q("ZodNumberFormat",(e,n)=>{R_.init(e,n),d0.init(e,n)});function gb(e){return EC(iT,e)}const sT=Q("ZodBoolean",(e,n)=>{M_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>ez(e,i,r)});function re(e){return OC(sT,e)}const rT=Q("ZodUnknown",(e,n)=>{B_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>nz()});function Ln(){return DC(rT)}const oT=Q("ZodNever",(e,n)=>{L_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>tz(e,i,r)});function lT(e){return RC(oT,e)}const cT=Q("ZodArray",(e,n)=>{q_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>oz(e,i,r,l),e.element=n.element,e.min=(i,r)=>e.check(nc(i,r)),e.nonempty=i=>e.check(nc(1,i)),e.max=(i,r)=>e.check(i0(i,r)),e.length=(i,r)=>e.check(s0(i,r)),e.unwrap=()=>e.element});function A(e,n){return QC(cT,e,n)}const uT=Q("ZodObject",(e,n)=>{$_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>lz(e,i,r,l),Ge(e,"shape",()=>n.shape),e.keyof=()=>ne(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Ln()}),e.loose=()=>e.clone({...e._zod.def,catchall:Ln()}),e.strict=()=>e.clone({...e._zod.def,catchall:lT()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>o2(e,i),e.safeExtend=i=>l2(e,i),e.merge=i=>c2(e,i),e.pick=i=>s2(e,i),e.omit=i=>r2(e,i),e.partial=(...i)=>u2(m0,e,i[0]),e.required=(...i)=>d2(h0,e,i[0])});function w(e,n){const i={type:"object",shape:e??{},...be(n)};return new uT(i)}const f0=Q("ZodUnion",(e,n)=>{n0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>cz(e,i,r,l),e.options=n.options});function bc(e,n){return new f0({type:"union",options:e,...be(n)})}const dT=Q("ZodDiscriminatedUnion",(e,n)=>{f0.init(e,n),V_.init(e,n)});function p0(e,n,i){return new dT({type:"union",options:n,discriminator:e,...be(i)})}const fT=Q("ZodIntersection",(e,n)=>{I_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>uz(e,i,r,l)});function pT(e,n){return new fT({type:"intersection",left:e,right:n})}const mT=Q("ZodRecord",(e,n)=>{P_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>dz(e,i,r,l),e.keyType=n.keyType,e.valueType=n.valueType});function lt(e,n,i){return new mT({type:"record",keyType:e,valueType:n,...be(i)})}const Cf=Q("ZodEnum",(e,n)=>{G_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>az(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 Cf({...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 Cf({...n,checks:[],...be(l),entries:c})}});function ne(e,n){const i=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Cf({type:"enum",entries:i,...be(n)})}const hT=Q("ZodLiteral",(e,n)=>{H_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>iz(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 hT({type:"literal",values:Array.isArray(e)?e:[e],...be(n)})}const gT=Q("ZodTransform",(e,n)=>{Q_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>rz(e,i),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new Lv(e.constructor.name);i.addIssue=c=>{if(typeof c=="string")i.issues.push(so(c,i.value,n));else{const d=c;d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=i.value),d.inst??(d.inst=e),i.issues.push(so(d))}};const l=n.transform(i.value,i);return l instanceof Promise?l.then(c=>(i.value=c,i)):(i.value=l,i)}});function yT(e){return new gT({type:"transform",transform:e})}const m0=Q("ZodOptional",(e,n)=>{a0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>c0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function yb(e){return new m0({type:"optional",innerType:e})}const bT=Q("ZodExactOptional",(e,n)=>{K_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>c0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function vT(e){return new bT({type:"optional",innerType:e})}const ST=Q("ZodNullable",(e,n)=>{Z_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>fz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function bb(e){return new ST({type:"nullable",innerType:e})}const xT=Q("ZodDefault",(e,n)=>{Y_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>mz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function wT(e,n){return new xT({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Vv(n)}})}const jT=Q("ZodPrefault",(e,n)=>{X_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>hz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function NT(e,n){return new jT({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Vv(n)}})}const h0=Q("ZodNonOptional",(e,n)=>{J_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>pz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function kT(e,n){return new h0({type:"nonoptional",innerType:e,...be(n)})}const AT=Q("ZodCatch",(e,n)=>{F_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>gz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function _T(e,n){return new AT({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const CT=Q("ZodPipe",(e,n)=>{W_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>yz(e,i,r,l),e.in=n.in,e.out=n.out});function vb(e,n){return new CT({type:"pipe",in:e,out:n})}const zT=Q("ZodReadonly",(e,n)=>{eC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>bz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function TT(e){return new zT({type:"readonly",innerType:e})}const ET=Q("ZodCustom",(e,n)=>{tC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>sz(e,i)});function OT(e,n={}){return KC(ET,e,n)}function DT(e){return ZC(e)}const g0=w({id:p(),name:p(),keyPrefix:p(),scopes:A(p()),projectId:p().nullable(),readOnly:re(),createdAt:p(),lastUsedAt:p().nullable(),revokedAt:p().nullable()});w({keys:A(g0)});w({name:p().min(1).max(100),scopes:A(p()).min(1).optional(),projectId:p().optional()});g0.extend({key:p()});const RT=w({maxConcurrency:y().int().positive(),maxRequestsPerMinute:y().int().positive(),maxRequestsPerDay:y().int().positive()}),ya=p().min(1);p().min(1);const sp=w({label:p().min(1),city:p().min(1),region:p().min(1),country:p().length(2),timezone:p().optional()}),rp=ne(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high"]);w({id:p(),projectId:p(),channel:vt("webhook"),url:p().url(),urlDisplay:p(),urlHost:p(),events:A(rp),enabled:re().default(!0),source:p().optional(),webhookSecret:p().optional(),createdAt:p(),updatedAt:p()});w({channel:vt("webhook"),url:p().url(),events:A(rp).min(1),source:p().optional()});const y0=ne(["cli","api","config-file"]);function MT(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 BT(e,n){return n?e.some(i=>i.label===n):!0}w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional(),aliases:A(p()).optional(),country:p().length(2),language:p().min(2),tags:A(p()).optional(),labels:lt(p(),p()).optional(),providers:A(ya).optional(),locations:A(sp).optional(),defaultLocation:p().nullable().optional(),autoExtractBacklinks:re().optional(),configSource:y0.optional()});const LT=w({id:p(),name:p(),displayName:p().optional(),canonicalDomain:p(),ownedDomains:A(p()).default([]),aliases:A(p()).default([]),country:p().length(2),language:p().min(2),tags:A(p()).default([]),labels:lt(p(),p()).default({}),providers:A(p()).default([]),locations:A(sp).default([]),defaultLocation:p().nullable().optional(),autoExtractBacklinks:re().default(!1),configSource:y0.default("cli"),configRevision:y().int().positive().default(1),createdAt:p().optional(),updatedAt:p().optional()});w({id:p(),query:p(),createdAt:p()});w({id:p(),keyword:p(),createdAt:p()});w({queries:A(p().trim().min(1)).min(1)});w({keywords:A(p().trim().min(1)).min(1)});w({provider:ya,count:y().int().min(1).max(20).optional()});w({id:p(),domain:p(),createdAt:p()});w({competitors:A(p().trim().min(1)).min(1)});function ic(e){let n=e.trim().toLowerCase();try{n.includes("://")&&(n=new URL(n).hostname.toLowerCase())}catch{}return n.replace(/^www\./,"")}const qT=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=ic(e);if(!n)return"";const i=n.split("/")[0]?.split(":")[0]??"";if(!i)return"";const r=i.split(".").filter(Boolean);if(r.length<2)return"";if(r.length===2)return r.join(".");const l=r.slice(-2).join(".");return qT.has(l)?r.length>=3?r.slice(-3).join("."):"":r.slice(-2).join(".")}function $T(e){const n=UT(e);return n?n.split(".")[0]??"":""}function VT(e){const n=[e.canonicalDomain,...e.ownedDomains??[]],i=new Set,r=[];for(const l of n){const c=l.trim();if(!c)continue;const d=ic(c);i.has(d)||(i.add(d),r.push(c))}return r}const IT=w({name:p().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:lt(p(),p()).optional().default({})}),PT=w({preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),providers:A(ya).optional().default([])}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),GT=w({channel:vt("webhook"),url:p().url(),events:A(rp).min(1)}),HT=w({gsc:w({propertyUrl:p()}).optional(),syncSchedule:w({preset:p().optional(),cron:p().optional()}).optional()}).optional(),Sb=A(p().min(1)),QT=w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional().default([]),aliases:A(p().min(1)).optional().default([]),country:p().length(2),language:p().min(2),queries:Sb.optional(),keywords:Sb.optional(),competitors:A(p().min(1)).optional().default([]),providers:A(ya).optional().default([]),locations:A(sp).optional().default([]),defaultLocation:p().optional(),schedule:PT,notifications:A(GT).optional().default([]),google:HT,autoExtractBacklinks:re().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=MT(e.locations);i.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),BT(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});w({apiVersion:vt("canonry/v1"),kind:vt("Project"),metadata:IT,spec:QT});const KT=ne(["gsc","ga4","gbp"]);w({id:p(),domain:p(),connectionType:KT,propertyId:p().nullable().optional(),sitemapUrl:p().nullable().optional(),scopes:A(p()).default([]),createdAt:p(),updatedAt:p()});w({date:p(),query:p(),page:p(),country:p().nullable().optional(),device:p().nullable().optional(),clicks:y(),impressions:y(),ctr:y(),position:y()});const ZT=w({date:p(),clicks:y(),impressions:y(),ctr:y()});w({totals:w({clicks:y(),impressions:y(),ctr:y(),days:y()}),daily:A(ZT)});const zf=w({id:p(),url:p(),indexingState:p().nullable().optional(),verdict:p().nullable().optional(),coverageState:p().nullable().optional(),pageFetchState:p().nullable().optional(),robotsTxtState:p().nullable().optional(),crawlTime:p().nullable().optional(),lastCrawlResult:p().nullable().optional(),isMobileFriendly:re().nullable().optional(),richResults:A(p()).default([]),referringUrls:A(p()).default([]),inspectedAt:p()});ne(["stable","reindexed","deindexed","still-missing","new"]);const YT=w({url:p(),previousState:p().nullable(),currentState:p().nullable(),transitionDate:p()}),XT=w({reason:p(),count:y(),urls:A(zf).default([])});w({summary:w({total:y(),indexed:y(),notIndexed:y(),deindexed:y(),percentage:y()}),lastInspectedAt:p().nullable(),lastSyncedAt:p().nullable(),indexed:A(zf).default([]),notIndexed:A(zf).default([]),deindexed:A(YT).default([]),reasonGroups:A(XT).default([])});w({url:p(),type:ne(["URL_UPDATED","URL_DELETED"]),notifiedAt:p()});const JT=w({url:p(),type:ne(["URL_UPDATED","URL_DELETED"]),notifiedAt:p(),status:ne(["success","error"]),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(JT).default([])});w({date:p(),indexed:y(),notIndexed:y(),reasonBreakdown:lt(p(),y()).default({})});const FT=w({siteUrl:p(),permissionLevel:p()});w({sites:A(FT).default([])});const WT=w({type:p(),submitted:p(),indexed:p()}),eE=w({path:p(),lastSubmitted:p().optional(),isPending:re().optional(),isSitemapsIndex:re().optional(),type:p().optional(),lastDownloaded:p().optional(),warnings:p().optional(),errors:p().optional(),contents:A(WT).optional()});w({sitemaps:A(eE).default([])});const tE=w({name:p(),accountName:p().nullable(),type:p().nullable(),role:p().nullable()});w({accounts:A(tE),total:y().int().nonnegative()});const nE=w({id:p(),projectId:p(),accountName:p(),locationName:p(),displayName:p(),primaryCategoryDisplayName:p().nullable(),storefrontAddress:p().nullable(),websiteUri:p().nullable(),placeId:p().nullable(),mapsUri:p().nullable(),additionalCategories:A(p()),description:p().nullable(),serviceArea:lt(p(),Ln()).nullable(),regularHours:lt(p(),Ln()).nullable(),primaryPhone:p().nullable(),openStatus:p().nullable(),openingDate:p().nullable(),selected:re(),syncedAt:p().nullable(),createdAt:p(),updatedAt:p()});w({locations:A(nE),totalDiscovered:y().int().nonnegative(),totalSelected:y().int().nonnegative()});w({selectAllNew:re().default(!0),accountName:p().optional(),switchAccount:re().default(!1)});w({selected:re()});w({locationNames:A(p()).optional(),daysOfMetrics:y().int().positive().max(540).optional(),monthsOfKeywords:y().int().positive().max(18).optional()});w({runId:p(),status:p()});const aE=w({locationName:p(),date:p(),metric:p(),value:y().int()});w({metrics:A(aE),total:y().int().nonnegative()});const iE=w({locationName:p(),periodStart:p(),periodEnd:p(),keyword:p(),valueCount:y().int().nullable(),valueThreshold:y().int().nullable()});w({keywords:A(iE),total:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)});const sE=w({locationName:p(),placeActionLinkName:p(),placeActionType:p(),uri:p().nullable(),isPreferred:re(),providerType:p().nullable()});w({placeActions:A(sE),total:y().int().nonnegative()});const rE=w({locationName:p(),populatedGroupCount:y().int().nonnegative(),syncedAt:p(),attributes:lt(p(),Ln())});w({lodging:A(rE),total:y().int().nonnegative()});const oE=w({name:p(),valueType:p(),values:A(bc([re(),p()])),unsetValues:A(p()),uris:A(p())}),lE=w({locationName:p(),attributeCount:y().int().nonnegative(),syncedAt:p(),attributes:A(oE)});w({attributes:A(lE),total:y().int().nonnegative()});const cE=w({locationName:p(),placeId:p(),tier:p(),amenities:A(p()),syncedAt:p(),place:lt(p(),Ln())});w({places:A(cE),total:y().int().nonnegative()});w({scope:w({locationName:p().nullable(),locationCount:y().int().nonnegative()}),performance:w({totals:lt(p(),y()),recent7d:lt(p(),y()),prior7d:lt(p(),y()),deltaPct:lt(p(),y().nullable())}),freshness:w({dataThroughDate:p().nullable(),latestStoredDate:p().nullable(),pendingDays:y().int().nonnegative()}),timeseries:A(w({date:p(),pending:re(),metrics:lt(p(),y())})),keywords:w({total:y().int().nonnegative(),thresholdedCount:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)}),placeActions:w({total:y().int().nonnegative(),hasReservationCta:re(),hasBookingCta:re(),hasDirectMerchantCta:re()}),lodging:w({lodgingLocationCount:y().int().nonnegative(),populatedLodgingCount:y().int().nonnegative(),emptyLodgingCount:y().int().nonnegative()}),profileCompleteness:w({locationCount:y().int().nonnegative(),withSecondaryCategories:y().int().nonnegative(),secondaryCategoryTotal:y().int().nonnegative(),withDescription:y().int().nonnegative(),withServiceArea:y().int().nonnegative(),withHours:y().int().nonnegative(),withPrimaryPhone:y().int().nonnegative(),permanentlyClosed:y().int().nonnegative(),temporarilyClosed:y().int().nonnegative()})});const uE={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 dE(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 DL(e){return uE[e]??dE(e)}const fE=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],pE=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function RL(e){return fE.includes(e)?"conversion":pE.includes(e)?"reach":"other"}w({id:p(),domain:p(),siteUrl:p().nullable().optional(),createdAt:p(),updatedAt:p()});const lf=w({id:p(),url:p(),httpCode:y().nullable().optional(),inIndex:re().nullable().optional(),lastCrawledDate:p().nullable().optional(),inIndexDate:p().nullable().optional(),inspectedAt:p(),documentSize:y().nullable().optional(),anchorCount:y().nullable().optional(),discoveryDate:p().nullable().optional()});w({summary:w({total:y(),indexed:y(),notIndexed:y(),unknown:y().optional(),percentage:y()}),lastInspectedAt:p().nullable(),indexed:A(lf).default([]),notIndexed:A(lf).default([]),unknown:A(lf).default([]).optional()});w({query:p(),impressions:y(),clicks:y(),ctr:y(),averagePosition:y()});w({date:p(),indexed:y(),notIndexed:y(),unknown:y()});const mE=w({url:p(),status:ne(["success","error"]),submittedAt:p(),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(mE).default([])});const b0=w({url:p(),verified:re()});w({sites:A(b0).default([])});w({connected:re(),domain:p(),siteUrl:p().nullable(),createdAt:p().nullable(),updatedAt:p().nullable()});w({connected:re(),domain:p(),siteUrl:p().nullable(),availableSites:A(b0).default([])});w({siteUrl:p()});const hE=w({name:p(),alive:re(),lastUsed:p().nullable()});w({connected:re(),endpoint:p(),version:p().optional(),browserVersion:p().optional(),targets:A(hE).default([])});const Ks=ne(["live","staging"]);w({projectName:p(),url:p(),stagingUrl:p().optional(),username:p(),defaultEnv:Ks,createdAt:p(),updatedAt:p()});const xb=w({url:p(),reachable:re(),pageCount:y().nullable().optional(),version:p().nullable().optional(),error:p().nullable().optional(),plugins:A(p()).optional(),authenticatedUser:w({id:y(),slug:p()}).nullable().optional()});w({connected:re(),projectName:p(),defaultEnv:Ks,live:xb.nullable(),staging:xb.nullable(),adminUrl:p().nullable().optional()});const gE=w({id:y(),slug:p(),title:p(),status:p(),modifiedAt:p().nullable().optional(),link:p().nullable().optional()}),v0=w({title:p().nullable(),description:p().nullable(),noindex:re().nullable(),writable:re().default(!1),writeTargets:A(p()).default([])}),yE=w({type:p(),json:lt(p(),Ln())}),bE=gE.extend({env:Ks,content:p(),seo:v0,schemaBlocks:A(yE).default([])}),wb=bE.extend({contentHash:p(),contentSnippet:p()}),S0=w({manualRequired:vt(!0),targetUrl:p(),adminUrl:p().nullable().optional(),content:p(),nextSteps:A(p()).default([])}),vE=w({slug:p(),severity:ne(["high","medium","low"]),code:ne(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:p()});w({slug:p(),title:p(),status:p(),wordCount:y(),seo:v0,schemaPresent:re(),issues:A(vE).default([])});const SE=w({slug:p(),status:ne(["applied","skipped","manual"]),error:p().optional(),manualAssist:S0.optional()});w({env:Ks,strategy:ne(["plugin","manual"]),results:A(SE)});const xE=w({slug:p(),status:ne(["deployed","stripped","skipped","failed"]),schemasInjected:A(p()).optional(),manualAssist:S0.optional(),error:p().optional()});w({env:Ks,results:A(xE)});const wE=w({slug:p(),title:p(),canonrySchemas:A(p()),thirdPartySchemas:A(p()),hasCanonrySchema:re()});w({env:Ks,pages:A(wE)});const jE=w({name:p(),status:ne(["completed","skipped","failed"]),summary:p().optional(),error:p().optional()});w({projectName:p(),steps:A(jE)});w({slug:p(),live:wb,staging:wb,hasDifferences:re(),differences:w({title:re(),slug:re(),content:re(),seoTitle:re(),seoDescription:re(),noindex:re(),schema:re()})});const NE=w({name:p(),displayName:p().optional(),keyUrl:p().optional(),modelHint:p().optional(),model:p().optional(),defaultModel:p().optional(),configured:re(),quota:RT.optional(),vertexConfigured:re().optional()}),jb=w({configured:re()});w({providers:A(NE).default([]),google:jb,bing:jb});const Zs=ne(["queued","running","completed","partial","failed","cancelled"]),Qt=Zs.enum,x0=ne(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),Ae=x0.enum,w0=ne(["manual","scheduled","config-apply","backfill","probe"]),Ms=w0.enum,Ai=ne(["cited","not-cited"]),sc=Ai.enum,rc=ne(["visible","not-visible"]);rc.enum;const oc=ne(["mentioned","not-mentioned"]);oc.enum;const j0=ne(["new","cited","lost","emerging","not-cited"]);j0.enum;const kE=ne(["new","mentioned","lost","emerging","not-mentioned"]);kE.enum;const AE=ne([Ms.manual,Ms.probe]);w({kind:vt(Ae["answer-visibility"]).optional(),trigger:AE.optional(),providers:A(ya).optional(),queries:A(p().min(1)).min(1).optional(),location:p().min(1).optional(),allLocations:re().optional(),noLocation:re().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const _E=w({message:p(),raw:Ln().optional()}),CE=w({message:p().optional(),providers:lt(p(),_E).optional()}),zE=w({id:p(),projectId:p(),kind:x0,status:Zs,trigger:w0.default("manual"),location:p().nullable().optional(),queries:A(p()).nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),error:CE.nullable().optional(),createdAt:p()});function op(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 N0=w({uri:p(),title:p()}),k0=w({id:p(),runId:p(),queryId:p(),query:p().optional(),provider:ya,citationState:Ai,answerMentioned:re().optional(),visibilityState:rc.optional(),mentionState:oc.optional(),transition:j0.optional(),answerText:p().nullable().optional(),citedDomains:A(p()).default([]),competitorOverlap:A(p()).default([]),recommendedCompetitors:A(p()).default([]),matchedTerms:A(p()).default([]),groundingSources:A(N0).default([]),searchQueries:A(p()).default([]),model:p().nullable().optional(),location:p().nullable().optional(),createdAt:p()});w({snapshots:A(k0),total:y().int().nonnegative()});const TE=w({queryId:p().nullable(),query:p().nullable(),run1State:Ai.nullable(),run2State:Ai.nullable(),run1AnswerMentioned:re().nullable(),run2AnswerMentioned:re().nullable(),run1VisibilityState:rc.nullable(),run2VisibilityState:rc.nullable(),run1MentionState:oc.nullable().optional(),run2MentionState:oc.nullable().optional(),changed:re(),visibilityChanged:re()});w({run1:p(),run2:p(),diff:A(TE)});const EE=zE.extend({snapshots:A(k0).optional()}),OE=w({totalRuns:y().int().nonnegative(),run:EE.nullable()});w({id:p(),projectId:p().nullable().optional(),actor:p(),action:p(),entityType:p(),entityId:p().nullable().optional(),diff:Ln().optional(),createdAt:p()});const DE=ne(["yes","no","unknown","not-mentioned"]),Nb=A(p().min(1));w({companyName:p().min(1),domain:p().min(1),queries:Nb.optional(),phrases:Nb.optional(),competitors:A(p().min(1)).optional().default([])}).superRefine((e,n)=>{e.queries!==void 0&&e.phrases!==void 0&&n.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const RE=w({name:p(),count:y().int().nonnegative()}),ME=w({id:p(),name:p(),weight:y(),score:y(),findings:A(w({type:p(),message:p()})).default([]),recommendations:A(p()).default([])}),BE=w({url:p(),finalUrl:p(),auditedAt:p(),overallScore:y(),summary:p(),factors:A(ME).default([])}),LE=w({industry:p(),summary:p(),services:A(p()).default([]),categoryTerms:A(p()).default([])}),qE=w({provider:p(),displayName:p(),model:p().nullable().optional(),mentioned:re(),cited:re(),describedAccurately:DE,accuracyNotes:p().nullable().optional(),incorrectClaims:A(p()).default([]),recommendedCompetitors:A(p()).default([]),citedDomains:A(p()).default([]),groundingSources:A(N0).default([]),searchQueries:A(p()).default([]),answerText:p(),error:p().nullable().optional()}),UE=w({query:p(),providerResults:A(qE).default([])}),$E=w({totalQueries:y().int().nonnegative(),totalProviders:y().int().nonnegative(),totalComparisons:y().int().nonnegative(),mentionCount:y().int().nonnegative(),citationCount:y().int().nonnegative(),topCompetitors:A(RE).default([]),visibilityGap:p(),whatThisMeans:A(p()).default([]),recommendedActions:A(p()).default([])});w({companyName:p(),domain:p(),homepageUrl:p(),generatedAt:p(),queries:A(p()).default([]),competitors:A(p()).default([]),profile:LE,audit:BE,queryResults:A(UE).default([]),summary:$E});const A0=ne(["pass","partial","fail"]);A0.enum;const _0=ne(["up","down","flat"]);_0.enum;const VE=w({id:p(),name:p(),weight:y(),avgScore:y(),status:A0,pagesPassing:y().int().nonnegative(),pagesPartial:y().int().nonnegative(),pagesFailing:y().int().nonnegative()}),IE=w({factorId:p(),factorName:p(),avgScore:y(),affectedPages:y().int().nonnegative(),totalPages:y().int().nonnegative(),affectedPct:y().int().nonnegative(),topRecommendations:A(p()).default([])});w({project:p(),hasData:re(),runId:p().nullable(),runStatus:Zs.nullable(),sitemapUrl:p().nullable(),auditedAt:p().nullable(),aggregateScore:y(),pagesDiscovered:y().int().nonnegative(),pagesAudited:y().int().nonnegative(),pagesSkipped:y().int().nonnegative(),pagesErrored:y().int().nonnegative(),deltaScore:y().nullable(),trend:_0.nullable(),previousScore:y().nullable(),previousAuditedAt:p().nullable(),factors:A(VE).default([]),crossCuttingIssues:A(IE).default([]),prioritizedFixes:A(p()).default([])});const PE=w({id:p(),name:p(),weight:y(),score:y()}),GE=w({url:p(),overallScore:y(),status:ne(["success","error"]),error:p().nullable().optional(),factors:A(PE).default([])});w({project:p(),runId:p().nullable(),auditedAt:p().nullable(),total:y().int().nonnegative(),pages:A(GE).default([])});const HE=w({runId:p(),auditedAt:p(),aggregateScore:y(),pagesAudited:y().int().nonnegative()});w({project:p(),points:A(HE).default([])});w({sitemapUrl:p().url().optional(),limit:y().int().positive().max(2e3).optional()});w({runId:p(),status:Zs});const lp=ne(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync"]);lp.enum;w({id:p(),projectId:p(),kind:lp,cronExpr:p(),preset:p().nullable().optional(),timezone:p().default("UTC"),enabled:re().default(!0),providers:A(ya).default([]),sourceId:p().nullable().optional(),lastRunAt:p().nullable().optional(),nextRunAt:p().nullable().optional(),createdAt:p(),updatedAt:p()});w({kind:lp.optional(),preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),enabled:re().optional().default(!0),providers:A(ya).optional().default([]),sourceId:p().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const cp=ne(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);cp.enum;const up=ne(["cited","aspirational","wasted-surface"]),kb=up.enum;kb.cited,kb.aspirational;const vc=ne(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),QE=vc.enum;QE["direct-competitor"];const Sc=ne(["queued","seeding","probing","completed","failed"]);Sc.enum;const C0=w({domain:p().min(1),hits:y().int().positive(),competitorType:vc.default("unknown")}),KE=w({id:p(),sessionId:p(),projectId:p(),query:p(),bucket:up.nullable().default(null),citationState:Ai,citedDomains:A(p()).default([]),answerMentioned:re().nullable().default(null),createdAt:p()}),ZE=w({id:p(),projectId:p(),status:Sc,icpDescription:p().nullable().optional(),seedProvider:p().nullable().optional(),seedCountRaw:y().int().nullable().optional(),seedCount:y().int().nullable().optional(),seedFromAnswerCount:y().int().nullable().optional(),seedFromGroundingCount:y().int().nullable().optional(),dedupThreshold:y().nullable().optional(),probeCount:y().int().nullable().optional(),citedCount:y().int().nullable().default(null),aspirationalCount:y().int().nullable().default(null),wastedCount:y().int().nullable().default(null),competitorMap:A(C0).default([]),warning:p().nullable().optional(),error:p().nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),createdAt:p()});ZE.extend({probes:A(KE).default([])});const YE=500,XE=8;w({icpDescription:p().min(1).optional(),dedupThreshold:y().min(0).max(1).optional(),maxProbes:y().int().positive().max(YE).optional(),probeConcurrency:y().int().min(1).max(XE).optional(),locations:A(p().min(1)).optional()});w({buckets:A(up).min(1).optional(),includeCompetitors:re().optional(),competitorTypes:A(vc).min(1).optional()});w({sessionId:p(),projectId:p(),status:Sc,queriesByBucket:w({cited:A(p()),aspirational:A(p()),"wasted-surface":A(p())}),suggestedCompetitors:A(C0)});w({sessionId:p(),projectId:p(),promoted:w({queries:A(p()),competitors:A(p())}),skipped:w({queries:A(p()),competitors:A(p())})});bc([vt("cli"),p().regex(/^discovery:.+$/)]);const JE=w({query:p().min(1),probeHits:y().int().positive()}),FE=w({rawCandidates:y().int().nonnegative(),admitted:y().int().nonnegative(),rejected:w({belowFloor:y().int().nonnegative(),length:y().int().nonnegative(),navigational:y().int().nonnegative(),duplicate:y().int().nonnegative(),offAnchor:y().int().nonnegative(),semanticDuplicate:y().int().nonnegative()})});w({sessionId:p(),projectId:p(),provider:p(),status:Sc,minProbeHits:y().int().positive(),anchorApplied:re(),semanticNoveltyApplied:re(),candidates:A(JE),stats:FE});const dp=ne(["own","direct-competitor","ota-aggregator","editorial-media","other"]);dp.enum;const z0=ne(["7d","30d","90d","all"]),Ab=ne(["improving","declining","stable"]),WE=ne(["mentioned","cited"]);WE.enum;const Tf=w({citationRate:y(),cited:y().int(),total:y().int(),mentionRate:y(),mentionedCount:y().int()}),eO=w({rate:y().nullable(),projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative()}),tO=w({startDate:p(),endDate:p(),citationRate:y(),cited:y().int(),total:y().int(),queryCount:y().int(),mentionRate:y(),mentionedCount:y().int(),mentionShare:eO,byProvider:lt(p(),Tf)}),nO=w({date:p(),delta:y().int(),label:p()});w({window:z0,buckets:A(tO),overall:Tf,byProvider:lt(p(),Tf),trend:Ab,mentionTrend:Ab,queryChanges:A(nO)});const _b=w({category:cp,label:p(),count:y().int(),percentage:y(),topDomains:A(w({domain:p(),count:y().int()}))}),aO=w({domain:p(),count:y().int(),percentage:y(),category:cp,label:p(),surfaceClass:dp}),iO=w({surfaceClass:dp,label:p(),count:y().int(),percentage:y(),domainCount:y().int()}),Cb=w({totalCitedSlots:y().int(),domainTotal:y().int(),entries:A(aO),truncatedDomainCount:y().int(),truncatedCitedSlots:y().int(),bySurfaceClass:A(iO)});w({overall:A(_b),byQuery:lt(p(),A(_b)),ranked:Cb,byProvider:lt(p(),Cb),runId:p(),window:z0,limit:y().int().nullable()});const fp=w({total:y().int(),checked:y().int(),mentioned:y().int(),cited:y().int(),mentionRate:y().nullable(),citedRate:y().nullable()}),T0=fp.extend({provider:p(),firstObserved:p(),lastObserved:p()}),sO=fp.extend({queryId:p().nullable(),query:p(),firstObserved:p(),lastObserved:p(),providers:A(T0).optional()}),rO=w({since:p().nullable(),until:p().nullable(),lastRuns:y().int().nullable(),runCount:y().int()}),oO=ne(["provider"]),lO=w({domain:p(),mentions:y().int()}),cO=w({percent:y().nullable(),projectMentions:y().int(),competitorMentions:y().int(),snapshotsWithAnswerText:y().int(),perCompetitor:A(lO)});w({project:p(),groupBy:oO.optional(),window:rO,totals:fp,byProvider:A(T0).optional(),queries:A(sO),shareOfVoice:cO.optional()});w({id:p(),projectId:p(),propertyId:p(),clientEmail:p(),connected:re(),createdAt:p(),updatedAt:p()});w({date:p(),landingPage:p(),sessions:y(),organicSessions:y(),users:y()});const pp=ne(["session","first_user","manual_utm"]),uO=w({source:p(),medium:p(),sessions:y(),users:y(),sourceDimension:pp}),dO=w({source:p(),medium:p(),sourceDimension:pp,landingPage:p(),sessions:y(),users:y()}),fO=w({source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()}),Zr=w({sessions:y(),sharePct:y(),sharePctDisplay:p()}),pO=w({organic:Zr,social:Zr,direct:Zr,ai:Zr,other:Zr});w({totalSessions:y(),totalOrganicSessions:y(),totalDirectSessions:y(),totalUsers:y(),topPages:A(w({landingPage:p(),sessions:y(),organicSessions:y(),directSessions:y(),users:y()})),aiReferrals:A(uO),aiReferralLandingPages:A(dO),aiSessionsDeduped:y(),aiUsersDeduped:y(),aiSessionsBySession:y(),aiUsersBySession:y(),socialReferrals:A(fO),socialSessions:y(),socialUsers:y(),channelBreakdown:pO,organicSharePct:y(),aiSharePct:y(),aiSharePctBySession:y(),directSharePct:y(),socialSharePct:y(),organicSharePctDisplay:p(),aiSharePctDisplay:p(),aiSharePctBySessionDisplay:p(),directSharePctDisplay:p(),socialSharePctDisplay:p(),otherSessions:y(),otherSharePct:y(),otherSharePctDisplay:p(),lastSyncedAt:p().nullable()});w({connected:re(),propertyId:p().nullable(),clientEmail:p().nullable(),authMethod:ne(["service-account","oauth"]).nullable(),lastSyncedAt:p().nullable(),createdAt:p().nullable().optional(),updatedAt:p().nullable().optional()});w({synced:re(),rowCount:y().int().nonnegative(),aiReferralCount:y().int().nonnegative(),socialReferralCount:y().int().nonnegative(),days:y().int().nonnegative(),syncedAt:p(),syncedComponents:A(p()).optional()});w({date:p(),source:p(),medium:p(),landingPage:p(),sessions:y(),users:y(),sourceDimension:pp});w({date:p(),source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()});w({date:p(),sessions:y(),organicSessions:y(),users:y()});function lc(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}const E0=ne(["claude","openai","gemini","zai","deepinfra"]),mO=w({id:E0,label:p(),defaultModel:p(),configured:re(),keySource:ne(["config","env"]).nullable()});w({providers:A(mO).default([]),defaultProvider:E0.nullable()});const hO=ne(["aero","user","compaction"]);hO.enum;const O0=128;w({key:p().min(1).max(O0),value:p().min(1)});w({key:p().min(1).max(O0)});const Ys=ne(["commoncrawl","bing-webmaster"]);Ys.enum;const mp=ne(["queued","downloading","querying","ready","failed"]);mp.enum;w({id:p(),release:p(),status:mp,phaseDetail:p().nullable().optional(),vertexPath:p().nullable().optional(),edgesPath:p().nullable().optional(),vertexSha256:p().nullable().optional(),edgesSha256:p().nullable().optional(),vertexBytes:y().int().nullable().optional(),edgesBytes:y().int().nullable().optional(),projectsProcessed:y().int().nullable().optional(),domainsDiscovered:y().int().nullable().optional(),downloadStartedAt:p().nullable().optional(),downloadFinishedAt:p().nullable().optional(),queryStartedAt:p().nullable().optional(),queryFinishedAt:p().nullable().optional(),error:p().nullable().optional(),createdAt:p(),updatedAt:p()});const gO=w({linkingDomain:p(),numHosts:y().int(),source:Ys}),yO=w({projectId:p(),release:p(),targetDomain:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys,excludedLinkingDomains:y().int().optional(),excludedHosts:y().int().optional()});w({source:Ys,summary:yO.nullable(),total:y().int(),rows:A(gO)});w({release:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys});const bO=w({source:Ys,connected:re(),hasData:re(),latestRelease:p().nullable(),totalLinkingDomains:y().int(),lastSyncedAt:p().nullable()});w({projectId:p(),targetDomain:p(),sources:A(bO),anyConnected:re(),anyData:re()});w({duckdbInstalled:re(),duckdbVersion:p().nullable().optional(),duckdbSpec:p(),pluginDir:p()});w({installed:re(),version:p(),path:p(),alreadyPresent:re()});w({release:p(),vertexUrl:p(),edgesUrl:p(),vertexBytes:y().int().nullable(),edgesBytes:y().int().nullable(),lastModified:p().nullable()});w({release:p(),syncStatus:mp.nullable(),bytes:y().int(),lastUsedAt:p().nullable()});const hp=ne(["positive","caution","negative","neutral"]),Za=w({label:p(),value:p(),delta:p(),tone:hp,description:p(),tooltip:p().optional(),trend:A(y()),progress:y().optional(),providerCoverage:p().optional()}),vO=Za.extend({breakdown:w({projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative(),perCompetitor:A(w({domain:p(),mentionSnapshots:y().int().nonnegative(),shareOfCompetitiveTotal:y()})),snapshotsWithAnswerText:y().int().nonnegative(),snapshotsTotal:y().int().nonnegative()})}),cf=w({gained:y().int().nonnegative(),lost:y().int().nonnegative(),tone:hp,hasPreviousRun:re(),gainedQueries:A(p()).optional(),lostQueries:A(p()).optional()}),SO=w({hasPreviousRun:re(),comparable:re(),querySetChanged:re(),previousRunAt:p().nullable(),currentQueryCount:y().int().nonnegative(),previousQueryCount:y().int().nonnegative(),comparableQueryCount:y().int().nonnegative(),addedQueryCount:y().int().nonnegative(),removedQueryCount:y().int().nonnegative(),addedQueries:A(p()),removedQueries:A(p())}),xO=w({id:p(),projectId:p(),runId:p().nullable(),type:ne(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:ne(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:w({action:p(),target:p().optional(),reason:p()}).optional(),cause:w({cause:p(),competitorDomain:p().optional(),details:p().optional()}).optional(),dismissed:re(),createdAt:p()}),wO=w({id:p(),projectId:p(),runId:p().nullable(),overallCitedRate:y(),overallMentionRate:y(),totalPairs:y().int().nonnegative(),citedPairs:y().int().nonnegative(),mentionedPairs:y().int().nonnegative(),providerBreakdown:lt(p(),w({citedRate:y(),mentionRate:y(),cited:y().int().nonnegative(),mentioned:y().int().nonnegative(),total:y().int().nonnegative()})),createdAt:p(),status:ne(["ready","no-data"]),reason:vt("no-runs-yet").optional()});w({project:LT,latestRun:OE,health:wO.nullable(),topInsights:A(xO),queryCounts:w({totalQueries:y().int().nonnegative(),citedQueries:y().int().nonnegative(),notCitedQueries:y().int().nonnegative(),citedRate:y(),mentionedQueries:y().int().nonnegative(),notMentionedQueries:y().int().nonnegative(),mentionRate:y()}),providers:A(w({provider:p(),citedRate:y(),cited:y().int().nonnegative(),total:y().int().nonnegative()})),transitions:w({since:p().nullable(),gained:y().int().nonnegative(),lost:y().int().nonnegative(),emerging:y().int().nonnegative()}),scores:w({mention:Za,visibility:Za,mentionShare:vO,gapQueries:Za,mentionGaps:Za,indexCoverage:Za,competitorPressure:Za,runStatus:Za}),movementSummary:cf,citationMovement:cf,mentionMovement:cf,movementComparison:SO,competitors:A(w({id:p(),domain:p(),citationCount:y().int().nonnegative(),totalQueries:y().int().nonnegative(),pressureLabel:ne(["None","Low","Moderate","High"]),citedQueries:A(p())})),providerScores:A(w({provider:p(),model:p().nullable(),score:y(),cited:y().int().nonnegative(),total:y().int().nonnegative(),trend:A(y()).optional()})),attentionItems:A(w({id:p(),tone:hp,title:p(),detail:p(),actionLabel:p(),href:p()})),runHistory:A(w({runId:p(),createdAt:p(),citedCount:y().int().nonnegative(),totalCount:y().int().nonnegative(),citationRate:y(),mentionedCount:y().int().nonnegative(),mentionRate:y(),status:p()})),suggestedQueries:w({rows:A(w({query:p(),impressions:y(),clicks:y(),avgPosition:y(),reason:p()})),totalCandidates:y().int().nonnegative(),skippedAlreadyTracked:y().int().nonnegative()}),dateRangeLabel:p(),contextLabel:p()});ne(["snapshot","insight"]);const jO=w({kind:vt("snapshot"),id:p(),runId:p(),query:p(),provider:p(),model:p().nullable(),citationState:Ai,matchedField:ne(["answerText","citedDomains","searchQueries","query"]),snippet:p(),createdAt:p()}),NO=w({kind:vt("insight"),id:p(),runId:p().nullable(),type:ne(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:ne(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),matchedField:ne(["title","query","recommendation","cause"]),snippet:p(),dismissed:re(),createdAt:p()}),kO=p0("kind",[jO,NO]);w({query:p(),totalHits:y().int().nonnegative(),truncated:re(),hits:A(kO)});const D0=ne(["create","expand","refresh","add-schema"]);D0.enum;function ML(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const R0=ne(["gsc","competitor-evidence","both"]);R0.enum;const M0=ne(["high","medium","low"]);M0.enum;const AO=ne(["blog-post","comparison","listicle","how-to","guide","glossary"]);AO.enum;const B0=ne(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);B0.enum;const gp=ne(["ownable","ceded"]);gp.enum;const _O=w({url:p(),gscImpressions:y().nonnegative(),gscClicks:y().nonnegative(),gscAvgPosition:y().nonnegative().nullable(),organicSessions:y().nonnegative()}),CO=w({domain:p(),url:p(),title:p(),citationCount:y().int().nonnegative()}),zO=w({demand:y(),competitor:y(),absence:y(),gapSeverity:y()}),TO=w({actionId:p(),state:B0,lastUpdated:p()}),L0=w({targetRef:p(),query:p(),action:D0,ourBestPage:_O.nullable(),winningCompetitor:CO.nullable(),score:y(),scoreBreakdown:zO,drivers:A(p()),demandSource:R0,actionConfidence:M0,existingAction:TO.nullable(),winnabilityClass:gp,winnability:y().min(0).max(1).nullable()});w({targets:A(L0),contextMetrics:w({totalAiReferralSessions:y().int().nonnegative(),latestRunId:p(),runTimestamp:p()})});const EO=w({targetRef:p(),addressedUrl:p().nullable(),note:p().nullable(),dismissedAt:p()});w({dismissals:A(EO)});w({targetRef:p().min(1),addressedUrl:p().url().optional(),note:p().max(500).optional()});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),responseText:p(),costMillicents:y().int().nonnegative(),generatedAt:p()});w({provider:p().optional(),model:p().optional(),forceRefresh:re().optional()});const OO=w({targetQuery:p().trim().min(1),winnabilityClass:gp,angle:p().trim().min(1),whyWinnable:p().trim().min(1),schemaHookup:p().trim().min(1),controllableSurfaceRationale:p().trim().min(1)});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),brief:OO,costMillicents:y().int().nonnegative(),generatedAt:p()});const DO=w({domain:p(),competitorType:vc,hits:y().int().nonnegative(),updatedAt:p()});w({classifications:A(DO)});const RO=w({uri:p(),title:p(),domain:p(),isOurDomain:re(),isCompetitor:re(),citationCount:y().int().nonnegative(),providers:A(ya)}),q0=w({query:p(),groundingSources:A(RO)});w({sources:A(q0),latestRunId:p()});const U0=w({query:p(),competitorDomains:A(p()),competitorCount:y().int().nonnegative(),missRate:y().min(0).max(1),lastSeenInRunId:p()});w({gaps:A(U0),latestRunId:p()});const $0=ne(["ok","warn","fail","skipped"]);$0.enum;const yp=ne(["global","project"]);yp.enum;const V0=ne(["auth","config","providers","integrations","database","schedules","agent"]);V0.enum;const MO=w({id:p(),category:V0,scope:yp,title:p(),status:$0,code:p().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:p(),remediation:p().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:lt(p(),Ln()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:y().int().nonnegative().describe("How long the check took to execute.")});w({scope:yp,project:p().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:p().describe("ISO-8601 timestamp when this doctor run started."),durationMs:y().int().nonnegative(),summary:w({total:y().int().nonnegative(),ok:y().int().nonnegative(),warn:y().int().nonnegative(),fail:y().int().nonnegative(),skipped:y().int().nonnegative()}),checks:A(MO)});const BO=w({provider:p(),citationState:Ai,cited:re(),mentioned:re(),runId:p(),runCreatedAt:p()}),LO=w({queryId:p(),query:p(),providers:A(BO),citedCount:y().int().nonnegative(),mentionedCount:y().int().nonnegative(),totalProviders:y().int().nonnegative()}),qO=w({queryId:p(),query:p(),provider:p(),citingCompetitors:A(p()),runId:p(),runCreatedAt:p()}),UO=w({providersConfigured:y().int().nonnegative(),providersCiting:y().int().nonnegative(),providersMentioning:y().int().nonnegative(),totalQueries:y().int().nonnegative(),queriesCitedAndMentioned:y().int().nonnegative(),queriesCitedOnly:y().int().nonnegative(),queriesMentionedOnly:y().int().nonnegative(),queriesInvisible:y().int().nonnegative(),latestRunId:p().nullable(),latestRunAt:p().nullable()});w({summary:UO,byQuery:A(LO),competitorGaps:A(qO),status:ne(["ready","no-data"]),reason:ne(["no-runs-yet","no-queries"]).optional()});const BL=[7,14,30,90],LL=30;bc([vt(7),vt(14),vt(30),vt(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const $O=ne(["prompt","request-param","browser-geo","ignored"]),VO=w({label:p(),city:p(),region:p(),country:p(),otherConfiguredLabels:A(p())}),IO=w({provider:p(),treatment:$O,description:p()}),PO=w({generatedAt:p(),project:w({id:p(),name:p(),displayName:p(),canonicalDomain:p(),country:p(),language:p()}),location:VO.nullable(),providerLocationHandling:A(IO),periodStart:p().nullable(),periodEnd:p().nullable(),periodDays:y().int().positive()}),GO=w({citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),trend:ne(["up","down","flat","unknown"]),queryCount:y(),competitorCount:y(),providerCount:y(),gsc:w({clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),periodStart:p(),periodEnd:p()}).nullable(),ga:w({sessions:y(),users:y(),periodStart:p(),periodEnd:p()}).nullable(),findings:A(w({title:p(),detail:p(),tone:ne(["positive","caution","negative","neutral"])}))}),HO=w({citationState:ne(["cited","not-cited","pending"]),answerMentioned:re().nullable(),model:p().nullable()}),QO=w({queries:A(p()),providers:A(p()),matrix:A(A(HO.nullable())),providerRates:A(w({provider:p(),citedCount:y(),mentionedCount:y(),totalCount:y(),citationRate:y(),mentionRate:y()}))}),KO=w({domain:p(),citationCount:y(),totalCount:y(),pressureLabel:ne(["High","Moderate","Low","None"]),citedQueries:A(p()),sharePct:y(),theirCitedPages:A(w({url:p(),citedFor:A(p())}))}),ZO=w({projectCitationCount:y(),competitors:A(KO)}),YO=w({domain:p(),mentionCount:y(),totalCount:y(),pressureLabel:ne(["High","Moderate","Low","None"]),mentionedQueries:A(p()),sharePct:y()}),XO=w({projectMentionCount:y(),totalAnswerSnapshots:y(),competitors:A(YO)}),JO=w({category:p(),label:p(),count:y(),sharePct:y()}),FO=w({categories:A(JO),topDomains:A(w({domain:p(),count:y(),isCompetitor:re()}))}),WO=w({query:p(),clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),category:ne(["brand","lead-gen","industry","other"])}),eD=w({periodStart:p(),periodEnd:p(),totalClicks:y(),totalImpressions:y(),ctr:y(),avgPosition:y(),topQueries:A(WO),categoryBreakdown:A(w({category:ne(["brand","lead-gen","industry","other"]),clicks:y(),impressions:y(),sharePct:y()})),trend:A(w({date:p(),clicks:y(),impressions:y()})),trackedButNoGsc:A(p()),gscButNotTracked:A(p())}),tD=w({totalSessions:y(),totalUsers:y(),totalOrganicSessions:y(),periodStart:p(),periodEnd:p(),topLandingPages:A(w({page:p(),sessions:y(),users:y(),organicSessions:y()})),channelBreakdown:A(w({channel:p(),sessions:y(),sharePct:y()}))}),nD=w({totalSessions:y(),organicSessions:y(),paidSessions:y(),channels:A(w({channelGroup:p(),sessions:y(),sharePct:y()})),topCampaigns:A(w({source:p(),medium:p(),sessions:y()}))}),aD=w({totalSessions:y(),totalUsers:y(),bySource:A(w({source:p(),sessions:y(),users:y(),sharePct:y()})),trend:A(w({date:p(),sessions:y()})),topLandingPages:A(w({page:p(),sessions:y(),users:y()}))}),iD=w({windowStart:p(),windowEnd:p(),hasData:re(),verifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),unverifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),aiUserFetchHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),referralArrivals:w({current:y(),prior:y(),deltaPct:y().nullable()}),byOperator:A(w({operator:p(),verifiedHits:y(),unverifiedHits:y(),userFetchHits:y(),referralArrivals:y(),deltaPct:y().nullable()})),topCrawledPaths:A(w({path:p(),verifiedHits:y(),distinctOperators:y()})),referralProducts:A(w({product:p(),arrivals:y(),distinctLandingPaths:y()})),dailyTrend:A(w({date:p(),verifiedCrawlerHits:y(),userFetchHits:y(),referralArrivals:y()})),topReferralLandingPaths:A(w({path:p(),arrivals:y(),distinctProducts:y()}))}),sD=w({provider:ne(["google","bing"]).nullable(),total:y(),indexed:y(),notIndexed:y(),deindexed:y(),unknown:y(),indexedPct:y()}),rD=w({runId:p(),date:p(),citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),providerRates:A(w({provider:p(),citationRate:y(),mentionRate:y()}))}),Ef=w({id:p(),type:ne(["regression","gain","opportunity"]),severity:ne(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:p().nullable(),createdAt:p(),instanceCount:y()}),oD=w({horizon:ne(["immediate","short-term","medium-term"]),title:p(),rationale:p()}),As=w({current:y(),prior:y(),deltaAbs:y(),deltaPct:y().nullable(),direction:ne(["up","down","flat"]),window:y().optional()}),lD=w({provider:p(),current:y(),prior:y(),deltaAbs:y(),direction:ne(["up","down","flat"])}),cD=w({enoughHistory:re(),headline:p(),citationRate:As.nullable(),mentionRate:As.nullable(),citedQueryCount:As.nullable(),mentionedQueryCount:As.nullable(),gscClicksDelta:As.nullable(),aiReferralsDelta:As.nullable(),comparisonWindowDays:y().int().positive(),providerMovements:A(lD),wins:A(Ef),regressions:A(Ef)});ne(["agency","client"]);const uD=ne(["agency","client","both"]),dD=ne(["immediate","short-term","medium-term"]),fD=ne(["high","medium","low"]);ne(["positive","caution","negative","neutral"]);const pD=ne(["content","competitors","provider","search-demand","indexing","location","monitoring"]),bp=w({audience:uD,priority:y(),horizon:dD,category:pD,title:p(),action:p(),why:A(p()),evidence:A(p()),successMetric:p(),confidence:fD,targetRef:p().optional()}),mD=w({headline:p(),overview:p(),actionItems:A(bp),confidenceNotes:A(p())}),hD=w({title:p(),detail:p(),severity:ne(["positive","caution","negative","neutral"]),evidence:A(p())}),gD=w({priorities:A(bp),diagnostics:A(hD)});function qL(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function UL(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function $L(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function VL(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 IL(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}w({meta:PO,executiveSummary:GO,citationScorecard:QO,competitorLandscape:ZO,mentionLandscape:XO,aiSourceOrigin:FO,gsc:eD.nullable(),ga:tD.nullable(),socialReferrals:nD.nullable(),aiReferrals:aD.nullable(),serverActivity:iD.nullable(),indexingHealth:sD.nullable(),citationsTrend:A(rD),whatsChanged:cD,insights:A(Ef),recommendedNextSteps:A(oD),actionPlan:A(bp),clientSummary:mD,agencyDiagnostics:gD,contentOpportunities:A(L0),contentGaps:A(U0),groundingSources:A(q0)});const yD=ne(["claude","codex"]);yD.enum;const bD=ne(["claude","codex","all"]);bD.enum;const I0=w({content:y().int().nonnegative(),sitemap:y().int().nonnegative(),robots:y().int().nonnegative(),asset:y().int().nonnegative(),other:y().int().nonnegative()}),vD=ne(["content","sitemap","robots","asset","other"]),vp=ne(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);vp.enum;const SD=ne(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);SD.enum;const xD=ne(["raw-request","aggregate-bucket"]),wD=xD.enum,jD=ne(["observed","provider-aggregated","inferred"]),ND=jD.enum,kD=w({type:p().nullable(),labels:lt(p(),p())}),AD=w({sourceType:vp,evidenceKind:vt(wD["raw-request"]),confidence:vt(ND.observed),eventId:p().min(1),observedAt:p().min(1),method:p().nullable(),requestUrl:p().nullable(),host:p().nullable(),path:p().min(1),queryString:p().nullable(),status:y().int().nullable(),userAgent:p().nullable(),remoteIp:p().nullable(),referer:p().nullable(),latencyMs:y().nullable(),requestSizeBytes:y().int().nullable(),responseSizeBytes:y().int().nullable(),providerResource:kD,providerLabels:lt(p(),p())});w({events:A(AD),rawEntryCount:y().int().nonnegative(),skippedEntryCount:y().int().nonnegative(),nextPageToken:p().optional(),filter:p()});const P0=ne(["connected","paused","error","archived"]),PL=P0.enum,G0=ne(["oauth","service-account"]);G0.enum;const _D=ne(["verified","claimed_unverified","unknown_ai_like"]),GL=_D.enum;w({gcpProjectId:p().min(1),serviceName:p().nullable().optional(),location:p().nullable().optional(),authMode:G0});w({baseUrl:p().url(),username:p().min(1)});const Sp=ne(["production","preview"]);Sp.enum;w({projectId:p().min(1),teamId:p().min(1),environment:Sp});const H0=w({id:p(),projectId:p(),sourceType:vp,displayName:p(),status:P0,lastSyncedAt:p().nullable(),lastCursor:p().nullable(),lastError:p().nullable(),archivedAt:p().nullable(),config:lt(p(),Ln()),createdAt:p(),updatedAt:p()});w({gcpProjectId:p().min(1),serviceName:p().min(1).optional(),location:p().min(1).optional(),displayName:p().min(1).optional(),keyJson:p().optional()});w({baseUrl:p().url(),username:p().min(1),applicationPassword:p().min(1),displayName:p().min(1).optional()});w({projectId:p().min(1),teamId:p().min(1),token:p().min(1),environment:Sp.optional(),displayName:p().min(1).optional()});w({sourceId:p(),runId:p(),syncedAt:p(),pulledEvents:y().int().nonnegative(),selfTrafficExcluded:y().int().nonnegative(),crawlerHits:y().int().nonnegative(),aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),unknownHits:y().int().nonnegative(),crawlerBucketRows:y().int().nonnegative(),aiUserFetchBucketRows:y().int().nonnegative(),aiReferralBucketRows:y().int().nonnegative(),sampleRows:y().int().nonnegative(),windowStart:p(),windowEnd:p()});w({days:y().int().positive().optional()});w({advanceToNow:vt(!0)});w({sourceId:p(),runId:p(),status:Zs,windowStart:p(),windowEnd:p(),daysRequested:y().int().positive(),daysApplied:y().int().positive()});const CD=w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:I0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),sampleCount:y().int().nonnegative()});w({sources:A(H0)});const zD=H0.extend({totals24h:CD,latestRun:w({runId:p(),status:Zs,startedAt:p().nullable(),finishedAt:p().nullable(),error:p().nullable()}).nullable()});w({sources:A(zD)});const TD=ne(["crawler","ai-user-fetch","ai-referral"]),xp=TD.enum,ED=w({kind:vt(xp.crawler),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),pathClass:vD,status:y().int(),hits:y().int().nonnegative()}),OD=w({kind:vt(xp["ai-user-fetch"]),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),DD=w({kind:vt(xp["ai-referral"]),sourceId:p(),tsHour:p(),product:p(),operator:p(),sourceDomain:p(),evidenceType:p(),landingPathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),RD=p0("kind",[ED,OD,DD]);w({windowStart:p(),windowEnd:p(),totals:w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:I0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative()}),events:A(RD)});w({apiKey:p().min(1)});w({connected:re(),adAccountId:p().nullable().optional(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),timezone:p().nullable().optional(),status:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),conversionTrackingConfigured:re().optional()});w({disconnected:re()});w({runId:p(),status:p()});const MD=w({type:p().nullable().optional(),title:p().nullable().optional(),body:p().nullable().optional(),targetUrl:p().nullable().optional()}),BD=w({id:p(),adGroupId:p(),name:p(),status:p(),reviewStatus:p().nullable().optional(),creative:MD.nullable().optional()}),LD=w({id:p(),campaignId:p(),name:p(),status:p(),billingEventType:p().nullable().optional(),maxBidMicros:y().int().nullable().optional(),contextHints:A(p()).default([]),ads:A(BD).default([])}),qD=w({id:p(),name:p(),status:p(),biddingType:p().nullable().optional(),dailySpendLimitMicros:y().int().nullable().optional(),lifetimeSpendLimitMicros:y().int().nullable().optional(),adGroups:A(LD).default([])});w({campaigns:A(qD)});const Q0=ne(["campaign","ad_group"]);Q0.enum;const UD=w({level:Q0,entityId:p(),date:p(),impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({rows:A(UD),currencyCode:p().nullable().optional()});const $D=w({impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({connected:re(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),campaignCount:y().int(),adGroupCount:y().int(),adCount:y().int(),window:w({from:p().nullable(),to:p().nullable()}),totals:$D});var VD=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(VD||{});const HL={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},QL={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},KL=op;function ID(e){const n=[];if(e.message&&n.push(e.message),e.providers)for(const[i,r]of Object.entries(e.providers)){const l=`[${i}] ${r.message}`;r.raw!==void 0?n.push(`${l}
52
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const d of e.seen.entries()){const h=d[1];if(n===d[0]){c(d);continue}if(e.external){const v=e.external.registry.get(d[0])?.id;if(n!==d[0]&&v){c(d);continue}}if(e.metadataRegistry.get(d[0])?.id){c(d);continue}if(h.cycle){c(d);continue}if(h.count>1&&e.reused==="ref"){c(d);continue}}}function l0(e,n){const i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=d=>{const h=e.seen.get(d);if(h.ref===null)return;const g=h.def??h.schema,v={...g},S=h.ref;if(h.ref=null,S){r(S);const N=e.seen.get(S),_=N.schema;if(_.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(g.allOf=g.allOf??[],g.allOf.push(_)):Object.assign(g,_),Object.assign(g,v),d._zod.parent===S)for(const k in g)k==="$ref"||k==="allOf"||k in v||delete g[k];if(_.$ref&&N.def)for(const k in g)k==="$ref"||k==="allOf"||k in N.def&&JSON.stringify(g[k])===JSON.stringify(N.def[k])&&delete g[k]}const x=d._zod.parent;if(x&&x!==S){r(x);const N=e.seen.get(x);if(N?.schema.$ref&&(g.$ref=N.schema.$ref,N.def))for(const _ in g)_==="$ref"||_==="allOf"||_ in N.def&&JSON.stringify(g[_])===JSON.stringify(N.def[_])&&delete g[_]}e.override({zodSchema:d,jsonSchema:g,path:h.path??[]})};for(const d of[...e.seen.entries()].reverse())r(d[0]);const l={};if(e.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?l.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?l.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const d=e.external.registry.get(n)?.id;if(!d)throw new Error("Schema is missing an `id` property");l.$id=e.external.uri(d)}Object.assign(l,i.def??i.schema);const c=e.external?.defs??{};for(const d of e.seen.entries()){const h=d[1];h.def&&h.defId&&(c[h.defId]=h.def)}e.external||Object.keys(c).length>0&&(e.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{const d=JSON.parse(JSON.stringify(l));return Object.defineProperty(d,"~standard",{value:{...n["~standard"],jsonSchema:{input:ac(n,"input",e.processors),output:ac(n,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function Gt(e,n){const i=n??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Gt(r.element,i);if(r.type==="set")return Gt(r.valueType,i);if(r.type==="lazy")return Gt(r.getter(),i);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Gt(r.innerType,i);if(r.type==="intersection")return Gt(r.left,i)||Gt(r.right,i);if(r.type==="record"||r.type==="map")return Gt(r.keyType,i)||Gt(r.valueType,i);if(r.type==="pipe")return Gt(r.in,i)||Gt(r.out,i);if(r.type==="object"){for(const l in r.shape)if(Gt(r.shape[l],i))return!0;return!1}if(r.type==="union"){for(const l of r.options)if(Gt(l,i))return!0;return!1}if(r.type==="tuple"){for(const l of r.items)if(Gt(l,i))return!0;return!!(r.rest&&Gt(r.rest,i))}return!1}const XC=(e,n={})=>i=>{const r=r0({...i,processors:n});return At(e,r),o0(r,e),l0(r,e)},ac=(e,n,i={})=>r=>{const{libraryOptions:l,target:c}=r??{},d=r0({...l??{},target:c,io:n,processors:i});return At(e,d),o0(d,e),l0(d,e)},JC={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},FC=(e,n,i,r)=>{const l=i;l.type="string";const{minimum:c,maximum:d,format:h,patterns:g,contentEncoding:v}=e._zod.bag;if(typeof c=="number"&&(l.minLength=c),typeof d=="number"&&(l.maxLength=d),h&&(l.format=JC[h]??h,l.format===""&&delete l.format,h==="time"&&delete l.format),v&&(l.contentEncoding=v),g&&g.size>0){const S=[...g];S.length===1?l.pattern=S[0].source:S.length>1&&(l.allOf=[...S.map(x=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:x.source}))])}},WC=(e,n,i,r)=>{const l=i,{minimum:c,maximum:d,format:h,multipleOf:g,exclusiveMaximum:v,exclusiveMinimum:S}=e._zod.bag;typeof h=="string"&&h.includes("int")?l.type="integer":l.type="number",typeof S=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.minimum=S,l.exclusiveMinimum=!0):l.exclusiveMinimum=S),typeof c=="number"&&(l.minimum=c,typeof S=="number"&&n.target!=="draft-04"&&(S>=c?delete l.minimum:delete l.exclusiveMinimum)),typeof v=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(l.maximum=v,l.exclusiveMaximum=!0):l.exclusiveMaximum=v),typeof d=="number"&&(l.maximum=d,typeof v=="number"&&n.target!=="draft-04"&&(v<=d?delete l.maximum:delete l.exclusiveMaximum)),typeof g=="number"&&(l.multipleOf=g)},ez=(e,n,i,r)=>{i.type="boolean"},tz=(e,n,i,r)=>{i.not={}},nz=(e,n,i,r)=>{},az=(e,n,i,r)=>{const l=e._zod.def,c=Uv(l.entries);c.every(d=>typeof d=="number")&&(i.type="number"),c.every(d=>typeof d=="string")&&(i.type="string"),i.enum=c},iz=(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},sz=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},rz=(e,n,i,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},oz=(e,n,i,r)=>{const l=i,c=e._zod.def,{minimum:d,maximum:h}=e._zod.bag;typeof d=="number"&&(l.minItems=d),typeof h=="number"&&(l.maxItems=h),l.type="array",l.items=At(c.element,n,{...r,path:[...r.path,"items"]})},lz=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object",l.properties={};const d=c.shape;for(const v in d)l.properties[v]=At(d[v],n,{...r,path:[...r.path,"properties",v]});const h=new Set(Object.keys(d)),g=new Set([...h].filter(v=>{const S=c.shape[v]._zod;return n.io==="input"?S.optin===void 0:S.optout===void 0}));g.size>0&&(l.required=Array.from(g)),c.catchall?._zod.def.type==="never"?l.additionalProperties=!1:c.catchall?c.catchall&&(l.additionalProperties=At(c.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(l.additionalProperties=!1)},cz=(e,n,i,r)=>{const l=e._zod.def,c=l.inclusive===!1,d=l.options.map((h,g)=>At(h,n,{...r,path:[...r.path,c?"oneOf":"anyOf",g]}));c?i.oneOf=d:i.anyOf=d},uz=(e,n,i,r)=>{const l=e._zod.def,c=At(l.left,n,{...r,path:[...r.path,"allOf",0]}),d=At(l.right,n,{...r,path:[...r.path,"allOf",1]}),h=v=>"allOf"in v&&Object.keys(v).length===1,g=[...h(c)?c.allOf:[c],...h(d)?d.allOf:[d]];i.allOf=g},dz=(e,n,i,r)=>{const l=i,c=e._zod.def;l.type="object";const d=c.keyType,g=d._zod.bag?.patterns;if(c.mode==="loose"&&g&&g.size>0){const S=At(c.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});l.patternProperties={};for(const x of g)l.patternProperties[x.source]=S}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(l.propertyNames=At(c.keyType,n,{...r,path:[...r.path,"propertyNames"]})),l.additionalProperties=At(c.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const v=d._zod.values;if(v){const S=[...v].filter(x=>typeof x=="string"||typeof x=="number");S.length>0&&(l.required=S)}},fz=(e,n,i,r)=>{const l=e._zod.def,c=At(l.innerType,n,r),d=n.seen.get(e);n.target==="openapi-3.0"?(d.ref=l.innerType,i.nullable=!0):i.anyOf=[c,{type:"null"}]},pz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},mz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.default=JSON.parse(JSON.stringify(l.defaultValue))},hz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,n.io==="input"&&(i._prefault=JSON.parse(JSON.stringify(l.defaultValue)))},gz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType;let d;try{d=l.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}i.default=d},yz=(e,n,i,r)=>{const l=e._zod.def,c=n.io==="input"?l.in._zod.def.type==="transform"?l.out:l.in:l.out;At(c,n,r);const d=n.seen.get(e);d.ref=c},bz=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType,i.readOnly=!0},c0=(e,n,i,r)=>{const l=e._zod.def;At(l.innerType,n,r);const c=n.seen.get(e);c.ref=l.innerType},vz=Q("ZodISODateTime",(e,n)=>{S_.init(e,n),ft.init(e,n)});function Sz(e){return AC(vz,e)}const xz=Q("ZodISODate",(e,n)=>{x_.init(e,n),ft.init(e,n)});function wz(e){return _C(xz,e)}const jz=Q("ZodISOTime",(e,n)=>{w_.init(e,n),ft.init(e,n)});function Nz(e){return CC(jz,e)}const kz=Q("ZodISODuration",(e,n)=>{j_.init(e,n),ft.init(e,n)});function Az(e){return zC(kz,e)}const _z=(e,n)=>{Pv.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:i=>p2(e,i)},flatten:{value:i=>f2(e,i)},addIssue:{value:i=>{e.issues.push(i),e.message=JSON.stringify(e.issues,Af,2)}},addIssues:{value:i=>{e.issues.push(...i),e.message=JSON.stringify(e.issues,Af,2)}},isEmpty:{get(){return e.issues.length===0}}})},zn=Q("ZodError",_z,{Parent:Error}),Cz=np(zn),zz=ap(zn),Tz=hc(zn),Ez=gc(zn),Oz=g2(zn),Dz=y2(zn),Rz=b2(zn),Mz=v2(zn),Bz=S2(zn),Lz=x2(zn),qz=w2(zn),Uz=j2(zn),dt=Q("ZodType",(e,n)=>(ut.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:ac(e,"input"),output:ac(e,"output")}}),e.toJSONSchema=XC(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...i)=>e.clone(ei(n,{checks:[...n.checks??[],...i.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(i,r)=>ti(e,i,r),e.brand=()=>e,e.register=((i,r)=>(i.add(e,r),e)),e.parse=(i,r)=>Cz(e,i,r,{callee:e.parse}),e.safeParse=(i,r)=>Tz(e,i,r),e.parseAsync=async(i,r)=>zz(e,i,r,{callee:e.parseAsync}),e.safeParseAsync=async(i,r)=>Ez(e,i,r),e.spa=e.safeParseAsync,e.encode=(i,r)=>Oz(e,i,r),e.decode=(i,r)=>Dz(e,i,r),e.encodeAsync=async(i,r)=>Rz(e,i,r),e.decodeAsync=async(i,r)=>Mz(e,i,r),e.safeEncode=(i,r)=>Bz(e,i,r),e.safeDecode=(i,r)=>Lz(e,i,r),e.safeEncodeAsync=async(i,r)=>qz(e,i,r),e.safeDecodeAsync=async(i,r)=>Uz(e,i,r),e.refine=(i,r)=>e.check(OT(i,r)),e.superRefine=i=>e.check(DT(i)),e.overwrite=i=>e.check(Qs(i)),e.optional=()=>yb(e),e.exactOptional=()=>vT(e),e.nullable=()=>bb(e),e.nullish=()=>yb(bb(e)),e.nonoptional=i=>kT(e,i),e.array=()=>A(e),e.or=i=>bc([e,i]),e.and=i=>pT(e,i),e.transform=i=>vb(e,yT(i)),e.default=i=>wT(e,i),e.prefault=i=>NT(e,i),e.catch=i=>_T(e,i),e.pipe=i=>vb(e,i),e.readonly=()=>TT(e),e.describe=i=>{const r=e.clone();return Wr.add(r,{description:i}),r},Object.defineProperty(e,"description",{get(){return Wr.get(e)?.description},configurable:!0}),e.meta=(...i)=>{if(i.length===0)return Wr.get(e);const r=e.clone();return Wr.add(r,i[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=i=>i(e),e)),u0=Q("_ZodString",(e,n)=>{ip.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>FC(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(MC(...r)),e.includes=(...r)=>e.check(qC(...r)),e.startsWith=(...r)=>e.check(UC(...r)),e.endsWith=(...r)=>e.check($C(...r)),e.min=(...r)=>e.check(nc(...r)),e.max=(...r)=>e.check(i0(...r)),e.length=(...r)=>e.check(s0(...r)),e.nonempty=(...r)=>e.check(nc(1,...r)),e.lowercase=r=>e.check(BC(r)),e.uppercase=r=>e.check(LC(r)),e.trim=()=>e.check(IC()),e.normalize=(...r)=>e.check(VC(...r)),e.toLowerCase=()=>e.check(PC()),e.toUpperCase=()=>e.check(GC()),e.slugify=()=>e.check(HC())}),$z=Q("ZodString",(e,n)=>{ip.init(e,n),u0.init(e,n),e.email=i=>e.check(sC(Vz,i)),e.url=i=>e.check(uC(Iz,i)),e.jwt=i=>e.check(kC(aT,i)),e.emoji=i=>e.check(dC(Pz,i)),e.guid=i=>e.check(db(hb,i)),e.uuid=i=>e.check(rC(Ul,i)),e.uuidv4=i=>e.check(oC(Ul,i)),e.uuidv6=i=>e.check(lC(Ul,i)),e.uuidv7=i=>e.check(cC(Ul,i)),e.nanoid=i=>e.check(fC(Gz,i)),e.guid=i=>e.check(db(hb,i)),e.cuid=i=>e.check(pC(Hz,i)),e.cuid2=i=>e.check(mC(Qz,i)),e.ulid=i=>e.check(hC(Kz,i)),e.base64=i=>e.check(wC(eT,i)),e.base64url=i=>e.check(jC(tT,i)),e.xid=i=>e.check(gC(Zz,i)),e.ksuid=i=>e.check(yC(Yz,i)),e.ipv4=i=>e.check(bC(Xz,i)),e.ipv6=i=>e.check(vC(Jz,i)),e.cidrv4=i=>e.check(SC(Fz,i)),e.cidrv6=i=>e.check(xC(Wz,i)),e.e164=i=>e.check(NC(nT,i)),e.datetime=i=>e.check(Sz(i)),e.date=i=>e.check(wz(i)),e.time=i=>e.check(Nz(i)),e.duration=i=>e.check(Az(i))});function p(e){return iC($z,e)}const ft=Q("ZodStringFormat",(e,n)=>{ct.init(e,n),u0.init(e,n)}),Vz=Q("ZodEmail",(e,n)=>{d_.init(e,n),ft.init(e,n)}),hb=Q("ZodGUID",(e,n)=>{c_.init(e,n),ft.init(e,n)}),Ul=Q("ZodUUID",(e,n)=>{u_.init(e,n),ft.init(e,n)}),Iz=Q("ZodURL",(e,n)=>{f_.init(e,n),ft.init(e,n)}),Pz=Q("ZodEmoji",(e,n)=>{p_.init(e,n),ft.init(e,n)}),Gz=Q("ZodNanoID",(e,n)=>{m_.init(e,n),ft.init(e,n)}),Hz=Q("ZodCUID",(e,n)=>{h_.init(e,n),ft.init(e,n)}),Qz=Q("ZodCUID2",(e,n)=>{g_.init(e,n),ft.init(e,n)}),Kz=Q("ZodULID",(e,n)=>{y_.init(e,n),ft.init(e,n)}),Zz=Q("ZodXID",(e,n)=>{b_.init(e,n),ft.init(e,n)}),Yz=Q("ZodKSUID",(e,n)=>{v_.init(e,n),ft.init(e,n)}),Xz=Q("ZodIPv4",(e,n)=>{N_.init(e,n),ft.init(e,n)}),Jz=Q("ZodIPv6",(e,n)=>{k_.init(e,n),ft.init(e,n)}),Fz=Q("ZodCIDRv4",(e,n)=>{A_.init(e,n),ft.init(e,n)}),Wz=Q("ZodCIDRv6",(e,n)=>{__.init(e,n),ft.init(e,n)}),eT=Q("ZodBase64",(e,n)=>{C_.init(e,n),ft.init(e,n)}),tT=Q("ZodBase64URL",(e,n)=>{T_.init(e,n),ft.init(e,n)}),nT=Q("ZodE164",(e,n)=>{E_.init(e,n),ft.init(e,n)}),aT=Q("ZodJWT",(e,n)=>{D_.init(e,n),ft.init(e,n)}),d0=Q("ZodNumber",(e,n)=>{Wv.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>WC(e,r,l),e.gt=(r,l)=>e.check(pb(r,l)),e.gte=(r,l)=>e.check(of(r,l)),e.min=(r,l)=>e.check(of(r,l)),e.lt=(r,l)=>e.check(fb(r,l)),e.lte=(r,l)=>e.check(rf(r,l)),e.max=(r,l)=>e.check(rf(r,l)),e.int=r=>e.check(gb(r)),e.safe=r=>e.check(gb(r)),e.positive=r=>e.check(pb(0,r)),e.nonnegative=r=>e.check(of(0,r)),e.negative=r=>e.check(fb(0,r)),e.nonpositive=r=>e.check(rf(0,r)),e.multipleOf=(r,l)=>e.check(mb(r,l)),e.step=(r,l)=>e.check(mb(r,l)),e.finite=()=>e;const i=e._zod.bag;e.minValue=Math.max(i.minimum??Number.NEGATIVE_INFINITY,i.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(i.maximum??Number.POSITIVE_INFINITY,i.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(i.format??"").includes("int")||Number.isSafeInteger(i.multipleOf??.5),e.isFinite=!0,e.format=i.format??null});function y(e){return TC(d0,e)}const iT=Q("ZodNumberFormat",(e,n)=>{R_.init(e,n),d0.init(e,n)});function gb(e){return EC(iT,e)}const sT=Q("ZodBoolean",(e,n)=>{M_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>ez(e,i,r)});function re(e){return OC(sT,e)}const rT=Q("ZodUnknown",(e,n)=>{B_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>nz()});function Ln(){return DC(rT)}const oT=Q("ZodNever",(e,n)=>{L_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>tz(e,i,r)});function lT(e){return RC(oT,e)}const cT=Q("ZodArray",(e,n)=>{q_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>oz(e,i,r,l),e.element=n.element,e.min=(i,r)=>e.check(nc(i,r)),e.nonempty=i=>e.check(nc(1,i)),e.max=(i,r)=>e.check(i0(i,r)),e.length=(i,r)=>e.check(s0(i,r)),e.unwrap=()=>e.element});function A(e,n){return QC(cT,e,n)}const uT=Q("ZodObject",(e,n)=>{$_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>lz(e,i,r,l),Ge(e,"shape",()=>n.shape),e.keyof=()=>ne(Object.keys(e._zod.def.shape)),e.catchall=i=>e.clone({...e._zod.def,catchall:i}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Ln()}),e.loose=()=>e.clone({...e._zod.def,catchall:Ln()}),e.strict=()=>e.clone({...e._zod.def,catchall:lT()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=i=>o2(e,i),e.safeExtend=i=>l2(e,i),e.merge=i=>c2(e,i),e.pick=i=>s2(e,i),e.omit=i=>r2(e,i),e.partial=(...i)=>u2(m0,e,i[0]),e.required=(...i)=>d2(h0,e,i[0])});function w(e,n){const i={type:"object",shape:e??{},...be(n)};return new uT(i)}const f0=Q("ZodUnion",(e,n)=>{n0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>cz(e,i,r,l),e.options=n.options});function bc(e,n){return new f0({type:"union",options:e,...be(n)})}const dT=Q("ZodDiscriminatedUnion",(e,n)=>{f0.init(e,n),V_.init(e,n)});function p0(e,n,i){return new dT({type:"union",options:n,discriminator:e,...be(i)})}const fT=Q("ZodIntersection",(e,n)=>{I_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>uz(e,i,r,l)});function pT(e,n){return new fT({type:"intersection",left:e,right:n})}const mT=Q("ZodRecord",(e,n)=>{P_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>dz(e,i,r,l),e.keyType=n.keyType,e.valueType=n.valueType});function lt(e,n,i){return new mT({type:"record",keyType:e,valueType:n,...be(i)})}const Cf=Q("ZodEnum",(e,n)=>{G_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(r,l,c)=>az(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 Cf({...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 Cf({...n,checks:[],...be(l),entries:c})}});function ne(e,n){const i=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Cf({type:"enum",entries:i,...be(n)})}const hT=Q("ZodLiteral",(e,n)=>{H_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>iz(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 hT({type:"literal",values:Array.isArray(e)?e:[e],...be(n)})}const gT=Q("ZodTransform",(e,n)=>{Q_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>rz(e,i),e._zod.parse=(i,r)=>{if(r.direction==="backward")throw new Lv(e.constructor.name);i.addIssue=c=>{if(typeof c=="string")i.issues.push(so(c,i.value,n));else{const d=c;d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=i.value),d.inst??(d.inst=e),i.issues.push(so(d))}};const l=n.transform(i.value,i);return l instanceof Promise?l.then(c=>(i.value=c,i)):(i.value=l,i)}});function yT(e){return new gT({type:"transform",transform:e})}const m0=Q("ZodOptional",(e,n)=>{a0.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>c0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function yb(e){return new m0({type:"optional",innerType:e})}const bT=Q("ZodExactOptional",(e,n)=>{K_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>c0(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function vT(e){return new bT({type:"optional",innerType:e})}const ST=Q("ZodNullable",(e,n)=>{Z_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>fz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function bb(e){return new ST({type:"nullable",innerType:e})}const xT=Q("ZodDefault",(e,n)=>{Y_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>mz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function wT(e,n){return new xT({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Vv(n)}})}const jT=Q("ZodPrefault",(e,n)=>{X_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>hz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function NT(e,n){return new jT({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Vv(n)}})}const h0=Q("ZodNonOptional",(e,n)=>{J_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>pz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function kT(e,n){return new h0({type:"nonoptional",innerType:e,...be(n)})}const AT=Q("ZodCatch",(e,n)=>{F_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>gz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function _T(e,n){return new AT({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const CT=Q("ZodPipe",(e,n)=>{W_.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>yz(e,i,r,l),e.in=n.in,e.out=n.out});function vb(e,n){return new CT({type:"pipe",in:e,out:n})}const zT=Q("ZodReadonly",(e,n)=>{eC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>bz(e,i,r,l),e.unwrap=()=>e._zod.def.innerType});function TT(e){return new zT({type:"readonly",innerType:e})}const ET=Q("ZodCustom",(e,n)=>{tC.init(e,n),dt.init(e,n),e._zod.processJSONSchema=(i,r,l)=>sz(e,i)});function OT(e,n={}){return KC(ET,e,n)}function DT(e){return ZC(e)}const g0=w({id:p(),name:p(),keyPrefix:p(),scopes:A(p()),projectId:p().nullable(),readOnly:re(),createdAt:p(),lastUsedAt:p().nullable(),revokedAt:p().nullable()});w({keys:A(g0)});w({name:p().min(1).max(100),scopes:A(p()).min(1).optional(),projectId:p().optional()});g0.extend({key:p()});const RT=w({maxConcurrency:y().int().positive(),maxRequestsPerMinute:y().int().positive(),maxRequestsPerDay:y().int().positive()}),ya=p().min(1);p().min(1);const sp=w({label:p().min(1),city:p().min(1),region:p().min(1),country:p().length(2),timezone:p().optional()}),rp=ne(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high"]);w({id:p(),projectId:p(),channel:vt("webhook"),url:p().url(),urlDisplay:p(),urlHost:p(),events:A(rp),enabled:re().default(!0),source:p().optional(),webhookSecret:p().optional(),createdAt:p(),updatedAt:p()});w({channel:vt("webhook"),url:p().url(),events:A(rp).min(1),source:p().optional()});const y0=ne(["cli","api","config-file"]);function MT(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 BT(e,n){return n?e.some(i=>i.label===n):!0}w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional(),aliases:A(p()).optional(),country:p().length(2),language:p().min(2),tags:A(p()).optional(),labels:lt(p(),p()).optional(),providers:A(ya).optional(),locations:A(sp).optional(),defaultLocation:p().nullable().optional(),autoExtractBacklinks:re().optional(),configSource:y0.optional()});const LT=w({id:p(),name:p(),displayName:p().optional(),canonicalDomain:p(),ownedDomains:A(p()).default([]),aliases:A(p()).default([]),country:p().length(2),language:p().min(2),tags:A(p()).default([]),labels:lt(p(),p()).default({}),providers:A(p()).default([]),locations:A(sp).default([]),defaultLocation:p().nullable().optional(),autoExtractBacklinks:re().default(!1),configSource:y0.default("cli"),configRevision:y().int().positive().default(1),createdAt:p().optional(),updatedAt:p().optional()});w({id:p(),query:p(),createdAt:p()});w({id:p(),keyword:p(),createdAt:p()});w({queries:A(p().trim().min(1)).min(1)});w({keywords:A(p().trim().min(1)).min(1)});w({provider:ya,count:y().int().min(1).max(20).optional()});w({id:p(),domain:p(),createdAt:p()});w({competitors:A(p().trim().min(1)).min(1)});function ic(e){let n=e.trim().toLowerCase();try{n.includes("://")&&(n=new URL(n).hostname.toLowerCase())}catch{}return n.replace(/^www\./,"")}const qT=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=ic(e);if(!n)return"";const i=n.split("/")[0]?.split(":")[0]??"";if(!i)return"";const r=i.split(".").filter(Boolean);if(r.length<2)return"";if(r.length===2)return r.join(".");const l=r.slice(-2).join(".");return qT.has(l)?r.length>=3?r.slice(-3).join("."):"":r.slice(-2).join(".")}function $T(e){const n=UT(e);return n?n.split(".")[0]??"":""}function VT(e){const n=[e.canonicalDomain,...e.ownedDomains??[]],i=new Set,r=[];for(const l of n){const c=l.trim();if(!c)continue;const d=ic(c);i.has(d)||(i.add(d),r.push(c))}return r}const IT=w({name:p().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:lt(p(),p()).optional().default({})}),PT=w({preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),providers:A(ya).optional().default([])}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),GT=w({channel:vt("webhook"),url:p().url(),events:A(rp).min(1)}),HT=w({gsc:w({propertyUrl:p()}).optional(),syncSchedule:w({preset:p().optional(),cron:p().optional()}).optional()}).optional(),Sb=A(p().min(1)),QT=w({displayName:p().min(1),canonicalDomain:p().min(1),ownedDomains:A(p().min(1)).optional().default([]),aliases:A(p().min(1)).optional().default([]),country:p().length(2),language:p().min(2),queries:Sb.optional(),keywords:Sb.optional(),competitors:A(p().min(1)).optional().default([]),providers:A(ya).optional().default([]),locations:A(sp).optional().default([]),defaultLocation:p().optional(),schedule:PT,notifications:A(GT).optional().default([]),google:HT,autoExtractBacklinks:re().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=MT(e.locations);i.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${i.join(", ")}`,path:["locations"]}),BT(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});w({apiVersion:vt("canonry/v1"),kind:vt("Project"),metadata:IT,spec:QT});const KT=ne(["gsc","ga4","gbp"]);w({id:p(),domain:p(),connectionType:KT,propertyId:p().nullable().optional(),sitemapUrl:p().nullable().optional(),scopes:A(p()).default([]),createdAt:p(),updatedAt:p()});w({date:p(),query:p(),page:p(),country:p().nullable().optional(),device:p().nullable().optional(),clicks:y(),impressions:y(),ctr:y(),position:y()});const ZT=w({date:p(),clicks:y(),impressions:y(),ctr:y()});w({totals:w({clicks:y(),impressions:y(),ctr:y(),days:y()}),daily:A(ZT)});const zf=w({id:p(),url:p(),indexingState:p().nullable().optional(),verdict:p().nullable().optional(),coverageState:p().nullable().optional(),pageFetchState:p().nullable().optional(),robotsTxtState:p().nullable().optional(),crawlTime:p().nullable().optional(),lastCrawlResult:p().nullable().optional(),isMobileFriendly:re().nullable().optional(),richResults:A(p()).default([]),referringUrls:A(p()).default([]),inspectedAt:p()});ne(["stable","reindexed","deindexed","still-missing","new"]);const YT=w({url:p(),previousState:p().nullable(),currentState:p().nullable(),transitionDate:p()}),XT=w({reason:p(),count:y(),urls:A(zf).default([])});w({summary:w({total:y(),indexed:y(),notIndexed:y(),deindexed:y(),percentage:y()}),lastInspectedAt:p().nullable(),lastSyncedAt:p().nullable(),indexed:A(zf).default([]),notIndexed:A(zf).default([]),deindexed:A(YT).default([]),reasonGroups:A(XT).default([])});w({url:p(),type:ne(["URL_UPDATED","URL_DELETED"]),notifiedAt:p()});const JT=w({url:p(),type:ne(["URL_UPDATED","URL_DELETED"]),notifiedAt:p(),status:ne(["success","error"]),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(JT).default([])});w({date:p(),indexed:y(),notIndexed:y(),reasonBreakdown:lt(p(),y()).default({})});const FT=w({siteUrl:p(),permissionLevel:p()});w({sites:A(FT).default([])});const WT=w({type:p(),submitted:p(),indexed:p()}),eE=w({path:p(),lastSubmitted:p().optional(),isPending:re().optional(),isSitemapsIndex:re().optional(),type:p().optional(),lastDownloaded:p().optional(),warnings:p().optional(),errors:p().optional(),contents:A(WT).optional()});w({sitemaps:A(eE).default([])});const tE=w({name:p(),accountName:p().nullable(),type:p().nullable(),role:p().nullable()});w({accounts:A(tE),total:y().int().nonnegative()});const nE=w({id:p(),projectId:p(),accountName:p(),locationName:p(),displayName:p(),primaryCategoryDisplayName:p().nullable(),storefrontAddress:p().nullable(),websiteUri:p().nullable(),placeId:p().nullable(),mapsUri:p().nullable(),additionalCategories:A(p()),description:p().nullable(),serviceArea:lt(p(),Ln()).nullable(),regularHours:lt(p(),Ln()).nullable(),primaryPhone:p().nullable(),openStatus:p().nullable(),openingDate:p().nullable(),selected:re(),syncedAt:p().nullable(),createdAt:p(),updatedAt:p()});w({locations:A(nE),totalDiscovered:y().int().nonnegative(),totalSelected:y().int().nonnegative()});w({selectAllNew:re().default(!0),accountName:p().optional(),switchAccount:re().default(!1)});w({selected:re()});w({locationNames:A(p()).optional(),daysOfMetrics:y().int().positive().max(540).optional(),monthsOfKeywords:y().int().positive().max(18).optional()});w({runId:p(),status:p()});const aE=w({locationName:p(),date:p(),metric:p(),value:y().int()});w({metrics:A(aE),total:y().int().nonnegative()});const iE=w({locationName:p(),periodStart:p(),periodEnd:p(),keyword:p(),valueCount:y().int().nullable(),valueThreshold:y().int().nullable()});w({keywords:A(iE),total:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)});const sE=w({locationName:p(),placeActionLinkName:p(),placeActionType:p(),uri:p().nullable(),isPreferred:re(),providerType:p().nullable()});w({placeActions:A(sE),total:y().int().nonnegative()});const rE=w({locationName:p(),populatedGroupCount:y().int().nonnegative(),syncedAt:p(),attributes:lt(p(),Ln())});w({lodging:A(rE),total:y().int().nonnegative()});const oE=w({name:p(),valueType:p(),values:A(bc([re(),p()])),unsetValues:A(p()),uris:A(p())}),lE=w({locationName:p(),attributeCount:y().int().nonnegative(),syncedAt:p(),attributes:A(oE)});w({attributes:A(lE),total:y().int().nonnegative()});const cE=w({locationName:p(),placeId:p(),tier:p(),amenities:A(p()),syncedAt:p(),place:lt(p(),Ln())});w({places:A(cE),total:y().int().nonnegative()});w({scope:w({locationName:p().nullable(),locationCount:y().int().nonnegative()}),performance:w({totals:lt(p(),y()),recent7d:lt(p(),y()),prior7d:lt(p(),y()),deltaPct:lt(p(),y().nullable())}),freshness:w({dataThroughDate:p().nullable(),latestStoredDate:p().nullable(),pendingDays:y().int().nonnegative()}),timeseries:A(w({date:p(),pending:re(),metrics:lt(p(),y())})),keywords:w({total:y().int().nonnegative(),thresholdedCount:y().int().nonnegative(),thresholdedPct:y().int().min(0).max(100)}),placeActions:w({total:y().int().nonnegative(),hasReservationCta:re(),hasBookingCta:re(),hasDirectMerchantCta:re()}),lodging:w({lodgingLocationCount:y().int().nonnegative(),populatedLodgingCount:y().int().nonnegative(),emptyLodgingCount:y().int().nonnegative()}),profileCompleteness:w({locationCount:y().int().nonnegative(),withSecondaryCategories:y().int().nonnegative(),secondaryCategoryTotal:y().int().nonnegative(),withDescription:y().int().nonnegative(),withServiceArea:y().int().nonnegative(),withHours:y().int().nonnegative(),withPrimaryPhone:y().int().nonnegative(),permanentlyClosed:y().int().nonnegative(),temporarilyClosed:y().int().nonnegative()})});const uE={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 dE(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 DL(e){return uE[e]??dE(e)}const fE=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],pE=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function RL(e){return fE.includes(e)?"conversion":pE.includes(e)?"reach":"other"}w({id:p(),domain:p(),siteUrl:p().nullable().optional(),createdAt:p(),updatedAt:p()});const lf=w({id:p(),url:p(),httpCode:y().nullable().optional(),inIndex:re().nullable().optional(),lastCrawledDate:p().nullable().optional(),inIndexDate:p().nullable().optional(),inspectedAt:p(),documentSize:y().nullable().optional(),anchorCount:y().nullable().optional(),discoveryDate:p().nullable().optional()});w({summary:w({total:y(),indexed:y(),notIndexed:y(),unknown:y().optional(),percentage:y()}),lastInspectedAt:p().nullable(),indexed:A(lf).default([]),notIndexed:A(lf).default([]),unknown:A(lf).default([]).optional()});w({query:p(),impressions:y(),clicks:y(),ctr:y(),averagePosition:y()});w({date:p(),indexed:y(),notIndexed:y(),unknown:y()});const mE=w({url:p(),status:ne(["success","error"]),submittedAt:p(),error:p().optional()});w({summary:w({total:y().int().nonnegative(),succeeded:y().int().nonnegative(),failed:y().int().nonnegative()}),results:A(mE).default([])});const b0=w({url:p(),verified:re()});w({sites:A(b0).default([])});w({connected:re(),domain:p(),siteUrl:p().nullable(),createdAt:p().nullable(),updatedAt:p().nullable()});w({connected:re(),domain:p(),siteUrl:p().nullable(),availableSites:A(b0).default([])});w({siteUrl:p()});const hE=w({name:p(),alive:re(),lastUsed:p().nullable()});w({connected:re(),endpoint:p(),version:p().optional(),browserVersion:p().optional(),targets:A(hE).default([])});const Ks=ne(["live","staging"]);w({projectName:p(),url:p(),stagingUrl:p().optional(),username:p(),defaultEnv:Ks,createdAt:p(),updatedAt:p()});const xb=w({url:p(),reachable:re(),pageCount:y().nullable().optional(),version:p().nullable().optional(),error:p().nullable().optional(),plugins:A(p()).optional(),authenticatedUser:w({id:y(),slug:p()}).nullable().optional()});w({connected:re(),projectName:p(),defaultEnv:Ks,live:xb.nullable(),staging:xb.nullable(),adminUrl:p().nullable().optional()});const gE=w({id:y(),slug:p(),title:p(),status:p(),modifiedAt:p().nullable().optional(),link:p().nullable().optional()}),v0=w({title:p().nullable(),description:p().nullable(),noindex:re().nullable(),writable:re().default(!1),writeTargets:A(p()).default([])}),yE=w({type:p(),json:lt(p(),Ln())}),bE=gE.extend({env:Ks,content:p(),seo:v0,schemaBlocks:A(yE).default([])}),wb=bE.extend({contentHash:p(),contentSnippet:p()}),S0=w({manualRequired:vt(!0),targetUrl:p(),adminUrl:p().nullable().optional(),content:p(),nextSteps:A(p()).default([])}),vE=w({slug:p(),severity:ne(["high","medium","low"]),code:ne(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:p()});w({slug:p(),title:p(),status:p(),wordCount:y(),seo:v0,schemaPresent:re(),issues:A(vE).default([])});const SE=w({slug:p(),status:ne(["applied","skipped","manual"]),error:p().optional(),manualAssist:S0.optional()});w({env:Ks,strategy:ne(["plugin","manual"]),results:A(SE)});const xE=w({slug:p(),status:ne(["deployed","stripped","skipped","failed"]),schemasInjected:A(p()).optional(),manualAssist:S0.optional(),error:p().optional()});w({env:Ks,results:A(xE)});const wE=w({slug:p(),title:p(),canonrySchemas:A(p()),thirdPartySchemas:A(p()),hasCanonrySchema:re()});w({env:Ks,pages:A(wE)});const jE=w({name:p(),status:ne(["completed","skipped","failed"]),summary:p().optional(),error:p().optional()});w({projectName:p(),steps:A(jE)});w({slug:p(),live:wb,staging:wb,hasDifferences:re(),differences:w({title:re(),slug:re(),content:re(),seoTitle:re(),seoDescription:re(),noindex:re(),schema:re()})});const NE=w({name:p(),displayName:p().optional(),keyUrl:p().optional(),modelHint:p().optional(),model:p().optional(),defaultModel:p().optional(),configured:re(),quota:RT.optional(),vertexConfigured:re().optional()}),jb=w({configured:re()});w({providers:A(NE).default([]),google:jb,bing:jb});const Zs=ne(["queued","running","completed","partial","failed","cancelled"]),Qt=Zs.enum,x0=ne(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),Ae=x0.enum,w0=ne(["manual","scheduled","config-apply","backfill","probe"]),Ms=w0.enum,Ai=ne(["cited","not-cited"]),sc=Ai.enum,rc=ne(["visible","not-visible"]);rc.enum;const oc=ne(["mentioned","not-mentioned"]);oc.enum;const j0=ne(["new","cited","lost","emerging","not-cited"]);j0.enum;const kE=ne(["new","mentioned","lost","emerging","not-mentioned"]);kE.enum;const AE=ne([Ms.manual,Ms.probe]);w({kind:vt(Ae["answer-visibility"]).optional(),trigger:AE.optional(),providers:A(ya).optional(),queries:A(p().min(1)).min(1).optional(),location:p().min(1).optional(),allLocations:re().optional(),noLocation:re().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const _E=w({message:p(),raw:Ln().optional()}),CE=w({message:p().optional(),providers:lt(p(),_E).optional()}),zE=w({id:p(),projectId:p(),kind:x0,status:Zs,trigger:w0.default("manual"),location:p().nullable().optional(),queries:A(p()).nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),error:CE.nullable().optional(),createdAt:p()});function op(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 N0=w({uri:p(),title:p()}),k0=w({id:p(),runId:p(),queryId:p(),query:p().optional(),provider:ya,citationState:Ai,answerMentioned:re().optional(),visibilityState:rc.optional(),mentionState:oc.optional(),transition:j0.optional(),answerText:p().nullable().optional(),citedDomains:A(p()).default([]),competitorOverlap:A(p()).default([]),recommendedCompetitors:A(p()).default([]),matchedTerms:A(p()).default([]),groundingSources:A(N0).default([]),searchQueries:A(p()).default([]),model:p().nullable().optional(),location:p().nullable().optional(),createdAt:p()});w({snapshots:A(k0),total:y().int().nonnegative()});const TE=w({queryId:p().nullable(),query:p().nullable(),run1State:Ai.nullable(),run2State:Ai.nullable(),run1AnswerMentioned:re().nullable(),run2AnswerMentioned:re().nullable(),run1VisibilityState:rc.nullable(),run2VisibilityState:rc.nullable(),run1MentionState:oc.nullable().optional(),run2MentionState:oc.nullable().optional(),changed:re(),visibilityChanged:re()});w({run1:p(),run2:p(),diff:A(TE)});const EE=zE.extend({snapshots:A(k0).optional()}),OE=w({totalRuns:y().int().nonnegative(),run:EE.nullable()});w({id:p(),projectId:p().nullable().optional(),actor:p(),action:p(),entityType:p(),entityId:p().nullable().optional(),diff:Ln().optional(),createdAt:p()});const DE=ne(["yes","no","unknown","not-mentioned"]),Nb=A(p().min(1));w({companyName:p().min(1),domain:p().min(1),queries:Nb.optional(),phrases:Nb.optional(),competitors:A(p().min(1)).optional().default([])}).superRefine((e,n)=>{e.queries!==void 0&&e.phrases!==void 0&&n.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const RE=w({name:p(),count:y().int().nonnegative()}),ME=w({id:p(),name:p(),weight:y(),score:y(),findings:A(w({type:p(),message:p()})).default([]),recommendations:A(p()).default([])}),BE=w({url:p(),finalUrl:p(),auditedAt:p(),overallScore:y(),summary:p(),factors:A(ME).default([])}),LE=w({industry:p(),summary:p(),services:A(p()).default([]),categoryTerms:A(p()).default([])}),qE=w({provider:p(),displayName:p(),model:p().nullable().optional(),mentioned:re(),cited:re(),describedAccurately:DE,accuracyNotes:p().nullable().optional(),incorrectClaims:A(p()).default([]),recommendedCompetitors:A(p()).default([]),citedDomains:A(p()).default([]),groundingSources:A(N0).default([]),searchQueries:A(p()).default([]),answerText:p(),error:p().nullable().optional()}),UE=w({query:p(),providerResults:A(qE).default([])}),$E=w({totalQueries:y().int().nonnegative(),totalProviders:y().int().nonnegative(),totalComparisons:y().int().nonnegative(),mentionCount:y().int().nonnegative(),citationCount:y().int().nonnegative(),topCompetitors:A(RE).default([]),visibilityGap:p(),whatThisMeans:A(p()).default([]),recommendedActions:A(p()).default([])});w({companyName:p(),domain:p(),homepageUrl:p(),generatedAt:p(),queries:A(p()).default([]),competitors:A(p()).default([]),profile:LE,audit:BE,queryResults:A(UE).default([]),summary:$E});const A0=ne(["pass","partial","fail"]);A0.enum;const _0=ne(["up","down","flat"]);_0.enum;const VE=w({id:p(),name:p(),weight:y(),avgScore:y(),status:A0,pagesPassing:y().int().nonnegative(),pagesPartial:y().int().nonnegative(),pagesFailing:y().int().nonnegative()}),IE=w({factorId:p(),factorName:p(),avgScore:y(),affectedPages:y().int().nonnegative(),totalPages:y().int().nonnegative(),affectedPct:y().int().nonnegative(),topRecommendations:A(p()).default([])});w({project:p(),hasData:re(),runId:p().nullable(),runStatus:Zs.nullable(),sitemapUrl:p().nullable(),auditedAt:p().nullable(),aggregateScore:y(),pagesDiscovered:y().int().nonnegative(),pagesAudited:y().int().nonnegative(),pagesSkipped:y().int().nonnegative(),pagesErrored:y().int().nonnegative(),deltaScore:y().nullable(),trend:_0.nullable(),previousScore:y().nullable(),previousAuditedAt:p().nullable(),factors:A(VE).default([]),crossCuttingIssues:A(IE).default([]),prioritizedFixes:A(p()).default([])});const PE=w({id:p(),name:p(),weight:y(),score:y()}),GE=w({url:p(),overallScore:y(),status:ne(["success","error"]),error:p().nullable().optional(),factors:A(PE).default([])});w({project:p(),runId:p().nullable(),auditedAt:p().nullable(),total:y().int().nonnegative(),pages:A(GE).default([])});const HE=w({runId:p(),auditedAt:p(),aggregateScore:y(),pagesAudited:y().int().nonnegative()});w({project:p(),points:A(HE).default([])});w({sitemapUrl:p().url().optional(),limit:y().int().positive().max(2e3).optional()});w({runId:p(),status:Zs});const lp=ne(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync"]);lp.enum;w({id:p(),projectId:p(),kind:lp,cronExpr:p(),preset:p().nullable().optional(),timezone:p().default("UTC"),enabled:re().default(!0),providers:A(ya).default([]),sourceId:p().nullable().optional(),lastRunAt:p().nullable().optional(),nextRunAt:p().nullable().optional(),createdAt:p(),updatedAt:p()});w({kind:lp.optional(),preset:p().optional(),cron:p().optional(),timezone:p().optional().default("UTC"),enabled:re().optional().default(!0),providers:A(ya).optional().default([]),sourceId:p().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const cp=ne(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);cp.enum;const up=ne(["cited","aspirational","wasted-surface"]),kb=up.enum;kb.cited,kb.aspirational;const vc=ne(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),QE=vc.enum;QE["direct-competitor"];const Sc=ne(["queued","seeding","probing","completed","failed"]);Sc.enum;const C0=w({domain:p().min(1),hits:y().int().positive(),competitorType:vc.default("unknown")}),KE=w({id:p(),sessionId:p(),projectId:p(),query:p(),bucket:up.nullable().default(null),citationState:Ai,citedDomains:A(p()).default([]),answerMentioned:re().nullable().default(null),createdAt:p()}),ZE=w({id:p(),projectId:p(),status:Sc,icpDescription:p().nullable().optional(),seedProvider:p().nullable().optional(),seedCountRaw:y().int().nullable().optional(),seedCount:y().int().nullable().optional(),seedFromAnswerCount:y().int().nullable().optional(),seedFromGroundingCount:y().int().nullable().optional(),seedBrandFilteredCount:y().int().nullable().optional(),buyerDescription:p().nullable().optional(),dedupThreshold:y().nullable().optional(),probeCount:y().int().nullable().optional(),citedCount:y().int().nullable().default(null),aspirationalCount:y().int().nullable().default(null),wastedCount:y().int().nullable().default(null),competitorMap:A(C0).default([]),warning:p().nullable().optional(),error:p().nullable().optional(),startedAt:p().nullable().optional(),finishedAt:p().nullable().optional(),createdAt:p()});ZE.extend({probes:A(KE).default([])});const YE=500,XE=8;w({icpDescription:p().min(1).optional(),buyerDescription:p().min(1).optional(),dedupThreshold:y().min(0).max(1).optional(),maxProbes:y().int().positive().max(YE).optional(),probeConcurrency:y().int().min(1).max(XE).optional(),locations:A(p().min(1)).optional()});w({buckets:A(up).min(1).optional(),includeCompetitors:re().optional(),competitorTypes:A(vc).min(1).optional()});w({sessionId:p(),projectId:p(),status:Sc,queriesByBucket:w({cited:A(p()),aspirational:A(p()),"wasted-surface":A(p())}),suggestedCompetitors:A(C0)});w({sessionId:p(),projectId:p(),promoted:w({queries:A(p()),competitors:A(p())}),skipped:w({queries:A(p()),competitors:A(p())})});bc([vt("cli"),p().regex(/^discovery:.+$/)]);const JE=w({query:p().min(1),probeHits:y().int().positive()}),FE=w({rawCandidates:y().int().nonnegative(),admitted:y().int().nonnegative(),rejected:w({belowFloor:y().int().nonnegative(),length:y().int().nonnegative(),navigational:y().int().nonnegative(),duplicate:y().int().nonnegative(),offAnchor:y().int().nonnegative(),semanticDuplicate:y().int().nonnegative()})});w({sessionId:p(),projectId:p(),provider:p(),status:Sc,minProbeHits:y().int().positive(),anchorApplied:re(),semanticNoveltyApplied:re(),candidates:A(JE),stats:FE});const dp=ne(["own","direct-competitor","ota-aggregator","editorial-media","other"]);dp.enum;const z0=ne(["7d","30d","90d","all"]),Ab=ne(["improving","declining","stable"]),WE=ne(["mentioned","cited"]);WE.enum;const Tf=w({citationRate:y(),cited:y().int(),total:y().int(),mentionRate:y(),mentionedCount:y().int()}),eO=w({rate:y().nullable(),projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative()}),tO=w({startDate:p(),endDate:p(),citationRate:y(),cited:y().int(),total:y().int(),queryCount:y().int(),mentionRate:y(),mentionedCount:y().int(),mentionShare:eO,byProvider:lt(p(),Tf)}),nO=w({date:p(),delta:y().int(),label:p()});w({window:z0,buckets:A(tO),overall:Tf,byProvider:lt(p(),Tf),trend:Ab,mentionTrend:Ab,queryChanges:A(nO)});const _b=w({category:cp,label:p(),count:y().int(),percentage:y(),topDomains:A(w({domain:p(),count:y().int()}))}),aO=w({domain:p(),count:y().int(),percentage:y(),category:cp,label:p(),surfaceClass:dp}),iO=w({surfaceClass:dp,label:p(),count:y().int(),percentage:y(),domainCount:y().int()}),Cb=w({totalCitedSlots:y().int(),domainTotal:y().int(),entries:A(aO),truncatedDomainCount:y().int(),truncatedCitedSlots:y().int(),bySurfaceClass:A(iO)});w({overall:A(_b),byQuery:lt(p(),A(_b)),ranked:Cb,byProvider:lt(p(),Cb),runId:p(),window:z0,limit:y().int().nullable()});const fp=w({total:y().int(),checked:y().int(),mentioned:y().int(),cited:y().int(),mentionRate:y().nullable(),citedRate:y().nullable()}),T0=fp.extend({provider:p(),firstObserved:p(),lastObserved:p()}),sO=fp.extend({queryId:p().nullable(),query:p(),firstObserved:p(),lastObserved:p(),providers:A(T0).optional()}),rO=w({since:p().nullable(),until:p().nullable(),lastRuns:y().int().nullable(),runCount:y().int()}),oO=ne(["provider"]),lO=w({domain:p(),mentions:y().int()}),cO=w({percent:y().nullable(),projectMentions:y().int(),competitorMentions:y().int(),snapshotsWithAnswerText:y().int(),perCompetitor:A(lO)});w({project:p(),groupBy:oO.optional(),window:rO,totals:fp,byProvider:A(T0).optional(),queries:A(sO),shareOfVoice:cO.optional()});w({id:p(),projectId:p(),propertyId:p(),clientEmail:p(),connected:re(),createdAt:p(),updatedAt:p()});w({date:p(),landingPage:p(),sessions:y(),organicSessions:y(),users:y()});const pp=ne(["session","first_user","manual_utm"]),uO=w({source:p(),medium:p(),sessions:y(),users:y(),sourceDimension:pp}),dO=w({source:p(),medium:p(),sourceDimension:pp,landingPage:p(),sessions:y(),users:y()}),fO=w({source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()}),Zr=w({sessions:y(),sharePct:y(),sharePctDisplay:p()}),pO=w({organic:Zr,social:Zr,direct:Zr,ai:Zr,other:Zr});w({totalSessions:y(),totalOrganicSessions:y(),totalDirectSessions:y(),totalUsers:y(),topPages:A(w({landingPage:p(),sessions:y(),organicSessions:y(),directSessions:y(),users:y()})),aiReferrals:A(uO),aiReferralLandingPages:A(dO),aiSessionsDeduped:y(),aiUsersDeduped:y(),aiSessionsBySession:y(),aiUsersBySession:y(),socialReferrals:A(fO),socialSessions:y(),socialUsers:y(),channelBreakdown:pO,organicSharePct:y(),aiSharePct:y(),aiSharePctBySession:y(),directSharePct:y(),socialSharePct:y(),organicSharePctDisplay:p(),aiSharePctDisplay:p(),aiSharePctBySessionDisplay:p(),directSharePctDisplay:p(),socialSharePctDisplay:p(),otherSessions:y(),otherSharePct:y(),otherSharePctDisplay:p(),lastSyncedAt:p().nullable()});w({connected:re(),propertyId:p().nullable(),clientEmail:p().nullable(),authMethod:ne(["service-account","oauth"]).nullable(),lastSyncedAt:p().nullable(),createdAt:p().nullable().optional(),updatedAt:p().nullable().optional()});w({synced:re(),rowCount:y().int().nonnegative(),aiReferralCount:y().int().nonnegative(),socialReferralCount:y().int().nonnegative(),days:y().int().nonnegative(),syncedAt:p(),syncedComponents:A(p()).optional()});w({date:p(),source:p(),medium:p(),landingPage:p(),sessions:y(),users:y(),sourceDimension:pp});w({date:p(),source:p(),medium:p(),sessions:y(),users:y(),channelGroup:p()});w({date:p(),sessions:y(),organicSessions:y(),users:y()});function lc(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}const E0=ne(["claude","openai","gemini","zai","deepinfra"]),mO=w({id:E0,label:p(),defaultModel:p(),configured:re(),keySource:ne(["config","env"]).nullable()});w({providers:A(mO).default([]),defaultProvider:E0.nullable()});const hO=ne(["aero","user","compaction"]);hO.enum;const O0=128;w({key:p().min(1).max(O0),value:p().min(1)});w({key:p().min(1).max(O0)});const Ys=ne(["commoncrawl","bing-webmaster"]);Ys.enum;const mp=ne(["queued","downloading","querying","ready","failed"]);mp.enum;w({id:p(),release:p(),status:mp,phaseDetail:p().nullable().optional(),vertexPath:p().nullable().optional(),edgesPath:p().nullable().optional(),vertexSha256:p().nullable().optional(),edgesSha256:p().nullable().optional(),vertexBytes:y().int().nullable().optional(),edgesBytes:y().int().nullable().optional(),projectsProcessed:y().int().nullable().optional(),domainsDiscovered:y().int().nullable().optional(),downloadStartedAt:p().nullable().optional(),downloadFinishedAt:p().nullable().optional(),queryStartedAt:p().nullable().optional(),queryFinishedAt:p().nullable().optional(),error:p().nullable().optional(),createdAt:p(),updatedAt:p()});const gO=w({linkingDomain:p(),numHosts:y().int(),source:Ys}),yO=w({projectId:p(),release:p(),targetDomain:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys,excludedLinkingDomains:y().int().optional(),excludedHosts:y().int().optional()});w({source:Ys,summary:yO.nullable(),total:y().int(),rows:A(gO)});w({release:p(),totalLinkingDomains:y().int(),totalHosts:y().int(),top10HostsShare:p(),queriedAt:p(),source:Ys});const bO=w({source:Ys,connected:re(),hasData:re(),latestRelease:p().nullable(),totalLinkingDomains:y().int(),lastSyncedAt:p().nullable()});w({projectId:p(),targetDomain:p(),sources:A(bO),anyConnected:re(),anyData:re()});w({duckdbInstalled:re(),duckdbVersion:p().nullable().optional(),duckdbSpec:p(),pluginDir:p()});w({installed:re(),version:p(),path:p(),alreadyPresent:re()});w({release:p(),vertexUrl:p(),edgesUrl:p(),vertexBytes:y().int().nullable(),edgesBytes:y().int().nullable(),lastModified:p().nullable()});w({release:p(),syncStatus:mp.nullable(),bytes:y().int(),lastUsedAt:p().nullable()});const hp=ne(["positive","caution","negative","neutral"]),Za=w({label:p(),value:p(),delta:p(),tone:hp,description:p(),tooltip:p().optional(),trend:A(y()),progress:y().optional(),providerCoverage:p().optional()}),vO=Za.extend({breakdown:w({projectMentionSnapshots:y().int().nonnegative(),competitorMentionSnapshots:y().int().nonnegative(),perCompetitor:A(w({domain:p(),mentionSnapshots:y().int().nonnegative(),shareOfCompetitiveTotal:y()})),snapshotsWithAnswerText:y().int().nonnegative(),snapshotsTotal:y().int().nonnegative()})}),cf=w({gained:y().int().nonnegative(),lost:y().int().nonnegative(),tone:hp,hasPreviousRun:re(),gainedQueries:A(p()).optional(),lostQueries:A(p()).optional()}),SO=w({hasPreviousRun:re(),comparable:re(),querySetChanged:re(),previousRunAt:p().nullable(),currentQueryCount:y().int().nonnegative(),previousQueryCount:y().int().nonnegative(),comparableQueryCount:y().int().nonnegative(),addedQueryCount:y().int().nonnegative(),removedQueryCount:y().int().nonnegative(),addedQueries:A(p()),removedQueries:A(p())}),xO=w({id:p(),projectId:p(),runId:p().nullable(),type:ne(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:ne(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:w({action:p(),target:p().optional(),reason:p()}).optional(),cause:w({cause:p(),competitorDomain:p().optional(),details:p().optional()}).optional(),dismissed:re(),createdAt:p()}),wO=w({id:p(),projectId:p(),runId:p().nullable(),overallCitedRate:y(),overallMentionRate:y(),totalPairs:y().int().nonnegative(),citedPairs:y().int().nonnegative(),mentionedPairs:y().int().nonnegative(),providerBreakdown:lt(p(),w({citedRate:y(),mentionRate:y(),cited:y().int().nonnegative(),mentioned:y().int().nonnegative(),total:y().int().nonnegative()})),createdAt:p(),status:ne(["ready","no-data"]),reason:vt("no-runs-yet").optional()});w({project:LT,latestRun:OE,health:wO.nullable(),topInsights:A(xO),queryCounts:w({totalQueries:y().int().nonnegative(),citedQueries:y().int().nonnegative(),notCitedQueries:y().int().nonnegative(),citedRate:y(),mentionedQueries:y().int().nonnegative(),notMentionedQueries:y().int().nonnegative(),mentionRate:y()}),providers:A(w({provider:p(),citedRate:y(),cited:y().int().nonnegative(),total:y().int().nonnegative()})),transitions:w({since:p().nullable(),gained:y().int().nonnegative(),lost:y().int().nonnegative(),emerging:y().int().nonnegative()}),scores:w({mention:Za,visibility:Za,mentionShare:vO,gapQueries:Za,mentionGaps:Za,indexCoverage:Za,competitorPressure:Za,runStatus:Za}),movementSummary:cf,citationMovement:cf,mentionMovement:cf,movementComparison:SO,competitors:A(w({id:p(),domain:p(),citationCount:y().int().nonnegative(),totalQueries:y().int().nonnegative(),pressureLabel:ne(["None","Low","Moderate","High"]),citedQueries:A(p())})),providerScores:A(w({provider:p(),model:p().nullable(),score:y(),cited:y().int().nonnegative(),total:y().int().nonnegative(),trend:A(y()).optional()})),attentionItems:A(w({id:p(),tone:hp,title:p(),detail:p(),actionLabel:p(),href:p()})),runHistory:A(w({runId:p(),createdAt:p(),citedCount:y().int().nonnegative(),totalCount:y().int().nonnegative(),citationRate:y(),mentionedCount:y().int().nonnegative(),mentionRate:y(),status:p()})),suggestedQueries:w({rows:A(w({query:p(),impressions:y(),clicks:y(),avgPosition:y(),reason:p()})),totalCandidates:y().int().nonnegative(),skippedAlreadyTracked:y().int().nonnegative()}),dateRangeLabel:p(),contextLabel:p()});ne(["snapshot","insight"]);const jO=w({kind:vt("snapshot"),id:p(),runId:p(),query:p(),provider:p(),model:p().nullable(),citationState:Ai,matchedField:ne(["answerText","citedDomains","searchQueries","query"]),snippet:p(),createdAt:p()}),NO=w({kind:vt("insight"),id:p(),runId:p().nullable(),type:ne(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:ne(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),matchedField:ne(["title","query","recommendation","cause"]),snippet:p(),dismissed:re(),createdAt:p()}),kO=p0("kind",[jO,NO]);w({query:p(),totalHits:y().int().nonnegative(),truncated:re(),hits:A(kO)});const D0=ne(["create","expand","refresh","add-schema"]);D0.enum;function ML(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const R0=ne(["gsc","competitor-evidence","both"]);R0.enum;const M0=ne(["high","medium","low"]);M0.enum;const AO=ne(["blog-post","comparison","listicle","how-to","guide","glossary"]);AO.enum;const B0=ne(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);B0.enum;const gp=ne(["ownable","ceded"]);gp.enum;const _O=w({url:p(),gscImpressions:y().nonnegative(),gscClicks:y().nonnegative(),gscAvgPosition:y().nonnegative().nullable(),organicSessions:y().nonnegative()}),CO=w({domain:p(),url:p(),title:p(),citationCount:y().int().nonnegative()}),zO=w({demand:y(),competitor:y(),absence:y(),gapSeverity:y()}),TO=w({actionId:p(),state:B0,lastUpdated:p()}),L0=w({targetRef:p(),query:p(),action:D0,ourBestPage:_O.nullable(),winningCompetitor:CO.nullable(),score:y(),scoreBreakdown:zO,drivers:A(p()),demandSource:R0,actionConfidence:M0,existingAction:TO.nullable(),winnabilityClass:gp,winnability:y().min(0).max(1).nullable()});w({targets:A(L0),contextMetrics:w({totalAiReferralSessions:y().int().nonnegative(),latestRunId:p(),runTimestamp:p()})});const EO=w({targetRef:p(),addressedUrl:p().nullable(),note:p().nullable(),dismissedAt:p()});w({dismissals:A(EO)});w({targetRef:p().min(1),addressedUrl:p().url().optional(),note:p().max(500).optional()});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),responseText:p(),costMillicents:y().int().nonnegative(),generatedAt:p()});w({provider:p().optional(),model:p().optional(),forceRefresh:re().optional()});const OO=w({targetQuery:p().trim().min(1),winnabilityClass:gp,angle:p().trim().min(1),whyWinnable:p().trim().min(1),schemaHookup:p().trim().min(1),controllableSurfaceRationale:p().trim().min(1)});w({targetRef:p(),promptVersion:p(),provider:p(),model:p(),brief:OO,costMillicents:y().int().nonnegative(),generatedAt:p()});const DO=w({domain:p(),competitorType:vc,hits:y().int().nonnegative(),updatedAt:p()});w({classifications:A(DO)});const RO=w({uri:p(),title:p(),domain:p(),isOurDomain:re(),isCompetitor:re(),citationCount:y().int().nonnegative(),providers:A(ya)}),q0=w({query:p(),groundingSources:A(RO)});w({sources:A(q0),latestRunId:p()});const U0=w({query:p(),competitorDomains:A(p()),competitorCount:y().int().nonnegative(),missRate:y().min(0).max(1),lastSeenInRunId:p()});w({gaps:A(U0),latestRunId:p()});const $0=ne(["ok","warn","fail","skipped"]);$0.enum;const yp=ne(["global","project"]);yp.enum;const V0=ne(["auth","config","providers","integrations","database","schedules","agent"]);V0.enum;const MO=w({id:p(),category:V0,scope:yp,title:p(),status:$0,code:p().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:p(),remediation:p().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:lt(p(),Ln()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:y().int().nonnegative().describe("How long the check took to execute.")});w({scope:yp,project:p().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:p().describe("ISO-8601 timestamp when this doctor run started."),durationMs:y().int().nonnegative(),summary:w({total:y().int().nonnegative(),ok:y().int().nonnegative(),warn:y().int().nonnegative(),fail:y().int().nonnegative(),skipped:y().int().nonnegative()}),checks:A(MO)});const BO=w({provider:p(),citationState:Ai,cited:re(),mentioned:re(),runId:p(),runCreatedAt:p()}),LO=w({queryId:p(),query:p(),providers:A(BO),citedCount:y().int().nonnegative(),mentionedCount:y().int().nonnegative(),totalProviders:y().int().nonnegative()}),qO=w({queryId:p(),query:p(),provider:p(),citingCompetitors:A(p()),runId:p(),runCreatedAt:p()}),UO=w({providersConfigured:y().int().nonnegative(),providersCiting:y().int().nonnegative(),providersMentioning:y().int().nonnegative(),totalQueries:y().int().nonnegative(),queriesCitedAndMentioned:y().int().nonnegative(),queriesCitedOnly:y().int().nonnegative(),queriesMentionedOnly:y().int().nonnegative(),queriesInvisible:y().int().nonnegative(),latestRunId:p().nullable(),latestRunAt:p().nullable()});w({summary:UO,byQuery:A(LO),competitorGaps:A(qO),status:ne(["ready","no-data"]),reason:ne(["no-runs-yet","no-queries"]).optional()});const BL=[7,14,30,90],LL=30;bc([vt(7),vt(14),vt(30),vt(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const $O=ne(["prompt","request-param","browser-geo","ignored"]),VO=w({label:p(),city:p(),region:p(),country:p(),otherConfiguredLabels:A(p())}),IO=w({provider:p(),treatment:$O,description:p()}),PO=w({generatedAt:p(),project:w({id:p(),name:p(),displayName:p(),canonicalDomain:p(),country:p(),language:p()}),location:VO.nullable(),providerLocationHandling:A(IO),periodStart:p().nullable(),periodEnd:p().nullable(),periodDays:y().int().positive()}),GO=w({citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),trend:ne(["up","down","flat","unknown"]),queryCount:y(),competitorCount:y(),providerCount:y(),gsc:w({clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),periodStart:p(),periodEnd:p()}).nullable(),ga:w({sessions:y(),users:y(),periodStart:p(),periodEnd:p()}).nullable(),findings:A(w({title:p(),detail:p(),tone:ne(["positive","caution","negative","neutral"])}))}),HO=w({citationState:ne(["cited","not-cited","pending"]),answerMentioned:re().nullable(),model:p().nullable()}),QO=w({queries:A(p()),providers:A(p()),matrix:A(A(HO.nullable())),providerRates:A(w({provider:p(),citedCount:y(),mentionedCount:y(),totalCount:y(),citationRate:y(),mentionRate:y()}))}),KO=w({domain:p(),citationCount:y(),totalCount:y(),pressureLabel:ne(["High","Moderate","Low","None"]),citedQueries:A(p()),sharePct:y(),theirCitedPages:A(w({url:p(),citedFor:A(p())}))}),ZO=w({projectCitationCount:y(),competitors:A(KO)}),YO=w({domain:p(),mentionCount:y(),totalCount:y(),pressureLabel:ne(["High","Moderate","Low","None"]),mentionedQueries:A(p()),sharePct:y()}),XO=w({projectMentionCount:y(),totalAnswerSnapshots:y(),competitors:A(YO)}),JO=w({category:p(),label:p(),count:y(),sharePct:y()}),FO=w({categories:A(JO),topDomains:A(w({domain:p(),count:y(),isCompetitor:re()}))}),WO=w({query:p(),clicks:y(),impressions:y(),ctr:y(),avgPosition:y(),category:ne(["brand","lead-gen","industry","other"])}),eD=w({periodStart:p(),periodEnd:p(),totalClicks:y(),totalImpressions:y(),ctr:y(),avgPosition:y(),topQueries:A(WO),categoryBreakdown:A(w({category:ne(["brand","lead-gen","industry","other"]),clicks:y(),impressions:y(),sharePct:y()})),trend:A(w({date:p(),clicks:y(),impressions:y()})),trackedButNoGsc:A(p()),gscButNotTracked:A(p())}),tD=w({totalSessions:y(),totalUsers:y(),totalOrganicSessions:y(),periodStart:p(),periodEnd:p(),topLandingPages:A(w({page:p(),sessions:y(),users:y(),organicSessions:y()})),channelBreakdown:A(w({channel:p(),sessions:y(),sharePct:y()}))}),nD=w({totalSessions:y(),organicSessions:y(),paidSessions:y(),channels:A(w({channelGroup:p(),sessions:y(),sharePct:y()})),topCampaigns:A(w({source:p(),medium:p(),sessions:y()}))}),aD=w({totalSessions:y(),totalUsers:y(),bySource:A(w({source:p(),sessions:y(),users:y(),sharePct:y()})),trend:A(w({date:p(),sessions:y()})),topLandingPages:A(w({page:p(),sessions:y(),users:y()}))}),iD=w({windowStart:p(),windowEnd:p(),hasData:re(),verifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),unverifiedCrawlerHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),aiUserFetchHits:w({current:y(),prior:y(),deltaPct:y().nullable()}),referralArrivals:w({current:y(),prior:y(),deltaPct:y().nullable()}),byOperator:A(w({operator:p(),verifiedHits:y(),unverifiedHits:y(),userFetchHits:y(),referralArrivals:y(),deltaPct:y().nullable()})),topCrawledPaths:A(w({path:p(),verifiedHits:y(),distinctOperators:y()})),referralProducts:A(w({product:p(),arrivals:y(),distinctLandingPaths:y()})),dailyTrend:A(w({date:p(),verifiedCrawlerHits:y(),userFetchHits:y(),referralArrivals:y()})),topReferralLandingPaths:A(w({path:p(),arrivals:y(),distinctProducts:y()}))}),sD=w({provider:ne(["google","bing"]).nullable(),total:y(),indexed:y(),notIndexed:y(),deindexed:y(),unknown:y(),indexedPct:y()}),rD=w({runId:p(),date:p(),citationRate:y(),citedQueryCount:y(),totalQueryCount:y(),mentionRate:y(),mentionedQueryCount:y(),providerRates:A(w({provider:p(),citationRate:y(),mentionRate:y()}))}),Ef=w({id:p(),type:ne(["regression","gain","opportunity"]),severity:ne(["critical","high","medium","low"]),title:p(),query:p(),provider:p(),recommendation:p().nullable(),createdAt:p(),instanceCount:y()}),oD=w({horizon:ne(["immediate","short-term","medium-term"]),title:p(),rationale:p()}),As=w({current:y(),prior:y(),deltaAbs:y(),deltaPct:y().nullable(),direction:ne(["up","down","flat"]),window:y().optional()}),lD=w({provider:p(),current:y(),prior:y(),deltaAbs:y(),direction:ne(["up","down","flat"])}),cD=w({enoughHistory:re(),headline:p(),citationRate:As.nullable(),mentionRate:As.nullable(),citedQueryCount:As.nullable(),mentionedQueryCount:As.nullable(),gscClicksDelta:As.nullable(),aiReferralsDelta:As.nullable(),comparisonWindowDays:y().int().positive(),providerMovements:A(lD),wins:A(Ef),regressions:A(Ef)});ne(["agency","client"]);const uD=ne(["agency","client","both"]),dD=ne(["immediate","short-term","medium-term"]),fD=ne(["high","medium","low"]);ne(["positive","caution","negative","neutral"]);const pD=ne(["content","competitors","provider","search-demand","indexing","location","monitoring"]),bp=w({audience:uD,priority:y(),horizon:dD,category:pD,title:p(),action:p(),why:A(p()),evidence:A(p()),successMetric:p(),confidence:fD,targetRef:p().optional()}),mD=w({headline:p(),overview:p(),actionItems:A(bp),confidenceNotes:A(p())}),hD=w({title:p(),detail:p(),severity:ne(["positive","caution","negative","neutral"]),evidence:A(p())}),gD=w({priorities:A(bp),diagnostics:A(hD)});function qL(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function UL(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function $L(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function VL(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 IL(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}w({meta:PO,executiveSummary:GO,citationScorecard:QO,competitorLandscape:ZO,mentionLandscape:XO,aiSourceOrigin:FO,gsc:eD.nullable(),ga:tD.nullable(),socialReferrals:nD.nullable(),aiReferrals:aD.nullable(),serverActivity:iD.nullable(),indexingHealth:sD.nullable(),citationsTrend:A(rD),whatsChanged:cD,insights:A(Ef),recommendedNextSteps:A(oD),actionPlan:A(bp),clientSummary:mD,agencyDiagnostics:gD,contentOpportunities:A(L0),contentGaps:A(U0),groundingSources:A(q0)});const yD=ne(["claude","codex"]);yD.enum;const bD=ne(["claude","codex","all"]);bD.enum;const I0=w({content:y().int().nonnegative(),sitemap:y().int().nonnegative(),robots:y().int().nonnegative(),asset:y().int().nonnegative(),other:y().int().nonnegative()}),vD=ne(["content","sitemap","robots","asset","other"]),vp=ne(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);vp.enum;const SD=ne(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);SD.enum;const xD=ne(["raw-request","aggregate-bucket"]),wD=xD.enum,jD=ne(["observed","provider-aggregated","inferred"]),ND=jD.enum,kD=w({type:p().nullable(),labels:lt(p(),p())}),AD=w({sourceType:vp,evidenceKind:vt(wD["raw-request"]),confidence:vt(ND.observed),eventId:p().min(1),observedAt:p().min(1),method:p().nullable(),requestUrl:p().nullable(),host:p().nullable(),path:p().min(1),queryString:p().nullable(),status:y().int().nullable(),userAgent:p().nullable(),remoteIp:p().nullable(),referer:p().nullable(),latencyMs:y().nullable(),requestSizeBytes:y().int().nullable(),responseSizeBytes:y().int().nullable(),providerResource:kD,providerLabels:lt(p(),p())});w({events:A(AD),rawEntryCount:y().int().nonnegative(),skippedEntryCount:y().int().nonnegative(),nextPageToken:p().optional(),filter:p()});const P0=ne(["connected","paused","error","archived"]),PL=P0.enum,G0=ne(["oauth","service-account"]);G0.enum;const _D=ne(["verified","claimed_unverified","unknown_ai_like"]),GL=_D.enum;w({gcpProjectId:p().min(1),serviceName:p().nullable().optional(),location:p().nullable().optional(),authMode:G0});w({baseUrl:p().url(),username:p().min(1)});const Sp=ne(["production","preview"]);Sp.enum;w({projectId:p().min(1),teamId:p().min(1),environment:Sp});const H0=w({id:p(),projectId:p(),sourceType:vp,displayName:p(),status:P0,lastSyncedAt:p().nullable(),lastCursor:p().nullable(),lastError:p().nullable(),archivedAt:p().nullable(),config:lt(p(),Ln()),createdAt:p(),updatedAt:p()});w({gcpProjectId:p().min(1),serviceName:p().min(1).optional(),location:p().min(1).optional(),displayName:p().min(1).optional(),keyJson:p().optional()});w({baseUrl:p().url(),username:p().min(1),applicationPassword:p().min(1),displayName:p().min(1).optional()});w({projectId:p().min(1),teamId:p().min(1),token:p().min(1),environment:Sp.optional(),displayName:p().min(1).optional()});w({sourceId:p(),runId:p(),syncedAt:p(),pulledEvents:y().int().nonnegative(),selfTrafficExcluded:y().int().nonnegative(),crawlerHits:y().int().nonnegative(),aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),unknownHits:y().int().nonnegative(),crawlerBucketRows:y().int().nonnegative(),aiUserFetchBucketRows:y().int().nonnegative(),aiReferralBucketRows:y().int().nonnegative(),sampleRows:y().int().nonnegative(),windowStart:p(),windowEnd:p()});w({days:y().int().positive().optional()});w({advanceToNow:vt(!0)});w({sourceId:p(),runId:p(),status:Zs,windowStart:p(),windowEnd:p(),daysRequested:y().int().positive(),daysApplied:y().int().positive()});const CD=w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:I0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative(),sampleCount:y().int().nonnegative()});w({sources:A(H0)});const zD=H0.extend({totals24h:CD,latestRun:w({runId:p(),status:Zs,startedAt:p().nullable(),finishedAt:p().nullable(),error:p().nullable()}).nullable()});w({sources:A(zD)});const TD=ne(["crawler","ai-user-fetch","ai-referral"]),xp=TD.enum,ED=w({kind:vt(xp.crawler),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),pathClass:vD,status:y().int(),hits:y().int().nonnegative()}),OD=w({kind:vt(xp["ai-user-fetch"]),sourceId:p(),tsHour:p(),botId:p(),operator:p(),verificationStatus:p(),pathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),DD=w({kind:vt(xp["ai-referral"]),sourceId:p(),tsHour:p(),product:p(),operator:p(),sourceDomain:p(),evidenceType:p(),landingPathNormalized:p(),status:y().int(),hits:y().int().nonnegative()}),RD=p0("kind",[ED,OD,DD]);w({windowStart:p(),windowEnd:p(),totals:w({crawlerHits:y().int().nonnegative(),crawlerContentHits:y().int().nonnegative(),crawlerInfraHits:y().int().nonnegative(),crawlerSegments:I0,aiUserFetchHits:y().int().nonnegative(),aiReferralHits:y().int().nonnegative()}),events:A(RD)});w({apiKey:p().min(1)});w({connected:re(),adAccountId:p().nullable().optional(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),timezone:p().nullable().optional(),status:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),conversionTrackingConfigured:re().optional()});w({disconnected:re()});w({runId:p(),status:p()});const MD=w({type:p().nullable().optional(),title:p().nullable().optional(),body:p().nullable().optional(),targetUrl:p().nullable().optional()}),BD=w({id:p(),adGroupId:p(),name:p(),status:p(),reviewStatus:p().nullable().optional(),creative:MD.nullable().optional()}),LD=w({id:p(),campaignId:p(),name:p(),status:p(),billingEventType:p().nullable().optional(),maxBidMicros:y().int().nullable().optional(),contextHints:A(p()).default([]),ads:A(BD).default([])}),qD=w({id:p(),name:p(),status:p(),biddingType:p().nullable().optional(),dailySpendLimitMicros:y().int().nullable().optional(),lifetimeSpendLimitMicros:y().int().nullable().optional(),adGroups:A(LD).default([])});w({campaigns:A(qD)});const Q0=ne(["campaign","ad_group"]);Q0.enum;const UD=w({level:Q0,entityId:p(),date:p(),impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({rows:A(UD),currencyCode:p().nullable().optional()});const $D=w({impressions:y().int(),clicks:y().int(),spendMicros:y().int(),conversions:y().int(),ctr:y().nullable(),cpcMicros:y().int().nullable()});w({connected:re(),displayName:p().nullable().optional(),currencyCode:p().nullable().optional(),lastSyncedAt:p().nullable().optional(),campaignCount:y().int(),adGroupCount:y().int(),adCount:y().int(),window:w({from:p().nullable(),to:p().nullable()}),totals:$D});var VD=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(VD||{});const HL={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},QL={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},KL=op;function ID(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
 
@@ -207,4 +207,4 @@ spec:
207
207
  `);$(rt)}}catch(ie){Qe(ie instanceof Error?ie.message:"Failed to generate queries")}finally{xe(!1)}}},Ui=async()=>{if(!oe)return;const ie=_t;if(ie.length!==0){Mi(!0),go(null);try{await Ak(oe,ie),er(!0),await r(),N(4)}catch(rt){go(rt instanceof Error?rt.message:"Failed to save competitors")}finally{Mi(!1)}}},$i=async()=>{const ie=va.trim();if(ie){wo(!0),Sa(null);try{await Tk("gemini",{apiKey:ie}),tn({title:"Gemini configured",detail:"Provider is ready — continuing setup.",tone:"positive",dedupeKey:"setup:gemini:configured",dedupeMode:"drop"}),xo(""),await r()}catch(rt){Sa(rt instanceof Error?rt.message:"Failed to save Gemini key")}finally{wo(!1)}}},Zn=async()=>{if(oe){bo(!0);try{const ie=await vo.mutateAsync({projectName:oe,projectLabel:k||_||oe,sourceAction:"setup-launch"});qc(ie.id),nr(!0),await r()}catch{}finally{bo(!1)}}},pn=()=>N(ie=>Math.max(0,ie-1)),ai=(()=>{switch(x){case 0:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsx("div",{className:"section-head",children:f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 1 of 5"}),f.jsx("h2",{children:"System ready"})]})}),f.jsx("p",{className:"supporting-copy",children:"Checking that your Canonry instance is configured and reachable."}),f.jsx("div",{className:"compact-stack",children:v.healthChecks.map(ie=>f.jsxs("div",{className:"health-check-row",children:[f.jsxs("div",{children:[f.jsx("p",{className:"run-row-title",children:ie.label}),f.jsx("p",{className:"supporting-copy",children:ie.detail}),ie.id==="provider"&&ie.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:va,onChange:rt=>xo(rt.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:Li}),f.jsx(Ue,{type:"button",size:"sm",disabled:Li||!va.trim(),onClick:Nn($i),children:Li?"Saving...":"Save"})]}),jo&&f.jsx("p",{className:"text-xs text-rose-400",children:jo}),f.jsxs("p",{className:"text-[11px] text-zinc-600",children:["Other providers (OpenAI, Claude, Perplexity) configurable later via"," ",f.jsx(st,{to:"/settings",className:"text-zinc-500 hover:text-zinc-300 underline underline-offset-2",children:"/settings"}),"."]})]})]}),f.jsx(Bn,{tone:ie.state==="ready"?"positive":"caution",title:ie.id==="api"?$s(g.apiStatus):ie.id==="worker"?$s(g.workerStatus):ie.detail,children:ie.state==="ready"?"Ready":"Attention"})]},ie.id))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",disabled:!Uc,onClick:()=>N(1),children:"Continue"})]})]});case 1:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 2 of 5"}),f.jsx("h2",{children:"Create project"})]}),oe?f.jsx(Bn,{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:pn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>N(2),children:"Continue"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"project-name",children:"Project name"}),f.jsx("input",{id:"project-name",className:"setup-input",type:"text",placeholder:"my-website",value:_,onChange:ie=>z(ie.target.value)}),ht&&ht!==_?f.jsxs("p",{className:"supporting-copy",children:["Slug: ",ht]}):null]}),f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"display-name",children:"Display name (optional)"}),f.jsx("input",{id:"display-name",className:"setup-input",type:"text",placeholder:"My Website",value:k,onChange:ie=>E(ie.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:ie=>I(ie.target.value)})]}),f.jsxs("div",{className:"setup-field-row",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"country",children:"Country"}),f.jsx("input",{id:"country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:P,onChange:ie=>Z(ie.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:X,onChange:ie=>F(ie.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:ie=>M(ie.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(st,{to:"/backlinks",className:"text-emerald-400 hover:text-emerald-300 underline underline-offset-2",children:"Manage backlinks"})]})]})]}),Oe?f.jsx("p",{className:"text-rose-400 text-sm",children:Oe}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:!ht||!R||He,onClick:Nn($c),children:He?"Creating...":"Create project"})]})]})]});case 2:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 3 of 5"}),f.jsx("h2",{children:"Add queries"})]}),W?f.jsxs(Bn,{tone:"positive",children:[Mt.length," saved"]}):f.jsxs(Bn,{tone:"neutral",children:[Mt.length," quer",Mt.length!==1?"ies":"y"]})]}),f.jsx("p",{className:"supporting-copy",children:"Enter the search queries you want to track. One per line."}),W?f.jsxs("div",{className:"compact-stack",children:[f.jsx("ul",{className:"detail-list",children:Mt.map(ie=>f.jsx("li",{children:ie},ie))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>N(3),children:"Continue"})]})]}):f.jsxs("div",{className:"compact-stack",children:[ue.length>0?f.jsxs("div",{className:"compact-stack",children:[f.jsxs("div",{className:"flex items-center gap-2 text-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:ee,onChange:ie=>de(ie.target.value),children:ue.map(ie=>f.jsxs("option",{value:ie.name,children:[ie.displayName??ie.name,ie.model?` (${ie.model})`:""]},ie.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:ae,onChange:ie=>Ne(Number(ie.target.value)),children:[3,5,10,15,20].map(ie=>f.jsx("option",{value:ie,children:ie},ie))})]}),f.jsx(Ue,{type:"button",variant:"outline",disabled:tt||!ee,onClick:Nn(qi),children:tt?"Analyzing site...":"Generate"})]}),$e?f.jsx("p",{className:"text-rose-400 text-sm",children:$e}):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:pe,onChange:ie=>$(ie.target.value)})]}),je?f.jsx("p",{className:"text-rose-400 text-sm",children:je}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:Mt.length===0||Ye,onClick:Nn(Vc),children:Ye?"Saving...":`Save ${Mt.length} quer${Mt.length!==1?"ies":"y"}`})]})]})]});case 3:return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 4 of 5"}),f.jsx("h2",{children:"Add competitors"})]}),Rt?f.jsx(Bn,{tone:"positive",children:"Saved"}):null]}),f.jsx("p",{className:"supporting-copy",children:"Domains that compete for the same queries. One per line."}),Rt?f.jsxs("div",{className:"compact-stack",children:[f.jsx("ul",{className:"detail-list",children:_t.map(ie=>f.jsx("li",{children:ie},ie))}),f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsx(Ue,{type:"button",onClick:()=>N(4),children:"Continue"})]})]}):f.jsxs("div",{className:"compact-stack",children:[f.jsxs("div",{className:"setup-field",children:[f.jsx("label",{className:"setup-label",htmlFor:"competitors",children:"Competitor domains (one per line)"}),f.jsx("textarea",{id:"competitors",className:"setup-textarea",rows:4,placeholder:`competitor1.com
210
- competitor2.com`,value:Dt,onChange:ie=>Un(ie.target.value)})]}),Ri?f.jsx("p",{className:"text-rose-400 text-sm",children:Ri}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>N(4),children:"Skip"}),f.jsx(Ue,{type:"button",disabled:_t.length===0||tr,onClick:Nn(Ui),children:tr?"Saving...":`Save ${_t.length} competitor${_t.length!==1?"s":""}`})]})]})]})]});case 4:{const ie=So.data,rt=ie?.status==="completed"||ie?.status==="partial"||ie?.status==="failed"||ie?.status==="cancelled",Yn=ie?.snapshots??[],ii=Yn.filter($n=>$n.citationState==="cited").length,Ic=Yn.filter($n=>$n.answerMentioned===!0).length,ar=new Set(Yn.map($n=>$n.query).filter($n=>!!$n)).size,No=Bi?rt&&(ie?.status==="completed"||ie?.status==="partial")?f.jsx(Bn,{tone:"positive",children:"Complete"}):rt?f.jsx(Bn,{tone:"negative",children:"Failed"}):f.jsx(Bn,{tone:"caution",children:"Running"}):null;return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),f.jsx("h2",{children:"Launch first run"})]}),No]}),Bi?rt?ie?.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:()=>{S({to:oe?`/projects/${encodeURIComponent(oe)}`:"/"})},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:[Ic,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:[ii,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:Yn.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:()=>{S({to:oe?`/projects/${encodeURIComponent(oe)}`:"/"})},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:ie?.status??"queued"})]})}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>{S({to:oe?`/projects/${encodeURIComponent(oe)}`:"/"})},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:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:yo,onClick:Nn(Zn),children:yo?"Launching...":"Launch visibility sweep"})]})]})]})}default:return null}})();return f.jsxs("div",{className:"page-container",children:[f.jsx("div",{className:"page-header",children:f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Setup"}),f.jsx("p",{className:"page-subtitle",children:"Create a project, add queries, add competitors, and launch the first run."})]})}),f.jsx(qB,{current:x,labels:LB}),f.jsx("section",{className:"setup-wizard",children:ai})]})}function $B(){return f.jsx("div",{className:"page-container",children:f.jsx("section",{className:"page-section",children:f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h1",{children:"Route not found"}),f.jsx("p",{children:"The current path does not map to a dashboard view."}),f.jsx(Ue,{asChild:!0,children:f.jsx(st,{to:"/",children:"Return to overview"})})]})})})}const ba=Ps(()=>Gs(()=>import("./ProjectPage-Bd3YW6WQ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"ProjectPage"),VB=Ps(()=>Gs(()=>import("./RunsPage-BBEuL03-.js"),__vite__mapDeps([9,1,2,7,5,8]),import.meta.url),"RunsPage"),IB=Ps(()=>Gs(()=>import("./SettingsPage-CJ6kyLmY.js"),__vite__mapDeps([10,1,7,5,8]),import.meta.url),"SettingsPage"),PB=Ps(()=>Gs(()=>import("./BacklinksPage-BheRgyA3.js"),__vite__mapDeps([11,1,6,7,5,8]),import.meta.url),"BacklinksPage"),GB=Ps(()=>Gs(()=>import("./TrafficPage-DPrsjoFM.js"),__vite__mapDeps([12,1,4,13,7,5,8]),import.meta.url),"TrafficPage"),HB=Ps(()=>Gs(()=>import("./TrafficSourceDetailPage-EdC_c26M.js"),__vite__mapDeps([14,1,4,3,5,13,7,8]),import.meta.url),"TrafficSourceDetailPage");function QB(){return f.jsx(yM,{children:f.jsx(gM,{})})}const nn=Ow()({component:QB,validateSearch:e=>({runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0})}),KB=Tt({getParentRoute:()=>nn,path:"/",component:SM,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Ei({client:te}));if(n&&n.length===0)throw Gf({to:"/setup"})}}),ZB=Tt({getParentRoute:()=>nn,path:"/projects",component:OB}),YB=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Kn=Tt({getParentRoute:()=>nn,path:"/projects/$projectName",component:()=>f.jsx(Sf,{}),beforeLoad:async({context:e,params:n,location:i})=>{const r=n.projectName;if(!YB.test(r))return;let l=e.queryClient.getQueryData(Ei({client:te}));if(!l)try{l=await e.queryClient.ensureQueryData(xc({client:te}))}catch{return}const c=l.find(d=>d.id===r);if(c)throw Gf({to:i.pathname.replace(`/projects/${r}`,`/projects/${encodeURIComponent(c.name)}`),replace:!0})}}),XB=Tt({getParentRoute:()=>Kn,path:"/",component:()=>f.jsx(ba,{tab:"overview"})}),JB=Tt({getParentRoute:()=>Kn,path:"/search-console",component:()=>f.jsx(ba,{tab:"search-console"})}),FB=Tt({getParentRoute:()=>Kn,path:"/local",component:()=>f.jsx(ba,{tab:"local"})}),WB=Tt({getParentRoute:()=>Kn,path:"/discovery",component:()=>f.jsx(ba,{tab:"discovery"})}),e5=Tt({getParentRoute:()=>Kn,path:"/report",component:()=>f.jsx(ba,{tab:"report"})}),t5=Tt({getParentRoute:()=>Kn,path:"/activity",component:()=>f.jsx(ba,{tab:"activity"})}),n5=Tt({getParentRoute:()=>Kn,path:"/backlinks",component:()=>f.jsx(ba,{tab:"backlinks"})}),a5=Tt({getParentRoute:()=>Kn,path:"/technical-aeo",component:()=>f.jsx(ba,{tab:"technical-aeo"})}),i5=Tt({getParentRoute:()=>Kn,path:"/settings",component:()=>f.jsx(ba,{tab:"settings"})}),s5=Tt({getParentRoute:()=>nn,path:"/runs",component:VB}),r5=Tt({getParentRoute:()=>nn,path:"/settings",component:IB,beforeLoad:({context:e})=>{}}),o5=Tt({getParentRoute:()=>nn,path:"/setup",component:UB,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Ei({client:te}));if(n&&n.length>0)throw Gf({to:"/"})}}),l5=Tt({getParentRoute:()=>nn,path:"/backlinks",component:PB}),c5=Tt({getParentRoute:()=>nn,path:"/traffic",component:GB}),u5=Tt({getParentRoute:()=>nn,path:"/traffic/$projectName/$sourceId",component:HB}),d5=Tt({getParentRoute:()=>nn,path:"*",component:$B}),f5=nn.addChildren([KB,ZB,Kn.addChildren([XB,JB,FB,WB,e5,t5,n5,a5,i5]),s5,r5,o5,l5,c5,u5,d5]);function p5(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const uv=p5(),m5=uv==="/"?"":uv.replace(/\/$/,"");function h5(e,n){return Dw({routeTree:f5,basepath:m5||"/",context:{queryClient:e},...n?.initialEntries})}const g5=6e4;function y5(){const[e,n]=q.useState(sf()?"ready":"checking"),[i,r]=q.useState(""),[l,c]=q.useState(""),[d,h]=q.useState(null),[g,v]=q.useState(!1),[S,x]=q.useState(!1),N=q.useRef(null),_=q.useRef(null),z=()=>{if(!N.current){const R=Fk();_.current=R,N.current=h5(R)}return{queryClient:_.current,router:N.current}};q.useEffect(()=>{if(sf())return;let R=!1;return Qy().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"||sf())return;const R=setInterval(()=>{Qy().then(I=>{I.authenticated||(x(!0),n(I.setupRequired?"setup":"login"))}).catch(()=>{})},g5);return Hy(()=>{x(!0),n("login")}),()=>{clearInterval(R),Hy(null)}},[e]);const k=async R=>{if(R.preventDefault(),!i.trim()||i.trim().length<8){h("Password must be at least 8 characters");return}if(i!==l){h("Passwords do not match");return}v(!0),h(null);try{if(!(await Ck(i.trim())).authenticated){h("Setup failed");return}r(""),c(""),x(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Setup failed")}finally{v(!1)}},E=async R=>{if(R.preventDefault(),!!i.trim()){v(!0),h(null);try{if(!(await zk(i.trim())).authenticated){h("Incorrect password");return}r(""),x(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Authentication failed")}finally{v(!1)}}};if(e==="ready"){const{queryClient:R,router:I}=z();return f.jsx(Rw,{client:R,children:f.jsx(Mw,{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(kn,{className:"surface-card w-full",children:e==="checking"?f.jsx(Yl,{className:"py-8",children:f.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="setup"?f.jsxs(f.Fragment,{children:[f.jsxs(Mf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),f.jsx(Bf,{children:"Create a dashboard password"}),f.jsx(Lf,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),f.jsx(Yl,{children:f.jsxs("form",{className:"space-y-4",onSubmit:Nn(k),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-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(Mf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),f.jsx(Bf,{children:"Sign in to Canonry"}),f.jsx(Lf,{children:"Enter your dashboard password to continue."})]}),f.jsxs(Yl,{children:[S?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:Nn(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 f1=document.getElementById("root");if(!f1)throw new Error("Expected #root element for web app bootstrap.");Iw.createRoot(f1).render(f.jsx(q.StrictMode,{children:f.jsx(y5,{})}));export{y6 as $,YL as A,Ue as B,sc as C,D5 as D,t6 as E,a6 as F,OL as G,i6 as H,Xr as I,P5 as J,I5 as K,H5 as L,tn as M,eL as N,o6 as O,Z3 as P,l6 as Q,K5 as R,VD as S,Bn as T,s6 as U,r6 as V,n6 as W,G5 as X,Z5 as Y,c6 as Z,u6 as _,$6 as a,M5 as a$,p6 as a0,h6 as a1,m6 as a2,g6 as a3,$k as a4,F0 as a5,Ae as a6,f6 as a7,Y4 as a8,_i as a9,X5 as aA,Ei as aB,J5 as aC,wp as aD,L6 as aE,U6 as aF,q6 as aG,Y5 as aH,mA as aI,Bv as aJ,B4 as aK,q4 as aL,L4 as aM,LL as aN,C6 as aO,BL as aP,lL as aQ,Z6 as aR,$L as aS,qL as aT,VL as aU,IL as aV,ML as aW,UL as aX,T5 as aY,z5 as aZ,C5 as a_,d6 as aa,fE as ab,pE as ac,RL as ad,DL as ae,CL as af,vL as ag,kL as ah,AL as ai,Hn as aj,_L as ak,w5 as al,zA as am,KL as an,_A as ao,LA as ap,F4 as aq,Wl as ar,TL as as,zL as at,kf as au,z6 as av,Q5 as aw,R6 as ax,M6 as ay,B6 as az,Ff as b,Y3 as b$,FL as b0,zb as b1,JL as b2,B5 as b3,L5 as b4,XL as b5,q5 as b6,U5 as b7,V5 as b8,$5 as b9,sL as bA,iL as bB,w6 as bC,v6 as bD,QL as bE,tL as bF,nL as bG,aL as bH,rL as bI,kc as bJ,P6 as bK,kp as bL,Tk as bM,R5 as bN,F5 as bO,W5 as bP,_p as bQ,oL as bR,$s as bS,Tb as bT,yL as bU,SL as bV,wL as bW,jL as bX,bL as bY,xL as bZ,NL as b_,uo as ba,xc as bb,qR as bc,pk as bd,e6 as be,BB as bf,Qt as bg,wk as bh,QD as bi,E5 as bj,k5 as bk,A5 as bl,O5 as bm,I6 as bn,xk as bo,Ak as bp,N5 as bq,j5 as br,Nk as bs,_5 as bt,K6 as bu,n4 as bv,b6 as bw,S6 as bx,Rk as by,x6 as bz,et as c,gS as c0,eR as c1,yS as c2,bS as c3,jA as c4,gL as c5,Jy as c6,O6 as c7,PL as c8,GL as c9,xp as ca,WL as cb,Hs as cc,T6 as cd,D6 as ce,hL as cf,pL as cg,mL as ch,fL as ci,E6 as cj,$T as d,V6 as e,ZL as f,kn as g,Vb as h,Nn as i,EL as j,j6 as k,te as l,N6 as m,k6 as n,_6 as o,A6 as p,cL as q,dL as r,uL as s,PD as t,Cp as u,G6 as v,H6 as w,Q6 as x,Rf as y,HL as z};
210
+ competitor2.com`,value:Dt,onChange:ie=>Un(ie.target.value)})]}),Ri?f.jsx("p",{className:"text-rose-400 text-sm",children:Ri}):null,f.jsxs("div",{className:"setup-nav",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:pn,children:"Back"}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>N(4),children:"Skip"}),f.jsx(Ue,{type:"button",disabled:_t.length===0||tr,onClick:Nn(Ui),children:tr?"Saving...":`Save ${_t.length} competitor${_t.length!==1?"s":""}`})]})]})]})]});case 4:{const ie=So.data,rt=ie?.status==="completed"||ie?.status==="partial"||ie?.status==="failed"||ie?.status==="cancelled",Yn=ie?.snapshots??[],ii=Yn.filter($n=>$n.citationState==="cited").length,Ic=Yn.filter($n=>$n.answerMentioned===!0).length,ar=new Set(Yn.map($n=>$n.query).filter($n=>!!$n)).size,No=Bi?rt&&(ie?.status==="completed"||ie?.status==="partial")?f.jsx(Bn,{tone:"positive",children:"Complete"}):rt?f.jsx(Bn,{tone:"negative",children:"Failed"}):f.jsx(Bn,{tone:"caution",children:"Running"}):null;return f.jsxs(kn,{className:"surface-card step-card",children:[f.jsxs("div",{className:"section-head",children:[f.jsxs("div",{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),f.jsx("h2",{children:"Launch first run"})]}),No]}),Bi?rt?ie?.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:()=>{S({to:oe?`/projects/${encodeURIComponent(oe)}`:"/"})},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:[Ic,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:[ii,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:Yn.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:()=>{S({to:oe?`/projects/${encodeURIComponent(oe)}`:"/"})},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:ie?.status??"queued"})]})}),f.jsxs("div",{className:"setup-nav",children:[f.jsx("span",{}),f.jsx(Ue,{type:"button",variant:"outline",onClick:()=>{S({to:oe?`/projects/${encodeURIComponent(oe)}`:"/"})},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:pn,children:"Back"}),f.jsx(Ue,{type:"button",disabled:yo,onClick:Nn(Zn),children:yo?"Launching...":"Launch visibility sweep"})]})]})]})}default:return null}})();return f.jsxs("div",{className:"page-container",children:[f.jsx("div",{className:"page-header",children:f.jsxs("div",{className:"page-header-left",children:[f.jsx("h1",{className:"page-title",children:"Setup"}),f.jsx("p",{className:"page-subtitle",children:"Create a project, add queries, add competitors, and launch the first run."})]})}),f.jsx(qB,{current:x,labels:LB}),f.jsx("section",{className:"setup-wizard",children:ai})]})}function $B(){return f.jsx("div",{className:"page-container",children:f.jsx("section",{className:"page-section",children:f.jsxs(kn,{className:"surface-card empty-card",children:[f.jsx("h1",{children:"Route not found"}),f.jsx("p",{children:"The current path does not map to a dashboard view."}),f.jsx(Ue,{asChild:!0,children:f.jsx(st,{to:"/",children:"Return to overview"})})]})})})}const ba=Ps(()=>Gs(()=>import("./ProjectPage-DhEoUnmx.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"ProjectPage"),VB=Ps(()=>Gs(()=>import("./RunsPage-LIvuym9f.js"),__vite__mapDeps([9,1,2,7,5,8]),import.meta.url),"RunsPage"),IB=Ps(()=>Gs(()=>import("./SettingsPage-BrFy3IsH.js"),__vite__mapDeps([10,1,7,5,8]),import.meta.url),"SettingsPage"),PB=Ps(()=>Gs(()=>import("./BacklinksPage-Cuvg9TTn.js"),__vite__mapDeps([11,1,6,7,5,8]),import.meta.url),"BacklinksPage"),GB=Ps(()=>Gs(()=>import("./TrafficPage-C16J18tV.js"),__vite__mapDeps([12,1,4,13,7,5,8]),import.meta.url),"TrafficPage"),HB=Ps(()=>Gs(()=>import("./TrafficSourceDetailPage-BtOwcgWX.js"),__vite__mapDeps([14,1,4,3,5,13,7,8]),import.meta.url),"TrafficSourceDetailPage");function QB(){return f.jsx(yM,{children:f.jsx(gM,{})})}const nn=Ow()({component:QB,validateSearch:e=>({runId:typeof e.runId=="string"?e.runId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0})}),KB=Tt({getParentRoute:()=>nn,path:"/",component:SM,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Ei({client:te}));if(n&&n.length===0)throw Gf({to:"/setup"})}}),ZB=Tt({getParentRoute:()=>nn,path:"/projects",component:OB}),YB=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Kn=Tt({getParentRoute:()=>nn,path:"/projects/$projectName",component:()=>f.jsx(Sf,{}),beforeLoad:async({context:e,params:n,location:i})=>{const r=n.projectName;if(!YB.test(r))return;let l=e.queryClient.getQueryData(Ei({client:te}));if(!l)try{l=await e.queryClient.ensureQueryData(xc({client:te}))}catch{return}const c=l.find(d=>d.id===r);if(c)throw Gf({to:i.pathname.replace(`/projects/${r}`,`/projects/${encodeURIComponent(c.name)}`),replace:!0})}}),XB=Tt({getParentRoute:()=>Kn,path:"/",component:()=>f.jsx(ba,{tab:"overview"})}),JB=Tt({getParentRoute:()=>Kn,path:"/search-console",component:()=>f.jsx(ba,{tab:"search-console"})}),FB=Tt({getParentRoute:()=>Kn,path:"/local",component:()=>f.jsx(ba,{tab:"local"})}),WB=Tt({getParentRoute:()=>Kn,path:"/discovery",component:()=>f.jsx(ba,{tab:"discovery"})}),e5=Tt({getParentRoute:()=>Kn,path:"/report",component:()=>f.jsx(ba,{tab:"report"})}),t5=Tt({getParentRoute:()=>Kn,path:"/activity",component:()=>f.jsx(ba,{tab:"activity"})}),n5=Tt({getParentRoute:()=>Kn,path:"/backlinks",component:()=>f.jsx(ba,{tab:"backlinks"})}),a5=Tt({getParentRoute:()=>Kn,path:"/technical-aeo",component:()=>f.jsx(ba,{tab:"technical-aeo"})}),i5=Tt({getParentRoute:()=>Kn,path:"/settings",component:()=>f.jsx(ba,{tab:"settings"})}),s5=Tt({getParentRoute:()=>nn,path:"/runs",component:VB}),r5=Tt({getParentRoute:()=>nn,path:"/settings",component:IB,beforeLoad:({context:e})=>{}}),o5=Tt({getParentRoute:()=>nn,path:"/setup",component:UB,beforeLoad:({context:e})=>{const n=e.queryClient.getQueryData(Ei({client:te}));if(n&&n.length>0)throw Gf({to:"/"})}}),l5=Tt({getParentRoute:()=>nn,path:"/backlinks",component:PB}),c5=Tt({getParentRoute:()=>nn,path:"/traffic",component:GB}),u5=Tt({getParentRoute:()=>nn,path:"/traffic/$projectName/$sourceId",component:HB}),d5=Tt({getParentRoute:()=>nn,path:"*",component:$B}),f5=nn.addChildren([KB,ZB,Kn.addChildren([XB,JB,FB,WB,e5,t5,n5,a5,i5]),s5,r5,o5,l5,c5,u5,d5]);function p5(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const uv=p5(),m5=uv==="/"?"":uv.replace(/\/$/,"");function h5(e,n){return Dw({routeTree:f5,basepath:m5||"/",context:{queryClient:e},...n?.initialEntries})}const g5=6e4;function y5(){const[e,n]=q.useState(sf()?"ready":"checking"),[i,r]=q.useState(""),[l,c]=q.useState(""),[d,h]=q.useState(null),[g,v]=q.useState(!1),[S,x]=q.useState(!1),N=q.useRef(null),_=q.useRef(null),z=()=>{if(!N.current){const R=Fk();_.current=R,N.current=h5(R)}return{queryClient:_.current,router:N.current}};q.useEffect(()=>{if(sf())return;let R=!1;return Qy().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"||sf())return;const R=setInterval(()=>{Qy().then(I=>{I.authenticated||(x(!0),n(I.setupRequired?"setup":"login"))}).catch(()=>{})},g5);return Hy(()=>{x(!0),n("login")}),()=>{clearInterval(R),Hy(null)}},[e]);const k=async R=>{if(R.preventDefault(),!i.trim()||i.trim().length<8){h("Password must be at least 8 characters");return}if(i!==l){h("Passwords do not match");return}v(!0),h(null);try{if(!(await Ck(i.trim())).authenticated){h("Setup failed");return}r(""),c(""),x(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Setup failed")}finally{v(!1)}},E=async R=>{if(R.preventDefault(),!!i.trim()){v(!0),h(null);try{if(!(await zk(i.trim())).authenticated){h("Incorrect password");return}r(""),x(!1),n("ready")}catch(I){h(I instanceof Hn||I instanceof Error?I.message:"Authentication failed")}finally{v(!1)}}};if(e==="ready"){const{queryClient:R,router:I}=z();return f.jsx(Rw,{client:R,children:f.jsx(Mw,{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(kn,{className:"surface-card w-full",children:e==="checking"?f.jsx(Yl,{className:"py-8",children:f.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="setup"?f.jsxs(f.Fragment,{children:[f.jsxs(Mf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),f.jsx(Bf,{children:"Create a dashboard password"}),f.jsx(Lf,{children:"Choose a password to protect the Canonry dashboard. You will use this to sign in on future visits."})]}),f.jsx(Yl,{children:f.jsxs("form",{className:"space-y-4",onSubmit:Nn(k),children:[f.jsxs("label",{className:"block space-y-1.5",children:[f.jsx("span",{className:"text-xs font-medium text-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(Mf,{children:[f.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),f.jsx(Bf,{children:"Sign in to Canonry"}),f.jsx(Lf,{children:"Enter your dashboard password to continue."})]}),f.jsxs(Yl,{children:[S?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:Nn(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 f1=document.getElementById("root");if(!f1)throw new Error("Expected #root element for web app bootstrap.");Iw.createRoot(f1).render(f.jsx(q.StrictMode,{children:f.jsx(y5,{})}));export{y6 as $,YL as A,Ue as B,sc as C,D5 as D,t6 as E,a6 as F,OL as G,i6 as H,Xr as I,P5 as J,I5 as K,H5 as L,tn as M,eL as N,o6 as O,Z3 as P,l6 as Q,K5 as R,VD as S,Bn as T,s6 as U,r6 as V,n6 as W,G5 as X,Z5 as Y,c6 as Z,u6 as _,$6 as a,M5 as a$,p6 as a0,h6 as a1,m6 as a2,g6 as a3,$k as a4,F0 as a5,Ae as a6,f6 as a7,Y4 as a8,_i as a9,X5 as aA,Ei as aB,J5 as aC,wp as aD,L6 as aE,U6 as aF,q6 as aG,Y5 as aH,mA as aI,Bv as aJ,B4 as aK,q4 as aL,L4 as aM,LL as aN,C6 as aO,BL as aP,lL as aQ,Z6 as aR,$L as aS,qL as aT,VL as aU,IL as aV,ML as aW,UL as aX,T5 as aY,z5 as aZ,C5 as a_,d6 as aa,fE as ab,pE as ac,RL as ad,DL as ae,CL as af,vL as ag,kL as ah,AL as ai,Hn as aj,_L as ak,w5 as al,zA as am,KL as an,_A as ao,LA as ap,F4 as aq,Wl as ar,TL as as,zL as at,kf as au,z6 as av,Q5 as aw,R6 as ax,M6 as ay,B6 as az,Ff as b,Y3 as b$,FL as b0,zb as b1,JL as b2,B5 as b3,L5 as b4,XL as b5,q5 as b6,U5 as b7,V5 as b8,$5 as b9,sL as bA,iL as bB,w6 as bC,v6 as bD,QL as bE,tL as bF,nL as bG,aL as bH,rL as bI,kc as bJ,P6 as bK,kp as bL,Tk as bM,R5 as bN,F5 as bO,W5 as bP,_p as bQ,oL as bR,$s as bS,Tb as bT,yL as bU,SL as bV,wL as bW,jL as bX,bL as bY,xL as bZ,NL as b_,uo as ba,xc as bb,qR as bc,pk as bd,e6 as be,BB as bf,Qt as bg,wk as bh,QD as bi,E5 as bj,k5 as bk,A5 as bl,O5 as bm,I6 as bn,xk as bo,Ak as bp,N5 as bq,j5 as br,Nk as bs,_5 as bt,K6 as bu,n4 as bv,b6 as bw,S6 as bx,Rk as by,x6 as bz,et as c,gS as c0,eR as c1,yS as c2,bS as c3,jA as c4,gL as c5,Jy as c6,O6 as c7,PL as c8,GL as c9,xp as ca,WL as cb,Hs as cc,T6 as cd,D6 as ce,hL as cf,pL as cg,mL as ch,fL as ci,E6 as cj,$T as d,V6 as e,ZL as f,kn as g,Vb as h,Nn as i,EL as j,j6 as k,te as l,N6 as m,k6 as n,_6 as o,A6 as p,cL as q,dL as r,uL as s,PD as t,Cp as u,G6 as v,H6 as w,Q6 as x,Rf as y,HL as z};