vibe-squire 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{index-D1W_yJrN.js → index-sjzLovaC.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/graphql/operator/activity-feed-cursor.d.ts +8 -0
- package/dist/graphql/operator/activity-feed-cursor.js +26 -0
- package/dist/graphql/operator/activity-feed-cursor.js.map +1 -0
- package/dist/graphql/operator/operator-activity.resolver.d.ts +14 -0
- package/dist/graphql/operator/operator-activity.resolver.js +102 -0
- package/dist/graphql/operator/operator-activity.resolver.js.map +1 -0
- package/dist/graphql/operator/operator-activity.usecase.d.ts +21 -0
- package/dist/graphql/operator/operator-activity.usecase.js +89 -0
- package/dist/graphql/operator/operator-activity.usecase.js.map +1 -0
- package/dist/graphql/operator/operator-bff.types.d.ts +2 -2
- package/dist/graphql/operator/operator-bff.types.js +4 -4
- package/dist/graphql/operator/operator-bff.types.js.map +1 -1
- package/dist/graphql/operator/operator-gql.mapper.d.ts +40 -0
- package/dist/graphql/operator/operator-gql.mapper.js +69 -0
- package/dist/graphql/operator/operator-gql.mapper.js.map +1 -0
- package/dist/graphql/operator/operator-mappings.resolver.d.ts +11 -0
- package/dist/graphql/operator/operator-mappings.resolver.js +70 -0
- package/dist/graphql/operator/operator-mappings.resolver.js.map +1 -0
- package/dist/graphql/operator/operator-settings.resolver.d.ts +11 -0
- package/dist/graphql/operator/operator-settings.resolver.js +78 -0
- package/dist/graphql/operator/operator-settings.resolver.js.map +1 -0
- package/dist/graphql/operator/operator-settings.usecase.d.ts +17 -0
- package/dist/graphql/operator/operator-settings.usecase.js +111 -0
- package/dist/graphql/operator/operator-settings.usecase.js.map +1 -0
- package/dist/graphql/operator/operator-setup.resolver.d.ts +8 -0
- package/dist/graphql/operator/operator-setup.resolver.js +45 -0
- package/dist/graphql/operator/operator-setup.resolver.js.map +1 -0
- package/dist/graphql/operator/operator-setup.usecase.d.ts +10 -0
- package/dist/graphql/operator/operator-setup.usecase.js +43 -0
- package/dist/graphql/operator/operator-setup.usecase.js.map +1 -0
- package/dist/graphql/operator/operator-sync.resolver.d.ts +7 -0
- package/dist/graphql/operator/operator-sync.resolver.js +36 -0
- package/dist/graphql/operator/operator-sync.resolver.js.map +1 -0
- package/dist/graphql/operator/operator-sync.usecase.d.ts +9 -0
- package/dist/graphql/operator/operator-sync.usecase.js +43 -0
- package/dist/graphql/operator/operator-sync.usecase.js.map +1 -0
- package/dist/graphql/operator/operator-vibe-kanban.resolver.d.ts +10 -0
- package/dist/graphql/operator/operator-vibe-kanban.resolver.js +67 -0
- package/dist/graphql/operator/operator-vibe-kanban.resolver.js.map +1 -0
- package/dist/graphql/operator/operator-vibe-kanban.usecase.d.ts +19 -0
- package/dist/graphql/operator/operator-vibe-kanban.usecase.js +75 -0
- package/dist/graphql/operator/operator-vibe-kanban.usecase.js.map +1 -0
- package/dist/graphql/operator/settings-patch-errors.d.ts +3 -0
- package/dist/graphql/operator/settings-patch-errors.js +20 -0
- package/dist/graphql/operator/settings-patch-errors.js.map +1 -0
- package/dist/graphql/operator-graphql.module.js +22 -2
- package/dist/graphql/operator-graphql.module.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ui/activity-ui.service.d.ts +0 -4
- package/dist/ui/activity-ui.service.js +3 -16
- package/dist/ui/activity-ui.service.js.map +1 -1
- package/dist/ui/ui-vibe-kanban-presenter.d.ts +21 -1
- package/dist/ui/ui-vibe-kanban-presenter.js.map +1 -1
- package/package.json +1 -1
- package/dist/graphql/operator/operator-bff.resolver.d.ts +0 -57
- package/dist/graphql/operator/operator-bff.resolver.js +0 -476
- package/dist/graphql/operator/operator-bff.resolver.js.map +0 -1
|
@@ -312,4 +312,4 @@ Please change the parent <Route path="${E}"> to <Route path="${E==="/"?"*":`${E}
|
|
|
312
312
|
|
|
313
313
|
`)}_.write("payload.value = newResult;"),_.write("return payload;");const O=_.compile();return(L,M)=>O(g,L,M)};let s;const c=$s,d=!FS.jitless,m=d&&qx.value,v=t.catchall;let y;e._zod.parse=(g,_)=>{y??(y=r.value);const N=g.value;return c(N)?d&&m&&(_==null?void 0:_.async)===!1&&_.jitless!==!0?(s||(s=u(t.shape)),g=s(g,_),v?WS([],N,g,_,y,e):g):a(g,_):(g.issues.push({expected:"object",code:"invalid_type",input:N,inst:e}),g)}});function f0(e,t,a,r){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const u=e.filter(s=>!rl(s));return u.length===1?(t.value=u[0].value,u[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:a,errors:e.map(s=>s.issues.map(c=>ki(c,r,Si())))}),t)}const OA=J("$ZodUnion",(e,t)=>{yt.init(e,t),Pe(e._zod,"optin",()=>t.options.some(u=>u._zod.optin==="optional")?"optional":void 0),Pe(e._zod,"optout",()=>t.options.some(u=>u._zod.optout==="optional")?"optional":void 0),Pe(e._zod,"values",()=>{if(t.options.every(u=>u._zod.values))return new Set(t.options.flatMap(u=>Array.from(u._zod.values)))}),Pe(e._zod,"pattern",()=>{if(t.options.every(u=>u._zod.pattern)){const u=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${u.map(s=>jm(s.source)).join("|")})$`)}});const a=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(u,s)=>{if(a)return r(u,s);let c=!1;const d=[];for(const p of t.options){const m=p._zod.run({value:u.value,issues:[]},s);if(m instanceof Promise)d.push(m),c=!0;else{if(m.issues.length===0)return m;d.push(m)}}return c?Promise.all(d).then(p=>f0(p,u,e,s)):f0(d,u,e,s)}}),wA=J("$ZodIntersection",(e,t)=>{yt.init(e,t),e._zod.parse=(a,r)=>{const u=a.value,s=t.left._zod.run({value:u,issues:[]},r),c=t.right._zod.run({value:u,issues:[]},r);return s instanceof Promise||c instanceof Promise?Promise.all([s,c]).then(([p,m])=>d0(a,p,m)):d0(a,s,c)}});function Ih(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(pl(e)&&pl(t)){const a=Object.keys(t),r=Object.keys(e).filter(s=>a.indexOf(s)!==-1),u={...e,...t};for(const s of r){const c=Ih(e[s],t[s]);if(!c.valid)return{valid:!1,mergeErrorPath:[s,...c.mergeErrorPath]};u[s]=c.data}return{valid:!0,data:u}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const a=[];for(let r=0;r<e.length;r++){const u=e[r],s=t[r],c=Ih(u,s);if(!c.valid)return{valid:!1,mergeErrorPath:[r,...c.mergeErrorPath]};a.push(c.data)}return{valid:!0,data:a}}return{valid:!1,mergeErrorPath:[]}}function d0(e,t,a){const r=new Map;let u;for(const d of t.issues)if(d.code==="unrecognized_keys"){u??(u=d);for(const p of d.keys)r.has(p)||r.set(p,{}),r.get(p).l=!0}else e.issues.push(d);for(const d of a.issues)if(d.code==="unrecognized_keys")for(const p of d.keys)r.has(p)||r.set(p,{}),r.get(p).r=!0;else e.issues.push(d);const s=[...r].filter(([,d])=>d.l&&d.r).map(([d])=>d);if(s.length&&u&&e.issues.push({...u,keys:s}),rl(e))return e;const c=Ih(t.value,a.value);if(!c.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`);return e.value=c.data,e}const DA=J("$ZodRecord",(e,t)=>{yt.init(e,t),e._zod.parse=(a,r)=>{const u=a.value;if(!pl(u))return a.issues.push({expected:"record",code:"invalid_type",input:u,inst:e}),a;const s=[],c=t.keyType._zod.values;if(c){a.value={};const d=new Set;for(const m of c)if(typeof m=="string"||typeof m=="number"||typeof m=="symbol"){d.add(typeof m=="number"?m.toString():m);const v=t.valueType._zod.run({value:u[m],issues:[]},r);v instanceof Promise?s.push(v.then(y=>{y.issues.length&&a.issues.push(...ll(m,y.issues)),a.value[m]=y.value})):(v.issues.length&&a.issues.push(...ll(m,v.issues)),a.value[m]=v.value)}let p;for(const m in u)d.has(m)||(p=p??[],p.push(m));p&&p.length>0&&a.issues.push({code:"unrecognized_keys",input:u,inst:e,keys:p})}else{a.value={};for(const d of Reflect.ownKeys(u)){if(d==="__proto__")continue;let p=t.keyType._zod.run({value:d,issues:[]},r);if(p instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof d=="string"&&$S.test(d)&&p.issues.length){const y=t.keyType._zod.run({value:Number(d),issues:[]},r);if(y instanceof Promise)throw new Error("Async schemas not supported in object keys currently");y.issues.length===0&&(p=y)}if(p.issues.length){t.mode==="loose"?a.value[d]=u[d]:a.issues.push({code:"invalid_key",origin:"record",issues:p.issues.map(y=>ki(y,r,Si())),input:d,path:[d],inst:e});continue}const v=t.valueType._zod.run({value:u[d],issues:[]},r);v instanceof Promise?s.push(v.then(y=>{y.issues.length&&a.issues.push(...ll(d,y.issues)),a.value[p.value]=y.value})):(v.issues.length&&a.issues.push(...ll(d,v.issues)),a.value[p.value]=v.value)}}return s.length?Promise.all(s).then(()=>a):a}}),xA=J("$ZodEnum",(e,t)=>{yt.init(e,t);const a=US(t.entries),r=new Set(a);e._zod.values=r,e._zod.pattern=new RegExp(`^(${a.filter(u=>Qx.has(typeof u)).map(u=>typeof u=="string"?mc(u):u.toString()).join("|")})$`),e._zod.parse=(u,s)=>{const c=u.value;return r.has(c)||u.issues.push({code:"invalid_value",values:a,input:c,inst:e}),u}}),RA=J("$ZodTransform",(e,t)=>{yt.init(e,t),e._zod.parse=(a,r)=>{if(r.direction==="backward")throw new MS(e.constructor.name);const u=t.transform(a.value,a);if(r.async)return(u instanceof Promise?u:Promise.resolve(u)).then(c=>(a.value=c,a));if(u instanceof Promise)throw new cl;return a.value=u,a}});function h0(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const ek=J("$ZodOptional",(e,t)=>{yt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",Pe(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Pe(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${jm(a.source)})?$`):void 0}),e._zod.parse=(a,r)=>{if(t.innerType._zod.optin==="optional"){const u=t.innerType._zod.run(a,r);return u instanceof Promise?u.then(s=>h0(s,a.value)):h0(u,a.value)}return a.value===void 0?a:t.innerType._zod.run(a,r)}}),AA=J("$ZodExactOptional",(e,t)=>{ek.init(e,t),Pe(e._zod,"values",()=>t.innerType._zod.values),Pe(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(a,r)=>t.innerType._zod.run(a,r)}),zA=J("$ZodNullable",(e,t)=>{yt.init(e,t),Pe(e._zod,"optin",()=>t.innerType._zod.optin),Pe(e._zod,"optout",()=>t.innerType._zod.optout),Pe(e._zod,"pattern",()=>{const a=t.innerType._zod.pattern;return a?new RegExp(`^(${jm(a.source)}|null)$`):void 0}),Pe(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(a,r)=>a.value===null?a:t.innerType._zod.run(a,r)}),CA=J("$ZodDefault",(e,t)=>{yt.init(e,t),e._zod.optin="optional",Pe(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,r)=>{if(r.direction==="backward")return t.innerType._zod.run(a,r);if(a.value===void 0)return a.value=t.defaultValue,a;const u=t.innerType._zod.run(a,r);return u instanceof Promise?u.then(s=>m0(s,t)):m0(u,t)}});function m0(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const jA=J("$ZodPrefault",(e,t)=>{yt.init(e,t),e._zod.optin="optional",Pe(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,r)=>(r.direction==="backward"||a.value===void 0&&(a.value=t.defaultValue),t.innerType._zod.run(a,r))}),MA=J("$ZodNonOptional",(e,t)=>{yt.init(e,t),Pe(e._zod,"values",()=>{const a=t.innerType._zod.values;return a?new Set([...a].filter(r=>r!==void 0)):void 0}),e._zod.parse=(a,r)=>{const u=t.innerType._zod.run(a,r);return u instanceof Promise?u.then(s=>p0(s,e)):p0(u,e)}});function p0(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const FA=J("$ZodCatch",(e,t)=>{yt.init(e,t),Pe(e._zod,"optin",()=>t.innerType._zod.optin),Pe(e._zod,"optout",()=>t.innerType._zod.optout),Pe(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(a,r)=>{if(r.direction==="backward")return t.innerType._zod.run(a,r);const u=t.innerType._zod.run(a,r);return u instanceof Promise?u.then(s=>(a.value=s.value,s.issues.length&&(a.value=t.catchValue({...a,error:{issues:s.issues.map(c=>ki(c,r,Si()))},input:a.value}),a.issues=[]),a)):(a.value=u.value,u.issues.length&&(a.value=t.catchValue({...a,error:{issues:u.issues.map(s=>ki(s,r,Si()))},input:a.value}),a.issues=[]),a)}}),UA=J("$ZodPipe",(e,t)=>{yt.init(e,t),Pe(e._zod,"values",()=>t.in._zod.values),Pe(e._zod,"optin",()=>t.in._zod.optin),Pe(e._zod,"optout",()=>t.out._zod.optout),Pe(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(a,r)=>{if(r.direction==="backward"){const s=t.out._zod.run(a,r);return s instanceof Promise?s.then(c=>ws(c,t.in,r)):ws(s,t.in,r)}const u=t.in._zod.run(a,r);return u instanceof Promise?u.then(s=>ws(s,t.out,r)):ws(u,t.out,r)}});function ws(e,t,a){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},a)}const VA=J("$ZodReadonly",(e,t)=>{yt.init(e,t),Pe(e._zod,"propValues",()=>t.innerType._zod.propValues),Pe(e._zod,"values",()=>t.innerType._zod.values),Pe(e._zod,"optin",()=>{var a,r;return(r=(a=t.innerType)==null?void 0:a._zod)==null?void 0:r.optin}),Pe(e._zod,"optout",()=>{var a,r;return(r=(a=t.innerType)==null?void 0:a._zod)==null?void 0:r.optout}),e._zod.parse=(a,r)=>{if(r.direction==="backward")return t.innerType._zod.run(a,r);const u=t.innerType._zod.run(a,r);return u instanceof Promise?u.then(v0):v0(u)}});function v0(e){return e.value=Object.freeze(e.value),e}const LA=J("$ZodCustom",(e,t)=>{dn.init(e,t),yt.init(e,t),e._zod.parse=(a,r)=>a,e._zod.check=a=>{const r=a.value,u=t.fn(r);if(u instanceof Promise)return u.then(s=>y0(s,a,r,e));y0(u,a,r,e)}});function y0(e,t,a,r){if(!e){const u={code:"custom",input:a,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(u.params=r._zod.def.params),t.issues.push(Xu(u))}}var g0;class qA{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...a){const r=a[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const a=this._map.get(t);return a&&typeof a=="object"&&"id"in a&&this._idmap.delete(a.id),this._map.delete(t),this}get(t){const a=t._zod.parent;if(a){const r={...this.get(a)??{}};delete r.id;const u={...r,...this._map.get(t)};return Object.keys(u).length?u:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function QA(){return new qA}(g0=globalThis).__zod_globalRegistry??(g0.__zod_globalRegistry=QA());const ju=globalThis.__zod_globalRegistry;function BA(e,t){return new e({type:"string",...Se(t)})}function ZA(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Se(t)})}function b0(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Se(t)})}function IA(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Se(t)})}function HA(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Se(t)})}function $A(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Se(t)})}function GA(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Se(t)})}function YA(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Se(t)})}function PA(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Se(t)})}function XA(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Se(t)})}function JA(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Se(t)})}function KA(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Se(t)})}function WA(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Se(t)})}function ez(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Se(t)})}function tz(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Se(t)})}function nz(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Se(t)})}function az(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Se(t)})}function iz(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Se(t)})}function rz(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Se(t)})}function lz(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Se(t)})}function uz(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Se(t)})}function oz(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Se(t)})}function sz(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Se(t)})}function cz(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Se(t)})}function fz(e,t){return new e({type:"string",format:"date",check:"string_format",...Se(t)})}function dz(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Se(t)})}function hz(e,t){return new e({type:"string",format:"duration",check:"string_format",...Se(t)})}function mz(e,t){return new e({type:"number",checks:[],...Se(t)})}function pz(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Se(t)})}function vz(e,t){return new e({type:"boolean",...Se(t)})}function yz(e){return new e({type:"unknown"})}function gz(e,t){return new e({type:"never",...Se(t)})}function _0(e,t){return new YS({check:"less_than",...Se(t),value:e,inclusive:!1})}function uh(e,t){return new YS({check:"less_than",...Se(t),value:e,inclusive:!0})}function S0(e,t){return new PS({check:"greater_than",...Se(t),value:e,inclusive:!1})}function oh(e,t){return new PS({check:"greater_than",...Se(t),value:e,inclusive:!0})}function k0(e,t){return new jR({check:"multiple_of",...Se(t),value:e})}function tk(e,t){return new FR({check:"max_length",...Se(t),maximum:e})}function Ys(e,t){return new UR({check:"min_length",...Se(t),minimum:e})}function nk(e,t){return new VR({check:"length_equals",...Se(t),length:e})}function bz(e,t){return new LR({check:"string_format",format:"regex",...Se(t),pattern:e})}function _z(e){return new qR({check:"string_format",format:"lowercase",...Se(e)})}function Sz(e){return new QR({check:"string_format",format:"uppercase",...Se(e)})}function kz(e,t){return new BR({check:"string_format",format:"includes",...Se(t),includes:e})}function Ez(e,t){return new ZR({check:"string_format",format:"starts_with",...Se(t),prefix:e})}function Nz(e,t){return new IR({check:"string_format",format:"ends_with",...Se(t),suffix:e})}function Nl(e){return new HR({check:"overwrite",tx:e})}function Tz(e){return Nl(t=>t.normalize(e))}function Oz(){return Nl(e=>e.trim())}function wz(){return Nl(e=>e.toLowerCase())}function Dz(){return Nl(e=>e.toUpperCase())}function xz(){return Nl(e=>Lx(e))}function Rz(e,t,a){return new e({type:"array",element:t,...Se(a)})}function Az(e,t,a){return new e({type:"custom",check:"custom",fn:t,...Se(a)})}function zz(e){const t=Cz(a=>(a.addIssue=r=>{if(typeof r=="string")a.issues.push(Xu(r,a.value,t._zod.def));else{const u=r;u.fatal&&(u.continue=!1),u.code??(u.code="custom"),u.input??(u.input=a.value),u.inst??(u.inst=t),u.continue??(u.continue=!t._zod.def.abort),a.issues.push(Xu(u))}},e(a.value,a)));return t}function Cz(e,t){const a=new dn({check:"custom",...Se(t)});return a._zod.check=e,a}function ak(e){let t=(e==null?void 0:e.target)??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:(e==null?void 0:e.metadata)??ju,target:t,unrepresentable:(e==null?void 0:e.unrepresentable)??"throw",override:(e==null?void 0:e.override)??(()=>{}),io:(e==null?void 0:e.io)??"output",counter:0,seen:new Map,cycles:(e==null?void 0:e.cycles)??"ref",reused:(e==null?void 0:e.reused)??"inline",external:(e==null?void 0:e.external)??void 0}}function xt(e,t,a={path:[],schemaPath:[]}){var v,y;var r;const u=e._zod.def,s=t.seen.get(e);if(s)return s.count++,a.schemaPath.includes(e)&&(s.cycle=a.path),s.schema;const c={schema:{},count:1,cycle:void 0,path:a.path};t.seen.set(e,c);const d=(y=(v=e._zod).toJSONSchema)==null?void 0:y.call(v);if(d)c.schema=d;else{const g={...a,schemaPath:[...a.schemaPath,e],path:a.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,c.schema,g);else{const N=c.schema,T=t.processors[u.type];if(!T)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${u.type}`);T(e,t,N,g)}const _=e._zod.parent;_&&(c.ref||(c.ref=_),xt(_,t,g),t.seen.get(_).isParent=!0)}const p=t.metadataRegistry.get(e);return p&&Object.assign(c.schema,p),t.io==="input"&&Xt(e)&&(delete c.schema.examples,delete c.schema.default),t.io==="input"&&c.schema._prefault&&((r=c.schema).default??(r.default=c.schema._prefault)),delete c.schema._prefault,t.seen.get(e).schema}function ik(e,t){var c,d,p,m;const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const v of e.seen.entries()){const y=(c=e.metadataRegistry.get(v[0]))==null?void 0:c.id;if(y){const g=r.get(y);if(g&&g!==v[0])throw new Error(`Duplicate schema id "${y}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(y,v[0])}}const u=v=>{var T;const y=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const D=(T=e.external.registry.get(v[0]))==null?void 0:T.id,E=e.external.uri??(w=>w);if(D)return{ref:E(D)};const O=v[1].defId??v[1].schema.id??`schema${e.counter++}`;return v[1].defId=O,{defId:O,ref:`${E("__shared")}#/${y}/${O}`}}if(v[1]===a)return{ref:"#"};const _=`#/${y}/`,N=v[1].schema.id??`__schema${e.counter++}`;return{defId:N,ref:_+N}},s=v=>{if(v[1].schema.$ref)return;const y=v[1],{ref:g,defId:_}=u(v);y.def={...y.schema},_&&(y.defId=_);const N=y.schema;for(const T in N)delete N[T];N.$ref=g};if(e.cycles==="throw")for(const v of e.seen.entries()){const y=v[1];if(y.cycle)throw new Error(`Cycle detected: #/${(d=y.cycle)==null?void 0:d.join("/")}/<root>
|
|
314
314
|
|
|
315
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const v of e.seen.entries()){const y=v[1];if(t===v[0]){s(v);continue}if(e.external){const _=(p=e.external.registry.get(v[0]))==null?void 0:p.id;if(t!==v[0]&&_){s(v);continue}}if((m=e.metadataRegistry.get(v[0]))==null?void 0:m.id){s(v);continue}if(y.cycle){s(v);continue}if(y.count>1&&e.reused==="ref"){s(v);continue}}}function rk(e,t){var c,d,p;const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=m=>{const v=e.seen.get(m);if(v.ref===null)return;const y=v.def??v.schema,g={...y},_=v.ref;if(v.ref=null,_){r(_);const T=e.seen.get(_),D=T.schema;if(D.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(y.allOf=y.allOf??[],y.allOf.push(D)):Object.assign(y,D),Object.assign(y,g),m._zod.parent===_)for(const O in y)O==="$ref"||O==="allOf"||O in g||delete y[O];if(D.$ref&&T.def)for(const O in y)O==="$ref"||O==="allOf"||O in T.def&&JSON.stringify(y[O])===JSON.stringify(T.def[O])&&delete y[O]}const N=m._zod.parent;if(N&&N!==_){r(N);const T=e.seen.get(N);if(T!=null&&T.schema.$ref&&(y.$ref=T.schema.$ref,T.def))for(const D in y)D==="$ref"||D==="allOf"||D in T.def&&JSON.stringify(y[D])===JSON.stringify(T.def[D])&&delete y[D]}e.override({zodSchema:m,jsonSchema:y,path:v.path??[]})};for(const m of[...e.seen.entries()].reverse())r(m[0]);const u={};if(e.target==="draft-2020-12"?u.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?u.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?u.$schema="http://json-schema.org/draft-04/schema#":e.target,(c=e.external)!=null&&c.uri){const m=(d=e.external.registry.get(t))==null?void 0:d.id;if(!m)throw new Error("Schema is missing an `id` property");u.$id=e.external.uri(m)}Object.assign(u,a.def??a.schema);const s=((p=e.external)==null?void 0:p.defs)??{};for(const m of e.seen.entries()){const v=m[1];v.def&&v.defId&&(s[v.defId]=v.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?u.$defs=s:u.definitions=s);try{const m=JSON.parse(JSON.stringify(u));return Object.defineProperty(m,"~standard",{value:{...t["~standard"],jsonSchema:{input:Ps(t,"input",e.processors),output:Ps(t,"output",e.processors)}},enumerable:!1,writable:!1}),m}catch{throw new Error("Error converting schema to JSON.")}}function Xt(e,t){const a=t??{seen:new Set};if(a.seen.has(e))return!1;a.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Xt(r.element,a);if(r.type==="set")return Xt(r.valueType,a);if(r.type==="lazy")return Xt(r.getter(),a);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Xt(r.innerType,a);if(r.type==="intersection")return Xt(r.left,a)||Xt(r.right,a);if(r.type==="record"||r.type==="map")return Xt(r.keyType,a)||Xt(r.valueType,a);if(r.type==="pipe")return Xt(r.in,a)||Xt(r.out,a);if(r.type==="object"){for(const u in r.shape)if(Xt(r.shape[u],a))return!0;return!1}if(r.type==="union"){for(const u of r.options)if(Xt(u,a))return!0;return!1}if(r.type==="tuple"){for(const u of r.items)if(Xt(u,a))return!0;return!!(r.rest&&Xt(r.rest,a))}return!1}const jz=(e,t={})=>a=>{const r=ak({...a,processors:t});return xt(e,r),ik(r,e),rk(r,e)},Ps=(e,t,a={})=>r=>{const{libraryOptions:u,target:s}=r??{},c=ak({...u??{},target:s,io:t,processors:a});return xt(e,c),ik(c,e),rk(c,e)},Mz={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Fz=(e,t,a,r)=>{const u=a;u.type="string";const{minimum:s,maximum:c,format:d,patterns:p,contentEncoding:m}=e._zod.bag;if(typeof s=="number"&&(u.minLength=s),typeof c=="number"&&(u.maxLength=c),d&&(u.format=Mz[d]??d,u.format===""&&delete u.format,d==="time"&&delete u.format),m&&(u.contentEncoding=m),p&&p.size>0){const v=[...p];v.length===1?u.pattern=v[0].source:v.length>1&&(u.allOf=[...v.map(y=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:y.source}))])}},Uz=(e,t,a,r)=>{const u=a,{minimum:s,maximum:c,format:d,multipleOf:p,exclusiveMaximum:m,exclusiveMinimum:v}=e._zod.bag;typeof d=="string"&&d.includes("int")?u.type="integer":u.type="number",typeof v=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(u.minimum=v,u.exclusiveMinimum=!0):u.exclusiveMinimum=v),typeof s=="number"&&(u.minimum=s,typeof v=="number"&&t.target!=="draft-04"&&(v>=s?delete u.minimum:delete u.exclusiveMinimum)),typeof m=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(u.maximum=m,u.exclusiveMaximum=!0):u.exclusiveMaximum=m),typeof c=="number"&&(u.maximum=c,typeof m=="number"&&t.target!=="draft-04"&&(m<=c?delete u.maximum:delete u.exclusiveMaximum)),typeof p=="number"&&(u.multipleOf=p)},Vz=(e,t,a,r)=>{a.type="boolean"},Lz=(e,t,a,r)=>{a.not={}},qz=(e,t,a,r)=>{},Qz=(e,t,a,r)=>{const u=e._zod.def,s=US(u.entries);s.every(c=>typeof c=="number")&&(a.type="number"),s.every(c=>typeof c=="string")&&(a.type="string"),a.enum=s},Bz=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Zz=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Iz=(e,t,a,r)=>{const u=a,s=e._zod.def,{minimum:c,maximum:d}=e._zod.bag;typeof c=="number"&&(u.minItems=c),typeof d=="number"&&(u.maxItems=d),u.type="array",u.items=xt(s.element,t,{...r,path:[...r.path,"items"]})},Hz=(e,t,a,r)=>{var m;const u=a,s=e._zod.def;u.type="object",u.properties={};const c=s.shape;for(const v in c)u.properties[v]=xt(c[v],t,{...r,path:[...r.path,"properties",v]});const d=new Set(Object.keys(c)),p=new Set([...d].filter(v=>{const y=s.shape[v]._zod;return t.io==="input"?y.optin===void 0:y.optout===void 0}));p.size>0&&(u.required=Array.from(p)),((m=s.catchall)==null?void 0:m._zod.def.type)==="never"?u.additionalProperties=!1:s.catchall?s.catchall&&(u.additionalProperties=xt(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(u.additionalProperties=!1)},$z=(e,t,a,r)=>{const u=e._zod.def,s=u.inclusive===!1,c=u.options.map((d,p)=>xt(d,t,{...r,path:[...r.path,s?"oneOf":"anyOf",p]}));s?a.oneOf=c:a.anyOf=c},Gz=(e,t,a,r)=>{const u=e._zod.def,s=xt(u.left,t,{...r,path:[...r.path,"allOf",0]}),c=xt(u.right,t,{...r,path:[...r.path,"allOf",1]}),d=m=>"allOf"in m&&Object.keys(m).length===1,p=[...d(s)?s.allOf:[s],...d(c)?c.allOf:[c]];a.allOf=p},Yz=(e,t,a,r)=>{const u=a,s=e._zod.def;u.type="object";const c=s.keyType,d=c._zod.bag,p=d==null?void 0:d.patterns;if(s.mode==="loose"&&p&&p.size>0){const v=xt(s.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});u.patternProperties={};for(const y of p)u.patternProperties[y.source]=v}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(u.propertyNames=xt(s.keyType,t,{...r,path:[...r.path,"propertyNames"]})),u.additionalProperties=xt(s.valueType,t,{...r,path:[...r.path,"additionalProperties"]});const m=c._zod.values;if(m){const v=[...m].filter(y=>typeof y=="string"||typeof y=="number");v.length>0&&(u.required=v)}},Pz=(e,t,a,r)=>{const u=e._zod.def,s=xt(u.innerType,t,r),c=t.seen.get(e);t.target==="openapi-3.0"?(c.ref=u.innerType,a.nullable=!0):a.anyOf=[s,{type:"null"}]},Xz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType},Jz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType,a.default=JSON.parse(JSON.stringify(u.defaultValue))},Kz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType,t.io==="input"&&(a._prefault=JSON.parse(JSON.stringify(u.defaultValue)))},Wz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType;let c;try{c=u.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}a.default=c},eC=(e,t,a,r)=>{const u=e._zod.def,s=t.io==="input"?u.in._zod.def.type==="transform"?u.out:u.in:u.out;xt(s,t,r);const c=t.seen.get(e);c.ref=s},tC=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType,a.readOnly=!0},lk=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType},nC=J("ZodISODateTime",(e,t)=>{rA.init(e,t),dt.init(e,t)});function aC(e){return cz(nC,e)}const iC=J("ZodISODate",(e,t)=>{lA.init(e,t),dt.init(e,t)});function rC(e){return fz(iC,e)}const lC=J("ZodISOTime",(e,t)=>{uA.init(e,t),dt.init(e,t)});function uC(e){return dz(lC,e)}const oC=J("ZodISODuration",(e,t)=>{oA.init(e,t),dt.init(e,t)});function sC(e){return hz(oC,e)}const cC=(e,t)=>{QS.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:a=>Kx(e,a)},flatten:{value:a=>Jx(e,a)},addIssue:{value:a=>{e.issues.push(a),e.message=JSON.stringify(e.issues,Zh,2)}},addIssues:{value:a=>{e.issues.push(...a),e.message=JSON.stringify(e.issues,Zh,2)}},isEmpty:{get(){return e.issues.length===0}}})},Un=J("ZodError",cC,{Parent:Error}),fC=Fm(Un),dC=Um(Un),hC=pc(Un),mC=vc(Un),pC=tR(Un),vC=nR(Un),yC=aR(Un),gC=iR(Un),bC=rR(Un),_C=lR(Un),SC=uR(Un),kC=oR(Un),gt=J("ZodType",(e,t)=>(yt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Ps(e,"input"),output:Ps(e,"output")}}),e.toJSONSchema=jz(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...a)=>e.clone(Ni(t,{checks:[...t.checks??[],...a.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(a,r)=>Ti(e,a,r),e.brand=()=>e,e.register=((a,r)=>(a.add(e,r),e)),e.parse=(a,r)=>fC(e,a,r,{callee:e.parse}),e.safeParse=(a,r)=>hC(e,a,r),e.parseAsync=async(a,r)=>dC(e,a,r,{callee:e.parseAsync}),e.safeParseAsync=async(a,r)=>mC(e,a,r),e.spa=e.safeParseAsync,e.encode=(a,r)=>pC(e,a,r),e.decode=(a,r)=>vC(e,a,r),e.encodeAsync=async(a,r)=>yC(e,a,r),e.decodeAsync=async(a,r)=>gC(e,a,r),e.safeEncode=(a,r)=>bC(e,a,r),e.safeDecode=(a,r)=>_C(e,a,r),e.safeEncodeAsync=async(a,r)=>SC(e,a,r),e.safeDecodeAsync=async(a,r)=>kC(e,a,r),e.refine=(a,r)=>e.check(pj(a,r)),e.superRefine=a=>e.check(vj(a)),e.overwrite=a=>e.check(Nl(a)),e.optional=()=>T0(e),e.exactOptional=()=>nj(e),e.nullable=()=>O0(e),e.nullish=()=>T0(O0(e)),e.nonoptional=a=>oj(e,a),e.array=()=>nr(e),e.or=a=>YC([e,a]),e.and=a=>XC(e,a),e.transform=a=>w0(e,ej(a)),e.default=a=>rj(e,a),e.prefault=a=>uj(e,a),e.catch=a=>cj(e,a),e.pipe=a=>w0(e,a),e.readonly=()=>hj(e),e.describe=a=>{const r=e.clone();return ju.add(r,{description:a}),r},Object.defineProperty(e,"description",{get(){var a;return(a=ju.get(e))==null?void 0:a.description},configurable:!0}),e.meta=(...a)=>{if(a.length===0)return ju.get(e);const r=e.clone();return ju.add(r,a[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=a=>a(e),e)),uk=J("_ZodString",(e,t)=>{Vm.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(r,u,s)=>Fz(e,r,u);const a=e._zod.bag;e.format=a.format??null,e.minLength=a.minimum??null,e.maxLength=a.maximum??null,e.regex=(...r)=>e.check(bz(...r)),e.includes=(...r)=>e.check(kz(...r)),e.startsWith=(...r)=>e.check(Ez(...r)),e.endsWith=(...r)=>e.check(Nz(...r)),e.min=(...r)=>e.check(Ys(...r)),e.max=(...r)=>e.check(tk(...r)),e.length=(...r)=>e.check(nk(...r)),e.nonempty=(...r)=>e.check(Ys(1,...r)),e.lowercase=r=>e.check(_z(r)),e.uppercase=r=>e.check(Sz(r)),e.trim=()=>e.check(Oz()),e.normalize=(...r)=>e.check(Tz(...r)),e.toLowerCase=()=>e.check(wz()),e.toUpperCase=()=>e.check(Dz()),e.slugify=()=>e.check(xz())}),EC=J("ZodString",(e,t)=>{Vm.init(e,t),uk.init(e,t),e.email=a=>e.check(ZA(NC,a)),e.url=a=>e.check(YA(TC,a)),e.jwt=a=>e.check(sz(qC,a)),e.emoji=a=>e.check(PA(OC,a)),e.guid=a=>e.check(b0(E0,a)),e.uuid=a=>e.check(IA(Ds,a)),e.uuidv4=a=>e.check(HA(Ds,a)),e.uuidv6=a=>e.check($A(Ds,a)),e.uuidv7=a=>e.check(GA(Ds,a)),e.nanoid=a=>e.check(XA(wC,a)),e.guid=a=>e.check(b0(E0,a)),e.cuid=a=>e.check(JA(DC,a)),e.cuid2=a=>e.check(KA(xC,a)),e.ulid=a=>e.check(WA(RC,a)),e.base64=a=>e.check(lz(UC,a)),e.base64url=a=>e.check(uz(VC,a)),e.xid=a=>e.check(ez(AC,a)),e.ksuid=a=>e.check(tz(zC,a)),e.ipv4=a=>e.check(nz(CC,a)),e.ipv6=a=>e.check(az(jC,a)),e.cidrv4=a=>e.check(iz(MC,a)),e.cidrv6=a=>e.check(rz(FC,a)),e.e164=a=>e.check(oz(LC,a)),e.datetime=a=>e.check(aC(a)),e.date=a=>e.check(rC(a)),e.time=a=>e.check(uC(a)),e.duration=a=>e.check(sC(a))});function Ae(e){return BA(EC,e)}const dt=J("ZodStringFormat",(e,t)=>{st.init(e,t),uk.init(e,t)}),NC=J("ZodEmail",(e,t)=>{XR.init(e,t),dt.init(e,t)}),E0=J("ZodGUID",(e,t)=>{YR.init(e,t),dt.init(e,t)}),Ds=J("ZodUUID",(e,t)=>{PR.init(e,t),dt.init(e,t)}),TC=J("ZodURL",(e,t)=>{JR.init(e,t),dt.init(e,t)}),OC=J("ZodEmoji",(e,t)=>{KR.init(e,t),dt.init(e,t)}),wC=J("ZodNanoID",(e,t)=>{WR.init(e,t),dt.init(e,t)}),DC=J("ZodCUID",(e,t)=>{eA.init(e,t),dt.init(e,t)}),xC=J("ZodCUID2",(e,t)=>{tA.init(e,t),dt.init(e,t)}),RC=J("ZodULID",(e,t)=>{nA.init(e,t),dt.init(e,t)}),AC=J("ZodXID",(e,t)=>{aA.init(e,t),dt.init(e,t)}),zC=J("ZodKSUID",(e,t)=>{iA.init(e,t),dt.init(e,t)}),CC=J("ZodIPv4",(e,t)=>{sA.init(e,t),dt.init(e,t)}),jC=J("ZodIPv6",(e,t)=>{cA.init(e,t),dt.init(e,t)}),MC=J("ZodCIDRv4",(e,t)=>{fA.init(e,t),dt.init(e,t)}),FC=J("ZodCIDRv6",(e,t)=>{dA.init(e,t),dt.init(e,t)}),UC=J("ZodBase64",(e,t)=>{hA.init(e,t),dt.init(e,t)}),VC=J("ZodBase64URL",(e,t)=>{pA.init(e,t),dt.init(e,t)}),LC=J("ZodE164",(e,t)=>{vA.init(e,t),dt.init(e,t)}),qC=J("ZodJWT",(e,t)=>{gA.init(e,t),dt.init(e,t)}),ok=J("ZodNumber",(e,t)=>{JS.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(r,u,s)=>Uz(e,r,u),e.gt=(r,u)=>e.check(S0(r,u)),e.gte=(r,u)=>e.check(oh(r,u)),e.min=(r,u)=>e.check(oh(r,u)),e.lt=(r,u)=>e.check(_0(r,u)),e.lte=(r,u)=>e.check(uh(r,u)),e.max=(r,u)=>e.check(uh(r,u)),e.int=r=>e.check(N0(r)),e.safe=r=>e.check(N0(r)),e.positive=r=>e.check(S0(0,r)),e.nonnegative=r=>e.check(oh(0,r)),e.negative=r=>e.check(_0(0,r)),e.nonpositive=r=>e.check(uh(0,r)),e.multipleOf=(r,u)=>e.check(k0(r,u)),e.step=(r,u)=>e.check(k0(r,u)),e.finite=()=>e;const a=e._zod.bag;e.minValue=Math.max(a.minimum??Number.NEGATIVE_INFINITY,a.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(a.maximum??Number.POSITIVE_INFINITY,a.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(a.format??"").includes("int")||Number.isSafeInteger(a.multipleOf??.5),e.isFinite=!0,e.format=a.format??null});function It(e){return mz(ok,e)}const QC=J("ZodNumberFormat",(e,t)=>{bA.init(e,t),ok.init(e,t)});function N0(e){return pz(QC,e)}const BC=J("ZodBoolean",(e,t)=>{_A.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Vz(e,a,r)});function Ji(e){return vz(BC,e)}const ZC=J("ZodUnknown",(e,t)=>{SA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>qz()});function Hh(){return yz(ZC)}const IC=J("ZodNever",(e,t)=>{kA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Lz(e,a,r)});function HC(e){return gz(IC,e)}const $C=J("ZodArray",(e,t)=>{EA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Iz(e,a,r,u),e.element=t.element,e.min=(a,r)=>e.check(Ys(a,r)),e.nonempty=a=>e.check(Ys(1,a)),e.max=(a,r)=>e.check(tk(a,r)),e.length=(a,r)=>e.check(nk(a,r)),e.unwrap=()=>e.element});function nr(e,t){return Rz($C,e,t)}const sk=J("ZodObject",(e,t)=>{TA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Hz(e,a,r,u),Pe(e,"shape",()=>t.shape),e.keyof=()=>Tl(Object.keys(e._zod.def.shape)),e.catchall=a=>e.clone({...e._zod.def,catchall:a}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Hh()}),e.loose=()=>e.clone({...e._zod.def,catchall:Hh()}),e.strict=()=>e.clone({...e._zod.def,catchall:HC()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=a=>$x(e,a),e.safeExtend=a=>Gx(e,a),e.merge=a=>Yx(e,a),e.pick=a=>Ix(e,a),e.omit=a=>Hx(e,a),e.partial=(...a)=>Px(ck,e,a[0]),e.required=(...a)=>Xx(fk,e,a[0])});function Va(e,t){const a={type:"object",shape:e??{},...Se(t)};return new sk(a)}function za(e,t){return new sk({type:"object",shape:e,catchall:Hh(),...Se(t)})}const GC=J("ZodUnion",(e,t)=>{OA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>$z(e,a,r,u),e.options=t.options});function YC(e,t){return new GC({type:"union",options:e,...Se(t)})}const PC=J("ZodIntersection",(e,t)=>{wA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Gz(e,a,r,u)});function XC(e,t){return new PC({type:"intersection",left:e,right:t})}const JC=J("ZodRecord",(e,t)=>{DA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Yz(e,a,r,u),e.keyType=t.keyType,e.valueType=t.valueType});function KC(e,t,a){return new JC({type:"record",keyType:e,valueType:t,...Se(a)})}const $h=J("ZodEnum",(e,t)=>{xA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(r,u,s)=>Qz(e,r,u),e.enum=t.entries,e.options=Object.values(t.entries);const a=new Set(Object.keys(t.entries));e.extract=(r,u)=>{const s={};for(const c of r)if(a.has(c))s[c]=t.entries[c];else throw new Error(`Key ${c} not found in enum`);return new $h({...t,checks:[],...Se(u),entries:s})},e.exclude=(r,u)=>{const s={...t.entries};for(const c of r)if(a.has(c))delete s[c];else throw new Error(`Key ${c} not found in enum`);return new $h({...t,checks:[],...Se(u),entries:s})}});function Tl(e,t){const a=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new $h({type:"enum",entries:a,...Se(t)})}const WC=J("ZodTransform",(e,t)=>{RA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Zz(e,a),e._zod.parse=(a,r)=>{if(r.direction==="backward")throw new MS(e.constructor.name);a.addIssue=s=>{if(typeof s=="string")a.issues.push(Xu(s,a.value,t));else{const c=s;c.fatal&&(c.continue=!1),c.code??(c.code="custom"),c.input??(c.input=a.value),c.inst??(c.inst=e),a.issues.push(Xu(c))}};const u=t.transform(a.value,a);return u instanceof Promise?u.then(s=>(a.value=s,a)):(a.value=u,a)}});function ej(e){return new WC({type:"transform",transform:e})}const ck=J("ZodOptional",(e,t)=>{ek.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>lk(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function T0(e){return new ck({type:"optional",innerType:e})}const tj=J("ZodExactOptional",(e,t)=>{AA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>lk(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function nj(e){return new tj({type:"optional",innerType:e})}const aj=J("ZodNullable",(e,t)=>{zA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Pz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function O0(e){return new aj({type:"nullable",innerType:e})}const ij=J("ZodDefault",(e,t)=>{CA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Jz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function rj(e,t){return new ij({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():LS(t)}})}const lj=J("ZodPrefault",(e,t)=>{jA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Kz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function uj(e,t){return new lj({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():LS(t)}})}const fk=J("ZodNonOptional",(e,t)=>{MA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Xz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function oj(e,t){return new fk({type:"nonoptional",innerType:e,...Se(t)})}const sj=J("ZodCatch",(e,t)=>{FA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Wz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function cj(e,t){return new sj({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const fj=J("ZodPipe",(e,t)=>{UA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>eC(e,a,r,u),e.in=t.in,e.out=t.out});function w0(e,t){return new fj({type:"pipe",in:e,out:t})}const dj=J("ZodReadonly",(e,t)=>{VA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>tC(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function hj(e){return new dj({type:"readonly",innerType:e})}const mj=J("ZodCustom",(e,t)=>{LA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Bz(e,a)});function pj(e,t={}){return Az(mj,e,t)}function vj(e){return zz(e)}const yj=Va({prUrl:Ae(),githubRepo:Ae(),prNumber:It(),prTitle:Ae(),authorLogin:Ae().nullish(),decision:Ae(),effectiveDecision:Ae(),decisionLabel:Ae(),detail:Ae().nullish(),kanbanIssueId:Ae().nullish()}),gj=Va({id:Ae(),startedAt:Ae(),startedAtLabel:Ae(),finishedAt:Ae().nullable(),trigger:Ae(),phase:Ae(),phaseLabel:Ae(),abortReason:Ae().nullable(),errorMessage:Ae().nullable(),candidatesCount:It().nullish(),issuesCreated:It().nullish(),skippedUnmapped:It().nullish(),skippedBot:It().nullish(),skippedBoardLimit:It().nullish(),skippedAlreadyTracked:It().nullish(),skippedLinkedExisting:It().nullish(),skippedTriage:It().nullish(),skippedDeclined:It().nullish(),itemCount:It(),items:nr(yj)}),bj=Va({runs:nr(gj)}),_j=Va({id:Ae(),label:Ae(),href:Ae()}),Sj=Va({entries:nr(_j)}),kj=Tl(["no_default_kanban_board","no_mappings"]),Ej=Va({complete:Ji(),reason:kj.nullish(),mappingCount:It(),sourceType:Ae(),destinationType:Ae(),vibeKanbanBoardActive:Ji(),hasRouting:Ji()}),Nj=Va({text:Ae(),linkHref:Ae().optional(),linkLabel:Ae().optional()}),Tj=KC(Ae(),Ae());Va({evaluation:Ej,checklist:nr(Nj),reasonMessages:Tj});const Oj=["ok","error","unknown"],wj=["ok","error"],Dj=["ok","degraded","error","unknown"],xj=["idle","running","skipped","error"],Rj=Tl(Oj),Aj=Tl(wj),zj=Tl(Dj),Cj=Tl(xj),jj=za({candidates_count:It().nullable().optional(),skipped_unmapped:It().nullable().optional(),issues_created:It().nullable().optional()}),Mj=Va({timestamp:Ae(),pending_triage_count:It().int().nonnegative().nullish(),gh:za({state:Rj,message:Ae().nullish()}),database:za({state:Aj,message:Ae().nullish()}),setup:za({complete:Ji(),mappingCount:It(),reason:Ae().nullish()}),configuration:za({source_type:Ae(),destination_type:Ae(),vibe_kanban_board_active:Ji()}),destinations:nr(za({id:Ae(),state:zj})),scouts:nr(za({id:Ae(),state:Cj,last_poll:jj})),manual_sync:za({canRun:Ji(),reason:Ae().nullish(),cooldownUntil:Ae().nullish()}),scheduled_sync:za({enabled:Ji()})}),Fj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"AcceptTriageMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"prUrl"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"acceptTriage"},arguments:[{kind:"Argument",name:{kind:"Name",value:"prUrl"},value:{kind:"Variable",name:{kind:"Name",value:"prUrl"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]},Uj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"subscription",name:{kind:"Name",value:"ActivityEventsSubscription"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"activityEvents"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"invalidate"}}]}}]}}]},Gh={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"ActivityFeedQuery"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"first"}},type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"after"}},type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"activityFeed"},arguments:[{kind:"Argument",name:{kind:"Name",value:"first"},value:{kind:"Variable",name:{kind:"Name",value:"first"}}},{kind:"Argument",name:{kind:"Name",value:"after"},value:{kind:"Variable",name:{kind:"Name",value:"after"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"edges"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"cursor"}},{kind:"Field",name:{kind:"Name",value:"node"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"startedAt"}},{kind:"Field",name:{kind:"Name",value:"startedAtLabel"}},{kind:"Field",name:{kind:"Name",value:"finishedAt"}},{kind:"Field",name:{kind:"Name",value:"trigger"}},{kind:"Field",name:{kind:"Name",value:"phase"}},{kind:"Field",name:{kind:"Name",value:"phaseLabel"}},{kind:"Field",name:{kind:"Name",value:"abortReason"}},{kind:"Field",name:{kind:"Name",value:"errorMessage"}},{kind:"Field",name:{kind:"Name",value:"candidatesCount"}},{kind:"Field",name:{kind:"Name",value:"issuesCreated"}},{kind:"Field",name:{kind:"Name",value:"skippedUnmapped"}},{kind:"Field",name:{kind:"Name",value:"skippedBot"}},{kind:"Field",name:{kind:"Name",value:"skippedBoardLimit"}},{kind:"Field",name:{kind:"Name",value:"skippedAlreadyTracked"}},{kind:"Field",name:{kind:"Name",value:"skippedLinkedExisting"}},{kind:"Field",name:{kind:"Name",value:"skippedTriage"}},{kind:"Field",name:{kind:"Name",value:"skippedDeclined"}},{kind:"Field",name:{kind:"Name",value:"itemCount"}},{kind:"Field",name:{kind:"Name",value:"items"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]}},{kind:"Field",name:{kind:"Name",value:"pageInfo"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"hasNextPage"}},{kind:"Field",name:{kind:"Name",value:"endCursor"}}]}}]}}]}}]},sh={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"DashboardSetupQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"dashboardSetup"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"evaluation"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"complete"}},{kind:"Field",name:{kind:"Name",value:"reason"}},{kind:"Field",name:{kind:"Name",value:"mappingCount"}},{kind:"Field",name:{kind:"Name",value:"sourceType"}},{kind:"Field",name:{kind:"Name",value:"destinationType"}},{kind:"Field",name:{kind:"Name",value:"vibeKanbanBoardActive"}},{kind:"Field",name:{kind:"Name",value:"hasRouting"}}]}},{kind:"Field",name:{kind:"Name",value:"checklist"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"text"}},{kind:"Field",name:{kind:"Name",value:"linkHref"}},{kind:"Field",name:{kind:"Name",value:"linkLabel"}}]}},{kind:"Field",name:{kind:"Name",value:"reasonMessages"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"code"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}}]}}]}}]},Vj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"DeclineTriageMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"prUrl"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"declineTriage"},arguments:[{kind:"Argument",name:{kind:"Name",value:"prUrl"},value:{kind:"Variable",name:{kind:"Name",value:"prUrl"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]},Lj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"DeleteMappingMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"id"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"deleteMapping"},arguments:[{kind:"Argument",name:{kind:"Name",value:"id"},value:{kind:"Variable",name:{kind:"Name",value:"id"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"ok"}}]}}]}}]},dk={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"EffectiveSettingsQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"effectiveSettings"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},qj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"GithubFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"githubFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"disabled"}},{kind:"Field",name:{kind:"Name",value:"fields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}}]}}]}}]}}]},hk={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"IntegrationNavQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"integrationNav"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"entries"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"href"}}]}}]}}]}}]},el={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"MappingsQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"mappings"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"vibeKanbanRepoId"}},{kind:"Field",name:{kind:"Name",value:"createdAt"}},{kind:"Field",name:{kind:"Name",value:"updatedAt"}}]}}]}}]},Qj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"ReconsiderTriageMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"prUrl"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"reconsiderTriage"},arguments:[{kind:"Argument",name:{kind:"Name",value:"prUrl"},value:{kind:"Variable",name:{kind:"Name",value:"prUrl"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]},mk={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"ReinitIntegrationMutation"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"reinitIntegration"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"ok"}},{kind:"Field",name:{kind:"Name",value:"database"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"source"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"destination"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}}]}}]}}]},Bj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"TriggerSyncMutation"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"triggerSync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"ok"}}]}}]}}]},Zj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpdateDestinationSettings"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpdateDestinationSettingsInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"updateDestinationSettings"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},Ij={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpdateSettingsMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpdateSettingsInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"updateSettings"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},Hj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpdateSourceSettings"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpdateSourceSettingsInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"updateSourceSettings"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},$j={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpsertMappingMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpsertMappingInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"upsertMapping"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"vibeKanbanRepoId"}}]}}]}}]},Gj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanOrganizations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanOrganizations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}}]}}]},Yj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanProjects"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"organizationId"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanProjects"},arguments:[{kind:"Argument",name:{kind:"Name",value:"organizationId"},value:{kind:"Variable",name:{kind:"Name",value:"organizationId"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}}]}}]},Pj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanRepos"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanRepos"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}}]}}]},Xj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanUiState"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanUiState"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"saved"}},{kind:"Field",name:{kind:"Name",value:"error"}},{kind:"Field",name:{kind:"Name",value:"vkBoardPicker"}},{kind:"Field",name:{kind:"Name",value:"boardOrg"}},{kind:"Field",name:{kind:"Name",value:"boardProj"}},{kind:"Field",name:{kind:"Name",value:"kanbanDoneStatus"}},{kind:"Field",name:{kind:"Name",value:"vkExecutor"}},{kind:"Field",name:{kind:"Name",value:"executorOptions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"label"}}]}},{kind:"Field",name:{kind:"Name",value:"vkLabels"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"default_organization_id"}},{kind:"Field",name:{kind:"Name",value:"vk_workspace_executor"}},{kind:"Field",name:{kind:"Name",value:"kanban_done_status"}}]}},{kind:"Field",name:{kind:"Name",value:"orgError"}}]}}]}}]},Wi={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"StatusQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"status"},selectionSet:{kind:"SelectionSet",selections:[{kind:"FragmentSpread",name:{kind:"Name",value:"FullStatusSnapshot"}}]}}]}},{kind:"FragmentDefinition",name:{kind:"Name",value:"FullStatusSnapshot"},typeCondition:{kind:"NamedType",name:{kind:"Name",value:"StatusSnapshot"}},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"timestamp"}},{kind:"Field",name:{kind:"Name",value:"pending_triage_count"}},{kind:"Field",name:{kind:"Name",value:"gh"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"database"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"setup"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"complete"}},{kind:"Field",name:{kind:"Name",value:"mappingCount"}},{kind:"Field",name:{kind:"Name",value:"reason"}}]}},{kind:"Field",name:{kind:"Name",value:"configuration"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"source_type"}},{kind:"Field",name:{kind:"Name",value:"destination_type"}},{kind:"Field",name:{kind:"Name",value:"vibe_kanban_board_active"}}]}},{kind:"Field",name:{kind:"Name",value:"destinations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastOkAt"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"scouts"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastPollAt"}},{kind:"Field",name:{kind:"Name",value:"nextPollAt"}},{kind:"Field",name:{kind:"Name",value:"lastError"}},{kind:"Field",name:{kind:"Name",value:"skipReason"}},{kind:"Field",name:{kind:"Name",value:"last_poll"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"candidates_count"}},{kind:"Field",name:{kind:"Name",value:"skipped_unmapped"}},{kind:"Field",name:{kind:"Name",value:"issues_created"}}]}}]}},{kind:"Field",name:{kind:"Name",value:"manual_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"canRun"}},{kind:"Field",name:{kind:"Name",value:"reason"}},{kind:"Field",name:{kind:"Name",value:"cooldownUntil"}}]}},{kind:"Field",name:{kind:"Name",value:"scheduled_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}}]}}]}}]},Jj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"subscription",name:{kind:"Name",value:"StatusUpdatedSubscription"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"statusUpdated"},selectionSet:{kind:"SelectionSet",selections:[{kind:"FragmentSpread",name:{kind:"Name",value:"FullStatusSnapshot"}}]}}]}},{kind:"FragmentDefinition",name:{kind:"Name",value:"FullStatusSnapshot"},typeCondition:{kind:"NamedType",name:{kind:"Name",value:"StatusSnapshot"}},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"timestamp"}},{kind:"Field",name:{kind:"Name",value:"pending_triage_count"}},{kind:"Field",name:{kind:"Name",value:"gh"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"database"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"setup"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"complete"}},{kind:"Field",name:{kind:"Name",value:"mappingCount"}},{kind:"Field",name:{kind:"Name",value:"reason"}}]}},{kind:"Field",name:{kind:"Name",value:"configuration"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"source_type"}},{kind:"Field",name:{kind:"Name",value:"destination_type"}},{kind:"Field",name:{kind:"Name",value:"vibe_kanban_board_active"}}]}},{kind:"Field",name:{kind:"Name",value:"destinations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastOkAt"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"scouts"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastPollAt"}},{kind:"Field",name:{kind:"Name",value:"nextPollAt"}},{kind:"Field",name:{kind:"Name",value:"lastError"}},{kind:"Field",name:{kind:"Name",value:"skipReason"}},{kind:"Field",name:{kind:"Name",value:"last_poll"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"candidates_count"}},{kind:"Field",name:{kind:"Name",value:"skipped_unmapped"}},{kind:"Field",name:{kind:"Name",value:"issues_created"}}]}}]}},{kind:"Field",name:{kind:"Name",value:"manual_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"canRun"}},{kind:"Field",name:{kind:"Name",value:"reason"}},{kind:"Field",name:{kind:"Name",value:"cooldownUntil"}}]}},{kind:"Field",name:{kind:"Name",value:"scheduled_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}}]}}]}}]};function Kj(){var d,p,m;const e=kn(hk,{fetchPolicy:"cache-and-network"}),t=kn(Wi,{fetchPolicy:"cache-first"});oS(Jj,{onData:({data:v,client:y})=>{var _;const g=(_=v.data)==null?void 0:_.statusUpdated;g&&y.writeQuery({query:Wi,data:{status:g}})}});const a=((d=e.data)==null?void 0:d.integrationNav.entries)??[],r=Sj.safeParse({entries:a}),u=r.success?r.data.entries:a,s=j.useMemo(()=>{var y,g;const v=(g=(y=t.data)==null?void 0:y.status)==null?void 0:g.pending_triage_count;return typeof v=="number"&&Number.isFinite(v)?v:0},[(m=(p=t.data)==null?void 0:p.status)==null?void 0:m.pending_triage_count]),c=j.useRef("");return j.useEffect(()=>{typeof Notification>"u"||Notification.permission==="default"&&Notification.requestPermission()},[]),j.useEffect(()=>{if(typeof Notification>"u"||Notification.permission!=="granted")return;if(s<=0){c.current="";return}const v=String(s);c.current!==v&&(c.current=v,new Notification("vibe-squire: PRs need triage",{body:`${s} PR(s) awaiting your review or decline decision`,icon:"/favicon.svg",tag:"vs-triage"}))},[s]),S.jsxs("div",{className:"shell",children:[S.jsxs("aside",{className:"nav-rail",children:[S.jsxs("div",{className:"brand",children:[S.jsx("span",{className:"brand-mark",children:"◇"}),S.jsx("span",{className:"brand-text",children:"vibe-squire"})]}),S.jsxs("nav",{className:"nav",children:[S.jsx(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,end:!0,to:"/dashboard",children:"Dashboard"}),S.jsxs(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,to:"/activity",children:["Activity",s>0?S.jsx("span",{className:"nav-badge","aria-label":`${s} pending triage`,children:s}):null]}),S.jsx(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,to:"/settings",children:"General"}),S.jsx("div",{className:"nav-section-heading",children:"Sync adapters"}),e.loading&&!e.data?S.jsx("p",{className:"muted nav-loading",children:"Loading…"}):null,u.map(v=>S.jsx(Wr,{className:({isActive:y})=>`nav-link${y?" active":""}`,to:v.href,children:v.label},v.id)),S.jsx(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,to:"/mappings",children:"Mappings"})]})]}),S.jsx("main",{className:"main",children:S.jsx(ax,{})})]})}function fn(e){return e instanceof Error&&e.message.trim().length>0?e.message:"Unknown error"}function Wj(e){if(!e.trim())return null;try{const t=JSON.parse(e);if(t.reason==="cooldown"&&typeof t.cooldownUntil=="string"&&t.cooldownUntil.length>0)return`Cooldown active until ${t.cooldownUntil}`;if(typeof t.message=="string"&&t.message.length>0)return t.message;if(typeof t.reason=="string"&&t.reason.length>0)return t.reason;if(typeof t.error=="string"&&t.error.length>0)return t.error}catch{return null}return null}function Yh(e){if(e instanceof cn){const t=e.graphQLErrors[0];if(t!=null&&t.message){const a=Wj(t.message);return a||t.message}}return fn(e)}function pk(e){if(e.database.state==="error")return!0;const{state:t}=e.gh;if(t&&t!=="ok")return!0;const a=e.destinations[0];if(a&&(a.state==="degraded"||a.state==="error"))return!0;const r=e.scouts[0];return(r==null?void 0:r.state)==="error"}const eM={first:40},tM=[{query:Wi},{query:Gh,variables:eM},{query:dk},{query:el},{query:hk}];function Lm(){const e=kn(Wi,{fetchPolicy:"cache-first"}),t=(()=>{var d;const s=(d=e.data)==null?void 0:d.status;if(!s)return null;const c=Mj.safeParse(s);return c.success?c.data:null})(),[a,{loading:r}]=Gn(mk,{refetchQueries:[...tM],awaitRefetchQueries:!0,onCompleted:()=>{je.success("Reinit completed.")},onError:s=>{je.error(`Reinit failed: ${Yh(s)}`)}});return(t?pk(t):!1)?S.jsx("div",{className:"actions-row operator-head-actions",children:S.jsx("button",{type:"button",className:"btn ghost btn-sm",disabled:r,onClick:()=>{confirm("Run soft reinit? This refreshes settings, rescans checks, clears scout backoff, and reschedules sync.")&&a()},children:r?"Reinit…":"Reinit"})}):null}function nM({prUrl:e,mode:t,onAccept:a,onDecline:r,onReconsider:u}){return S.jsx("div",{className:"triage-actions",children:t==="pending"?S.jsxs(S.Fragment,{children:[S.jsx("button",{type:"button",className:"btn btn-sm primary",onClick:()=>a(e),children:"Review"}),S.jsx("button",{type:"button",className:"btn btn-sm ghost",onClick:()=>r(e),children:"Decline"})]}):S.jsx("button",{type:"button",className:"btn btn-sm ghost",onClick:()=>u(e),children:"Reconsider"})})}function Mu(e){return e==="skipped_triage"||e==="skipped_board_limit"||e==="skipped_declined"}function D0(e){return Mu(e)?0:e==="skipped_declined"?1:2}function Ra(e){return e==null?"—":String(e)}function aM({run:e,highlight:t=!1,onAccept:a,onDecline:r,onReconsider:u}){const s=j.useMemo(()=>[...e.items].sort((g,_)=>{const N=D0(g.effectiveDecision),T=D0(_.effectiveDecision);return N!==T?N-T:g.prNumber-_.prNumber}),[e.items]),c=s.some(g=>Mu(g.effectiveDecision)),d=t&&c,[p,m]=j.useState(d);j.useEffect(()=>{d&&m(!0)},[d,e.id]);const v=e.trigger==="manual"?"manual":"scheduled";let y=null;return e.phase==="running"?y=`Sync in progress... ${e.itemCount} PR row(s) recorded so far.`:e.phase==="completed"?y=`${Ra(e.candidatesCount)} PR(s) seen · ${Ra(e.issuesCreated)} created · ${Ra(e.skippedUnmapped)} unmapped · ${Ra(e.skippedBot)} bot · ${Ra(e.skippedBoardLimit)} board limit · ${Ra(e.skippedAlreadyTracked)} already tracked · ${Ra(e.skippedLinkedExisting)} linked existing${e.skippedTriage?` · ${Ra(e.skippedTriage)} pending triage`:""}${e.skippedDeclined?` · ${Ra(e.skippedDeclined)} declined`:""}`:e.phase==="aborted"&&(y=e.abortReason??"Aborted"),S.jsxs("section",{className:"card activity-run",children:[S.jsxs("div",{className:"activity-run-summary",children:[S.jsxs("div",{className:"activity-run-meta",children:[S.jsx("span",{className:"activity-run-time mono",children:e.startedAtLabel}),S.jsx("span",{className:"activity-pill",children:v}),S.jsx("span",{className:`activity-pill activity-pill-phase-${e.phase}`,children:e.phaseLabel})]}),y?S.jsx("p",{className:"muted activity-run-counts",children:y}):null,e.phase==="failed"&&e.errorMessage?S.jsx("p",{className:"banner banner-error activity-run-msg",children:e.errorMessage}):null]}),s.length>0?S.jsxs("details",{className:"activity-details",open:p,onToggle:g=>m(g.currentTarget.open),children:[S.jsxs("summary",{className:"activity-details-summary",children:["PR details (",s.length,")",d?S.jsxs(S.Fragment,{children:[" ","· ",S.jsx("span",{className:"triage-attention-hint",children:"needs attention"})]}):null]}),S.jsx("div",{className:"table-wrap activity-items-wrap",children:S.jsxs("table",{className:"data-table activity-items-table",children:[S.jsx("thead",{children:S.jsxs("tr",{children:[S.jsx("th",{children:"PR"}),S.jsx("th",{children:"Repo"}),S.jsx("th",{children:"Outcome"}),S.jsx("th",{children:"Detail"})]})}),S.jsx("tbody",{children:s.map(g=>{const _=Mu(g.effectiveDecision)?"triage-pending-row":g.effectiveDecision==="skipped_declined"?"triage-declined-row":"";return S.jsxs("tr",{className:_,children:[S.jsxs("td",{children:[S.jsxs("a",{href:g.prUrl,target:"_blank",rel:"noreferrer",children:["#",g.prNumber]}),S.jsx("div",{className:"activity-pr-title muted",children:g.prTitle}),g.authorLogin?S.jsxs("div",{className:"muted",children:["@",g.authorLogin]}):null]}),S.jsx("td",{className:"wrap",children:S.jsx("code",{children:g.githubRepo})}),S.jsxs("td",{children:[g.decisionLabel,(Mu(g.effectiveDecision)||g.effectiveDecision==="skipped_declined")&&S.jsx(nM,{prUrl:g.prUrl,mode:Mu(g.effectiveDecision)?"pending":"declined",onAccept:a,onDecline:r,onReconsider:u})]}),S.jsxs("td",{className:"wrap muted",children:[g.kanbanIssueId?S.jsxs(S.Fragment,{children:[S.jsxs("code",{children:["issue ",g.kanbanIssueId]}),g.detail?" · ":""]}):null,g.detail??"—"]})]},g.prUrl)})})]})})]}):S.jsx("p",{className:"muted",children:"No items in this run."})]})}function iM(e){return e==="skipped_triage"||e==="skipped_board_limit"}function rM({initialLoading:e,errorMessage:t,runs:a,hasNextPage:r,loadMoreBusy:u,onLoadMore:s,onAccept:c,onDecline:d,onReconsider:p}){const m=j.useMemo(()=>a.find(g=>g.phase==="completed")??null,[a]),v=(m==null?void 0:m.id)??null,y=j.useMemo(()=>{if(!m)return 0;const g=new Set;for(const _ of m.items)iM(_.effectiveDecision)&&g.add(_.prUrl);return g.size},[m]);return S.jsxs(S.Fragment,{children:[e?S.jsx("p",{children:"Loading…"}):null,t?S.jsx("p",{className:"text-danger",children:t}):null,y>0?S.jsxs("div",{className:"banner-triage-attention",children:[S.jsxs("strong",{children:[y," PR(s)"]})," awaiting your review or decline decision."]}):null,a.map(g=>S.jsx(aM,{run:g,highlight:g.id===v,onAccept:c,onDecline:d,onReconsider:p},g.id)),r?S.jsx("button",{type:"button",className:"btn ghost",onClick:s,disabled:u,children:u?"Loading…":"Load more"}):null]})}function lM({titleRow:e,intro:t,feed:a}){return S.jsxs("div",{className:"stack",children:[e,t,a]})}function uM(){var g,_,N,T,D;const e=kn(Gh,{variables:{first:40},fetchPolicy:"cache-and-network"});oS(Uj,{onData:({client:E})=>{E.refetchQueries({include:[Gh]})}});const t=j.useMemo(()=>{var O;return(((O=e.data)==null?void 0:O.activityFeed.edges)??[]).map(w=>w.node)},[(g=e.data)==null?void 0:g.activityFeed.edges]),a=j.useMemo(()=>{try{return bj.parse({runs:t}).runs}catch{return[]}},[t]),r=j.useMemo(()=>{const E=new Map;for(const O of a)for(const w of O.items)E.has(w.prUrl)||E.set(w.prUrl,w);return E},[a]),u=j.useCallback((E,O)=>{const w=r.get(E);return{__typename:"ActivityItemGql",id:E,prUrl:E,githubRepo:(w==null?void 0:w.githubRepo)??"(updating)",prNumber:(w==null?void 0:w.prNumber)??0,prTitle:(w==null?void 0:w.prTitle)??"(updating)",authorLogin:(w==null?void 0:w.authorLogin)??null,decision:(w==null?void 0:w.decision)??"skipped_triage",effectiveDecision:O.effectiveDecision,decisionLabel:O.decisionLabel,detail:(w==null?void 0:w.detail)??null,kanbanIssueId:O.kanbanIssueId}},[r]),[s]=Gn(Fj,{optimisticResponse:E=>({__typename:"Mutation",acceptTriage:u(E.prUrl,{effectiveDecision:"linked_existing",decisionLabel:"Linked existing issue",kanbanIssueId:"…"})}),onError:E=>je.error(fn(E))}),[c]=Gn(Vj,{optimisticResponse:E=>({__typename:"Mutation",declineTriage:u(E.prUrl,{effectiveDecision:"skipped_declined",decisionLabel:"Declined",kanbanIssueId:null})}),onError:E=>je.error(fn(E))}),[d]=Gn(Qj,{optimisticResponse:E=>({__typename:"Mutation",reconsiderTriage:u(E.prUrl,{effectiveDecision:"skipped_triage",decisionLabel:"Pending triage",kanbanIssueId:null})}),onError:E=>je.error(fn(E))}),p=j.useCallback(()=>{var O,w,L,M,I,$;const E=(L=(w=(O=e.data)==null?void 0:O.activityFeed)==null?void 0:w.pageInfo)==null?void 0:L.endCursor;!E||!(($=(I=(M=e.data)==null?void 0:M.activityFeed)==null?void 0:I.pageInfo)!=null&&$.hasNextPage)||e.fetchMore({variables:{first:40,after:E}})},[e]),m=j.useCallback(E=>{s({variables:{prUrl:E}})},[s]),v=j.useCallback(E=>{c({variables:{prUrl:E}})},[c]),y=j.useCallback(E=>{d({variables:{prUrl:E}})},[d]);return S.jsx(lM,{titleRow:S.jsxs("div",{className:"page-title-row",children:[S.jsx("h1",{children:"Activity"}),S.jsx(Lm,{})]}),intro:S.jsx("p",{className:"muted",children:"Per-sync poll runs and item decisions."}),feed:S.jsx(rM,{initialLoading:!!(e.loading&&!e.data),errorMessage:((_=e.error)==null?void 0:_.message)??null,runs:a,hasNextPage:!!((D=(T=(N=e.data)==null?void 0:N.activityFeed)==null?void 0:T.pageInfo)!=null&&D.hasNextPage),loadMoreBusy:e.loading,onLoadMore:p,onAccept:m,onDecline:v,onReconsider:y})})}function oM(e){return ut(e)&&"code"in e&&"reason"in e}function sM(e){var t;return ut(e)&&((t=e.target)===null||t===void 0?void 0:t.readyState)===WebSocket.CLOSED}var cM=(function(e){Xn(t,e);function t(a){var r=e.call(this)||this;return r.client=a,r}return t.prototype.request=function(a){var r=this;return new et(function(u){return r.client.subscribe(C(C({},a),{query:pi(a.query)}),{next:u.next.bind(u),complete:u.complete.bind(u),error:function(s){if(s instanceof Error)return u.error(s);var c=oM(s);return c||sM(s)?u.error(new Error("Socket closed".concat(c?" with event ".concat(s.code):"").concat(c?" ".concat(s.reason):""))):u.error(new cn({graphQLErrors:Array.isArray(s)?s:[s]}))}})})},t})(ir);function on(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Yi(e){return on(e)==="object"}function fM(e){return Array.isArray(e)&&e.length>0&&e.every(t=>"message"in t)}function x0(e,t){return e.length<124?e:t}const dM="graphql-transport-ws";var jn=(e=>(e[e.InternalServerError=4500]="InternalServerError",e[e.InternalClientError=4005]="InternalClientError",e[e.BadRequest=4400]="BadRequest",e[e.BadResponse=4004]="BadResponse",e[e.Unauthorized=4401]="Unauthorized",e[e.Forbidden=4403]="Forbidden",e[e.SubprotocolNotAcceptable=4406]="SubprotocolNotAcceptable",e[e.ConnectionInitialisationTimeout=4408]="ConnectionInitialisationTimeout",e[e.ConnectionAcknowledgementTimeout=4504]="ConnectionAcknowledgementTimeout",e[e.SubscriberAlreadyExists=4409]="SubscriberAlreadyExists",e[e.TooManyInitialisationRequests=4429]="TooManyInitialisationRequests",e))(jn||{}),Mn=(e=>(e.ConnectionInit="connection_init",e.ConnectionAck="connection_ack",e.Ping="ping",e.Pong="pong",e.Subscribe="subscribe",e.Next="next",e.Error="error",e.Complete="complete",e))(Mn||{});function vk(e){if(!Yi(e))throw new Error(`Message is expected to be an object, but got ${on(e)}`);if(!e.type)throw new Error("Message is missing the 'type' property");if(typeof e.type!="string")throw new Error(`Message is expects the 'type' property to be a string, but got ${on(e.type)}`);switch(e.type){case"connection_init":case"connection_ack":case"ping":case"pong":{if(e.payload!=null&&!Yi(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an object or nullish or missing, but got "${e.payload}"`);break}case"subscribe":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);if(!Yi(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an object, but got ${on(e.payload)}`);if(typeof e.payload.query!="string")throw new Error(`"${e.type}" message payload expects the 'query' property to be a string, but got ${on(e.payload.query)}`);if(e.payload.variables!=null&&!Yi(e.payload.variables))throw new Error(`"${e.type}" message payload expects the 'variables' property to be a an object or nullish or missing, but got ${on(e.payload.variables)}`);if(e.payload.operationName!=null&&on(e.payload.operationName)!=="string")throw new Error(`"${e.type}" message payload expects the 'operationName' property to be a string or nullish or missing, but got ${on(e.payload.operationName)}`);if(e.payload.extensions!=null&&!Yi(e.payload.extensions))throw new Error(`"${e.type}" message payload expects the 'extensions' property to be a an object or nullish or missing, but got ${on(e.payload.extensions)}`);break}case"next":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);if(!Yi(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an object, but got ${on(e.payload)}`);break}case"error":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);if(!fM(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an array of GraphQL errors, but got ${JSON.stringify(e.payload)}`);break}case"complete":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);break}default:throw new Error(`Invalid message 'type' property "${e.type}"`)}return e}function hM(e,t){return vk(typeof e=="string"?JSON.parse(e,t):e)}function Ru(e,t){return vk(e),JSON.stringify(e,t)}function mM(e){const{url:t,connectionParams:a,lazy:r=!0,onNonLazyError:u=console.error,lazyCloseTimeout:s=0,keepAlive:c=0,disablePong:d,connectionAckWaitTimeout:p=0,retryAttempts:m=5,retryWait:v=async function(se){const U=Math.pow(2,se);await new Promise(P=>setTimeout(P,U*1e3+Math.floor(Math.random()*2700+300)))},shouldRetry:y=ch,on:g,webSocketImpl:_,generateID:N=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,se=>{const U=Math.random()*16|0;return(se=="x"?U:U&3|8).toString(16)})},jsonMessageReplacer:T,jsonMessageReviver:D}=e;let E;if(_){if(!vM(_))throw new Error("Invalid WebSocket implementation provided");E=_}else typeof WebSocket<"u"?E=WebSocket:typeof global<"u"?E=global.WebSocket||global.MozWebSocket:typeof window<"u"&&(E=window.WebSocket||window.MozWebSocket);if(!E)throw new Error("WebSocket implementation missing; on Node you can `import WebSocket from 'ws';` and pass `webSocketImpl: WebSocket` to `createClient`");const O=E,w=(()=>{const W=(()=>{const U={};return{on(P,ie){return U[P]=ie,()=>{delete U[P]}},emit(P){var ie;"id"in P&&((ie=U[P.id])==null||ie.call(U,P))}}})(),se={connecting:g!=null&&g.connecting?[g.connecting]:[],opened:g!=null&&g.opened?[g.opened]:[],connected:g!=null&&g.connected?[g.connected]:[],ping:g!=null&&g.ping?[g.ping]:[],pong:g!=null&&g.pong?[g.pong]:[],message:g!=null&&g.message?[W.emit,g.message]:[W.emit],closed:g!=null&&g.closed?[g.closed]:[],error:g!=null&&g.error?[g.error]:[]};return{onMessage:W.on,on(U,P){const ie=se[U];return ie.push(P),()=>{ie.splice(ie.indexOf(P),1)}},emit(U,...P){for(const ie of[...se[U]])ie(...P)}}})();function L(W){const se=[w.on("error",U=>{se.forEach(P=>P()),W(U)}),w.on("closed",U=>{se.forEach(P=>P()),W(U)})]}let M,I=0,$,ee=!1,ce=0,Ne=!1;async function Be(){clearTimeout($);const[W,se]=await(M??(M=new Promise((ie,me)=>(async()=>{if(ee){if(await v(ce),!I)return M=void 0,me({code:1e3,reason:"All Subscriptions Gone"});ce++}w.emit("connecting",ee);const ve=new O(typeof t=="function"?await t():t,dM);let A,G;function ae(){isFinite(c)&&c>0&&(clearTimeout(G),G=setTimeout(()=>{ve.readyState===O.OPEN&&(ve.send(Ru({type:Mn.Ping})),w.emit("ping",!1,void 0))},c))}L(ge=>{M=void 0,clearTimeout(A),clearTimeout(G),me(ge),ge instanceof R0&&(ve.close(4499,"Terminated"),ve.onerror=null,ve.onclose=null)}),ve.onerror=ge=>w.emit("error",ge),ve.onclose=ge=>w.emit("closed",ge),ve.onopen=async()=>{try{w.emit("opened",ve);const ge=typeof a=="function"?await a():a;if(ve.readyState!==O.OPEN)return;ve.send(Ru(ge?{type:Mn.ConnectionInit,payload:ge}:{type:Mn.ConnectionInit},T)),isFinite(p)&&p>0&&(A=setTimeout(()=>{ve.close(jn.ConnectionAcknowledgementTimeout,"Connection acknowledgement timeout")},p)),ae()}catch(ge){w.emit("error",ge),ve.close(jn.InternalClientError,x0(ge instanceof Error?ge.message:String(ge),"Internal client error"))}};let oe=!1;ve.onmessage=({data:ge})=>{try{const _e=hM(ge,D);if(w.emit("message",_e),_e.type==="ping"||_e.type==="pong"){w.emit(_e.type,!0,_e.payload),_e.type==="pong"?ae():d||(ve.send(Ru(_e.payload?{type:Mn.Pong,payload:_e.payload}:{type:Mn.Pong})),w.emit("pong",!1,_e.payload));return}if(oe)return;if(_e.type!==Mn.ConnectionAck)throw new Error(`First message cannot be of type ${_e.type}`);clearTimeout(A),oe=!0,w.emit("connected",ve,_e.payload,ee),ee=!1,ce=0,ie([ve,new Promise((qe,kt)=>L(kt))])}catch(_e){ve.onmessage=null,w.emit("error",_e),ve.close(jn.BadResponse,x0(_e instanceof Error?_e.message:String(_e),"Bad response"))}}})())));W.readyState===O.CLOSING&&await se;let U=()=>{};const P=new Promise(ie=>U=ie);return[W,U,Promise.race([P.then(()=>{if(!I){const ie=()=>W.close(1e3,"Normal Closure");isFinite(s)&&s>0?$=setTimeout(()=>{W.readyState===O.OPEN&&ie()},s):ie()}}),se])]}function le(W){if(ch(W)&&(pM(W.code)||[jn.InternalServerError,jn.InternalClientError,jn.BadRequest,jn.BadResponse,jn.Unauthorized,jn.SubprotocolNotAcceptable,jn.SubscriberAlreadyExists,jn.TooManyInitialisationRequests].includes(W.code)))throw W;if(Ne)return!1;if(ch(W)&&W.code===1e3)return I>0;if(!m||ce>=m||!y(W))throw W;return ee=!0}r||(async()=>{for(I++;;)try{const[,,W]=await Be();await W}catch(W){try{if(!le(W))return}catch(se){return u==null?void 0:u(se)}}})();function fe(W,se){const U=N(W);let P=!1,ie=!1,me=()=>{I--,P=!0};return(async()=>{for(I++;;)try{const[ve,A,G]=await Be();if(P)return A();const ae=w.onMessage(U,oe=>{switch(oe.type){case Mn.Next:{se.next(oe.payload);return}case Mn.Error:{ie=!0,P=!0,se.error(oe.payload),me();return}case Mn.Complete:{P=!0,me();return}}});ve.send(Ru({id:U,type:Mn.Subscribe,payload:W},T)),me=()=>{!P&&ve.readyState===O.OPEN&&ve.send(Ru({id:U,type:Mn.Complete},T)),I--,P=!0,A()},await G.finally(ae);return}catch(ve){if(!le(ve))return}})().then(()=>{ie||se.complete()}).catch(ve=>{se.error(ve)}),()=>{P||me()}}return{on:w.on,subscribe:fe,iterate(W){const se=[],U={done:!1,error:null,resolve:()=>{}},P=fe(W,{next(me){se.push(me),U.resolve()},error(me){U.done=!0,U.error=me,U.resolve()},complete(){U.done=!0,U.resolve()}}),ie=(async function*(){for(;;){for(se.length||await new Promise(ve=>U.resolve=ve);se.length;)yield se.shift();if(U.error)throw U.error;if(U.done)return}})();return ie.throw=async me=>(U.done||(U.done=!0,U.error=me,U.resolve()),{done:!0,value:void 0}),ie.return=async()=>(P(),{done:!0,value:void 0}),ie},async dispose(){if(Ne=!0,M){const[W]=await M;W.close(1e3,"Normal Closure")}},terminate(){M&&w.emit("closed",new R0)}}}class R0 extends Error{constructor(){super(...arguments);Gr(this,"name","TerminatedCloseEvent");Gr(this,"message","4499: Terminated");Gr(this,"code",4499);Gr(this,"reason","Terminated");Gr(this,"wasClean",!1)}}function ch(e){return Yi(e)&&"code"in e&&"reason"in e}function pM(e){return[1e3,1001,1006,1005,1012,1013,1014].includes(e)?!1:e>=1e3&&e<=1999}function vM(e){return typeof e=="function"&&"constructor"in e&&"CLOSED"in e&&"CLOSING"in e&&"CONNECTING"in e&&"OPEN"in e}function yM(){return typeof window>"u"?"ws://127.0.0.1:4000/graphql":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/graphql`}const gM=new A_({uri:"/graphql"}),bM=new cM(mM({url:yM()})),_M=qO(({query:e})=>{const t=bl(e);return t.kind===nt.OPERATION_DEFINITION&&t.operation===yh.SUBSCRIPTION},bM,gM),SM=new W_({name:"@vibe-squire/web",version:"p2-4",link:_M,cache:new J_({typePolicies:{Query:{fields:{mappings:{merge(e,t){return t}},activityFeed:vO(["first","after"]),effectiveSettings:{merge:!0}}},ActivityRunGql:{keyFields:["id"]},ActivityItemGql:{keyFields:["id"]},MappingGql:{keyFields:["id"]}}})});function aa({width:e="100%"}){return S.jsx("span",{className:"ui-loading-line",style:{width:e},"aria-hidden":!0})}function _n({title:e,children:t,compact:a=!1}){return S.jsxs("section",{className:`card ${a?"compact":""}`,children:[S.jsx("h2",{className:"ui-card-heading",children:e}),t]})}function Kt({label:e,value:t}){return S.jsxs("div",{className:"ui-key-value",children:[S.jsx("span",{className:"ui-key-value-label",children:e}),S.jsx("span",{className:"ui-key-value-value",children:t})]})}function kM({configuration:e}){return S.jsxs(_n,{title:"Configuration",children:[S.jsx(Kt,{label:"Source",value:e.source_type}),S.jsx(Kt,{label:"Destination",value:e.destination_type}),S.jsx(Kt,{label:"Vibe Kanban board",value:e.vibe_kanban_board_active?"active":"inactive"})]})}const EM={ok:"var(--accent)",degraded:"var(--warn)",error:"var(--danger)",unknown:"#5a6b62",idle:"#5a6b62",running:"var(--warn)",skipped:"#5a6b62"};function NM({state:e}){return S.jsx("span",{className:"status-dot","aria-label":`State: ${e}`,title:e,style:{backgroundColor:EM[e]}})}function Ol({state:e,label:t}){return S.jsxs("span",{className:"ui-status-pill",children:[S.jsx(NM,{state:e}),S.jsx("span",{children:t??e})]})}function TM({status:e}){return S.jsxs(_n,{title:"Database",children:[S.jsx(Ol,{state:e.state}),e.message?S.jsx("p",{className:"muted",children:e.message}):null]})}function OM(e){return!Number.isNaN(e.getTime())}function Xs(e){const t=new Date(e);if(!OM(t))return e;const a=new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1}).formatToParts(t),r=u=>{var s;return((s=a.find(c=>c.type===u))==null?void 0:s.value)??""};return`${r("year")}-${r("month")}-${r("day")} ${r("hour")}:${r("minute")}`}function A0(e){return typeof e=="string"&&e.length>0?e:null}function wM({destinations:e}){return S.jsxs(_n,{title:"Destinations",children:[e.length===0?S.jsx("p",{className:"muted",children:"No destinations"}):null,S.jsx("ul",{className:"id-list",children:e.map(t=>{const a=t,r=A0(a.lastOkAt),u=A0(a.message);return S.jsxs("li",{children:[S.jsx(Ol,{state:t.state}),S.jsx(Kt,{label:"ID",value:t.id}),r?S.jsx(Kt,{label:"Last ok",value:Xs(r)}):null,u?S.jsx("p",{className:"muted",children:u}):null]},t.id)})})]})}function DM({status:e}){return S.jsxs(_n,{title:"GitHub",children:[S.jsx(Ol,{state:e.state}),e.message?S.jsx("p",{className:"muted",children:e.message}):null]})}function xM(e){return e.canRun?{state:"ok",label:"runnable"}:e.reason==="cooldown"?{state:"degraded",label:"cooldown",reasonText:"Cooldown active"}:e.reason==="already_running"?{state:"degraded",label:"busy",reasonText:"Sync is already running"}:e.reason==="setup_incomplete"?{state:"degraded",label:"setup required",reasonText:"Finish setup checklist to enable manual sync"}:e.reason?{state:"error",label:"blocked",reasonText:e.reason}:{state:"degraded",label:"blocked"}}function RM({manualSync:e,onSyncNow:t,syncNowPending:a=!1}){const r=xM(e);return S.jsxs(_n,{title:"Manual sync",children:[S.jsx(Ol,{state:r.state,label:r.label}),S.jsx("div",{className:"actions-row manual-sync-actions",children:S.jsx("button",{type:"button",className:"btn primary btn-sm",disabled:!e.canRun||a,onClick:t,children:a?"Syncing…":"Sync now"})}),r.reasonText?S.jsx("p",{className:"muted",children:r.reasonText}):null,e.cooldownUntil?S.jsx(Kt,{label:"Cooldown until",value:Xs(e.cooldownUntil)}):null]})}function AM({scheduledSync:e}){const t=e.enabled?"ok":"degraded",a=e.enabled?"enabled":"disabled";return S.jsxs(_n,{title:"Scheduled sync",compact:!0,children:[S.jsx(Ol,{state:t,label:a}),e.enabled?null:S.jsx("p",{className:"muted",children:"Disabled in General settings."})]})}function z0(e){return typeof e=="string"&&e.length>0?e:null}function fh(e){return typeof e=="number"?String(e):"n/a"}function zM({scouts:e}){return S.jsxs(_n,{title:"Scouts",children:[e.length===0?S.jsx("p",{className:"muted",children:"No scouts"}):null,S.jsx("ul",{className:"id-list",children:e.map(t=>{const a=t,r=z0(a.lastPollAt),u=z0(a.nextPollAt),s=t.last_poll;return S.jsxs("li",{children:[S.jsx(Ol,{state:t.state}),S.jsx(Kt,{label:"ID",value:t.id}),r?S.jsx(Kt,{label:"Last poll",value:Xs(r)}):null,u?S.jsx(Kt,{label:"Next poll",value:Xs(u)}):null,s?S.jsxs(S.Fragment,{children:[S.jsx(Kt,{label:"Candidates",value:fh(s.candidates_count)}),S.jsx(Kt,{label:"Skipped",value:fh(s.skipped_unmapped)}),S.jsx(Kt,{label:"Issues created",value:fh(s.issues_created)})]}):null]},t.id)})})]})}function CM({text:e,linkHref:t,linkLabel:a}){return S.jsxs("li",{className:"setup-checklist-item",children:[S.jsx("span",{className:"setup-checklist-mark","aria-hidden":!0,children:"•"}),S.jsxs("span",{className:"setup-checklist-text",children:[e,t&&a&&S.jsxs(S.Fragment,{children:[" ",S.jsx("a",{className:"setup-checklist-link",href:t,children:a})]})]})]})}function jM({setup:e,items:t}){const a=t??[];return S.jsxs(_n,{title:"Setup checklist",children:[S.jsx(Kt,{label:"Complete",value:e.complete?"yes":"no"}),S.jsx(Kt,{label:"Mappings",value:String(e.mappingCount)}),e.reason?S.jsx(Kt,{label:"Reason",value:e.reason}):null,a.length>0?S.jsx("ul",{className:"setup-checklist",children:a.map(r=>S.jsx(CM,{text:r.text,linkHref:r.linkHref,linkLabel:r.linkLabel},`${r.text}-${r.linkHref??""}`))}):null]})}function xs({children:e}){return S.jsx("h2",{className:"ui-group-heading",children:e})}function dh({headActions:e,overview:t,sync:a,health:r,setup:u}){return S.jsxs("div",{className:"page",children:[S.jsxs("div",{className:"page-head",children:[S.jsx("h1",{children:"Dashboard"}),e?S.jsx("div",{className:"dashboard-head-actions",children:e}):null]}),S.jsxs("div",{className:"dashboard-template-grid",children:[t?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Overview"}),S.jsx("div",{className:"dashboard-template-stack",children:t})]}):null,a?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Sync"}),S.jsx("div",{className:"dashboard-template-stack",children:a})]}):null,r?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Health"}),S.jsx("div",{className:"dashboard-template-stack",children:r})]}):null,u?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Setup"}),S.jsx("div",{className:"dashboard-template-stack",children:u})]}):null]})]})}function MM(){var p,m;const e=kn(Wi),t=kn(sh),[a,{loading:r}]=Gn(Bj,{refetchQueries:[{query:Wi},{query:sh}],awaitRefetchQueries:!0,onCompleted:()=>{je.success("Sync finished.")},onError:v=>{je.error(`Sync failed: ${Yh(v)}`)}}),[u,{loading:s}]=Gn(mk,{refetchQueries:[{query:Wi},{query:sh}],awaitRefetchQueries:!0,onCompleted:()=>{je.success("Reinit completed.")},onError:v=>{je.error(`Reinit failed: ${Yh(v)}`)}});if(e.loading&&!e.data&&!e.error)return S.jsx(dh,{overview:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"72%"}),S.jsx(aa,{width:"58%"}),S.jsx(aa,{width:"44%"})]})}),sync:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"56%"}),S.jsx(aa,{width:"38%"})]})}),health:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"82%"}),S.jsx(aa,{width:"68%"}),S.jsx(aa,{width:"52%"})]})}),setup:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"64%"}),S.jsx(aa,{width:"48%"})]})})});if(e.error||!((p=e.data)!=null&&p.status))return S.jsx(dh,{overview:S.jsx(_n,{title:"Status unavailable",children:S.jsx("p",{children:"Failed to load dashboard status snapshot."})})});const c=e.data.status,d=pk(c);return S.jsx(dh,{headActions:d?S.jsx("button",{type:"button",className:"btn ghost btn-sm",disabled:s,onClick:()=>{confirm("Run soft reinit? This refreshes settings, rescans checks, clears scout backoff, and reschedules sync.")&&u()},children:s?"Reinit…":"Reinit"}):null,overview:S.jsxs(S.Fragment,{children:[S.jsx(DM,{status:c.gh}),S.jsx(TM,{status:c.database}),S.jsx(kM,{configuration:c.configuration})]}),sync:S.jsxs(S.Fragment,{children:[S.jsx(RM,{manualSync:c.manual_sync,onSyncNow:()=>{a()},syncNowPending:r}),S.jsx(AM,{scheduledSync:c.scheduled_sync})]}),health:S.jsxs(S.Fragment,{children:[S.jsx(wM,{destinations:c.destinations}),S.jsx(zM,{scouts:c.scouts})]}),setup:S.jsx(jM,{setup:c.setup,items:(m=t.data)==null?void 0:m.dashboardSetup.checklist.map(v=>({text:v.text,...v.linkHref?{linkHref:v.linkHref}:{},...v.linkLabel?{linkLabel:v.linkLabel}:{}}))})})}var to=e=>e.type==="checkbox",Ki=e=>e instanceof Date,sn=e=>e==null;const yk=e=>typeof e=="object";var St=e=>!sn(e)&&!Array.isArray(e)&&yk(e)&&!Ki(e),FM=e=>St(e)&&e.target?to(e.target)?e.target.checked:e.target.value:e,UM=(e,t)=>t.split(".").some((a,r,u)=>!isNaN(Number(a))&&e.has(u.slice(0,r).join("."))),VM=e=>{const t=e.constructor&&e.constructor.prototype;return St(t)&&t.hasOwnProperty("isPrototypeOf")},qm=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function At(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(qm&&(e instanceof Blob||t))return e;const a=Array.isArray(e);if(!a&&!(St(e)&&VM(e)))return e;const r=a?[]:Object.create(Object.getPrototypeOf(e));for(const u in e)Object.prototype.hasOwnProperty.call(e,u)&&(r[u]=At(e[u]));return r}var gc=e=>/^\w*$/.test(e),ft=e=>e===void 0,Qm=e=>Array.isArray(e)?e.filter(Boolean):[],Bm=e=>Qm(e.replace(/["|']|\]/g,"").split(/\.|\[/)),ye=(e,t,a)=>{if(!t||!St(e))return a;const u=(gc(t)?[t]:Bm(t)).reduce((s,c)=>sn(s)?void 0:s[c],e);return ft(u)||u===e?ft(e[t])?a:e[t]:u},ia=e=>typeof e=="boolean",In=e=>typeof e=="function",rt=(e,t,a)=>{let r=-1;const u=gc(t)?[t]:Bm(t),s=u.length,c=s-1;for(;++r<s;){const d=u[r];let p=a;if(r!==c){const m=e[d];p=St(m)||Array.isArray(m)?m:isNaN(+u[r+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=p,e=e[d]}};const Yr={BLUR:"blur",FOCUS_OUT:"focusout",SUBMIT:"submit",TRIGGER:"trigger",VALID:"valid"},Hn={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Bn={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},hh="form",gk="root",LM=Jt.createContext(null);LM.displayName="HookFormControlContext";var qM=(e,t,a,r=!0)=>{const u={defaultValues:t._defaultValues};for(const s in e)Object.defineProperty(u,s,{get:()=>{const c=s;return t._proxyFormState[c]!==Hn.all&&(t._proxyFormState[c]=!r||Hn.all),e[c]}});return u};const QM=typeof window<"u"?Jt.useLayoutEffect:Jt.useEffect;var Yt=e=>typeof e=="string",BM=(e,t,a,r,u)=>Yt(e)?(r&&t.watch.add(e),ye(a,e,u)):Array.isArray(e)?e.map(s=>(r&&t.watch.add(s),ye(a,s))):(r&&(t.watchAll=!0),a),Ph=e=>sn(e)||!yk(e);function Ca(e,t,a=new WeakSet){if(e===t)return!0;if(Ph(e)||Ph(t))return Object.is(e,t);if(Ki(e)&&Ki(t))return Object.is(e.getTime(),t.getTime());const r=Object.keys(e),u=Object.keys(t);if(r.length!==u.length)return!1;if(a.has(e)||a.has(t))return!0;a.add(e),a.add(t);for(const s of r){const c=e[s];if(!(s in t))return!1;if(s!=="ref"){const d=t[s];if(Ki(c)&&Ki(d)||(St(c)||Array.isArray(c))&&(St(d)||Array.isArray(d))?!Ca(c,d,a):!Object.is(c,d))return!1}}return!0}const ZM=Jt.createContext(null);ZM.displayName="HookFormContext";var IM=(e,t,a,r,u)=>t?{...a[e],types:{...a[e]&&a[e].types?a[e].types:{},[r]:u||!0}}:{},Zu=e=>Array.isArray(e)?e:[e],C0=()=>{let e=[];return{get observers(){return e},next:u=>{for(const s of e)s.next&&s.next(u)},subscribe:u=>(e.push(u),{unsubscribe:()=>{e=e.filter(s=>s!==u)}}),unsubscribe:()=>{e=[]}}};function bk(e,t){const a={};for(const r in e)if(e.hasOwnProperty(r)){const u=e[r],s=t[r];if(u&&St(u)&&s){const c=bk(u,s);St(c)&&(a[r]=c)}else e[r]&&(a[r]=s)}return a}var Gt=e=>St(e)&&!Object.keys(e).length,Zm=e=>e.type==="file",Js=e=>{if(!qm)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},_k=e=>e.type==="select-multiple",Im=e=>e.type==="radio",HM=e=>Im(e)||to(e),mh=e=>Js(e)&&e.isConnected;function $M(e,t){const a=t.slice(0,-1).length;let r=0;for(;r<a;)e=ft(e)?r++:e[t[r++]];return e}function GM(e){for(const t in e)if(e.hasOwnProperty(t)&&!ft(e[t]))return!1;return!0}function wt(e,t){if(Yt(t)&&Object.prototype.hasOwnProperty.call(e,t))return delete e[t],e;const a=Array.isArray(t)?t:gc(t)?[t]:Bm(t),r=a.length===1?e:$M(e,a),u=a.length-1,s=a[u];return r&&delete r[s],u!==0&&(St(r)&&Gt(r)||Array.isArray(r)&&GM(r))&&wt(e,a.slice(0,-1)),e}var YM=e=>{for(const t in e)if(In(e[t]))return!0;return!1};function Sk(e){return Array.isArray(e)||St(e)&&!YM(e)}function Xh(e,t={}){for(const a in e){const r=e[a];Sk(r)?(t[a]=Array.isArray(r)?[]:{},Xh(r,t[a])):ft(r)||(t[a]=!0)}return t}function Fu(e,t,a){a||(a=Xh(t));for(const r in e){const u=e[r];if(Sk(u))ft(t)||Ph(a[r])?a[r]=Xh(u,Array.isArray(u)?[]:{}):Fu(u,sn(t)?{}:t[r],a[r]);else{const s=t[r];a[r]=!Ca(u,s)}}return a}const j0={value:!1,isValid:!1},M0={value:!0,isValid:!0};var kk=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(a=>a&&a.checked&&!a.disabled).map(a=>a.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!ft(e[0].attributes.value)?ft(e[0].value)||e[0].value===""?M0:{value:e[0].value,isValid:!0}:M0:j0}return j0},Ek=(e,{valueAsNumber:t,valueAsDate:a,setValueAs:r})=>ft(e)?e:t?e===""?NaN:e&&+e:a&&Yt(e)?new Date(e):r?r(e):e;const F0={isValid:!1,value:null};var Nk=e=>Array.isArray(e)?e.reduce((t,a)=>a&&a.checked&&!a.disabled?{isValid:!0,value:a.value}:t,F0):F0;function U0(e){const t=e.ref;return Zm(t)?t.files:Im(t)?Nk(e.refs).value:_k(t)?[...t.selectedOptions].map(({value:a})=>a):to(t)?kk(e.refs).value:Ek(ft(t.value)?e.ref.value:t.value,e)}var PM=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,XM=(e,t,a,r)=>{const u={};for(const s of e){const c=ye(t,s);c&&rt(u,s,c._f)}return{criteriaMode:a,names:[...e],fields:u,shouldUseNativeValidation:r}},Ks=e=>e instanceof RegExp,Au=e=>ft(e)?e:Ks(e)?e.source:St(e)?Ks(e.value)?e.value.source:e.value:e,V0=e=>({isOnSubmit:!e||e===Hn.onSubmit,isOnBlur:e===Hn.onBlur,isOnChange:e===Hn.onChange,isOnAll:e===Hn.all,isOnTouch:e===Hn.onTouched});const L0="AsyncFunction";var JM=e=>!!e&&!!e.validate&&!!(In(e.validate)&&e.validate.constructor.name===L0||St(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===L0)),KM=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),q0=(e,t,a)=>!a&&(t.watchAll||t.watch.has(e)||[...t.watch].some(r=>e.startsWith(r)&&/^\.\w+/.test(e.slice(r.length))));const Iu=(e,t,a,r)=>{for(const u of a||Object.keys(e)){const s=ye(e,u);if(s){const{_f:c,...d}=s;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],u)&&!r)return!0;if(c.ref&&t(c.ref,c.name)&&!r)return!0;if(Iu(d,t))break}else if(St(d)&&Iu(d,t))break}}};function Q0(e,t,a){const r=ye(e,a);if(r||gc(a))return{error:r,name:a};const u=a.split(".");for(;u.length;){const s=u.join("."),c=ye(t,s),d=ye(e,s);if(c&&!Array.isArray(c)&&a!==s)return{name:a};if(d&&d.type)return{name:s,error:d};if(d&&d.root&&d.root.type)return{name:`${s}.root`,error:d.root};u.pop()}return{name:a}}var WM=(e,t,a,r)=>{a(e);const{name:u,...s}=e;return Gt(s)||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(c=>t[c]===(!r||Hn.all))},e2=(e,t,a)=>!e||!t||e===t||Zu(e).some(r=>r&&(a?r===t:r.startsWith(t)||t.startsWith(r))),t2=(e,t,a,r,u)=>u.isOnAll?!1:!a&&u.isOnTouch?!(t||e):(a?r.isOnBlur:u.isOnBlur)?!e:(a?r.isOnChange:u.isOnChange)?e:!0,n2=(e,t)=>!Qm(ye(e,t)).length&&wt(e,t),a2=(e,t,a)=>{const r=Zu(ye(e,a));return rt(r,gk,t[a]),rt(e,a,r),e};function B0(e,t,a="validate"){if(Yt(e)||Array.isArray(e)&&e.every(Yt)||ia(e)&&!e)return{type:a,message:Yt(e)?e:"",ref:t}}var Pr=e=>St(e)&&!Ks(e)?e:{value:e,message:""},Z0=async(e,t,a,r,u,s)=>{const{ref:c,refs:d,required:p,maxLength:m,minLength:v,min:y,max:g,pattern:_,validate:N,name:T,valueAsNumber:D,mount:E}=e._f,O=ye(a,T);if(!E||t.has(T))return{};const w=d?d[0]:c,L=le=>{u&&w.reportValidity&&(w.setCustomValidity(ia(le)?"":le||""),w.reportValidity())},M={},I=Im(c),$=to(c),ee=I||$,ce=(D||Zm(c))&&ft(c.value)&&ft(O)||Js(c)&&c.value===""||O===""||Array.isArray(O)&&!O.length,Ne=IM.bind(null,T,r,M),Be=(le,fe,W,se=Bn.maxLength,U=Bn.minLength)=>{const P=le?fe:W;M[T]={type:le?se:U,message:P,ref:c,...Ne(le?se:U,P)}};if(s?!Array.isArray(O)||!O.length:p&&(!ee&&(ce||sn(O))||ia(O)&&!O||$&&!kk(d).isValid||I&&!Nk(d).isValid)){const{value:le,message:fe}=Yt(p)?{value:!!p,message:p}:Pr(p);if(le&&(M[T]={type:Bn.required,message:fe,ref:w,...Ne(Bn.required,fe)},!r))return L(fe),M}if(!ce&&(!sn(y)||!sn(g))){let le,fe;const W=Pr(g),se=Pr(y);if(!sn(O)&&!isNaN(O)){const U=c.valueAsNumber||O&&+O;sn(W.value)||(le=U>W.value),sn(se.value)||(fe=U<se.value)}else{const U=c.valueAsDate||new Date(O),P=ve=>new Date(new Date().toDateString()+" "+ve),ie=c.type=="time",me=c.type=="week";Yt(W.value)&&O&&(le=ie?P(O)>P(W.value):me?O>W.value:U>new Date(W.value)),Yt(se.value)&&O&&(fe=ie?P(O)<P(se.value):me?O<se.value:U<new Date(se.value))}if((le||fe)&&(Be(!!le,W.message,se.message,Bn.max,Bn.min),!r))return L(M[T].message),M}if((m||v)&&!ce&&(Yt(O)||s&&Array.isArray(O))){const le=Pr(m),fe=Pr(v),W=!sn(le.value)&&O.length>+le.value,se=!sn(fe.value)&&O.length<+fe.value;if((W||se)&&(Be(W,le.message,fe.message),!r))return L(M[T].message),M}if(_&&!ce&&Yt(O)){const{value:le,message:fe}=Pr(_);if(Ks(le)&&!O.match(le)&&(M[T]={type:Bn.pattern,message:fe,ref:c,...Ne(Bn.pattern,fe)},!r))return L(fe),M}if(N){if(In(N)){const le=await N(O,a),fe=B0(le,w);if(fe&&(M[T]={...fe,...Ne(Bn.validate,fe.message)},!r))return L(fe.message),M}else if(St(N)){let le={};for(const fe in N){if(!Gt(le)&&!r)break;const W=B0(await N[fe](O,a),w,fe);W&&(le={...W,...Ne(fe,W.message)},L(W.message),r&&(M[T]=le))}if(!Gt(le)&&(M[T]={ref:w,...le},!r))return M}}return L(!0),M};const i2={mode:Hn.onSubmit,reValidateMode:Hn.onChange,shouldFocusError:!0};function r2(e={}){let t={...i2,...e},a={submitCount:0,isDirty:!1,isReady:!1,isLoading:In(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},u=St(t.defaultValues)||St(t.values)?At(t.defaultValues||t.values)||{}:{},s=t.shouldUnregister?{}:At(u),c={action:!1,mount:!1,watch:!1,keepIsValid:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},p,m=0;const v={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},y={...v};let g={...y};const _={array:C0(),state:C0()},N=t.criteriaMode===Hn.all,T=R=>V=>{clearTimeout(m),m=setTimeout(R,V)},D=async R=>{if(!c.keepIsValid&&!t.disabled&&(y.isValid||g.isValid||R)){let V;t.resolver?(V=Gt((await ce()).errors),E()):V=await le({fields:r,onlyCheckValid:!0,eventType:Yr.VALID}),V!==a.isValid&&_.state.next({isValid:V})}},E=(R,V)=>{!t.disabled&&(y.isValidating||y.validatingFields||g.isValidating||g.validatingFields)&&((R||Array.from(d.mount)).forEach(Z=>{Z&&(V?rt(a.validatingFields,Z,V):wt(a.validatingFields,Z))}),_.state.next({validatingFields:a.validatingFields,isValidating:!Gt(a.validatingFields)}))},O=R=>{const V=Fu(u,s),Z=PM(R);rt(a.dirtyFields,Z,ye(V,Z))},w=(R,V=[],Z,ue,re=!0,te=!0)=>{if(ue&&Z&&!t.disabled){if(c.action=!0,te&&Array.isArray(ye(r,R))){const he=Z(ye(r,R),ue.argA,ue.argB);re&&rt(r,R,he)}if(te&&Array.isArray(ye(a.errors,R))){const he=Z(ye(a.errors,R),ue.argA,ue.argB);re&&rt(a.errors,R,he),n2(a.errors,R)}if((y.touchedFields||g.touchedFields)&&te&&Array.isArray(ye(a.touchedFields,R))){const he=Z(ye(a.touchedFields,R),ue.argA,ue.argB);re&&rt(a.touchedFields,R,he)}(y.dirtyFields||g.dirtyFields)&&O(R),_.state.next({name:R,isDirty:W(R,V),dirtyFields:a.dirtyFields,errors:a.errors,isValid:a.isValid})}else rt(s,R,V)},L=(R,V)=>{rt(a.errors,R,V),_.state.next({errors:a.errors})},M=R=>{a.errors=R,_.state.next({errors:a.errors,isValid:!1})},I=(R,V,Z,ue)=>{const re=ye(r,R);if(re){const te=ye(s,R,ft(Z)?ye(u,R):Z);ft(te)||ue&&ue.defaultChecked||V?rt(s,R,V?te:U0(re._f)):P(R,te),c.mount&&!c.action&&D()}},$=(R,V,Z,ue,re)=>{let te=!1,he=!1;const we={name:R};if(!t.disabled){if(!Z||ue){(y.isDirty||g.isDirty)&&(he=a.isDirty,a.isDirty=we.isDirty=W(),te=he!==we.isDirty);const Le=Ca(ye(u,R),V);he=!!ye(a.dirtyFields,R),Le?wt(a.dirtyFields,R):rt(a.dirtyFields,R,!0),we.dirtyFields=a.dirtyFields,te=te||(y.dirtyFields||g.dirtyFields)&&he!==!Le}if(Z){const Le=ye(a.touchedFields,R);Le||(rt(a.touchedFields,R,Z),we.touchedFields=a.touchedFields,te=te||(y.touchedFields||g.touchedFields)&&Le!==Z)}te&&re&&_.state.next(we)}return te?we:{}},ee=(R,V,Z,ue)=>{const re=ye(a.errors,R),te=(y.isValid||g.isValid)&&ia(V)&&a.isValid!==V;if(t.delayError&&Z?(p=T(()=>L(R,Z)),p(t.delayError)):(clearTimeout(m),p=null,Z?rt(a.errors,R,Z):wt(a.errors,R)),(Z?!Ca(re,Z):re)||!Gt(ue)||te){const he={...ue,...te&&ia(V)?{isValid:V}:{},errors:a.errors,name:R};a={...a,...he},_.state.next(he)}},ce=async R=>(E(R,!0),await t.resolver(s,t.context,XM(R||d.mount,r,t.criteriaMode,t.shouldUseNativeValidation))),Ne=async R=>{const{errors:V}=await ce(R);if(E(R),R)for(const Z of R){const ue=ye(V,Z);ue?rt(a.errors,Z,ue):wt(a.errors,Z)}else a.errors=V;return V},Be=async({name:R,eventType:V})=>{if(e.validate){const Z=await e.validate({formValues:s,formState:a,name:R,eventType:V});if(St(Z))for(const ue in Z)Z[ue]&&_e(`${hh}.${ue}`,{message:Yt(Z.message)?Z.message:"",type:Bn.validate});else Yt(Z)||!Z?_e(hh,{message:Z||"",type:Bn.validate}):ge(hh);return Z}return!0},le=async({fields:R,onlyCheckValid:V,name:Z,eventType:ue,context:re={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(re.runRootValidation=!0,!await Be({name:Z,eventType:ue})&&(re.valid=!1,V)))return re.valid;for(const te in R){const he=R[te];if(he){const{_f:we,...Le}=he;if(we){const Ft=d.array.has(we.name),Ht=he._f&&JM(he._f);Ht&&y.validatingFields&&E([we.name],!0);const Xe=await Z0(he,d.disabled,s,N,t.shouldUseNativeValidation&&!V,Ft);if(Ht&&y.validatingFields&&E([we.name]),Xe[we.name]&&(re.valid=!1,V)||(!V&&(ye(Xe,we.name)?Ft?a2(a.errors,Xe,we.name):rt(a.errors,we.name,Xe[we.name]):wt(a.errors,we.name)),e.shouldUseNativeValidation&&Xe[we.name]))break}!Gt(Le)&&await le({context:re,onlyCheckValid:V,fields:Le,name:te,eventType:ue})}}return re.valid},fe=()=>{for(const R of d.unMount){const V=ye(r,R);V&&(V._f.refs?V._f.refs.every(Z=>!mh(Z)):!mh(V._f.ref))&&sa(R)}d.unMount=new Set},W=(R,V)=>!t.disabled&&(R&&V&&rt(s,R,V),!Ca(ae(),u)),se=(R,V,Z)=>BM(R,d,{...c.mount?s:ft(V)?u:Yt(R)?{[R]:V}:V},Z,V),U=R=>Qm(ye(c.mount?s:u,R,t.shouldUnregister?ye(u,R,[]):[])),P=(R,V,Z={})=>{const ue=ye(r,R);let re=V;if(ue){const te=ue._f;te&&(!te.disabled&&rt(s,R,Ek(V,te)),re=Js(te.ref)&&sn(V)?"":V,_k(te.ref)?[...te.ref.options].forEach(he=>he.selected=re.includes(he.value)):te.refs?to(te.ref)?te.refs.forEach(he=>{(!he.defaultChecked||!he.disabled)&&(Array.isArray(re)?he.checked=!!re.find(we=>we===he.value):he.checked=re===he.value||!!re)}):te.refs.forEach(he=>he.checked=he.value===re):Zm(te.ref)?te.ref.value="":(te.ref.value=re,te.ref.type||_.state.next({name:R,values:At(s)})))}(Z.shouldDirty||Z.shouldTouch)&&$(R,re,Z.shouldTouch,Z.shouldDirty,!0),Z.shouldValidate&&G(R)},ie=(R,V,Z)=>{for(const ue in V){if(!V.hasOwnProperty(ue))return;const re=V[ue],te=R+"."+ue,he=ye(r,te);(d.array.has(R)||St(re)||he&&!he._f)&&!Ki(re)?ie(te,re,Z):P(te,re,Z)}},me=(R,V,Z={})=>{const ue=ye(r,R),re=d.array.has(R),te=At(V),he=ye(s,R),we=Ca(he,te);if(rt(s,R,te),re)_.array.next({name:R,values:At(s)}),Z.shouldDirty&&(O(R),_.state.next({name:R,dirtyFields:a.dirtyFields,isDirty:W(R,te)}));else{const Le=Array.isArray(te)&&!te.length||Gt(te);!ue||ue._f||sn(te)||Le?P(R,te,Z):ie(R,te,Z)}we||(q0(R,d)?_.state.next({...a,name:R,values:At(s)}):_.state.next({name:c.mount?R:void 0,values:At(s)}))},ve=async R=>{c.mount=!0;const V=R.target;let Z=V.name,ue=!0;const re=ye(r,Z),te=Le=>{ue=Number.isNaN(Le)||Ki(Le)&&isNaN(Le.getTime())||Ca(Le,ye(s,Z,Le))},he=V0(t.mode),we=V0(t.reValidateMode);if(re){let Le,Ft;const Ht=V.type?U0(re._f):FM(R),Xe=R.type===Yr.BLUR||R.type===Yr.FOCUS_OUT,Kn=!KM(re._f)&&!e.validate&&!t.resolver&&!ye(a.errors,Z)&&!re._f.deps||t2(Xe,ye(a.touchedFields,Z),a.isSubmitted,we,he),Ut=q0(Z,d,Xe);rt(s,Z,Ht),Xe?(!V||!V.readOnly)&&(re._f.onBlur&&re._f.onBlur(R),p&&p(0)):re._f.onChange&&re._f.onChange(R);const Al=$(Z,Ht,Xe),_c=!Gt(Al)||Ut;if(!Xe&&_.state.next({name:Z,type:R.type,values:At(s)}),Kn)return(y.isValid||g.isValid)&&(t.mode==="onBlur"?Xe&&D():Xe||D()),_c&&_.state.next({name:Z,...Ut?{}:Al});if(!t.resolver&&e.validate&&await Be({name:Z,eventType:R.type}),!Xe&&Ut&&_.state.next({...a}),t.resolver){const{errors:ro}=await ce([Z]);if(E([Z]),te(Ht),ue){const or=Q0(a.errors,r,Z),Di=Q0(ro,r,or.name||Z);Le=Di.error,Z=Di.name,Ft=Gt(ro)}}else E([Z],!0),Le=(await Z0(re,d.disabled,s,N,t.shouldUseNativeValidation))[Z],E([Z]),te(Ht),ue&&(Le?Ft=!1:(y.isValid||g.isValid)&&(Ft=await le({fields:r,onlyCheckValid:!0,name:Z,eventType:R.type})));ue&&(re._f.deps&&(!Array.isArray(re._f.deps)||re._f.deps.length>0)&&G(re._f.deps),ee(Z,Ft,Le,Al))}},A=(R,V)=>{if(ye(a.errors,V)&&R.focus)return R.focus(),1},G=async(R,V={})=>{let Z,ue;const re=Zu(R);if(t.resolver){const te=await Ne(ft(R)?R:re);Z=Gt(te),ue=R?!re.some(he=>ye(te,he)):Z}else R?(ue=(await Promise.all(re.map(async te=>{const he=ye(r,te);return await le({fields:he&&he._f?{[te]:he}:he,eventType:Yr.TRIGGER})}))).every(Boolean),!(!ue&&!a.isValid)&&D()):ue=Z=await le({fields:r,name:R,eventType:Yr.TRIGGER});return _.state.next({...!Yt(R)||(y.isValid||g.isValid)&&Z!==a.isValid?{}:{name:R},...t.resolver||!R?{isValid:Z}:{},errors:a.errors}),V.shouldFocus&&!ue&&Iu(r,A,R?re:d.mount),ue},ae=(R,V)=>{let Z={...c.mount?s:u};return V&&(Z=bk(V.dirtyFields?a.dirtyFields:a.touchedFields,Z)),ft(R)?Z:Yt(R)?ye(Z,R):R.map(ue=>ye(Z,ue))},oe=(R,V)=>({invalid:!!ye((V||a).errors,R),isDirty:!!ye((V||a).dirtyFields,R),error:ye((V||a).errors,R),isValidating:!!ye(a.validatingFields,R),isTouched:!!ye((V||a).touchedFields,R)}),ge=R=>{const V=R?Zu(R):void 0;V==null||V.forEach(Z=>wt(a.errors,Z)),V?V.forEach(Z=>{_.state.next({name:Z,errors:a.errors})}):_.state.next({errors:{}})},_e=(R,V,Z)=>{const ue=(ye(r,R,{_f:{}})._f||{}).ref,re=ye(a.errors,R)||{},{ref:te,message:he,type:we,...Le}=re;rt(a.errors,R,{...Le,...V,ref:ue}),_.state.next({name:R,errors:a.errors,isValid:!1}),Z&&Z.shouldFocus&&ue&&ue.focus&&ue.focus()},qe=(R,V)=>In(R)?_.state.subscribe({next:Z=>"values"in Z&&R(Z.values||se(void 0,V),Z)}):se(R,V,!0),kt=R=>_.state.subscribe({next:V=>{if(e2(R.name,V.name,R.exact)&&WM(V,R.formState||y,Rl,R.reRenderRoot)){const Z={...s};R.callback({values:Z,...a,...V,defaultValues:u})}}}).unsubscribe,ct=R=>(c.mount=!0,g={...g,...R.formState},kt({...R,formState:{...v,...R.formState}})),sa=(R,V={})=>{for(const Z of R?Zu(R):d.mount)d.mount.delete(Z),d.array.delete(Z),V.keepValue||(wt(r,Z),wt(s,Z)),!V.keepError&&wt(a.errors,Z),!V.keepDirty&&wt(a.dirtyFields,Z),!V.keepTouched&&wt(a.touchedFields,Z),!V.keepIsValidating&&wt(a.validatingFields,Z),!t.shouldUnregister&&!V.keepDefaultValue&&wt(u,Z);_.state.next({values:At(s)}),_.state.next({...a,...V.keepDirty?{isDirty:W()}:{}}),!V.keepIsValid&&D()},Oi=({disabled:R,name:V})=>{if(ia(R)&&c.mount||R||d.disabled.has(V)){const re=d.disabled.has(V)!==!!R;R?d.disabled.add(V):d.disabled.delete(V),re&&c.mount&&!c.action&&D()}},wi=(R,V={})=>{let Z=ye(r,R);const ue=ia(V.disabled)||ia(t.disabled),re=!d.registerName.has(R)&&Z&&Z._f&&!Z._f.mount;return rt(r,R,{...Z||{},_f:{...Z&&Z._f?Z._f:{ref:{name:R}},name:R,mount:!0,...V}}),d.mount.add(R),Z&&!re?Oi({disabled:ia(V.disabled)?V.disabled:t.disabled,name:R}):I(R,!0,V.value),{...ue?{disabled:V.disabled||t.disabled}:{},...t.progressive?{required:!!V.required,min:Au(V.min),max:Au(V.max),minLength:Au(V.minLength),maxLength:Au(V.maxLength),pattern:Au(V.pattern)}:{},name:R,onChange:ve,onBlur:ve,ref:te=>{if(te){d.registerName.add(R),wi(R,V),d.registerName.delete(R),Z=ye(r,R);const he=ft(te.value)&&te.querySelectorAll&&te.querySelectorAll("input,select,textarea")[0]||te,we=HM(he),Le=Z._f.refs||[];if(we?Le.find(Ft=>Ft===he):he===Z._f.ref)return;rt(r,R,{_f:{...Z._f,...we?{refs:[...Le.filter(mh),he,...Array.isArray(ye(u,R))?[{}]:[]],ref:{type:he.type,name:R}}:{ref:he}}}),I(R,!1,void 0,he)}else Z=ye(r,R,{}),Z._f&&(Z._f.mount=!1),(t.shouldUnregister||V.shouldUnregister)&&!(UM(d.array,R)&&c.action)&&d.unMount.add(R)}}},lr=()=>t.shouldFocusError&&Iu(r,A,d.mount),ca=R=>{ia(R)&&(_.state.next({disabled:R}),Iu(r,(V,Z)=>{const ue=ye(r,Z);ue&&(V.disabled=ue._f.disabled||R,Array.isArray(ue._f.refs)&&ue._f.refs.forEach(re=>{re.disabled=ue._f.disabled||R}))},0,!1))},ur=(R,V)=>async Z=>{let ue;Z&&(Z.preventDefault&&Z.preventDefault(),Z.persist&&Z.persist());let re=At(s);if(_.state.next({isSubmitting:!0}),t.resolver){const{errors:te,values:he}=await ce();E(),a.errors=te,re=At(he)}else await le({fields:r,eventType:Yr.SUBMIT});if(d.disabled.size)for(const te of d.disabled)wt(re,te);if(wt(a.errors,gk),Gt(a.errors)){_.state.next({errors:{}});try{await R(re,Z)}catch(te){ue=te}}else V&&await V({...a.errors},Z),lr(),setTimeout(lr);if(_.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Gt(a.errors)&&!ue,submitCount:a.submitCount+1,errors:a.errors}),ue)throw ue},wl=(R,V={})=>{ye(r,R)&&(ft(V.defaultValue)?me(R,At(ye(u,R))):(me(R,V.defaultValue),rt(u,R,At(V.defaultValue))),V.keepTouched||wt(a.touchedFields,R),V.keepDirty||(wt(a.dirtyFields,R),a.isDirty=V.defaultValue?W(R,At(ye(u,R))):W()),V.keepError||(wt(a.errors,R),y.isValid&&D()),_.state.next({...a}))},no=(R,V={})=>{const Z=R?At(R):u,ue=At(Z),re=Gt(R),te=re?u:ue;if(V.keepDefaultValues||(u=Z),!V.keepValues){if(V.keepDirtyValues){const he=new Set([...d.mount,...Object.keys(Fu(u,s))]);for(const we of Array.from(he)){const Le=ye(a.dirtyFields,we),Ft=ye(s,we),Ht=ye(te,we);Le&&!ft(Ft)?rt(te,we,Ft):!Le&&!ft(Ht)&&me(we,Ht)}}else{if(qm&&ft(R))for(const he of d.mount){const we=ye(r,he);if(we&&we._f){const Le=Array.isArray(we._f.refs)?we._f.refs[0]:we._f.ref;if(Js(Le)){const Ft=Le.closest("form");if(Ft){Ft.reset();break}}}}if(V.keepFieldsRef)for(const he of d.mount)me(he,ye(te,he));else r={}}s=t.shouldUnregister?V.keepDefaultValues?At(u):{}:At(te),_.array.next({values:{...te}}),_.state.next({values:{...te}})}d={mount:V.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!y.isValid||!!V.keepIsValid||!!V.keepDirtyValues||!t.shouldUnregister&&!Gt(te),c.watch=!!t.shouldUnregister,c.keepIsValid=!!V.keepIsValid,c.action=!1,V.keepErrors||(a.errors={}),_.state.next({submitCount:V.keepSubmitCount?a.submitCount:0,isDirty:re?!1:V.keepDirty?a.isDirty:!!(V.keepDefaultValues&&!Ca(R,u)),isSubmitted:V.keepIsSubmitted?a.isSubmitted:!1,dirtyFields:re?{}:V.keepDirtyValues?V.keepDefaultValues&&s?Fu(u,s):a.dirtyFields:V.keepDefaultValues&&R?Fu(u,R):V.keepDirty?a.dirtyFields:{},touchedFields:V.keepTouched?a.touchedFields:{},errors:V.keepErrors?a.errors:{},isSubmitSuccessful:V.keepIsSubmitSuccessful?a.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:u})},Dl=(R,V)=>no(In(R)?R(s):R,{...t.resetOptions,...V}),xl=(R,V={})=>{const Z=ye(r,R),ue=Z&&Z._f;if(ue){const re=ue.refs?ue.refs[0]:ue.ref;re.focus&&setTimeout(()=>{re.focus(),V.shouldSelect&&In(re.select)&&re.select()})}},Rl=R=>{a={...a,...R}},io={control:{register:wi,unregister:sa,getFieldState:oe,handleSubmit:ur,setError:_e,_subscribe:kt,_runSchema:ce,_updateIsValidating:E,_focusError:lr,_getWatch:se,_getDirty:W,_setValid:D,_setFieldArray:w,_setDisabledField:Oi,_setErrors:M,_getFieldArray:U,_reset:no,_resetDefaultValues:()=>In(t.defaultValues)&&t.defaultValues().then(R=>{Dl(R,t.resetOptions),_.state.next({isLoading:!1})}),_removeUnmounted:fe,_disableForm:ca,_subjects:_,_proxyFormState:y,get _fields(){return r},get _formValues(){return s},get _state(){return c},set _state(R){c=R},get _defaultValues(){return u},get _names(){return d},set _names(R){d=R},get _formState(){return a},get _options(){return t},set _options(R){t={...t,...R}}},subscribe:ct,trigger:G,register:wi,handleSubmit:ur,watch:qe,setValue:me,getValues:ae,reset:Dl,resetField:wl,clearErrors:ge,unregister:sa,setError:_e,setFocus:xl,getFieldState:oe};return{...io,formControl:io}}function bc(e={}){const t=Jt.useRef(void 0),a=Jt.useRef(void 0),[r,u]=Jt.useState({isDirty:!1,isValidating:!1,isLoading:In(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:In(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:r},e.defaultValues&&!In(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...d}=r2(e);t.current={...d,formState:r}}const s=t.current.control;return s._options=e,QM(()=>{const c=s._subscribe({formState:s._proxyFormState,callback:()=>u({...s._formState}),reRenderRoot:!0});return u(d=>({...d,isReady:!0})),s._formState.isReady=!0,c},[s]),Jt.useEffect(()=>s._disableForm(e.disabled),[s,e.disabled]),Jt.useEffect(()=>{e.mode&&(s._options.mode=e.mode),e.reValidateMode&&(s._options.reValidateMode=e.reValidateMode)},[s,e.mode,e.reValidateMode]),Jt.useEffect(()=>{e.errors&&(s._setErrors(e.errors),s._focusError())},[s,e.errors]),Jt.useEffect(()=>{e.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,e.shouldUnregister]),Jt.useEffect(()=>{if(s._proxyFormState.isDirty){const c=s._getDirty();c!==r.isDirty&&s._subjects.state.next({isDirty:c})}},[s,r.isDirty]),Jt.useEffect(()=>{var c;e.values&&!Ca(e.values,a.current)?(s._reset(e.values,{keepFieldsRef:!0,...s._options.resetOptions}),!((c=s._options.resetOptions)===null||c===void 0)&&c.keepIsValid||s._setValid(),a.current=e.values,u(d=>({...d}))):s._resetDefaultValues()},[s,e.values]),Jt.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),t.current.formState=Jt.useMemo(()=>qM(r,s),[s,r]),t.current}function l2({fields:e,values:t,saving:a,onValueChange:r,onSubmit:u}){return S.jsx("section",{className:"card",children:S.jsxs("form",{className:"form-stack",onSubmit:s=>{s.preventDefault(),u()},children:[e.map(s=>S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:s.label}),S.jsx("textarea",{className:"input",rows:3,value:t[s.key]??"",onChange:c=>r(s.key,c.target.value)})]},s.key)),S.jsx("button",{type:"submit",className:"btn primary",disabled:a,children:a?"Saving…":"Save"})]})})}function u2(){var m;const e=kn(qj,{fetchPolicy:"cache-and-network"}),[t,a]=Gn(Hj,{onCompleted:()=>{je.success("GitHub settings saved.")},onError:v=>{je.error(`Save failed: ${fn(v)}`)}}),{handleSubmit:r,reset:u,setValue:s,watch:c}=bc({defaultValues:{}}),d=((m=e.data)==null?void 0:m.githubFields)??null;j.useEffect(()=>{if(!d||d.disabled)return;const v={};for(const y of d.fields)v[y.key]=y.value;u(v)},[d,u]);const p=async v=>{await t({variables:{input:v}})};return e.loading&&!d&&!e.error?S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx("p",{className:"muted",children:"Loading…"})]}):e.error?S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx("p",{className:"text-danger",children:fn(e.error)})]}):d!=null&&d.disabled?S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx("p",{className:"muted",children:"GitHub source is not active for this process."})]}):S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx(l2,{fields:(d==null?void 0:d.fields)??[],values:c(),saving:a.loading,onValueChange:(v,y)=>s(v,y,{shouldDirty:!0}),onSubmit:()=>{r(v=>{p(v)})()}})]})}const Jh="optimistic:";function o2(){return typeof crypto<"u"&&"randomUUID"in crypto?`${Jh}${crypto.randomUUID()}`:`${Jh}${Date.now()}`}function s2(e,t){const a=e.find(s=>s.id===t.id)??e.find(s=>s.githubRepo===t.githubRepo),r=e.filter(s=>!(s.id===t.id||s.id.startsWith(Jh)&&s.githubRepo===t.githubRepo&&s.id!==t.id)),u=(a==null?void 0:a.createdAt)!=null&&typeof a.createdAt=="string"?a.createdAt:new Date().toISOString();return[...r,{__typename:"MappingGql",id:t.id,githubRepo:t.githubRepo,vibeKanbanRepoId:t.vibeKanbanRepoId,createdAt:u,updatedAt:new Date().toISOString()}]}function c2({message:e,onReloadPage:t}){return S.jsxs("section",{className:"card",children:[S.jsxs("p",{className:"text-danger",children:["Could not load Kanban repositories: ",e]}),S.jsx("button",{type:"button",className:"btn ghost",onClick:t,children:"Reload page"})]})}function f2({row:e,deleteBusy:t,onRequestDelete:a}){return S.jsxs("tr",{children:[S.jsx("td",{children:S.jsx("code",{children:e.githubRepo})}),S.jsx("td",{children:S.jsx("code",{children:e.vibeKanbanRepoId})}),S.jsx("td",{className:"table-actions",children:S.jsx("button",{type:"button",className:"btn danger ghost",disabled:t,onClick:a,children:t?"Deleting…":"Delete"})})]})}function d2({rows:e,listInitialLoading:t,listErrorMessage:a,showEmptyHint:r,deleteBusy:u,onRequestDelete:s}){return S.jsxs("section",{className:"card mappings-existing-card",children:[S.jsx("h2",{children:"Existing"}),t?S.jsx("p",{className:"muted",children:"Loading mappings…"}):null,a?S.jsxs("p",{className:"text-danger",children:["Failed to load mappings: ",a]}):null,r?S.jsx("p",{className:"muted",children:"No mappings yet. Add one above to route GitHub PRs to a Kanban repository."}):null,e.length>0?S.jsxs("table",{className:"data-table",children:[S.jsx("thead",{children:S.jsxs("tr",{children:[S.jsx("th",{children:"GitHub repo"}),S.jsx("th",{children:"Kanban repo"}),S.jsx("th",{})]})}),S.jsx("tbody",{children:e.map(c=>S.jsx(f2,{row:c,deleteBusy:u,onRequestDelete:()=>{confirm("Delete this mapping?")&&s(c.id)}},c.id))})]}):null]})}function h2({value:e,options:t,loading:a,onChange:r}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:"Kanban repository"}),S.jsxs("select",{className:"input",value:e,onChange:u=>r(u.target.value),disabled:a,children:[S.jsx("option",{value:"",children:a?"Loading…":"Select…"}),t.map(u=>S.jsx("option",{value:u.id,children:u.name??u.id},u.id))]})]})}function m2({githubRepo:e,vkRepoId:t,vkRepos:a,vkReposLoading:r,upserting:u,onGithubRepoChange:s,onVkRepoIdChange:c,onSubmit:d}){return S.jsxs("section",{className:"card",children:[S.jsx("h2",{children:"New mapping"}),S.jsxs("form",{className:"form-stack",onSubmit:p=>{p.preventDefault(),d()},children:[S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:"GitHub repo"}),S.jsx("input",{className:"input",value:e,onChange:p=>s(p.target.value),placeholder:"owner/repo"})]}),S.jsx(h2,{value:t,options:a,loading:r,onChange:c}),S.jsx("button",{type:"submit",className:"btn primary",disabled:u,children:u?"Adding…":"Add mapping"})]})]})}function p2({titleRow:e,intro:t,vkReposError:a,newMapping:r,existingMappings:u}){return S.jsxs("div",{className:"stack",children:[e,t,a,r,u]})}function v2(){var T,D,E;const e=kn(el,{fetchPolicy:"cache-and-network"}),t=kn(Pj,{fetchPolicy:"cache-and-network"}),a=(((T=t.data)==null?void 0:T.vibeKanbanRepos)??[]).map(O=>({id:O.id,name:O.name??void 0})),r=t.error?fn(t.error):null,u=!!(t.loading&&!t.data),{handleSubmit:s,reset:c,setValue:d,watch:p}=bc({defaultValues:{githubRepo:"",vibeKanbanRepoId:""}}),m=p(),[v,{loading:y}]=Gn($j,{optimisticResponse:O=>({__typename:"Mutation",upsertMapping:{__typename:"MappingGql",id:o2(),githubRepo:O.input.githubRepo,vibeKanbanRepoId:O.input.vibeKanbanRepoId}}),update(O,{data:w}){const L=w==null?void 0:w.upsertMapping;if(!L)return;const M=O.readQuery({query:el});M&&O.writeQuery({query:el,data:{mappings:s2(M.mappings,L)}})},onCompleted:()=>{c(),je.success("Mapping added.")},onError:O=>je.error(`Add failed: ${fn(O)}`)}),[g,{loading:_}]=Gn(Lj,{optimisticResponse:()=>({__typename:"Mutation",deleteMapping:{__typename:"DeleteMappingPayload",ok:!0}}),update(O,w,{variables:L}){const M=L==null?void 0:L.id;if(M===void 0)return;const I=O.readQuery({query:el});I&&O.writeQuery({query:el,data:{mappings:I.mappings.filter($=>$.id!==M)}})},onCompleted:()=>je.success("Mapping deleted."),onError:O=>je.error(`Delete failed: ${fn(O)}`)}),N=((D=e.data)==null?void 0:D.mappings)??[];return S.jsx(p2,{titleRow:S.jsxs("div",{className:"page-title-row",children:[S.jsx("h1",{children:"Mappings"}),S.jsx(Lm,{})]}),intro:S.jsxs("p",{className:"muted",children:["GitHub repo (",S.jsx("code",{children:"owner/repo"}),") → Vibe Kanban repository. Default Kanban ",S.jsx("strong",{children:"project"})," for new issues is set on the"," ",S.jsx("a",{href:"/vibe-kanban",children:"Vibe Kanban"})," page."]}),vkReposError:r?S.jsx(c2,{message:r,onReloadPage:()=>window.location.reload()}):null,newMapping:S.jsx(m2,{githubRepo:m.githubRepo??"",vkRepoId:m.vibeKanbanRepoId??"",vkRepos:a,vkReposLoading:u,upserting:y,onGithubRepoChange:O=>{d("githubRepo",O,{shouldDirty:!0})},onVkRepoIdChange:O=>{d("vibeKanbanRepoId",O,{shouldDirty:!0})},onSubmit:()=>{s(O=>{v({variables:{input:{githubRepo:O.githubRepo,vibeKanbanRepoId:O.vibeKanbanRepoId}}})})()}}),existingMappings:S.jsx(d2,{rows:N,listInitialLoading:!!(e.loading&&!e.data),listErrorMessage:((E=e.error)==null?void 0:E.message)??null,showEmptyHint:N.length===0&&!e.loading,deleteBusy:_,onRequestDelete:O=>{g({variables:{id:O}})}})})}function I0({checked:e,onChange:t,label:a,settingKey:r,disabled:u=!1}){return S.jsxs("label",{className:"ui-switcher",children:[S.jsxs("span",{className:"ui-switcher-copy",children:[S.jsx("span",{children:a}),r?S.jsx("span",{className:"field-key",children:r}):null]}),S.jsx("input",{className:"ui-switcher-input",type:"checkbox",checked:e,disabled:u,onChange:s=>t(s.target.checked)}),S.jsx("span",{className:"ui-switcher-track","aria-hidden":!0,children:S.jsx("span",{className:"ui-switcher-thumb"})})]})}function y2({loading:e,errorMessage:t,scheduledOn:a,autoCreate:r,onScheduledChange:u,onAutoCreateChange:s,textFields:c,texts:d,onTextChange:p,saving:m,onSubmit:v}){return S.jsxs("section",{className:"card",children:[S.jsx("h2",{children:"Kanban issue creation"}),e?S.jsx("p",{className:"muted",children:"Loading…"}):null,t?S.jsxs("p",{className:"text-danger",children:["Failed to load settings: ",t]}):null,S.jsxs("form",{className:"form-stack",onSubmit:y=>{y.preventDefault(),v()},children:[S.jsx(I0,{checked:a,onChange:u,label:"Enable scheduled sync",settingKey:"scheduled_sync_enabled"}),S.jsx(I0,{checked:r,onChange:s,label:"Auto-create issues from sync",settingKey:"auto_create_issues"}),c.map(y=>S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:y.label}),S.jsxs("p",{className:"muted setting-field-meta",children:[S.jsx("code",{children:y.key}),y.envVar?S.jsxs(S.Fragment,{children:[" ","· env ",S.jsx("code",{children:y.envVar})]}):null]}),y.description?S.jsx("p",{className:"muted setting-field-desc",children:y.description}):null,S.jsx("input",{className:"input",name:y.key,value:d[y.key]??"",onChange:g=>p(y.key,g.target.value)})]},y.key)),S.jsx("button",{type:"submit",className:"btn primary",disabled:m,children:m?"Saving…":"Save"})]})]})}function g2({titleRow:e,settingsCard:t}){return S.jsxs("div",{className:"stack",children:[e,t]})}const b2=new Set(["poll_interval_minutes","jitter_max_seconds","run_now_cooldown_seconds","max_board_pr_count"]);function _2(){var v,y;const e=kn(dk,{fetchPolicy:"cache-and-network"}),{handleSubmit:t,reset:a,setValue:r,watch:u}=bc({defaultValues:{poll_interval_minutes:"",jitter_max_seconds:"",run_now_cooldown_seconds:"",max_board_pr_count:"",scheduled_sync_enabled:!1,auto_create_issues:!1}});j.useEffect(()=>{var N;const g=(N=e.data)==null?void 0:N.effectiveSettings;if(!g)return;const _=new Map(g.coreFields.map(T=>[T.key,T.value]));a({poll_interval_minutes:_.get("poll_interval_minutes")??"",jitter_max_seconds:_.get("jitter_max_seconds")??"",run_now_cooldown_seconds:_.get("run_now_cooldown_seconds")??"",max_board_pr_count:_.get("max_board_pr_count")??"",scheduled_sync_enabled:g.scheduledSyncEnabled,auto_create_issues:g.autoCreateIssues})},[e.data,a]);const[s,{loading:c}]=Gn(Ij,{optimisticResponse:(g,{IGNORE:_})=>{var O;const N=(O=e.data)==null?void 0:O.effectiveSettings;if(!N)return _;const T=String(N.id),D=g.input,E=D;return{__typename:"Mutation",updateSettings:{__typename:"EffectiveSettings",id:T,coreFields:N.coreFields.map(w=>({__typename:"CoreSettingField",...w,value:E[w.key]??w.value})),resolvedSourceLabel:N.resolvedSourceLabel,resolvedDestinationLabel:N.resolvedDestinationLabel,scheduledSyncEnabled:D.scheduled_sync_enabled!==void 0?D.scheduled_sync_enabled==="true":N.scheduledSyncEnabled,autoCreateIssues:D.auto_create_issues!==void 0?D.auto_create_issues==="true":N.autoCreateIssues}}},onCompleted(g,_){var D;const N=(D=_==null?void 0:_.variables)==null?void 0:D.input,T=(N==null?void 0:N.poll_interval_minutes)!==void 0||(N==null?void 0:N.jitter_max_seconds)!==void 0;je.success(T?"General settings saved. Scheduler will pick up interval changes.":"General settings saved.")},onError:g=>{je.error(`Save failed: ${fn(g)}`)}}),d=j.useMemo(()=>{var g;return(((g=e.data)==null?void 0:g.effectiveSettings.coreFields)??[]).filter(_=>b2.has(_.key))},[(v=e.data)==null?void 0:v.effectiveSettings.coreFields]),p=u(),m={poll_interval_minutes:p.poll_interval_minutes??"",jitter_max_seconds:p.jitter_max_seconds??"",run_now_cooldown_seconds:p.run_now_cooldown_seconds??"",max_board_pr_count:p.max_board_pr_count??""};return S.jsx(g2,{titleRow:S.jsxs("div",{className:"page-title-row",children:[S.jsx("h1",{children:"General"}),S.jsx(Lm,{})]}),settingsCard:S.jsx(y2,{loading:!!(e.loading&&!e.data),errorMessage:((y=e.error)==null?void 0:y.message)??null,scheduledOn:p.scheduled_sync_enabled??!1,autoCreate:p.auto_create_issues??!1,onScheduledChange:g=>{r("scheduled_sync_enabled",g,{shouldDirty:!0})},onAutoCreateChange:g=>{r("auto_create_issues",g,{shouldDirty:!0})},textFields:d,texts:m,onTextChange:(g,_)=>r(g,_,{shouldDirty:!0}),saving:c,onSubmit:()=>{t(g=>{s({variables:{input:{poll_interval_minutes:g.poll_interval_minutes,jitter_max_seconds:g.jitter_max_seconds,run_now_cooldown_seconds:g.run_now_cooldown_seconds,max_board_pr_count:g.max_board_pr_count,scheduled_sync_enabled:g.scheduled_sync_enabled?"true":"false",auto_create_issues:g.auto_create_issues?"true":"false"}}})})()}})})}function S2({label:e,value:t,options:a,disabled:r,loading:u,hasOrgError:s,onChange:c}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:e}),S.jsxs("select",{className:"input",value:t,onChange:d=>c(d.target.value),disabled:r,children:[S.jsx("option",{value:"",children:s?"—":u&&a.length===0?"Loading…":"Select…"}),a.map(d=>S.jsx("option",{value:d.id,children:d.name??d.id},d.id))]})]})}function k2({label:e,value:t,options:a,onChange:r}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:e}),S.jsx("select",{className:"input",value:t,onChange:u=>r(u.target.value),children:a.map(u=>S.jsx("option",{value:u.value,children:u.label},u.value))})]})}function E2({value:e,options:t,loading:a,errorMessage:r,onChange:u}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:"Project"}),S.jsxs("select",{className:"input",value:e,onChange:s=>u(s.target.value),disabled:a,children:[S.jsx("option",{value:"",children:a&&t.length===0?"Loading…":"Select…"}),t.map(s=>S.jsx("option",{value:s.id,children:s.name??s.id},s.id))]}),r?S.jsx("p",{className:"text-danger",children:r}):null]})}function N2({orgLabel:e,doneStatusLabel:t,executorLabel:a,boardPickerEnabled:r,orgErrorMessage:u,orgOptions:s,orgLoading:c,selectedOrgId:d,onOrgChange:p,selectedProjectId:m,projectOptions:v,projectLoading:y,projectErrorMessage:g,onProjectChange:_,doneStatusValue:N,onDoneStatusChange:T,executorValue:D,executorOptions:E,onExecutorChange:O,saving:w,onSubmit:L}){const M=!r||!!u||c&&s.length===0;return S.jsx("section",{className:"card",children:S.jsxs("form",{className:"form-stack",onSubmit:I=>{I.preventDefault(),L()},children:[S.jsx(S2,{label:e,value:d,options:s,disabled:M,loading:c,hasOrgError:!!u,onChange:p}),d.trim()?S.jsxs(S.Fragment,{children:[S.jsx(E2,{value:m,options:v,loading:y,errorMessage:g,onChange:_}),S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:t}),S.jsx("input",{className:"input",value:N,onChange:I=>T(I.target.value)})]}),S.jsx(k2,{label:a,value:D,options:E,onChange:O})]}):null,S.jsx("button",{type:"submit",className:"btn primary",disabled:w,children:w?"Saving…":"Save"})]})})}function T2(){var L,M,I;const e=kn(Xj,{fetchPolicy:"cache-and-network"}),t=((L=e.data)==null?void 0:L.vibeKanbanUiState)??null,{handleSubmit:a,reset:r,setValue:u,watch:s}=bc({defaultValues:{default_organization_id:"",default_project_id:"",kanban_done_status:"",vk_workspace_executor:""}});j.useEffect(()=>{t&&r({default_organization_id:t.boardOrg,default_project_id:t.boardProj,kanban_done_status:t.kanbanDoneStatus,vk_workspace_executor:t.vkExecutor})},[t,r]);const c=s(),d=c.default_organization_id??"",p=c.default_project_id??"",m=c.kanban_done_status??"",v=c.vk_workspace_executor??"",y=kn(Gj,{skip:!(t!=null&&t.vkBoardPicker)||!!(t!=null&&t.orgError),fetchPolicy:"cache-and-network"}),g=j.useMemo(()=>{var $;return(($=y.data)==null?void 0:$.vibeKanbanOrganizations)??[]},[(M=y.data)==null?void 0:M.vibeKanbanOrganizations]),_=kn(Yj,{variables:{organizationId:d},skip:!d.trim(),fetchPolicy:"cache-and-network"}),N=j.useMemo(()=>{var $;return(($=_.data)==null?void 0:$.vibeKanbanProjects)??[]},[(I=_.data)==null?void 0:I.vibeKanbanProjects]),T=_.error?fn(_.error):null,[D,E]=Gn(Zj,{onCompleted:()=>{je.success("Vibe Kanban settings saved.")},onError:$=>{je.error(`Save failed: ${fn($)}`)}}),O=async $=>{await D({variables:{input:$}})};if(e.loading&&!t&&!e.error)return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),S.jsx("p",{className:"muted",children:"Loading…"})]});if(e.error)return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),S.jsx("p",{className:"muted",children:fn(e.error)})]});if(!t)return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),S.jsx("p",{className:"muted",children:"Loading…"})]});const w=t;return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),w.orgError?S.jsx("p",{className:"text-danger",children:w.orgError}):null,y.error?S.jsx("p",{className:"text-danger",children:fn(y.error)}):null,S.jsx(N2,{orgLabel:w.vkLabels.default_organization_id,doneStatusLabel:w.vkLabels.kanban_done_status,executorLabel:w.vkLabels.vk_workspace_executor,boardPickerEnabled:w.vkBoardPicker,orgErrorMessage:w.orgError??null,orgOptions:g,orgLoading:!!y.loading,selectedOrgId:d,onOrgChange:$=>{u("default_organization_id",$,{shouldDirty:!0}),u("default_project_id","",{shouldDirty:!0})},selectedProjectId:p,projectOptions:N,projectLoading:!!_.loading,projectErrorMessage:T,onProjectChange:$=>{u("default_project_id",$,{shouldDirty:!0})},doneStatusValue:m,onDoneStatusChange:$=>{u("kanban_done_status",$,{shouldDirty:!0})},executorValue:v,executorOptions:w.executorOptions,onExecutorChange:$=>{u("vk_workspace_executor",$,{shouldDirty:!0})},saving:E.loading,onSubmit:()=>{a($=>{O({default_organization_id:$.default_organization_id,default_project_id:$.default_project_id,kanban_done_status:$.kanban_done_status,vk_workspace_executor:$.vk_workspace_executor})})()}})]})}function O2(){return S.jsx(rx,{children:S.jsxs(Aa,{element:S.jsx(Kj,{}),children:[S.jsx(Aa,{index:!0,element:S.jsx(nx,{to:"/dashboard",replace:!0})}),S.jsx(Aa,{path:"dashboard",element:S.jsx(MM,{})}),S.jsx(Aa,{path:"settings",element:S.jsx(_2,{})}),S.jsx(Aa,{path:"activity",element:S.jsx(uM,{})}),S.jsx(Aa,{path:"mappings",element:S.jsx(v2,{})}),S.jsx(Aa,{path:"github",element:S.jsx(u2,{})}),S.jsx(Aa,{path:"vibe-kanban",element:S.jsx(T2,{})})]})})}v1.createRoot(document.getElementById("root")).render(S.jsx(j.StrictMode,{children:S.jsxs($w,{client:SM,children:[S.jsx(xx,{children:S.jsx(O2,{})}),S.jsx(iD,{position:"top-right",toastOptions:{duration:3e3,style:{background:"#171c19",color:"#e8f0ea",border:"1px solid #2a332e"},success:{iconTheme:{primary:"#3d9f7a",secondary:"#0f1210"}},error:{iconTheme:{primary:"#c45c5c",secondary:"#0f1210"}}}})]})}))});export default w2();
|
|
315
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const v of e.seen.entries()){const y=v[1];if(t===v[0]){s(v);continue}if(e.external){const _=(p=e.external.registry.get(v[0]))==null?void 0:p.id;if(t!==v[0]&&_){s(v);continue}}if((m=e.metadataRegistry.get(v[0]))==null?void 0:m.id){s(v);continue}if(y.cycle){s(v);continue}if(y.count>1&&e.reused==="ref"){s(v);continue}}}function rk(e,t){var c,d,p;const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=m=>{const v=e.seen.get(m);if(v.ref===null)return;const y=v.def??v.schema,g={...y},_=v.ref;if(v.ref=null,_){r(_);const T=e.seen.get(_),D=T.schema;if(D.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(y.allOf=y.allOf??[],y.allOf.push(D)):Object.assign(y,D),Object.assign(y,g),m._zod.parent===_)for(const O in y)O==="$ref"||O==="allOf"||O in g||delete y[O];if(D.$ref&&T.def)for(const O in y)O==="$ref"||O==="allOf"||O in T.def&&JSON.stringify(y[O])===JSON.stringify(T.def[O])&&delete y[O]}const N=m._zod.parent;if(N&&N!==_){r(N);const T=e.seen.get(N);if(T!=null&&T.schema.$ref&&(y.$ref=T.schema.$ref,T.def))for(const D in y)D==="$ref"||D==="allOf"||D in T.def&&JSON.stringify(y[D])===JSON.stringify(T.def[D])&&delete y[D]}e.override({zodSchema:m,jsonSchema:y,path:v.path??[]})};for(const m of[...e.seen.entries()].reverse())r(m[0]);const u={};if(e.target==="draft-2020-12"?u.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?u.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?u.$schema="http://json-schema.org/draft-04/schema#":e.target,(c=e.external)!=null&&c.uri){const m=(d=e.external.registry.get(t))==null?void 0:d.id;if(!m)throw new Error("Schema is missing an `id` property");u.$id=e.external.uri(m)}Object.assign(u,a.def??a.schema);const s=((p=e.external)==null?void 0:p.defs)??{};for(const m of e.seen.entries()){const v=m[1];v.def&&v.defId&&(s[v.defId]=v.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?u.$defs=s:u.definitions=s);try{const m=JSON.parse(JSON.stringify(u));return Object.defineProperty(m,"~standard",{value:{...t["~standard"],jsonSchema:{input:Ps(t,"input",e.processors),output:Ps(t,"output",e.processors)}},enumerable:!1,writable:!1}),m}catch{throw new Error("Error converting schema to JSON.")}}function Xt(e,t){const a=t??{seen:new Set};if(a.seen.has(e))return!1;a.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Xt(r.element,a);if(r.type==="set")return Xt(r.valueType,a);if(r.type==="lazy")return Xt(r.getter(),a);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Xt(r.innerType,a);if(r.type==="intersection")return Xt(r.left,a)||Xt(r.right,a);if(r.type==="record"||r.type==="map")return Xt(r.keyType,a)||Xt(r.valueType,a);if(r.type==="pipe")return Xt(r.in,a)||Xt(r.out,a);if(r.type==="object"){for(const u in r.shape)if(Xt(r.shape[u],a))return!0;return!1}if(r.type==="union"){for(const u of r.options)if(Xt(u,a))return!0;return!1}if(r.type==="tuple"){for(const u of r.items)if(Xt(u,a))return!0;return!!(r.rest&&Xt(r.rest,a))}return!1}const jz=(e,t={})=>a=>{const r=ak({...a,processors:t});return xt(e,r),ik(r,e),rk(r,e)},Ps=(e,t,a={})=>r=>{const{libraryOptions:u,target:s}=r??{},c=ak({...u??{},target:s,io:t,processors:a});return xt(e,c),ik(c,e),rk(c,e)},Mz={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Fz=(e,t,a,r)=>{const u=a;u.type="string";const{minimum:s,maximum:c,format:d,patterns:p,contentEncoding:m}=e._zod.bag;if(typeof s=="number"&&(u.minLength=s),typeof c=="number"&&(u.maxLength=c),d&&(u.format=Mz[d]??d,u.format===""&&delete u.format,d==="time"&&delete u.format),m&&(u.contentEncoding=m),p&&p.size>0){const v=[...p];v.length===1?u.pattern=v[0].source:v.length>1&&(u.allOf=[...v.map(y=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:y.source}))])}},Uz=(e,t,a,r)=>{const u=a,{minimum:s,maximum:c,format:d,multipleOf:p,exclusiveMaximum:m,exclusiveMinimum:v}=e._zod.bag;typeof d=="string"&&d.includes("int")?u.type="integer":u.type="number",typeof v=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(u.minimum=v,u.exclusiveMinimum=!0):u.exclusiveMinimum=v),typeof s=="number"&&(u.minimum=s,typeof v=="number"&&t.target!=="draft-04"&&(v>=s?delete u.minimum:delete u.exclusiveMinimum)),typeof m=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(u.maximum=m,u.exclusiveMaximum=!0):u.exclusiveMaximum=m),typeof c=="number"&&(u.maximum=c,typeof m=="number"&&t.target!=="draft-04"&&(m<=c?delete u.maximum:delete u.exclusiveMaximum)),typeof p=="number"&&(u.multipleOf=p)},Vz=(e,t,a,r)=>{a.type="boolean"},Lz=(e,t,a,r)=>{a.not={}},qz=(e,t,a,r)=>{},Qz=(e,t,a,r)=>{const u=e._zod.def,s=US(u.entries);s.every(c=>typeof c=="number")&&(a.type="number"),s.every(c=>typeof c=="string")&&(a.type="string"),a.enum=s},Bz=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Zz=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Iz=(e,t,a,r)=>{const u=a,s=e._zod.def,{minimum:c,maximum:d}=e._zod.bag;typeof c=="number"&&(u.minItems=c),typeof d=="number"&&(u.maxItems=d),u.type="array",u.items=xt(s.element,t,{...r,path:[...r.path,"items"]})},Hz=(e,t,a,r)=>{var m;const u=a,s=e._zod.def;u.type="object",u.properties={};const c=s.shape;for(const v in c)u.properties[v]=xt(c[v],t,{...r,path:[...r.path,"properties",v]});const d=new Set(Object.keys(c)),p=new Set([...d].filter(v=>{const y=s.shape[v]._zod;return t.io==="input"?y.optin===void 0:y.optout===void 0}));p.size>0&&(u.required=Array.from(p)),((m=s.catchall)==null?void 0:m._zod.def.type)==="never"?u.additionalProperties=!1:s.catchall?s.catchall&&(u.additionalProperties=xt(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(u.additionalProperties=!1)},$z=(e,t,a,r)=>{const u=e._zod.def,s=u.inclusive===!1,c=u.options.map((d,p)=>xt(d,t,{...r,path:[...r.path,s?"oneOf":"anyOf",p]}));s?a.oneOf=c:a.anyOf=c},Gz=(e,t,a,r)=>{const u=e._zod.def,s=xt(u.left,t,{...r,path:[...r.path,"allOf",0]}),c=xt(u.right,t,{...r,path:[...r.path,"allOf",1]}),d=m=>"allOf"in m&&Object.keys(m).length===1,p=[...d(s)?s.allOf:[s],...d(c)?c.allOf:[c]];a.allOf=p},Yz=(e,t,a,r)=>{const u=a,s=e._zod.def;u.type="object";const c=s.keyType,d=c._zod.bag,p=d==null?void 0:d.patterns;if(s.mode==="loose"&&p&&p.size>0){const v=xt(s.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});u.patternProperties={};for(const y of p)u.patternProperties[y.source]=v}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(u.propertyNames=xt(s.keyType,t,{...r,path:[...r.path,"propertyNames"]})),u.additionalProperties=xt(s.valueType,t,{...r,path:[...r.path,"additionalProperties"]});const m=c._zod.values;if(m){const v=[...m].filter(y=>typeof y=="string"||typeof y=="number");v.length>0&&(u.required=v)}},Pz=(e,t,a,r)=>{const u=e._zod.def,s=xt(u.innerType,t,r),c=t.seen.get(e);t.target==="openapi-3.0"?(c.ref=u.innerType,a.nullable=!0):a.anyOf=[s,{type:"null"}]},Xz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType},Jz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType,a.default=JSON.parse(JSON.stringify(u.defaultValue))},Kz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType,t.io==="input"&&(a._prefault=JSON.parse(JSON.stringify(u.defaultValue)))},Wz=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType;let c;try{c=u.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}a.default=c},eC=(e,t,a,r)=>{const u=e._zod.def,s=t.io==="input"?u.in._zod.def.type==="transform"?u.out:u.in:u.out;xt(s,t,r);const c=t.seen.get(e);c.ref=s},tC=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType,a.readOnly=!0},lk=(e,t,a,r)=>{const u=e._zod.def;xt(u.innerType,t,r);const s=t.seen.get(e);s.ref=u.innerType},nC=J("ZodISODateTime",(e,t)=>{rA.init(e,t),dt.init(e,t)});function aC(e){return cz(nC,e)}const iC=J("ZodISODate",(e,t)=>{lA.init(e,t),dt.init(e,t)});function rC(e){return fz(iC,e)}const lC=J("ZodISOTime",(e,t)=>{uA.init(e,t),dt.init(e,t)});function uC(e){return dz(lC,e)}const oC=J("ZodISODuration",(e,t)=>{oA.init(e,t),dt.init(e,t)});function sC(e){return hz(oC,e)}const cC=(e,t)=>{QS.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:a=>Kx(e,a)},flatten:{value:a=>Jx(e,a)},addIssue:{value:a=>{e.issues.push(a),e.message=JSON.stringify(e.issues,Zh,2)}},addIssues:{value:a=>{e.issues.push(...a),e.message=JSON.stringify(e.issues,Zh,2)}},isEmpty:{get(){return e.issues.length===0}}})},Un=J("ZodError",cC,{Parent:Error}),fC=Fm(Un),dC=Um(Un),hC=pc(Un),mC=vc(Un),pC=tR(Un),vC=nR(Un),yC=aR(Un),gC=iR(Un),bC=rR(Un),_C=lR(Un),SC=uR(Un),kC=oR(Un),gt=J("ZodType",(e,t)=>(yt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Ps(e,"input"),output:Ps(e,"output")}}),e.toJSONSchema=jz(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...a)=>e.clone(Ni(t,{checks:[...t.checks??[],...a.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(a,r)=>Ti(e,a,r),e.brand=()=>e,e.register=((a,r)=>(a.add(e,r),e)),e.parse=(a,r)=>fC(e,a,r,{callee:e.parse}),e.safeParse=(a,r)=>hC(e,a,r),e.parseAsync=async(a,r)=>dC(e,a,r,{callee:e.parseAsync}),e.safeParseAsync=async(a,r)=>mC(e,a,r),e.spa=e.safeParseAsync,e.encode=(a,r)=>pC(e,a,r),e.decode=(a,r)=>vC(e,a,r),e.encodeAsync=async(a,r)=>yC(e,a,r),e.decodeAsync=async(a,r)=>gC(e,a,r),e.safeEncode=(a,r)=>bC(e,a,r),e.safeDecode=(a,r)=>_C(e,a,r),e.safeEncodeAsync=async(a,r)=>SC(e,a,r),e.safeDecodeAsync=async(a,r)=>kC(e,a,r),e.refine=(a,r)=>e.check(pj(a,r)),e.superRefine=a=>e.check(vj(a)),e.overwrite=a=>e.check(Nl(a)),e.optional=()=>T0(e),e.exactOptional=()=>nj(e),e.nullable=()=>O0(e),e.nullish=()=>T0(O0(e)),e.nonoptional=a=>oj(e,a),e.array=()=>nr(e),e.or=a=>YC([e,a]),e.and=a=>XC(e,a),e.transform=a=>w0(e,ej(a)),e.default=a=>rj(e,a),e.prefault=a=>uj(e,a),e.catch=a=>cj(e,a),e.pipe=a=>w0(e,a),e.readonly=()=>hj(e),e.describe=a=>{const r=e.clone();return ju.add(r,{description:a}),r},Object.defineProperty(e,"description",{get(){var a;return(a=ju.get(e))==null?void 0:a.description},configurable:!0}),e.meta=(...a)=>{if(a.length===0)return ju.get(e);const r=e.clone();return ju.add(r,a[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=a=>a(e),e)),uk=J("_ZodString",(e,t)=>{Vm.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(r,u,s)=>Fz(e,r,u);const a=e._zod.bag;e.format=a.format??null,e.minLength=a.minimum??null,e.maxLength=a.maximum??null,e.regex=(...r)=>e.check(bz(...r)),e.includes=(...r)=>e.check(kz(...r)),e.startsWith=(...r)=>e.check(Ez(...r)),e.endsWith=(...r)=>e.check(Nz(...r)),e.min=(...r)=>e.check(Ys(...r)),e.max=(...r)=>e.check(tk(...r)),e.length=(...r)=>e.check(nk(...r)),e.nonempty=(...r)=>e.check(Ys(1,...r)),e.lowercase=r=>e.check(_z(r)),e.uppercase=r=>e.check(Sz(r)),e.trim=()=>e.check(Oz()),e.normalize=(...r)=>e.check(Tz(...r)),e.toLowerCase=()=>e.check(wz()),e.toUpperCase=()=>e.check(Dz()),e.slugify=()=>e.check(xz())}),EC=J("ZodString",(e,t)=>{Vm.init(e,t),uk.init(e,t),e.email=a=>e.check(ZA(NC,a)),e.url=a=>e.check(YA(TC,a)),e.jwt=a=>e.check(sz(qC,a)),e.emoji=a=>e.check(PA(OC,a)),e.guid=a=>e.check(b0(E0,a)),e.uuid=a=>e.check(IA(Ds,a)),e.uuidv4=a=>e.check(HA(Ds,a)),e.uuidv6=a=>e.check($A(Ds,a)),e.uuidv7=a=>e.check(GA(Ds,a)),e.nanoid=a=>e.check(XA(wC,a)),e.guid=a=>e.check(b0(E0,a)),e.cuid=a=>e.check(JA(DC,a)),e.cuid2=a=>e.check(KA(xC,a)),e.ulid=a=>e.check(WA(RC,a)),e.base64=a=>e.check(lz(UC,a)),e.base64url=a=>e.check(uz(VC,a)),e.xid=a=>e.check(ez(AC,a)),e.ksuid=a=>e.check(tz(zC,a)),e.ipv4=a=>e.check(nz(CC,a)),e.ipv6=a=>e.check(az(jC,a)),e.cidrv4=a=>e.check(iz(MC,a)),e.cidrv6=a=>e.check(rz(FC,a)),e.e164=a=>e.check(oz(LC,a)),e.datetime=a=>e.check(aC(a)),e.date=a=>e.check(rC(a)),e.time=a=>e.check(uC(a)),e.duration=a=>e.check(sC(a))});function Ae(e){return BA(EC,e)}const dt=J("ZodStringFormat",(e,t)=>{st.init(e,t),uk.init(e,t)}),NC=J("ZodEmail",(e,t)=>{XR.init(e,t),dt.init(e,t)}),E0=J("ZodGUID",(e,t)=>{YR.init(e,t),dt.init(e,t)}),Ds=J("ZodUUID",(e,t)=>{PR.init(e,t),dt.init(e,t)}),TC=J("ZodURL",(e,t)=>{JR.init(e,t),dt.init(e,t)}),OC=J("ZodEmoji",(e,t)=>{KR.init(e,t),dt.init(e,t)}),wC=J("ZodNanoID",(e,t)=>{WR.init(e,t),dt.init(e,t)}),DC=J("ZodCUID",(e,t)=>{eA.init(e,t),dt.init(e,t)}),xC=J("ZodCUID2",(e,t)=>{tA.init(e,t),dt.init(e,t)}),RC=J("ZodULID",(e,t)=>{nA.init(e,t),dt.init(e,t)}),AC=J("ZodXID",(e,t)=>{aA.init(e,t),dt.init(e,t)}),zC=J("ZodKSUID",(e,t)=>{iA.init(e,t),dt.init(e,t)}),CC=J("ZodIPv4",(e,t)=>{sA.init(e,t),dt.init(e,t)}),jC=J("ZodIPv6",(e,t)=>{cA.init(e,t),dt.init(e,t)}),MC=J("ZodCIDRv4",(e,t)=>{fA.init(e,t),dt.init(e,t)}),FC=J("ZodCIDRv6",(e,t)=>{dA.init(e,t),dt.init(e,t)}),UC=J("ZodBase64",(e,t)=>{hA.init(e,t),dt.init(e,t)}),VC=J("ZodBase64URL",(e,t)=>{pA.init(e,t),dt.init(e,t)}),LC=J("ZodE164",(e,t)=>{vA.init(e,t),dt.init(e,t)}),qC=J("ZodJWT",(e,t)=>{gA.init(e,t),dt.init(e,t)}),ok=J("ZodNumber",(e,t)=>{JS.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(r,u,s)=>Uz(e,r,u),e.gt=(r,u)=>e.check(S0(r,u)),e.gte=(r,u)=>e.check(oh(r,u)),e.min=(r,u)=>e.check(oh(r,u)),e.lt=(r,u)=>e.check(_0(r,u)),e.lte=(r,u)=>e.check(uh(r,u)),e.max=(r,u)=>e.check(uh(r,u)),e.int=r=>e.check(N0(r)),e.safe=r=>e.check(N0(r)),e.positive=r=>e.check(S0(0,r)),e.nonnegative=r=>e.check(oh(0,r)),e.negative=r=>e.check(_0(0,r)),e.nonpositive=r=>e.check(uh(0,r)),e.multipleOf=(r,u)=>e.check(k0(r,u)),e.step=(r,u)=>e.check(k0(r,u)),e.finite=()=>e;const a=e._zod.bag;e.minValue=Math.max(a.minimum??Number.NEGATIVE_INFINITY,a.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(a.maximum??Number.POSITIVE_INFINITY,a.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(a.format??"").includes("int")||Number.isSafeInteger(a.multipleOf??.5),e.isFinite=!0,e.format=a.format??null});function It(e){return mz(ok,e)}const QC=J("ZodNumberFormat",(e,t)=>{bA.init(e,t),ok.init(e,t)});function N0(e){return pz(QC,e)}const BC=J("ZodBoolean",(e,t)=>{_A.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Vz(e,a,r)});function Ji(e){return vz(BC,e)}const ZC=J("ZodUnknown",(e,t)=>{SA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>qz()});function Hh(){return yz(ZC)}const IC=J("ZodNever",(e,t)=>{kA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Lz(e,a,r)});function HC(e){return gz(IC,e)}const $C=J("ZodArray",(e,t)=>{EA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Iz(e,a,r,u),e.element=t.element,e.min=(a,r)=>e.check(Ys(a,r)),e.nonempty=a=>e.check(Ys(1,a)),e.max=(a,r)=>e.check(tk(a,r)),e.length=(a,r)=>e.check(nk(a,r)),e.unwrap=()=>e.element});function nr(e,t){return Rz($C,e,t)}const sk=J("ZodObject",(e,t)=>{TA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Hz(e,a,r,u),Pe(e,"shape",()=>t.shape),e.keyof=()=>Tl(Object.keys(e._zod.def.shape)),e.catchall=a=>e.clone({...e._zod.def,catchall:a}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Hh()}),e.loose=()=>e.clone({...e._zod.def,catchall:Hh()}),e.strict=()=>e.clone({...e._zod.def,catchall:HC()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=a=>$x(e,a),e.safeExtend=a=>Gx(e,a),e.merge=a=>Yx(e,a),e.pick=a=>Ix(e,a),e.omit=a=>Hx(e,a),e.partial=(...a)=>Px(ck,e,a[0]),e.required=(...a)=>Xx(fk,e,a[0])});function Va(e,t){const a={type:"object",shape:e??{},...Se(t)};return new sk(a)}function za(e,t){return new sk({type:"object",shape:e,catchall:Hh(),...Se(t)})}const GC=J("ZodUnion",(e,t)=>{OA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>$z(e,a,r,u),e.options=t.options});function YC(e,t){return new GC({type:"union",options:e,...Se(t)})}const PC=J("ZodIntersection",(e,t)=>{wA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Gz(e,a,r,u)});function XC(e,t){return new PC({type:"intersection",left:e,right:t})}const JC=J("ZodRecord",(e,t)=>{DA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Yz(e,a,r,u),e.keyType=t.keyType,e.valueType=t.valueType});function KC(e,t,a){return new JC({type:"record",keyType:e,valueType:t,...Se(a)})}const $h=J("ZodEnum",(e,t)=>{xA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(r,u,s)=>Qz(e,r,u),e.enum=t.entries,e.options=Object.values(t.entries);const a=new Set(Object.keys(t.entries));e.extract=(r,u)=>{const s={};for(const c of r)if(a.has(c))s[c]=t.entries[c];else throw new Error(`Key ${c} not found in enum`);return new $h({...t,checks:[],...Se(u),entries:s})},e.exclude=(r,u)=>{const s={...t.entries};for(const c of r)if(a.has(c))delete s[c];else throw new Error(`Key ${c} not found in enum`);return new $h({...t,checks:[],...Se(u),entries:s})}});function Tl(e,t){const a=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new $h({type:"enum",entries:a,...Se(t)})}const WC=J("ZodTransform",(e,t)=>{RA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Zz(e,a),e._zod.parse=(a,r)=>{if(r.direction==="backward")throw new MS(e.constructor.name);a.addIssue=s=>{if(typeof s=="string")a.issues.push(Xu(s,a.value,t));else{const c=s;c.fatal&&(c.continue=!1),c.code??(c.code="custom"),c.input??(c.input=a.value),c.inst??(c.inst=e),a.issues.push(Xu(c))}};const u=t.transform(a.value,a);return u instanceof Promise?u.then(s=>(a.value=s,a)):(a.value=u,a)}});function ej(e){return new WC({type:"transform",transform:e})}const ck=J("ZodOptional",(e,t)=>{ek.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>lk(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function T0(e){return new ck({type:"optional",innerType:e})}const tj=J("ZodExactOptional",(e,t)=>{AA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>lk(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function nj(e){return new tj({type:"optional",innerType:e})}const aj=J("ZodNullable",(e,t)=>{zA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Pz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function O0(e){return new aj({type:"nullable",innerType:e})}const ij=J("ZodDefault",(e,t)=>{CA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Jz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function rj(e,t){return new ij({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():LS(t)}})}const lj=J("ZodPrefault",(e,t)=>{jA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Kz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function uj(e,t){return new lj({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():LS(t)}})}const fk=J("ZodNonOptional",(e,t)=>{MA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Xz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function oj(e,t){return new fk({type:"nonoptional",innerType:e,...Se(t)})}const sj=J("ZodCatch",(e,t)=>{FA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Wz(e,a,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function cj(e,t){return new sj({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const fj=J("ZodPipe",(e,t)=>{UA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>eC(e,a,r,u),e.in=t.in,e.out=t.out});function w0(e,t){return new fj({type:"pipe",in:e,out:t})}const dj=J("ZodReadonly",(e,t)=>{VA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>tC(e,a,r,u),e.unwrap=()=>e._zod.def.innerType});function hj(e){return new dj({type:"readonly",innerType:e})}const mj=J("ZodCustom",(e,t)=>{LA.init(e,t),gt.init(e,t),e._zod.processJSONSchema=(a,r,u)=>Bz(e,a)});function pj(e,t={}){return Az(mj,e,t)}function vj(e){return zz(e)}const yj=Va({prUrl:Ae(),githubRepo:Ae(),prNumber:It(),prTitle:Ae(),authorLogin:Ae().nullish(),decision:Ae(),effectiveDecision:Ae(),decisionLabel:Ae(),detail:Ae().nullish(),kanbanIssueId:Ae().nullish()}),gj=Va({id:Ae(),startedAt:Ae(),startedAtLabel:Ae(),finishedAt:Ae().nullable(),trigger:Ae(),phase:Ae(),phaseLabel:Ae(),abortReason:Ae().nullable(),errorMessage:Ae().nullable(),candidatesCount:It().nullish(),issuesCreated:It().nullish(),skippedUnmapped:It().nullish(),skippedBot:It().nullish(),skippedBoardLimit:It().nullish(),skippedAlreadyTracked:It().nullish(),skippedLinkedExisting:It().nullish(),skippedTriage:It().nullish(),skippedDeclined:It().nullish(),itemCount:It(),items:nr(yj)}),bj=Va({runs:nr(gj)}),_j=Va({id:Ae(),label:Ae(),href:Ae()}),Sj=Va({entries:nr(_j)}),kj=Tl(["no_default_kanban_board","no_mappings"]),Ej=Va({complete:Ji(),reason:kj.nullish(),mappingCount:It(),sourceType:Ae(),destinationType:Ae(),vibeKanbanBoardActive:Ji(),hasRouting:Ji()}),Nj=Va({text:Ae(),linkHref:Ae().optional(),linkLabel:Ae().optional()}),Tj=KC(Ae(),Ae());Va({evaluation:Ej,checklist:nr(Nj),reasonMessages:Tj});const Oj=["ok","error","unknown"],wj=["ok","error"],Dj=["ok","degraded","error","unknown"],xj=["idle","running","skipped","error"],Rj=Tl(Oj),Aj=Tl(wj),zj=Tl(Dj),Cj=Tl(xj),jj=za({candidates_count:It().nullable().optional(),skipped_unmapped:It().nullable().optional(),issues_created:It().nullable().optional()}),Mj=Va({timestamp:Ae(),pending_triage_count:It().int().nonnegative().nullish(),gh:za({state:Rj,message:Ae().nullish()}),database:za({state:Aj,message:Ae().nullish()}),setup:za({complete:Ji(),mappingCount:It(),reason:Ae().nullish()}),configuration:za({source_type:Ae(),destination_type:Ae(),vibe_kanban_board_active:Ji()}),destinations:nr(za({id:Ae(),state:zj})),scouts:nr(za({id:Ae(),state:Cj,last_poll:jj})),manual_sync:za({canRun:Ji(),reason:Ae().nullish(),cooldownUntil:Ae().nullish()}),scheduled_sync:za({enabled:Ji()})}),Fj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"AcceptTriageMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"prUrl"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"acceptTriage"},arguments:[{kind:"Argument",name:{kind:"Name",value:"prUrl"},value:{kind:"Variable",name:{kind:"Name",value:"prUrl"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]},Uj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"subscription",name:{kind:"Name",value:"ActivityEventsSubscription"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"activityEvents"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"invalidate"}}]}}]}}]},Gh={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"ActivityFeedQuery"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"first"}},type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"after"}},type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"activityFeed"},arguments:[{kind:"Argument",name:{kind:"Name",value:"first"},value:{kind:"Variable",name:{kind:"Name",value:"first"}}},{kind:"Argument",name:{kind:"Name",value:"after"},value:{kind:"Variable",name:{kind:"Name",value:"after"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"edges"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"cursor"}},{kind:"Field",name:{kind:"Name",value:"node"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"startedAt"}},{kind:"Field",name:{kind:"Name",value:"startedAtLabel"}},{kind:"Field",name:{kind:"Name",value:"finishedAt"}},{kind:"Field",name:{kind:"Name",value:"trigger"}},{kind:"Field",name:{kind:"Name",value:"phase"}},{kind:"Field",name:{kind:"Name",value:"phaseLabel"}},{kind:"Field",name:{kind:"Name",value:"abortReason"}},{kind:"Field",name:{kind:"Name",value:"errorMessage"}},{kind:"Field",name:{kind:"Name",value:"candidatesCount"}},{kind:"Field",name:{kind:"Name",value:"issuesCreated"}},{kind:"Field",name:{kind:"Name",value:"skippedUnmapped"}},{kind:"Field",name:{kind:"Name",value:"skippedBot"}},{kind:"Field",name:{kind:"Name",value:"skippedBoardLimit"}},{kind:"Field",name:{kind:"Name",value:"skippedAlreadyTracked"}},{kind:"Field",name:{kind:"Name",value:"skippedLinkedExisting"}},{kind:"Field",name:{kind:"Name",value:"skippedTriage"}},{kind:"Field",name:{kind:"Name",value:"skippedDeclined"}},{kind:"Field",name:{kind:"Name",value:"itemCount"}},{kind:"Field",name:{kind:"Name",value:"items"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]}},{kind:"Field",name:{kind:"Name",value:"pageInfo"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"hasNextPage"}},{kind:"Field",name:{kind:"Name",value:"endCursor"}}]}}]}}]}}]},sh={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"DashboardSetupQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"dashboardSetup"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"evaluation"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"complete"}},{kind:"Field",name:{kind:"Name",value:"reason"}},{kind:"Field",name:{kind:"Name",value:"mappingCount"}},{kind:"Field",name:{kind:"Name",value:"sourceType"}},{kind:"Field",name:{kind:"Name",value:"destinationType"}},{kind:"Field",name:{kind:"Name",value:"vibeKanbanBoardActive"}},{kind:"Field",name:{kind:"Name",value:"hasRouting"}}]}},{kind:"Field",name:{kind:"Name",value:"checklist"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"text"}},{kind:"Field",name:{kind:"Name",value:"linkHref"}},{kind:"Field",name:{kind:"Name",value:"linkLabel"}}]}},{kind:"Field",name:{kind:"Name",value:"reasonMessages"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"code"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}}]}}]}}]},Vj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"DeclineTriageMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"prUrl"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"declineTriage"},arguments:[{kind:"Argument",name:{kind:"Name",value:"prUrl"},value:{kind:"Variable",name:{kind:"Name",value:"prUrl"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]},Lj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"DeleteMappingMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"id"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"deleteMapping"},arguments:[{kind:"Argument",name:{kind:"Name",value:"id"},value:{kind:"Variable",name:{kind:"Name",value:"id"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"ok"}}]}}]}}]},dk={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"EffectiveSettingsQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"effectiveSettings"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},qj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"GithubFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"githubFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"disabled"}},{kind:"Field",name:{kind:"Name",value:"fields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}}]}}]}}]}}]},hk={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"IntegrationNavQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"integrationNav"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"entries"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"href"}}]}}]}}]}}]},el={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"MappingsQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"mappings"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"vibeKanbanRepoId"}},{kind:"Field",name:{kind:"Name",value:"createdAt"}},{kind:"Field",name:{kind:"Name",value:"updatedAt"}}]}}]}}]},Qj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"ReconsiderTriageMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"prUrl"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"reconsiderTriage"},arguments:[{kind:"Argument",name:{kind:"Name",value:"prUrl"},value:{kind:"Variable",name:{kind:"Name",value:"prUrl"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"prUrl"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"prNumber"}},{kind:"Field",name:{kind:"Name",value:"prTitle"}},{kind:"Field",name:{kind:"Name",value:"authorLogin"}},{kind:"Field",name:{kind:"Name",value:"decision"}},{kind:"Field",name:{kind:"Name",value:"effectiveDecision"}},{kind:"Field",name:{kind:"Name",value:"decisionLabel"}},{kind:"Field",name:{kind:"Name",value:"detail"}},{kind:"Field",name:{kind:"Name",value:"kanbanIssueId"}}]}}]}}]},mk={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"ReinitIntegrationMutation"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"reinitIntegration"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"ok"}},{kind:"Field",name:{kind:"Name",value:"database"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"source"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"destination"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}}]}}]}}]},Bj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"TriggerSyncMutation"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"triggerSync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"ok"}}]}}]}}]},Zj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpdateDestinationSettings"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpdateDestinationSettingsInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"updateDestinationSettings"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},Ij={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpdateSettingsMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpdateSettingsInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"updateSettings"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},Hj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpdateSourceSettings"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpdateSourceSettingsInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"updateSourceSettings"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"coreFields"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"}},{kind:"Field",name:{kind:"Name",value:"label"}},{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"envVar"}},{kind:"Field",name:{kind:"Name",value:"description"}}]}},{kind:"Field",name:{kind:"Name",value:"resolvedSourceLabel"}},{kind:"Field",name:{kind:"Name",value:"resolvedDestinationLabel"}},{kind:"Field",name:{kind:"Name",value:"scheduledSyncEnabled"}},{kind:"Field",name:{kind:"Name",value:"autoCreateIssues"}}]}}]}}]},$j={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"mutation",name:{kind:"Name",value:"UpsertMappingMutation"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"input"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"UpsertMappingInput"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"upsertMapping"},arguments:[{kind:"Argument",name:{kind:"Name",value:"input"},value:{kind:"Variable",name:{kind:"Name",value:"input"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"githubRepo"}},{kind:"Field",name:{kind:"Name",value:"vibeKanbanRepoId"}}]}}]}}]},Gj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanOrganizations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanOrganizations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}}]}}]},Yj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanProjects"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"organizationId"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanProjects"},arguments:[{kind:"Argument",name:{kind:"Name",value:"organizationId"},value:{kind:"Variable",name:{kind:"Name",value:"organizationId"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}}]}}]},Pj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanRepos"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanRepos"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"name"}}]}}]}}]},Xj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"VibeKanbanUiState"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"vibeKanbanUiState"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"saved"}},{kind:"Field",name:{kind:"Name",value:"error"}},{kind:"Field",name:{kind:"Name",value:"vkBoardPicker"}},{kind:"Field",name:{kind:"Name",value:"boardOrg"}},{kind:"Field",name:{kind:"Name",value:"boardProj"}},{kind:"Field",name:{kind:"Name",value:"kanbanDoneStatus"}},{kind:"Field",name:{kind:"Name",value:"vkExecutor"}},{kind:"Field",name:{kind:"Name",value:"executorOptions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"value"}},{kind:"Field",name:{kind:"Name",value:"label"}}]}},{kind:"Field",name:{kind:"Name",value:"vkLabels"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"default_organization_id"}},{kind:"Field",name:{kind:"Name",value:"vk_workspace_executor"}},{kind:"Field",name:{kind:"Name",value:"kanban_done_status"}}]}},{kind:"Field",name:{kind:"Name",value:"orgError"}}]}}]}}]},Wi={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"StatusQuery"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"status"},selectionSet:{kind:"SelectionSet",selections:[{kind:"FragmentSpread",name:{kind:"Name",value:"FullStatusSnapshot"}}]}}]}},{kind:"FragmentDefinition",name:{kind:"Name",value:"FullStatusSnapshot"},typeCondition:{kind:"NamedType",name:{kind:"Name",value:"StatusSnapshot"}},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"timestamp"}},{kind:"Field",name:{kind:"Name",value:"pending_triage_count"}},{kind:"Field",name:{kind:"Name",value:"gh"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"database"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"setup"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"complete"}},{kind:"Field",name:{kind:"Name",value:"mappingCount"}},{kind:"Field",name:{kind:"Name",value:"reason"}}]}},{kind:"Field",name:{kind:"Name",value:"configuration"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"source_type"}},{kind:"Field",name:{kind:"Name",value:"destination_type"}},{kind:"Field",name:{kind:"Name",value:"vibe_kanban_board_active"}}]}},{kind:"Field",name:{kind:"Name",value:"destinations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastOkAt"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"scouts"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastPollAt"}},{kind:"Field",name:{kind:"Name",value:"nextPollAt"}},{kind:"Field",name:{kind:"Name",value:"lastError"}},{kind:"Field",name:{kind:"Name",value:"skipReason"}},{kind:"Field",name:{kind:"Name",value:"last_poll"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"candidates_count"}},{kind:"Field",name:{kind:"Name",value:"skipped_unmapped"}},{kind:"Field",name:{kind:"Name",value:"issues_created"}}]}}]}},{kind:"Field",name:{kind:"Name",value:"manual_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"canRun"}},{kind:"Field",name:{kind:"Name",value:"reason"}},{kind:"Field",name:{kind:"Name",value:"cooldownUntil"}}]}},{kind:"Field",name:{kind:"Name",value:"scheduled_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}}]}}]}}]},Jj={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"subscription",name:{kind:"Name",value:"StatusUpdatedSubscription"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"statusUpdated"},selectionSet:{kind:"SelectionSet",selections:[{kind:"FragmentSpread",name:{kind:"Name",value:"FullStatusSnapshot"}}]}}]}},{kind:"FragmentDefinition",name:{kind:"Name",value:"FullStatusSnapshot"},typeCondition:{kind:"NamedType",name:{kind:"Name",value:"StatusSnapshot"}},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"timestamp"}},{kind:"Field",name:{kind:"Name",value:"pending_triage_count"}},{kind:"Field",name:{kind:"Name",value:"gh"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"database"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"setup"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"complete"}},{kind:"Field",name:{kind:"Name",value:"mappingCount"}},{kind:"Field",name:{kind:"Name",value:"reason"}}]}},{kind:"Field",name:{kind:"Name",value:"configuration"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"source_type"}},{kind:"Field",name:{kind:"Name",value:"destination_type"}},{kind:"Field",name:{kind:"Name",value:"vibe_kanban_board_active"}}]}},{kind:"Field",name:{kind:"Name",value:"destinations"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastOkAt"}},{kind:"Field",name:{kind:"Name",value:"message"}}]}},{kind:"Field",name:{kind:"Name",value:"scouts"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"state"}},{kind:"Field",name:{kind:"Name",value:"lastPollAt"}},{kind:"Field",name:{kind:"Name",value:"nextPollAt"}},{kind:"Field",name:{kind:"Name",value:"lastError"}},{kind:"Field",name:{kind:"Name",value:"skipReason"}},{kind:"Field",name:{kind:"Name",value:"last_poll"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"candidates_count"}},{kind:"Field",name:{kind:"Name",value:"skipped_unmapped"}},{kind:"Field",name:{kind:"Name",value:"issues_created"}}]}}]}},{kind:"Field",name:{kind:"Name",value:"manual_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"canRun"}},{kind:"Field",name:{kind:"Name",value:"reason"}},{kind:"Field",name:{kind:"Name",value:"cooldownUntil"}}]}},{kind:"Field",name:{kind:"Name",value:"scheduled_sync"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"enabled"}}]}}]}}]};function Kj(){var d,p,m;const e=kn(hk,{fetchPolicy:"cache-and-network"}),t=kn(Wi,{fetchPolicy:"cache-first"});oS(Jj,{onData:({data:v,client:y})=>{var _;const g=(_=v.data)==null?void 0:_.statusUpdated;g&&y.writeQuery({query:Wi,data:{status:g}})}});const a=((d=e.data)==null?void 0:d.integrationNav.entries)??[],r=Sj.safeParse({entries:a}),u=r.success?r.data.entries:a,s=j.useMemo(()=>{var y,g;const v=(g=(y=t.data)==null?void 0:y.status)==null?void 0:g.pending_triage_count;return typeof v=="number"&&Number.isFinite(v)?v:0},[(m=(p=t.data)==null?void 0:p.status)==null?void 0:m.pending_triage_count]),c=j.useRef("");return j.useEffect(()=>{typeof Notification>"u"||Notification.permission==="default"&&Notification.requestPermission()},[]),j.useEffect(()=>{if(typeof Notification>"u"||Notification.permission!=="granted")return;if(s<=0){c.current="";return}const v=String(s);c.current!==v&&(c.current=v,new Notification("vibe-squire: PRs need triage",{body:`${s} PR(s) awaiting your review or decline decision`,icon:"/favicon.svg",tag:"vs-triage"}))},[s]),S.jsxs("div",{className:"shell",children:[S.jsxs("aside",{className:"nav-rail",children:[S.jsxs("div",{className:"brand",children:[S.jsx("span",{className:"brand-mark",children:"◇"}),S.jsx("span",{className:"brand-text",children:"vibe-squire"})]}),S.jsxs("nav",{className:"nav",children:[S.jsx(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,end:!0,to:"/dashboard",children:"Dashboard"}),S.jsxs(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,to:"/activity",children:["Activity",s>0?S.jsx("span",{className:"nav-badge","aria-label":`${s} pending triage`,children:s}):null]}),S.jsx(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,to:"/settings",children:"General"}),S.jsx("div",{className:"nav-section-heading",children:"Sync adapters"}),e.loading&&!e.data?S.jsx("p",{className:"muted nav-loading",children:"Loading…"}):null,u.map(v=>S.jsx(Wr,{className:({isActive:y})=>`nav-link${y?" active":""}`,to:v.href,children:v.label},v.id)),S.jsx(Wr,{className:({isActive:v})=>`nav-link${v?" active":""}`,to:"/mappings",children:"Mappings"})]})]}),S.jsx("main",{className:"main",children:S.jsx(ax,{})})]})}function fn(e){return e instanceof Error&&e.message.trim().length>0?e.message:"Unknown error"}function Wj(e){if(!e.trim())return null;try{const t=JSON.parse(e);if(t.reason==="cooldown"&&typeof t.cooldownUntil=="string"&&t.cooldownUntil.length>0)return`Cooldown active until ${t.cooldownUntil}`;if(typeof t.message=="string"&&t.message.length>0)return t.message;if(typeof t.reason=="string"&&t.reason.length>0)return t.reason;if(typeof t.error=="string"&&t.error.length>0)return t.error}catch{return null}return null}function Yh(e){if(e instanceof cn){const t=e.graphQLErrors[0];if(t!=null&&t.message){const a=Wj(t.message);return a||t.message}}return fn(e)}function pk(e){if(e.database.state==="error")return!0;const{state:t}=e.gh;if(t&&t!=="ok")return!0;const a=e.destinations[0];if(a&&(a.state==="degraded"||a.state==="error"))return!0;const r=e.scouts[0];return(r==null?void 0:r.state)==="error"}const eM={first:40},tM=[{query:Wi},{query:Gh,variables:eM},{query:dk},{query:el},{query:hk}];function Lm(){const e=kn(Wi,{fetchPolicy:"cache-first"}),t=(()=>{var d;const s=(d=e.data)==null?void 0:d.status;if(!s)return null;const c=Mj.safeParse(s);return c.success?c.data:null})(),[a,{loading:r}]=Gn(mk,{refetchQueries:[...tM],awaitRefetchQueries:!0,onCompleted:()=>{je.success("Reinit completed.")},onError:s=>{je.error(`Reinit failed: ${Yh(s)}`)}});return(t?pk(t):!1)?S.jsx("div",{className:"actions-row operator-head-actions",children:S.jsx("button",{type:"button",className:"btn ghost btn-sm",disabled:r,onClick:()=>{confirm("Run soft reinit? This refreshes settings, rescans checks, clears scout backoff, and reschedules sync.")&&a()},children:r?"Reinit…":"Reinit"})}):null}function nM({prUrl:e,mode:t,onAccept:a,onDecline:r,onReconsider:u}){return S.jsx("div",{className:"triage-actions",children:t==="pending"?S.jsxs(S.Fragment,{children:[S.jsx("button",{type:"button",className:"btn btn-sm primary",onClick:()=>a(e),children:"Review"}),S.jsx("button",{type:"button",className:"btn btn-sm ghost",onClick:()=>r(e),children:"Decline"})]}):S.jsx("button",{type:"button",className:"btn btn-sm ghost",onClick:()=>u(e),children:"Reconsider"})})}function Mu(e){return e==="skipped_triage"||e==="skipped_board_limit"||e==="skipped_declined"}function D0(e){return Mu(e)?0:e==="skipped_declined"?1:2}function Ra(e){return e==null?"—":String(e)}function aM({run:e,highlight:t=!1,onAccept:a,onDecline:r,onReconsider:u}){const s=j.useMemo(()=>[...e.items].sort((g,_)=>{const N=D0(g.effectiveDecision),T=D0(_.effectiveDecision);return N!==T?N-T:g.prNumber-_.prNumber}),[e.items]),c=s.some(g=>Mu(g.effectiveDecision)),d=t&&c,[p,m]=j.useState(d);j.useEffect(()=>{d&&m(!0)},[d,e.id]);const v=e.trigger==="manual"?"manual":"scheduled";let y=null;return e.phase==="running"?y=`Sync in progress... ${e.itemCount} PR row(s) recorded so far.`:e.phase==="completed"?y=`${Ra(e.candidatesCount)} PR(s) seen · ${Ra(e.issuesCreated)} created · ${Ra(e.skippedUnmapped)} unmapped · ${Ra(e.skippedBot)} bot · ${Ra(e.skippedBoardLimit)} board limit · ${Ra(e.skippedAlreadyTracked)} already tracked · ${Ra(e.skippedLinkedExisting)} linked existing${e.skippedTriage?` · ${Ra(e.skippedTriage)} pending triage`:""}${e.skippedDeclined?` · ${Ra(e.skippedDeclined)} declined`:""}`:e.phase==="aborted"&&(y=e.abortReason??"Aborted"),S.jsxs("section",{className:"card activity-run",children:[S.jsxs("div",{className:"activity-run-summary",children:[S.jsxs("div",{className:"activity-run-meta",children:[S.jsx("span",{className:"activity-run-time mono",children:e.startedAtLabel}),S.jsx("span",{className:"activity-pill",children:v}),S.jsx("span",{className:`activity-pill activity-pill-phase-${e.phase}`,children:e.phaseLabel})]}),y?S.jsx("p",{className:"muted activity-run-counts",children:y}):null,e.phase==="failed"&&e.errorMessage?S.jsx("p",{className:"banner banner-error activity-run-msg",children:e.errorMessage}):null]}),s.length>0?S.jsxs("details",{className:"activity-details",open:p,onToggle:g=>m(g.currentTarget.open),children:[S.jsxs("summary",{className:"activity-details-summary",children:["PR details (",s.length,")",d?S.jsxs(S.Fragment,{children:[" ","· ",S.jsx("span",{className:"triage-attention-hint",children:"needs attention"})]}):null]}),S.jsx("div",{className:"table-wrap activity-items-wrap",children:S.jsxs("table",{className:"data-table activity-items-table",children:[S.jsx("thead",{children:S.jsxs("tr",{children:[S.jsx("th",{children:"PR"}),S.jsx("th",{children:"Repo"}),S.jsx("th",{children:"Outcome"}),S.jsx("th",{children:"Detail"})]})}),S.jsx("tbody",{children:s.map(g=>{const _=Mu(g.effectiveDecision)?"triage-pending-row":g.effectiveDecision==="skipped_declined"?"triage-declined-row":"";return S.jsxs("tr",{className:_,children:[S.jsxs("td",{children:[S.jsxs("a",{href:g.prUrl,target:"_blank",rel:"noreferrer",children:["#",g.prNumber]}),S.jsx("div",{className:"activity-pr-title muted",children:g.prTitle}),g.authorLogin?S.jsxs("div",{className:"muted",children:["@",g.authorLogin]}):null]}),S.jsx("td",{className:"wrap",children:S.jsx("code",{children:g.githubRepo})}),S.jsxs("td",{children:[g.decisionLabel,(Mu(g.effectiveDecision)||g.effectiveDecision==="skipped_declined")&&S.jsx(nM,{prUrl:g.prUrl,mode:Mu(g.effectiveDecision)?"pending":"declined",onAccept:a,onDecline:r,onReconsider:u})]}),S.jsxs("td",{className:"wrap muted",children:[g.kanbanIssueId?S.jsxs(S.Fragment,{children:[S.jsxs("code",{children:["issue ",g.kanbanIssueId]}),g.detail?" · ":""]}):null,g.detail??"—"]})]},g.prUrl)})})]})})]}):S.jsx("p",{className:"muted",children:"No items in this run."})]})}function iM(e){return e==="skipped_triage"||e==="skipped_board_limit"}function rM({initialLoading:e,errorMessage:t,runs:a,hasNextPage:r,loadMoreBusy:u,onLoadMore:s,onAccept:c,onDecline:d,onReconsider:p}){const m=j.useMemo(()=>a.find(g=>g.phase==="completed")??null,[a]),v=(m==null?void 0:m.id)??null,y=j.useMemo(()=>{if(!m)return 0;const g=new Set;for(const _ of m.items)iM(_.effectiveDecision)&&g.add(_.prUrl);return g.size},[m]);return S.jsxs(S.Fragment,{children:[e?S.jsx("p",{children:"Loading…"}):null,t?S.jsx("p",{className:"text-danger",children:t}):null,y>0?S.jsxs("div",{className:"banner-triage-attention",children:[S.jsxs("strong",{children:[y," PR(s)"]})," awaiting your review or decline decision."]}):null,a.map(g=>S.jsx(aM,{run:g,highlight:g.id===v,onAccept:c,onDecline:d,onReconsider:p},g.id)),r?S.jsx("button",{type:"button",className:"btn ghost",onClick:s,disabled:u,children:u?"Loading…":"Load more"}):null]})}function lM({titleRow:e,intro:t,feed:a}){return S.jsxs("div",{className:"stack",children:[e,t,a]})}function uM(){var g,_,N,T,D;const e=kn(Gh,{variables:{first:40},fetchPolicy:"cache-and-network"});oS(Uj,{onData:({client:E})=>{E.refetchQueries({include:[Gh]})}});const t=j.useMemo(()=>{var O;return(((O=e.data)==null?void 0:O.activityFeed.edges)??[]).map(w=>w.node)},[(g=e.data)==null?void 0:g.activityFeed.edges]),a=j.useMemo(()=>{try{return bj.parse({runs:t}).runs}catch{return[]}},[t]),r=j.useMemo(()=>{const E=new Map;for(const O of a)for(const w of O.items)E.has(w.prUrl)||E.set(w.prUrl,w);return E},[a]),u=j.useCallback((E,O)=>{const w=r.get(E);return{__typename:"ActivityItemGql",id:E,prUrl:E,githubRepo:(w==null?void 0:w.githubRepo)??"(updating)",prNumber:(w==null?void 0:w.prNumber)??0,prTitle:(w==null?void 0:w.prTitle)??"(updating)",authorLogin:(w==null?void 0:w.authorLogin)??null,decision:(w==null?void 0:w.decision)??"skipped_triage",effectiveDecision:O.effectiveDecision,decisionLabel:O.decisionLabel,detail:(w==null?void 0:w.detail)??null,kanbanIssueId:O.kanbanIssueId}},[r]),[s]=Gn(Fj,{optimisticResponse:E=>({__typename:"Mutation",acceptTriage:u(E.prUrl,{effectiveDecision:"linked_existing",decisionLabel:"Linked existing issue",kanbanIssueId:"…"})}),onError:E=>je.error(fn(E))}),[c]=Gn(Vj,{optimisticResponse:E=>({__typename:"Mutation",declineTriage:u(E.prUrl,{effectiveDecision:"skipped_declined",decisionLabel:"Declined",kanbanIssueId:null})}),onError:E=>je.error(fn(E))}),[d]=Gn(Qj,{optimisticResponse:E=>({__typename:"Mutation",reconsiderTriage:u(E.prUrl,{effectiveDecision:"skipped_triage",decisionLabel:"Pending triage",kanbanIssueId:null})}),onError:E=>je.error(fn(E))}),p=j.useCallback(()=>{var O,w,L,M,I,$;const E=(L=(w=(O=e.data)==null?void 0:O.activityFeed)==null?void 0:w.pageInfo)==null?void 0:L.endCursor;!E||!(($=(I=(M=e.data)==null?void 0:M.activityFeed)==null?void 0:I.pageInfo)!=null&&$.hasNextPage)||e.fetchMore({variables:{first:40,after:E}})},[e]),m=j.useCallback(E=>{s({variables:{prUrl:E}})},[s]),v=j.useCallback(E=>{c({variables:{prUrl:E}})},[c]),y=j.useCallback(E=>{d({variables:{prUrl:E}})},[d]);return S.jsx(lM,{titleRow:S.jsxs("div",{className:"page-title-row",children:[S.jsx("h1",{children:"Activity"}),S.jsx(Lm,{})]}),intro:S.jsx("p",{className:"muted",children:"Per-sync poll runs and item decisions."}),feed:S.jsx(rM,{initialLoading:!!(e.loading&&!e.data),errorMessage:((_=e.error)==null?void 0:_.message)??null,runs:a,hasNextPage:!!((D=(T=(N=e.data)==null?void 0:N.activityFeed)==null?void 0:T.pageInfo)!=null&&D.hasNextPage),loadMoreBusy:e.loading,onLoadMore:p,onAccept:m,onDecline:v,onReconsider:y})})}function oM(e){return ut(e)&&"code"in e&&"reason"in e}function sM(e){var t;return ut(e)&&((t=e.target)===null||t===void 0?void 0:t.readyState)===WebSocket.CLOSED}var cM=(function(e){Xn(t,e);function t(a){var r=e.call(this)||this;return r.client=a,r}return t.prototype.request=function(a){var r=this;return new et(function(u){return r.client.subscribe(C(C({},a),{query:pi(a.query)}),{next:u.next.bind(u),complete:u.complete.bind(u),error:function(s){if(s instanceof Error)return u.error(s);var c=oM(s);return c||sM(s)?u.error(new Error("Socket closed".concat(c?" with event ".concat(s.code):"").concat(c?" ".concat(s.reason):""))):u.error(new cn({graphQLErrors:Array.isArray(s)?s:[s]}))}})})},t})(ir);function on(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Yi(e){return on(e)==="object"}function fM(e){return Array.isArray(e)&&e.length>0&&e.every(t=>"message"in t)}function x0(e,t){return e.length<124?e:t}const dM="graphql-transport-ws";var jn=(e=>(e[e.InternalServerError=4500]="InternalServerError",e[e.InternalClientError=4005]="InternalClientError",e[e.BadRequest=4400]="BadRequest",e[e.BadResponse=4004]="BadResponse",e[e.Unauthorized=4401]="Unauthorized",e[e.Forbidden=4403]="Forbidden",e[e.SubprotocolNotAcceptable=4406]="SubprotocolNotAcceptable",e[e.ConnectionInitialisationTimeout=4408]="ConnectionInitialisationTimeout",e[e.ConnectionAcknowledgementTimeout=4504]="ConnectionAcknowledgementTimeout",e[e.SubscriberAlreadyExists=4409]="SubscriberAlreadyExists",e[e.TooManyInitialisationRequests=4429]="TooManyInitialisationRequests",e))(jn||{}),Mn=(e=>(e.ConnectionInit="connection_init",e.ConnectionAck="connection_ack",e.Ping="ping",e.Pong="pong",e.Subscribe="subscribe",e.Next="next",e.Error="error",e.Complete="complete",e))(Mn||{});function vk(e){if(!Yi(e))throw new Error(`Message is expected to be an object, but got ${on(e)}`);if(!e.type)throw new Error("Message is missing the 'type' property");if(typeof e.type!="string")throw new Error(`Message is expects the 'type' property to be a string, but got ${on(e.type)}`);switch(e.type){case"connection_init":case"connection_ack":case"ping":case"pong":{if(e.payload!=null&&!Yi(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an object or nullish or missing, but got "${e.payload}"`);break}case"subscribe":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);if(!Yi(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an object, but got ${on(e.payload)}`);if(typeof e.payload.query!="string")throw new Error(`"${e.type}" message payload expects the 'query' property to be a string, but got ${on(e.payload.query)}`);if(e.payload.variables!=null&&!Yi(e.payload.variables))throw new Error(`"${e.type}" message payload expects the 'variables' property to be a an object or nullish or missing, but got ${on(e.payload.variables)}`);if(e.payload.operationName!=null&&on(e.payload.operationName)!=="string")throw new Error(`"${e.type}" message payload expects the 'operationName' property to be a string or nullish or missing, but got ${on(e.payload.operationName)}`);if(e.payload.extensions!=null&&!Yi(e.payload.extensions))throw new Error(`"${e.type}" message payload expects the 'extensions' property to be a an object or nullish or missing, but got ${on(e.payload.extensions)}`);break}case"next":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);if(!Yi(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an object, but got ${on(e.payload)}`);break}case"error":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);if(!fM(e.payload))throw new Error(`"${e.type}" message expects the 'payload' property to be an array of GraphQL errors, but got ${JSON.stringify(e.payload)}`);break}case"complete":{if(typeof e.id!="string")throw new Error(`"${e.type}" message expects the 'id' property to be a string, but got ${on(e.id)}`);if(!e.id)throw new Error(`"${e.type}" message requires a non-empty 'id' property`);break}default:throw new Error(`Invalid message 'type' property "${e.type}"`)}return e}function hM(e,t){return vk(typeof e=="string"?JSON.parse(e,t):e)}function Ru(e,t){return vk(e),JSON.stringify(e,t)}function mM(e){const{url:t,connectionParams:a,lazy:r=!0,onNonLazyError:u=console.error,lazyCloseTimeout:s=0,keepAlive:c=0,disablePong:d,connectionAckWaitTimeout:p=0,retryAttempts:m=5,retryWait:v=async function(se){const U=Math.pow(2,se);await new Promise(P=>setTimeout(P,U*1e3+Math.floor(Math.random()*2700+300)))},shouldRetry:y=ch,on:g,webSocketImpl:_,generateID:N=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,se=>{const U=Math.random()*16|0;return(se=="x"?U:U&3|8).toString(16)})},jsonMessageReplacer:T,jsonMessageReviver:D}=e;let E;if(_){if(!vM(_))throw new Error("Invalid WebSocket implementation provided");E=_}else typeof WebSocket<"u"?E=WebSocket:typeof global<"u"?E=global.WebSocket||global.MozWebSocket:typeof window<"u"&&(E=window.WebSocket||window.MozWebSocket);if(!E)throw new Error("WebSocket implementation missing; on Node you can `import WebSocket from 'ws';` and pass `webSocketImpl: WebSocket` to `createClient`");const O=E,w=(()=>{const W=(()=>{const U={};return{on(P,ie){return U[P]=ie,()=>{delete U[P]}},emit(P){var ie;"id"in P&&((ie=U[P.id])==null||ie.call(U,P))}}})(),se={connecting:g!=null&&g.connecting?[g.connecting]:[],opened:g!=null&&g.opened?[g.opened]:[],connected:g!=null&&g.connected?[g.connected]:[],ping:g!=null&&g.ping?[g.ping]:[],pong:g!=null&&g.pong?[g.pong]:[],message:g!=null&&g.message?[W.emit,g.message]:[W.emit],closed:g!=null&&g.closed?[g.closed]:[],error:g!=null&&g.error?[g.error]:[]};return{onMessage:W.on,on(U,P){const ie=se[U];return ie.push(P),()=>{ie.splice(ie.indexOf(P),1)}},emit(U,...P){for(const ie of[...se[U]])ie(...P)}}})();function L(W){const se=[w.on("error",U=>{se.forEach(P=>P()),W(U)}),w.on("closed",U=>{se.forEach(P=>P()),W(U)})]}let M,I=0,$,ee=!1,ce=0,Ne=!1;async function Be(){clearTimeout($);const[W,se]=await(M??(M=new Promise((ie,me)=>(async()=>{if(ee){if(await v(ce),!I)return M=void 0,me({code:1e3,reason:"All Subscriptions Gone"});ce++}w.emit("connecting",ee);const ve=new O(typeof t=="function"?await t():t,dM);let A,G;function ae(){isFinite(c)&&c>0&&(clearTimeout(G),G=setTimeout(()=>{ve.readyState===O.OPEN&&(ve.send(Ru({type:Mn.Ping})),w.emit("ping",!1,void 0))},c))}L(ge=>{M=void 0,clearTimeout(A),clearTimeout(G),me(ge),ge instanceof R0&&(ve.close(4499,"Terminated"),ve.onerror=null,ve.onclose=null)}),ve.onerror=ge=>w.emit("error",ge),ve.onclose=ge=>w.emit("closed",ge),ve.onopen=async()=>{try{w.emit("opened",ve);const ge=typeof a=="function"?await a():a;if(ve.readyState!==O.OPEN)return;ve.send(Ru(ge?{type:Mn.ConnectionInit,payload:ge}:{type:Mn.ConnectionInit},T)),isFinite(p)&&p>0&&(A=setTimeout(()=>{ve.close(jn.ConnectionAcknowledgementTimeout,"Connection acknowledgement timeout")},p)),ae()}catch(ge){w.emit("error",ge),ve.close(jn.InternalClientError,x0(ge instanceof Error?ge.message:String(ge),"Internal client error"))}};let oe=!1;ve.onmessage=({data:ge})=>{try{const _e=hM(ge,D);if(w.emit("message",_e),_e.type==="ping"||_e.type==="pong"){w.emit(_e.type,!0,_e.payload),_e.type==="pong"?ae():d||(ve.send(Ru(_e.payload?{type:Mn.Pong,payload:_e.payload}:{type:Mn.Pong})),w.emit("pong",!1,_e.payload));return}if(oe)return;if(_e.type!==Mn.ConnectionAck)throw new Error(`First message cannot be of type ${_e.type}`);clearTimeout(A),oe=!0,w.emit("connected",ve,_e.payload,ee),ee=!1,ce=0,ie([ve,new Promise((qe,kt)=>L(kt))])}catch(_e){ve.onmessage=null,w.emit("error",_e),ve.close(jn.BadResponse,x0(_e instanceof Error?_e.message:String(_e),"Bad response"))}}})())));W.readyState===O.CLOSING&&await se;let U=()=>{};const P=new Promise(ie=>U=ie);return[W,U,Promise.race([P.then(()=>{if(!I){const ie=()=>W.close(1e3,"Normal Closure");isFinite(s)&&s>0?$=setTimeout(()=>{W.readyState===O.OPEN&&ie()},s):ie()}}),se])]}function le(W){if(ch(W)&&(pM(W.code)||[jn.InternalServerError,jn.InternalClientError,jn.BadRequest,jn.BadResponse,jn.Unauthorized,jn.SubprotocolNotAcceptable,jn.SubscriberAlreadyExists,jn.TooManyInitialisationRequests].includes(W.code)))throw W;if(Ne)return!1;if(ch(W)&&W.code===1e3)return I>0;if(!m||ce>=m||!y(W))throw W;return ee=!0}r||(async()=>{for(I++;;)try{const[,,W]=await Be();await W}catch(W){try{if(!le(W))return}catch(se){return u==null?void 0:u(se)}}})();function fe(W,se){const U=N(W);let P=!1,ie=!1,me=()=>{I--,P=!0};return(async()=>{for(I++;;)try{const[ve,A,G]=await Be();if(P)return A();const ae=w.onMessage(U,oe=>{switch(oe.type){case Mn.Next:{se.next(oe.payload);return}case Mn.Error:{ie=!0,P=!0,se.error(oe.payload),me();return}case Mn.Complete:{P=!0,me();return}}});ve.send(Ru({id:U,type:Mn.Subscribe,payload:W},T)),me=()=>{!P&&ve.readyState===O.OPEN&&ve.send(Ru({id:U,type:Mn.Complete},T)),I--,P=!0,A()},await G.finally(ae);return}catch(ve){if(!le(ve))return}})().then(()=>{ie||se.complete()}).catch(ve=>{se.error(ve)}),()=>{P||me()}}return{on:w.on,subscribe:fe,iterate(W){const se=[],U={done:!1,error:null,resolve:()=>{}},P=fe(W,{next(me){se.push(me),U.resolve()},error(me){U.done=!0,U.error=me,U.resolve()},complete(){U.done=!0,U.resolve()}}),ie=(async function*(){for(;;){for(se.length||await new Promise(ve=>U.resolve=ve);se.length;)yield se.shift();if(U.error)throw U.error;if(U.done)return}})();return ie.throw=async me=>(U.done||(U.done=!0,U.error=me,U.resolve()),{done:!0,value:void 0}),ie.return=async()=>(P(),{done:!0,value:void 0}),ie},async dispose(){if(Ne=!0,M){const[W]=await M;W.close(1e3,"Normal Closure")}},terminate(){M&&w.emit("closed",new R0)}}}class R0 extends Error{constructor(){super(...arguments);Gr(this,"name","TerminatedCloseEvent");Gr(this,"message","4499: Terminated");Gr(this,"code",4499);Gr(this,"reason","Terminated");Gr(this,"wasClean",!1)}}function ch(e){return Yi(e)&&"code"in e&&"reason"in e}function pM(e){return[1e3,1001,1006,1005,1012,1013,1014].includes(e)?!1:e>=1e3&&e<=1999}function vM(e){return typeof e=="function"&&"constructor"in e&&"CLOSED"in e&&"CLOSING"in e&&"CONNECTING"in e&&"OPEN"in e}function yM(){return typeof window>"u"?"ws://127.0.0.1:4000/graphql":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/graphql`}const gM=new A_({uri:"/graphql"}),bM=new cM(mM({url:yM()})),_M=qO(({query:e})=>{const t=bl(e);return t.kind===nt.OPERATION_DEFINITION&&t.operation===yh.SUBSCRIPTION},bM,gM),SM=new W_({name:"@vibe-squire/web",version:"p2-4",link:_M,cache:new J_({typePolicies:{Query:{fields:{mappings:{merge(e,t){return t}},activityFeed:vO(["first","after"]),effectiveSettings:{merge:!0}}},ActivityRunGql:{keyFields:["id"]},ActivityItemGql:{keyFields:["id"]},MappingGql:{keyFields:["id"]}}})});function aa({width:e="100%"}){return S.jsx("span",{className:"ui-loading-line",style:{width:e},"aria-hidden":!0})}function _n({title:e,children:t,compact:a=!1}){return S.jsxs("section",{className:`card ${a?"compact":""}`,children:[S.jsx("h2",{className:"ui-card-heading",children:e}),t]})}function Kt({label:e,value:t}){return S.jsxs("div",{className:"ui-key-value",children:[S.jsx("span",{className:"ui-key-value-label",children:e}),S.jsx("span",{className:"ui-key-value-value",children:t})]})}function kM({configuration:e}){return S.jsxs(_n,{title:"Configuration",children:[S.jsx(Kt,{label:"Source",value:e.source_type}),S.jsx(Kt,{label:"Destination",value:e.destination_type}),S.jsx(Kt,{label:"Vibe Kanban board",value:e.vibe_kanban_board_active?"active":"inactive"})]})}const EM={ok:"var(--accent)",degraded:"var(--warn)",error:"var(--danger)",unknown:"#5a6b62",idle:"#5a6b62",running:"var(--warn)",skipped:"#5a6b62"};function NM({state:e}){return S.jsx("span",{className:"status-dot","aria-label":`State: ${e}`,title:e,style:{backgroundColor:EM[e]}})}function Ol({state:e,label:t}){return S.jsxs("span",{className:"ui-status-pill",children:[S.jsx(NM,{state:e}),S.jsx("span",{children:t??e})]})}function TM({status:e}){return S.jsxs(_n,{title:"Database",children:[S.jsx(Ol,{state:e.state}),e.message?S.jsx("p",{className:"muted",children:e.message}):null]})}function OM(e){return!Number.isNaN(e.getTime())}function Xs(e){const t=new Date(e);if(!OM(t))return e;const a=new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1}).formatToParts(t),r=u=>{var s;return((s=a.find(c=>c.type===u))==null?void 0:s.value)??""};return`${r("year")}-${r("month")}-${r("day")} ${r("hour")}:${r("minute")}`}function A0(e){return typeof e=="string"&&e.length>0?e:null}function wM({destinations:e}){return S.jsxs(_n,{title:"Destinations",children:[e.length===0?S.jsx("p",{className:"muted",children:"No destinations"}):null,S.jsx("ul",{className:"id-list",children:e.map(t=>{const a=t,r=A0(a.lastOkAt),u=A0(a.message);return S.jsxs("li",{children:[S.jsx(Ol,{state:t.state}),S.jsx(Kt,{label:"ID",value:t.id}),r?S.jsx(Kt,{label:"Last ok",value:Xs(r)}):null,u?S.jsx("p",{className:"muted",children:u}):null]},t.id)})})]})}function DM({status:e}){return S.jsxs(_n,{title:"GitHub",children:[S.jsx(Ol,{state:e.state}),e.message?S.jsx("p",{className:"muted",children:e.message}):null]})}function xM(e){return e.canRun?{state:"ok",label:"runnable"}:e.reason==="cooldown"?{state:"degraded",label:"cooldown",reasonText:"Cooldown active"}:e.reason==="already_running"?{state:"degraded",label:"busy",reasonText:"Sync is already running"}:e.reason==="setup_incomplete"?{state:"degraded",label:"setup required",reasonText:"Finish setup checklist to enable manual sync"}:e.reason?{state:"error",label:"blocked",reasonText:e.reason}:{state:"degraded",label:"blocked"}}function RM({manualSync:e,onSyncNow:t,syncNowPending:a=!1}){const r=xM(e);return S.jsxs(_n,{title:"Manual sync",children:[S.jsx(Ol,{state:r.state,label:r.label}),S.jsx("div",{className:"actions-row manual-sync-actions",children:S.jsx("button",{type:"button",className:"btn primary btn-sm",disabled:!e.canRun||a,onClick:t,children:a?"Syncing…":"Sync now"})}),r.reasonText?S.jsx("p",{className:"muted",children:r.reasonText}):null,e.cooldownUntil?S.jsx(Kt,{label:"Cooldown until",value:Xs(e.cooldownUntil)}):null]})}function AM({scheduledSync:e}){const t=e.enabled?"ok":"degraded",a=e.enabled?"enabled":"disabled";return S.jsxs(_n,{title:"Scheduled sync",compact:!0,children:[S.jsx(Ol,{state:t,label:a}),e.enabled?null:S.jsx("p",{className:"muted",children:"Disabled in General settings."})]})}function z0(e){return typeof e=="string"&&e.length>0?e:null}function fh(e){return typeof e=="number"?String(e):"n/a"}function zM({scouts:e}){return S.jsxs(_n,{title:"Scouts",children:[e.length===0?S.jsx("p",{className:"muted",children:"No scouts"}):null,S.jsx("ul",{className:"id-list",children:e.map(t=>{const a=t,r=z0(a.lastPollAt),u=z0(a.nextPollAt),s=t.last_poll;return S.jsxs("li",{children:[S.jsx(Ol,{state:t.state}),S.jsx(Kt,{label:"ID",value:t.id}),r?S.jsx(Kt,{label:"Last poll",value:Xs(r)}):null,u?S.jsx(Kt,{label:"Next poll",value:Xs(u)}):null,s?S.jsxs(S.Fragment,{children:[S.jsx(Kt,{label:"Candidates",value:fh(s.candidates_count)}),S.jsx(Kt,{label:"Skipped",value:fh(s.skipped_unmapped)}),S.jsx(Kt,{label:"Issues created",value:fh(s.issues_created)})]}):null]},t.id)})})]})}function CM({text:e,linkHref:t,linkLabel:a}){return S.jsxs("li",{className:"setup-checklist-item",children:[S.jsx("span",{className:"setup-checklist-mark","aria-hidden":!0,children:"•"}),S.jsxs("span",{className:"setup-checklist-text",children:[e,t&&a&&S.jsxs(S.Fragment,{children:[" ",S.jsx("a",{className:"setup-checklist-link",href:t,children:a})]})]})]})}function jM({setup:e,items:t}){const a=t??[];return S.jsxs(_n,{title:"Setup checklist",children:[S.jsx(Kt,{label:"Complete",value:e.complete?"yes":"no"}),S.jsx(Kt,{label:"Mappings",value:String(e.mappingCount)}),e.reason?S.jsx(Kt,{label:"Reason",value:e.reason}):null,a.length>0?S.jsx("ul",{className:"setup-checklist",children:a.map(r=>S.jsx(CM,{text:r.text,linkHref:r.linkHref,linkLabel:r.linkLabel},`${r.text}-${r.linkHref??""}`))}):null]})}function xs({children:e}){return S.jsx("h2",{className:"ui-group-heading",children:e})}function dh({headActions:e,overview:t,sync:a,health:r,setup:u}){return S.jsxs("div",{className:"page",children:[S.jsxs("div",{className:"page-head",children:[S.jsx("h1",{children:"Dashboard"}),e?S.jsx("div",{className:"dashboard-head-actions",children:e}):null]}),S.jsxs("div",{className:"dashboard-template-grid",children:[t?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Overview"}),S.jsx("div",{className:"dashboard-template-stack",children:t})]}):null,a?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Sync"}),S.jsx("div",{className:"dashboard-template-stack",children:a})]}):null,r?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Health"}),S.jsx("div",{className:"dashboard-template-stack",children:r})]}):null,u?S.jsxs("section",{className:"dashboard-template-slot",children:[S.jsx(xs,{children:"Setup"}),S.jsx("div",{className:"dashboard-template-stack",children:u})]}):null]})]})}function MM(){var p,m;const e=kn(Wi),t=kn(sh),[a,{loading:r}]=Gn(Bj,{refetchQueries:[{query:Wi},{query:sh}],awaitRefetchQueries:!0,onCompleted:()=>{je.success("Sync finished.")},onError:v=>{je.error(`Sync failed: ${Yh(v)}`)}}),[u,{loading:s}]=Gn(mk,{refetchQueries:[{query:Wi},{query:sh}],awaitRefetchQueries:!0,onCompleted:()=>{je.success("Reinit completed.")},onError:v=>{je.error(`Reinit failed: ${Yh(v)}`)}});if(e.loading&&!e.data&&!e.error)return S.jsx(dh,{overview:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"72%"}),S.jsx(aa,{width:"58%"}),S.jsx(aa,{width:"44%"})]})}),sync:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"56%"}),S.jsx(aa,{width:"38%"})]})}),health:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"82%"}),S.jsx(aa,{width:"68%"}),S.jsx(aa,{width:"52%"})]})}),setup:S.jsx(_n,{title:"Loading",children:S.jsxs("div",{className:"ui-skeleton-stack",children:[S.jsx(aa,{width:"64%"}),S.jsx(aa,{width:"48%"})]})})});if(e.error||!((p=e.data)!=null&&p.status))return S.jsx(dh,{overview:S.jsx(_n,{title:"Status unavailable",children:S.jsx("p",{children:"Failed to load dashboard status snapshot."})})});const c=e.data.status,d=pk(c);return S.jsx(dh,{headActions:d?S.jsx("button",{type:"button",className:"btn ghost btn-sm",disabled:s,onClick:()=>{confirm("Run soft reinit? This refreshes settings, rescans checks, clears scout backoff, and reschedules sync.")&&u()},children:s?"Reinit…":"Reinit"}):null,overview:S.jsxs(S.Fragment,{children:[S.jsx(DM,{status:c.gh}),S.jsx(TM,{status:c.database}),S.jsx(kM,{configuration:c.configuration})]}),sync:S.jsxs(S.Fragment,{children:[S.jsx(RM,{manualSync:c.manual_sync,onSyncNow:()=>{a()},syncNowPending:r}),S.jsx(AM,{scheduledSync:c.scheduled_sync})]}),health:S.jsxs(S.Fragment,{children:[S.jsx(wM,{destinations:c.destinations}),S.jsx(zM,{scouts:c.scouts})]}),setup:S.jsx(jM,{setup:c.setup,items:(m=t.data)==null?void 0:m.dashboardSetup.checklist.map(v=>({text:v.text,...v.linkHref?{linkHref:v.linkHref}:{},...v.linkLabel?{linkLabel:v.linkLabel}:{}}))})})}var to=e=>e.type==="checkbox",Ki=e=>e instanceof Date,sn=e=>e==null;const yk=e=>typeof e=="object";var St=e=>!sn(e)&&!Array.isArray(e)&&yk(e)&&!Ki(e),FM=e=>St(e)&&e.target?to(e.target)?e.target.checked:e.target.value:e,UM=(e,t)=>t.split(".").some((a,r,u)=>!isNaN(Number(a))&&e.has(u.slice(0,r).join("."))),VM=e=>{const t=e.constructor&&e.constructor.prototype;return St(t)&&t.hasOwnProperty("isPrototypeOf")},qm=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function At(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(qm&&(e instanceof Blob||t))return e;const a=Array.isArray(e);if(!a&&!(St(e)&&VM(e)))return e;const r=a?[]:Object.create(Object.getPrototypeOf(e));for(const u in e)Object.prototype.hasOwnProperty.call(e,u)&&(r[u]=At(e[u]));return r}var gc=e=>/^\w*$/.test(e),ft=e=>e===void 0,Qm=e=>Array.isArray(e)?e.filter(Boolean):[],Bm=e=>Qm(e.replace(/["|']|\]/g,"").split(/\.|\[/)),ye=(e,t,a)=>{if(!t||!St(e))return a;const u=(gc(t)?[t]:Bm(t)).reduce((s,c)=>sn(s)?void 0:s[c],e);return ft(u)||u===e?ft(e[t])?a:e[t]:u},ia=e=>typeof e=="boolean",In=e=>typeof e=="function",rt=(e,t,a)=>{let r=-1;const u=gc(t)?[t]:Bm(t),s=u.length,c=s-1;for(;++r<s;){const d=u[r];let p=a;if(r!==c){const m=e[d];p=St(m)||Array.isArray(m)?m:isNaN(+u[r+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=p,e=e[d]}};const Yr={BLUR:"blur",FOCUS_OUT:"focusout",SUBMIT:"submit",TRIGGER:"trigger",VALID:"valid"},Hn={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Bn={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},hh="form",gk="root",LM=Jt.createContext(null);LM.displayName="HookFormControlContext";var qM=(e,t,a,r=!0)=>{const u={defaultValues:t._defaultValues};for(const s in e)Object.defineProperty(u,s,{get:()=>{const c=s;return t._proxyFormState[c]!==Hn.all&&(t._proxyFormState[c]=!r||Hn.all),e[c]}});return u};const QM=typeof window<"u"?Jt.useLayoutEffect:Jt.useEffect;var Yt=e=>typeof e=="string",BM=(e,t,a,r,u)=>Yt(e)?(r&&t.watch.add(e),ye(a,e,u)):Array.isArray(e)?e.map(s=>(r&&t.watch.add(s),ye(a,s))):(r&&(t.watchAll=!0),a),Ph=e=>sn(e)||!yk(e);function Ca(e,t,a=new WeakSet){if(e===t)return!0;if(Ph(e)||Ph(t))return Object.is(e,t);if(Ki(e)&&Ki(t))return Object.is(e.getTime(),t.getTime());const r=Object.keys(e),u=Object.keys(t);if(r.length!==u.length)return!1;if(a.has(e)||a.has(t))return!0;a.add(e),a.add(t);for(const s of r){const c=e[s];if(!(s in t))return!1;if(s!=="ref"){const d=t[s];if(Ki(c)&&Ki(d)||(St(c)||Array.isArray(c))&&(St(d)||Array.isArray(d))?!Ca(c,d,a):!Object.is(c,d))return!1}}return!0}const ZM=Jt.createContext(null);ZM.displayName="HookFormContext";var IM=(e,t,a,r,u)=>t?{...a[e],types:{...a[e]&&a[e].types?a[e].types:{},[r]:u||!0}}:{},Zu=e=>Array.isArray(e)?e:[e],C0=()=>{let e=[];return{get observers(){return e},next:u=>{for(const s of e)s.next&&s.next(u)},subscribe:u=>(e.push(u),{unsubscribe:()=>{e=e.filter(s=>s!==u)}}),unsubscribe:()=>{e=[]}}};function bk(e,t){const a={};for(const r in e)if(e.hasOwnProperty(r)){const u=e[r],s=t[r];if(u&&St(u)&&s){const c=bk(u,s);St(c)&&(a[r]=c)}else e[r]&&(a[r]=s)}return a}var Gt=e=>St(e)&&!Object.keys(e).length,Zm=e=>e.type==="file",Js=e=>{if(!qm)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},_k=e=>e.type==="select-multiple",Im=e=>e.type==="radio",HM=e=>Im(e)||to(e),mh=e=>Js(e)&&e.isConnected;function $M(e,t){const a=t.slice(0,-1).length;let r=0;for(;r<a;)e=ft(e)?r++:e[t[r++]];return e}function GM(e){for(const t in e)if(e.hasOwnProperty(t)&&!ft(e[t]))return!1;return!0}function wt(e,t){if(Yt(t)&&Object.prototype.hasOwnProperty.call(e,t))return delete e[t],e;const a=Array.isArray(t)?t:gc(t)?[t]:Bm(t),r=a.length===1?e:$M(e,a),u=a.length-1,s=a[u];return r&&delete r[s],u!==0&&(St(r)&&Gt(r)||Array.isArray(r)&&GM(r))&&wt(e,a.slice(0,-1)),e}var YM=e=>{for(const t in e)if(In(e[t]))return!0;return!1};function Sk(e){return Array.isArray(e)||St(e)&&!YM(e)}function Xh(e,t={}){for(const a in e){const r=e[a];Sk(r)?(t[a]=Array.isArray(r)?[]:{},Xh(r,t[a])):ft(r)||(t[a]=!0)}return t}function Fu(e,t,a){a||(a=Xh(t));for(const r in e){const u=e[r];if(Sk(u))ft(t)||Ph(a[r])?a[r]=Xh(u,Array.isArray(u)?[]:{}):Fu(u,sn(t)?{}:t[r],a[r]);else{const s=t[r];a[r]=!Ca(u,s)}}return a}const j0={value:!1,isValid:!1},M0={value:!0,isValid:!0};var kk=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(a=>a&&a.checked&&!a.disabled).map(a=>a.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!ft(e[0].attributes.value)?ft(e[0].value)||e[0].value===""?M0:{value:e[0].value,isValid:!0}:M0:j0}return j0},Ek=(e,{valueAsNumber:t,valueAsDate:a,setValueAs:r})=>ft(e)?e:t?e===""?NaN:e&&+e:a&&Yt(e)?new Date(e):r?r(e):e;const F0={isValid:!1,value:null};var Nk=e=>Array.isArray(e)?e.reduce((t,a)=>a&&a.checked&&!a.disabled?{isValid:!0,value:a.value}:t,F0):F0;function U0(e){const t=e.ref;return Zm(t)?t.files:Im(t)?Nk(e.refs).value:_k(t)?[...t.selectedOptions].map(({value:a})=>a):to(t)?kk(e.refs).value:Ek(ft(t.value)?e.ref.value:t.value,e)}var PM=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,XM=(e,t,a,r)=>{const u={};for(const s of e){const c=ye(t,s);c&&rt(u,s,c._f)}return{criteriaMode:a,names:[...e],fields:u,shouldUseNativeValidation:r}},Ks=e=>e instanceof RegExp,Au=e=>ft(e)?e:Ks(e)?e.source:St(e)?Ks(e.value)?e.value.source:e.value:e,V0=e=>({isOnSubmit:!e||e===Hn.onSubmit,isOnBlur:e===Hn.onBlur,isOnChange:e===Hn.onChange,isOnAll:e===Hn.all,isOnTouch:e===Hn.onTouched});const L0="AsyncFunction";var JM=e=>!!e&&!!e.validate&&!!(In(e.validate)&&e.validate.constructor.name===L0||St(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===L0)),KM=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),q0=(e,t,a)=>!a&&(t.watchAll||t.watch.has(e)||[...t.watch].some(r=>e.startsWith(r)&&/^\.\w+/.test(e.slice(r.length))));const Iu=(e,t,a,r)=>{for(const u of a||Object.keys(e)){const s=ye(e,u);if(s){const{_f:c,...d}=s;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],u)&&!r)return!0;if(c.ref&&t(c.ref,c.name)&&!r)return!0;if(Iu(d,t))break}else if(St(d)&&Iu(d,t))break}}};function Q0(e,t,a){const r=ye(e,a);if(r||gc(a))return{error:r,name:a};const u=a.split(".");for(;u.length;){const s=u.join("."),c=ye(t,s),d=ye(e,s);if(c&&!Array.isArray(c)&&a!==s)return{name:a};if(d&&d.type)return{name:s,error:d};if(d&&d.root&&d.root.type)return{name:`${s}.root`,error:d.root};u.pop()}return{name:a}}var WM=(e,t,a,r)=>{a(e);const{name:u,...s}=e;return Gt(s)||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(c=>t[c]===(!r||Hn.all))},e2=(e,t,a)=>!e||!t||e===t||Zu(e).some(r=>r&&(a?r===t:r.startsWith(t)||t.startsWith(r))),t2=(e,t,a,r,u)=>u.isOnAll?!1:!a&&u.isOnTouch?!(t||e):(a?r.isOnBlur:u.isOnBlur)?!e:(a?r.isOnChange:u.isOnChange)?e:!0,n2=(e,t)=>!Qm(ye(e,t)).length&&wt(e,t),a2=(e,t,a)=>{const r=Zu(ye(e,a));return rt(r,gk,t[a]),rt(e,a,r),e};function B0(e,t,a="validate"){if(Yt(e)||Array.isArray(e)&&e.every(Yt)||ia(e)&&!e)return{type:a,message:Yt(e)?e:"",ref:t}}var Pr=e=>St(e)&&!Ks(e)?e:{value:e,message:""},Z0=async(e,t,a,r,u,s)=>{const{ref:c,refs:d,required:p,maxLength:m,minLength:v,min:y,max:g,pattern:_,validate:N,name:T,valueAsNumber:D,mount:E}=e._f,O=ye(a,T);if(!E||t.has(T))return{};const w=d?d[0]:c,L=le=>{u&&w.reportValidity&&(w.setCustomValidity(ia(le)?"":le||""),w.reportValidity())},M={},I=Im(c),$=to(c),ee=I||$,ce=(D||Zm(c))&&ft(c.value)&&ft(O)||Js(c)&&c.value===""||O===""||Array.isArray(O)&&!O.length,Ne=IM.bind(null,T,r,M),Be=(le,fe,W,se=Bn.maxLength,U=Bn.minLength)=>{const P=le?fe:W;M[T]={type:le?se:U,message:P,ref:c,...Ne(le?se:U,P)}};if(s?!Array.isArray(O)||!O.length:p&&(!ee&&(ce||sn(O))||ia(O)&&!O||$&&!kk(d).isValid||I&&!Nk(d).isValid)){const{value:le,message:fe}=Yt(p)?{value:!!p,message:p}:Pr(p);if(le&&(M[T]={type:Bn.required,message:fe,ref:w,...Ne(Bn.required,fe)},!r))return L(fe),M}if(!ce&&(!sn(y)||!sn(g))){let le,fe;const W=Pr(g),se=Pr(y);if(!sn(O)&&!isNaN(O)){const U=c.valueAsNumber||O&&+O;sn(W.value)||(le=U>W.value),sn(se.value)||(fe=U<se.value)}else{const U=c.valueAsDate||new Date(O),P=ve=>new Date(new Date().toDateString()+" "+ve),ie=c.type=="time",me=c.type=="week";Yt(W.value)&&O&&(le=ie?P(O)>P(W.value):me?O>W.value:U>new Date(W.value)),Yt(se.value)&&O&&(fe=ie?P(O)<P(se.value):me?O<se.value:U<new Date(se.value))}if((le||fe)&&(Be(!!le,W.message,se.message,Bn.max,Bn.min),!r))return L(M[T].message),M}if((m||v)&&!ce&&(Yt(O)||s&&Array.isArray(O))){const le=Pr(m),fe=Pr(v),W=!sn(le.value)&&O.length>+le.value,se=!sn(fe.value)&&O.length<+fe.value;if((W||se)&&(Be(W,le.message,fe.message),!r))return L(M[T].message),M}if(_&&!ce&&Yt(O)){const{value:le,message:fe}=Pr(_);if(Ks(le)&&!O.match(le)&&(M[T]={type:Bn.pattern,message:fe,ref:c,...Ne(Bn.pattern,fe)},!r))return L(fe),M}if(N){if(In(N)){const le=await N(O,a),fe=B0(le,w);if(fe&&(M[T]={...fe,...Ne(Bn.validate,fe.message)},!r))return L(fe.message),M}else if(St(N)){let le={};for(const fe in N){if(!Gt(le)&&!r)break;const W=B0(await N[fe](O,a),w,fe);W&&(le={...W,...Ne(fe,W.message)},L(W.message),r&&(M[T]=le))}if(!Gt(le)&&(M[T]={ref:w,...le},!r))return M}}return L(!0),M};const i2={mode:Hn.onSubmit,reValidateMode:Hn.onChange,shouldFocusError:!0};function r2(e={}){let t={...i2,...e},a={submitCount:0,isDirty:!1,isReady:!1,isLoading:In(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},u=St(t.defaultValues)||St(t.values)?At(t.defaultValues||t.values)||{}:{},s=t.shouldUnregister?{}:At(u),c={action:!1,mount:!1,watch:!1,keepIsValid:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},p,m=0;const v={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},y={...v};let g={...y};const _={array:C0(),state:C0()},N=t.criteriaMode===Hn.all,T=R=>V=>{clearTimeout(m),m=setTimeout(R,V)},D=async R=>{if(!c.keepIsValid&&!t.disabled&&(y.isValid||g.isValid||R)){let V;t.resolver?(V=Gt((await ce()).errors),E()):V=await le({fields:r,onlyCheckValid:!0,eventType:Yr.VALID}),V!==a.isValid&&_.state.next({isValid:V})}},E=(R,V)=>{!t.disabled&&(y.isValidating||y.validatingFields||g.isValidating||g.validatingFields)&&((R||Array.from(d.mount)).forEach(Z=>{Z&&(V?rt(a.validatingFields,Z,V):wt(a.validatingFields,Z))}),_.state.next({validatingFields:a.validatingFields,isValidating:!Gt(a.validatingFields)}))},O=R=>{const V=Fu(u,s),Z=PM(R);rt(a.dirtyFields,Z,ye(V,Z))},w=(R,V=[],Z,ue,re=!0,te=!0)=>{if(ue&&Z&&!t.disabled){if(c.action=!0,te&&Array.isArray(ye(r,R))){const he=Z(ye(r,R),ue.argA,ue.argB);re&&rt(r,R,he)}if(te&&Array.isArray(ye(a.errors,R))){const he=Z(ye(a.errors,R),ue.argA,ue.argB);re&&rt(a.errors,R,he),n2(a.errors,R)}if((y.touchedFields||g.touchedFields)&&te&&Array.isArray(ye(a.touchedFields,R))){const he=Z(ye(a.touchedFields,R),ue.argA,ue.argB);re&&rt(a.touchedFields,R,he)}(y.dirtyFields||g.dirtyFields)&&O(R),_.state.next({name:R,isDirty:W(R,V),dirtyFields:a.dirtyFields,errors:a.errors,isValid:a.isValid})}else rt(s,R,V)},L=(R,V)=>{rt(a.errors,R,V),_.state.next({errors:a.errors})},M=R=>{a.errors=R,_.state.next({errors:a.errors,isValid:!1})},I=(R,V,Z,ue)=>{const re=ye(r,R);if(re){const te=ye(s,R,ft(Z)?ye(u,R):Z);ft(te)||ue&&ue.defaultChecked||V?rt(s,R,V?te:U0(re._f)):P(R,te),c.mount&&!c.action&&D()}},$=(R,V,Z,ue,re)=>{let te=!1,he=!1;const we={name:R};if(!t.disabled){if(!Z||ue){(y.isDirty||g.isDirty)&&(he=a.isDirty,a.isDirty=we.isDirty=W(),te=he!==we.isDirty);const Le=Ca(ye(u,R),V);he=!!ye(a.dirtyFields,R),Le?wt(a.dirtyFields,R):rt(a.dirtyFields,R,!0),we.dirtyFields=a.dirtyFields,te=te||(y.dirtyFields||g.dirtyFields)&&he!==!Le}if(Z){const Le=ye(a.touchedFields,R);Le||(rt(a.touchedFields,R,Z),we.touchedFields=a.touchedFields,te=te||(y.touchedFields||g.touchedFields)&&Le!==Z)}te&&re&&_.state.next(we)}return te?we:{}},ee=(R,V,Z,ue)=>{const re=ye(a.errors,R),te=(y.isValid||g.isValid)&&ia(V)&&a.isValid!==V;if(t.delayError&&Z?(p=T(()=>L(R,Z)),p(t.delayError)):(clearTimeout(m),p=null,Z?rt(a.errors,R,Z):wt(a.errors,R)),(Z?!Ca(re,Z):re)||!Gt(ue)||te){const he={...ue,...te&&ia(V)?{isValid:V}:{},errors:a.errors,name:R};a={...a,...he},_.state.next(he)}},ce=async R=>(E(R,!0),await t.resolver(s,t.context,XM(R||d.mount,r,t.criteriaMode,t.shouldUseNativeValidation))),Ne=async R=>{const{errors:V}=await ce(R);if(E(R),R)for(const Z of R){const ue=ye(V,Z);ue?rt(a.errors,Z,ue):wt(a.errors,Z)}else a.errors=V;return V},Be=async({name:R,eventType:V})=>{if(e.validate){const Z=await e.validate({formValues:s,formState:a,name:R,eventType:V});if(St(Z))for(const ue in Z)Z[ue]&&_e(`${hh}.${ue}`,{message:Yt(Z.message)?Z.message:"",type:Bn.validate});else Yt(Z)||!Z?_e(hh,{message:Z||"",type:Bn.validate}):ge(hh);return Z}return!0},le=async({fields:R,onlyCheckValid:V,name:Z,eventType:ue,context:re={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(re.runRootValidation=!0,!await Be({name:Z,eventType:ue})&&(re.valid=!1,V)))return re.valid;for(const te in R){const he=R[te];if(he){const{_f:we,...Le}=he;if(we){const Ft=d.array.has(we.name),Ht=he._f&&JM(he._f);Ht&&y.validatingFields&&E([we.name],!0);const Xe=await Z0(he,d.disabled,s,N,t.shouldUseNativeValidation&&!V,Ft);if(Ht&&y.validatingFields&&E([we.name]),Xe[we.name]&&(re.valid=!1,V)||(!V&&(ye(Xe,we.name)?Ft?a2(a.errors,Xe,we.name):rt(a.errors,we.name,Xe[we.name]):wt(a.errors,we.name)),e.shouldUseNativeValidation&&Xe[we.name]))break}!Gt(Le)&&await le({context:re,onlyCheckValid:V,fields:Le,name:te,eventType:ue})}}return re.valid},fe=()=>{for(const R of d.unMount){const V=ye(r,R);V&&(V._f.refs?V._f.refs.every(Z=>!mh(Z)):!mh(V._f.ref))&&sa(R)}d.unMount=new Set},W=(R,V)=>!t.disabled&&(R&&V&&rt(s,R,V),!Ca(ae(),u)),se=(R,V,Z)=>BM(R,d,{...c.mount?s:ft(V)?u:Yt(R)?{[R]:V}:V},Z,V),U=R=>Qm(ye(c.mount?s:u,R,t.shouldUnregister?ye(u,R,[]):[])),P=(R,V,Z={})=>{const ue=ye(r,R);let re=V;if(ue){const te=ue._f;te&&(!te.disabled&&rt(s,R,Ek(V,te)),re=Js(te.ref)&&sn(V)?"":V,_k(te.ref)?[...te.ref.options].forEach(he=>he.selected=re.includes(he.value)):te.refs?to(te.ref)?te.refs.forEach(he=>{(!he.defaultChecked||!he.disabled)&&(Array.isArray(re)?he.checked=!!re.find(we=>we===he.value):he.checked=re===he.value||!!re)}):te.refs.forEach(he=>he.checked=he.value===re):Zm(te.ref)?te.ref.value="":(te.ref.value=re,te.ref.type||_.state.next({name:R,values:At(s)})))}(Z.shouldDirty||Z.shouldTouch)&&$(R,re,Z.shouldTouch,Z.shouldDirty,!0),Z.shouldValidate&&G(R)},ie=(R,V,Z)=>{for(const ue in V){if(!V.hasOwnProperty(ue))return;const re=V[ue],te=R+"."+ue,he=ye(r,te);(d.array.has(R)||St(re)||he&&!he._f)&&!Ki(re)?ie(te,re,Z):P(te,re,Z)}},me=(R,V,Z={})=>{const ue=ye(r,R),re=d.array.has(R),te=At(V),he=ye(s,R),we=Ca(he,te);if(rt(s,R,te),re)_.array.next({name:R,values:At(s)}),Z.shouldDirty&&(O(R),_.state.next({name:R,dirtyFields:a.dirtyFields,isDirty:W(R,te)}));else{const Le=Array.isArray(te)&&!te.length||Gt(te);!ue||ue._f||sn(te)||Le?P(R,te,Z):ie(R,te,Z)}we||(q0(R,d)?_.state.next({...a,name:R,values:At(s)}):_.state.next({name:c.mount?R:void 0,values:At(s)}))},ve=async R=>{c.mount=!0;const V=R.target;let Z=V.name,ue=!0;const re=ye(r,Z),te=Le=>{ue=Number.isNaN(Le)||Ki(Le)&&isNaN(Le.getTime())||Ca(Le,ye(s,Z,Le))},he=V0(t.mode),we=V0(t.reValidateMode);if(re){let Le,Ft;const Ht=V.type?U0(re._f):FM(R),Xe=R.type===Yr.BLUR||R.type===Yr.FOCUS_OUT,Kn=!KM(re._f)&&!e.validate&&!t.resolver&&!ye(a.errors,Z)&&!re._f.deps||t2(Xe,ye(a.touchedFields,Z),a.isSubmitted,we,he),Ut=q0(Z,d,Xe);rt(s,Z,Ht),Xe?(!V||!V.readOnly)&&(re._f.onBlur&&re._f.onBlur(R),p&&p(0)):re._f.onChange&&re._f.onChange(R);const Al=$(Z,Ht,Xe),_c=!Gt(Al)||Ut;if(!Xe&&_.state.next({name:Z,type:R.type,values:At(s)}),Kn)return(y.isValid||g.isValid)&&(t.mode==="onBlur"?Xe&&D():Xe||D()),_c&&_.state.next({name:Z,...Ut?{}:Al});if(!t.resolver&&e.validate&&await Be({name:Z,eventType:R.type}),!Xe&&Ut&&_.state.next({...a}),t.resolver){const{errors:ro}=await ce([Z]);if(E([Z]),te(Ht),ue){const or=Q0(a.errors,r,Z),Di=Q0(ro,r,or.name||Z);Le=Di.error,Z=Di.name,Ft=Gt(ro)}}else E([Z],!0),Le=(await Z0(re,d.disabled,s,N,t.shouldUseNativeValidation))[Z],E([Z]),te(Ht),ue&&(Le?Ft=!1:(y.isValid||g.isValid)&&(Ft=await le({fields:r,onlyCheckValid:!0,name:Z,eventType:R.type})));ue&&(re._f.deps&&(!Array.isArray(re._f.deps)||re._f.deps.length>0)&&G(re._f.deps),ee(Z,Ft,Le,Al))}},A=(R,V)=>{if(ye(a.errors,V)&&R.focus)return R.focus(),1},G=async(R,V={})=>{let Z,ue;const re=Zu(R);if(t.resolver){const te=await Ne(ft(R)?R:re);Z=Gt(te),ue=R?!re.some(he=>ye(te,he)):Z}else R?(ue=(await Promise.all(re.map(async te=>{const he=ye(r,te);return await le({fields:he&&he._f?{[te]:he}:he,eventType:Yr.TRIGGER})}))).every(Boolean),!(!ue&&!a.isValid)&&D()):ue=Z=await le({fields:r,name:R,eventType:Yr.TRIGGER});return _.state.next({...!Yt(R)||(y.isValid||g.isValid)&&Z!==a.isValid?{}:{name:R},...t.resolver||!R?{isValid:Z}:{},errors:a.errors}),V.shouldFocus&&!ue&&Iu(r,A,R?re:d.mount),ue},ae=(R,V)=>{let Z={...c.mount?s:u};return V&&(Z=bk(V.dirtyFields?a.dirtyFields:a.touchedFields,Z)),ft(R)?Z:Yt(R)?ye(Z,R):R.map(ue=>ye(Z,ue))},oe=(R,V)=>({invalid:!!ye((V||a).errors,R),isDirty:!!ye((V||a).dirtyFields,R),error:ye((V||a).errors,R),isValidating:!!ye(a.validatingFields,R),isTouched:!!ye((V||a).touchedFields,R)}),ge=R=>{const V=R?Zu(R):void 0;V==null||V.forEach(Z=>wt(a.errors,Z)),V?V.forEach(Z=>{_.state.next({name:Z,errors:a.errors})}):_.state.next({errors:{}})},_e=(R,V,Z)=>{const ue=(ye(r,R,{_f:{}})._f||{}).ref,re=ye(a.errors,R)||{},{ref:te,message:he,type:we,...Le}=re;rt(a.errors,R,{...Le,...V,ref:ue}),_.state.next({name:R,errors:a.errors,isValid:!1}),Z&&Z.shouldFocus&&ue&&ue.focus&&ue.focus()},qe=(R,V)=>In(R)?_.state.subscribe({next:Z=>"values"in Z&&R(Z.values||se(void 0,V),Z)}):se(R,V,!0),kt=R=>_.state.subscribe({next:V=>{if(e2(R.name,V.name,R.exact)&&WM(V,R.formState||y,Rl,R.reRenderRoot)){const Z={...s};R.callback({values:Z,...a,...V,defaultValues:u})}}}).unsubscribe,ct=R=>(c.mount=!0,g={...g,...R.formState},kt({...R,formState:{...v,...R.formState}})),sa=(R,V={})=>{for(const Z of R?Zu(R):d.mount)d.mount.delete(Z),d.array.delete(Z),V.keepValue||(wt(r,Z),wt(s,Z)),!V.keepError&&wt(a.errors,Z),!V.keepDirty&&wt(a.dirtyFields,Z),!V.keepTouched&&wt(a.touchedFields,Z),!V.keepIsValidating&&wt(a.validatingFields,Z),!t.shouldUnregister&&!V.keepDefaultValue&&wt(u,Z);_.state.next({values:At(s)}),_.state.next({...a,...V.keepDirty?{isDirty:W()}:{}}),!V.keepIsValid&&D()},Oi=({disabled:R,name:V})=>{if(ia(R)&&c.mount||R||d.disabled.has(V)){const re=d.disabled.has(V)!==!!R;R?d.disabled.add(V):d.disabled.delete(V),re&&c.mount&&!c.action&&D()}},wi=(R,V={})=>{let Z=ye(r,R);const ue=ia(V.disabled)||ia(t.disabled),re=!d.registerName.has(R)&&Z&&Z._f&&!Z._f.mount;return rt(r,R,{...Z||{},_f:{...Z&&Z._f?Z._f:{ref:{name:R}},name:R,mount:!0,...V}}),d.mount.add(R),Z&&!re?Oi({disabled:ia(V.disabled)?V.disabled:t.disabled,name:R}):I(R,!0,V.value),{...ue?{disabled:V.disabled||t.disabled}:{},...t.progressive?{required:!!V.required,min:Au(V.min),max:Au(V.max),minLength:Au(V.minLength),maxLength:Au(V.maxLength),pattern:Au(V.pattern)}:{},name:R,onChange:ve,onBlur:ve,ref:te=>{if(te){d.registerName.add(R),wi(R,V),d.registerName.delete(R),Z=ye(r,R);const he=ft(te.value)&&te.querySelectorAll&&te.querySelectorAll("input,select,textarea")[0]||te,we=HM(he),Le=Z._f.refs||[];if(we?Le.find(Ft=>Ft===he):he===Z._f.ref)return;rt(r,R,{_f:{...Z._f,...we?{refs:[...Le.filter(mh),he,...Array.isArray(ye(u,R))?[{}]:[]],ref:{type:he.type,name:R}}:{ref:he}}}),I(R,!1,void 0,he)}else Z=ye(r,R,{}),Z._f&&(Z._f.mount=!1),(t.shouldUnregister||V.shouldUnregister)&&!(UM(d.array,R)&&c.action)&&d.unMount.add(R)}}},lr=()=>t.shouldFocusError&&Iu(r,A,d.mount),ca=R=>{ia(R)&&(_.state.next({disabled:R}),Iu(r,(V,Z)=>{const ue=ye(r,Z);ue&&(V.disabled=ue._f.disabled||R,Array.isArray(ue._f.refs)&&ue._f.refs.forEach(re=>{re.disabled=ue._f.disabled||R}))},0,!1))},ur=(R,V)=>async Z=>{let ue;Z&&(Z.preventDefault&&Z.preventDefault(),Z.persist&&Z.persist());let re=At(s);if(_.state.next({isSubmitting:!0}),t.resolver){const{errors:te,values:he}=await ce();E(),a.errors=te,re=At(he)}else await le({fields:r,eventType:Yr.SUBMIT});if(d.disabled.size)for(const te of d.disabled)wt(re,te);if(wt(a.errors,gk),Gt(a.errors)){_.state.next({errors:{}});try{await R(re,Z)}catch(te){ue=te}}else V&&await V({...a.errors},Z),lr(),setTimeout(lr);if(_.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Gt(a.errors)&&!ue,submitCount:a.submitCount+1,errors:a.errors}),ue)throw ue},wl=(R,V={})=>{ye(r,R)&&(ft(V.defaultValue)?me(R,At(ye(u,R))):(me(R,V.defaultValue),rt(u,R,At(V.defaultValue))),V.keepTouched||wt(a.touchedFields,R),V.keepDirty||(wt(a.dirtyFields,R),a.isDirty=V.defaultValue?W(R,At(ye(u,R))):W()),V.keepError||(wt(a.errors,R),y.isValid&&D()),_.state.next({...a}))},no=(R,V={})=>{const Z=R?At(R):u,ue=At(Z),re=Gt(R),te=re?u:ue;if(V.keepDefaultValues||(u=Z),!V.keepValues){if(V.keepDirtyValues){const he=new Set([...d.mount,...Object.keys(Fu(u,s))]);for(const we of Array.from(he)){const Le=ye(a.dirtyFields,we),Ft=ye(s,we),Ht=ye(te,we);Le&&!ft(Ft)?rt(te,we,Ft):!Le&&!ft(Ht)&&me(we,Ht)}}else{if(qm&&ft(R))for(const he of d.mount){const we=ye(r,he);if(we&&we._f){const Le=Array.isArray(we._f.refs)?we._f.refs[0]:we._f.ref;if(Js(Le)){const Ft=Le.closest("form");if(Ft){Ft.reset();break}}}}if(V.keepFieldsRef)for(const he of d.mount)me(he,ye(te,he));else r={}}s=t.shouldUnregister?V.keepDefaultValues?At(u):{}:At(te),_.array.next({values:{...te}}),_.state.next({values:{...te}})}d={mount:V.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!y.isValid||!!V.keepIsValid||!!V.keepDirtyValues||!t.shouldUnregister&&!Gt(te),c.watch=!!t.shouldUnregister,c.keepIsValid=!!V.keepIsValid,c.action=!1,V.keepErrors||(a.errors={}),_.state.next({submitCount:V.keepSubmitCount?a.submitCount:0,isDirty:re?!1:V.keepDirty?a.isDirty:!!(V.keepDefaultValues&&!Ca(R,u)),isSubmitted:V.keepIsSubmitted?a.isSubmitted:!1,dirtyFields:re?{}:V.keepDirtyValues?V.keepDefaultValues&&s?Fu(u,s):a.dirtyFields:V.keepDefaultValues&&R?Fu(u,R):V.keepDirty?a.dirtyFields:{},touchedFields:V.keepTouched?a.touchedFields:{},errors:V.keepErrors?a.errors:{},isSubmitSuccessful:V.keepIsSubmitSuccessful?a.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:u})},Dl=(R,V)=>no(In(R)?R(s):R,{...t.resetOptions,...V}),xl=(R,V={})=>{const Z=ye(r,R),ue=Z&&Z._f;if(ue){const re=ue.refs?ue.refs[0]:ue.ref;re.focus&&setTimeout(()=>{re.focus(),V.shouldSelect&&In(re.select)&&re.select()})}},Rl=R=>{a={...a,...R}},io={control:{register:wi,unregister:sa,getFieldState:oe,handleSubmit:ur,setError:_e,_subscribe:kt,_runSchema:ce,_updateIsValidating:E,_focusError:lr,_getWatch:se,_getDirty:W,_setValid:D,_setFieldArray:w,_setDisabledField:Oi,_setErrors:M,_getFieldArray:U,_reset:no,_resetDefaultValues:()=>In(t.defaultValues)&&t.defaultValues().then(R=>{Dl(R,t.resetOptions),_.state.next({isLoading:!1})}),_removeUnmounted:fe,_disableForm:ca,_subjects:_,_proxyFormState:y,get _fields(){return r},get _formValues(){return s},get _state(){return c},set _state(R){c=R},get _defaultValues(){return u},get _names(){return d},set _names(R){d=R},get _formState(){return a},get _options(){return t},set _options(R){t={...t,...R}}},subscribe:ct,trigger:G,register:wi,handleSubmit:ur,watch:qe,setValue:me,getValues:ae,reset:Dl,resetField:wl,clearErrors:ge,unregister:sa,setError:_e,setFocus:xl,getFieldState:oe};return{...io,formControl:io}}function bc(e={}){const t=Jt.useRef(void 0),a=Jt.useRef(void 0),[r,u]=Jt.useState({isDirty:!1,isValidating:!1,isLoading:In(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:In(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:r},e.defaultValues&&!In(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...d}=r2(e);t.current={...d,formState:r}}const s=t.current.control;return s._options=e,QM(()=>{const c=s._subscribe({formState:s._proxyFormState,callback:()=>u({...s._formState}),reRenderRoot:!0});return u(d=>({...d,isReady:!0})),s._formState.isReady=!0,c},[s]),Jt.useEffect(()=>s._disableForm(e.disabled),[s,e.disabled]),Jt.useEffect(()=>{e.mode&&(s._options.mode=e.mode),e.reValidateMode&&(s._options.reValidateMode=e.reValidateMode)},[s,e.mode,e.reValidateMode]),Jt.useEffect(()=>{e.errors&&(s._setErrors(e.errors),s._focusError())},[s,e.errors]),Jt.useEffect(()=>{e.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,e.shouldUnregister]),Jt.useEffect(()=>{if(s._proxyFormState.isDirty){const c=s._getDirty();c!==r.isDirty&&s._subjects.state.next({isDirty:c})}},[s,r.isDirty]),Jt.useEffect(()=>{var c;e.values&&!Ca(e.values,a.current)?(s._reset(e.values,{keepFieldsRef:!0,...s._options.resetOptions}),!((c=s._options.resetOptions)===null||c===void 0)&&c.keepIsValid||s._setValid(),a.current=e.values,u(d=>({...d}))):s._resetDefaultValues()},[s,e.values]),Jt.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),t.current.formState=Jt.useMemo(()=>qM(r,s),[s,r]),t.current}function l2({fields:e,values:t,saving:a,onValueChange:r,onSubmit:u}){return S.jsx("section",{className:"card",children:S.jsxs("form",{className:"form-stack",onSubmit:s=>{s.preventDefault(),u()},children:[e.map(s=>S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:s.label}),S.jsx("textarea",{className:"input",rows:3,value:t[s.key]??"",onChange:c=>r(s.key,c.target.value)})]},s.key)),S.jsx("button",{type:"submit",className:"btn primary",disabled:a,children:a?"Saving…":"Save"})]})})}function u2(){var m;const e=kn(qj,{fetchPolicy:"cache-and-network"}),[t,a]=Gn(Hj,{onCompleted:()=>{je.success("GitHub settings saved.")},onError:v=>{je.error(`Save failed: ${fn(v)}`)}}),{handleSubmit:r,reset:u,setValue:s,watch:c}=bc({defaultValues:{}}),d=((m=e.data)==null?void 0:m.githubFields)??null;j.useEffect(()=>{if(!d||d.disabled)return;const v={};for(const y of d.fields)v[y.key]=y.value;u(v)},[d,u]);const p=async v=>{await t({variables:{input:v}})};return e.loading&&!d&&!e.error?S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx("p",{className:"muted",children:"Loading…"})]}):e.error?S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx("p",{className:"text-danger",children:fn(e.error)})]}):d!=null&&d.disabled?S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx("p",{className:"muted",children:"GitHub source is not active for this process."})]}):S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"GitHub"}),S.jsx(l2,{fields:(d==null?void 0:d.fields)??[],values:c(),saving:a.loading,onValueChange:(v,y)=>s(v,y,{shouldDirty:!0}),onSubmit:()=>{r(v=>{p(v)})()}})]})}const Jh="optimistic:";function o2(){return typeof crypto<"u"&&"randomUUID"in crypto?`${Jh}${crypto.randomUUID()}`:`${Jh}${Date.now()}`}function s2(e,t){const a=e.find(s=>s.id===t.id)??e.find(s=>s.githubRepo===t.githubRepo),r=e.filter(s=>!(s.id===t.id||s.id.startsWith(Jh)&&s.githubRepo===t.githubRepo&&s.id!==t.id)),u=(a==null?void 0:a.createdAt)!=null&&typeof a.createdAt=="string"?a.createdAt:new Date().toISOString();return[...r,{__typename:"MappingGql",id:t.id,githubRepo:t.githubRepo,vibeKanbanRepoId:t.vibeKanbanRepoId,createdAt:u,updatedAt:new Date().toISOString()}]}function c2({message:e,onReloadPage:t}){return S.jsxs("section",{className:"card",children:[S.jsxs("p",{className:"text-danger",children:["Could not load Kanban repositories: ",e]}),S.jsx("button",{type:"button",className:"btn ghost",onClick:t,children:"Reload page"})]})}function f2({row:e,deleteBusy:t,onRequestDelete:a}){return S.jsxs("tr",{children:[S.jsx("td",{children:S.jsx("code",{children:e.githubRepo})}),S.jsx("td",{children:S.jsx("code",{children:e.vibeKanbanRepoId})}),S.jsx("td",{className:"table-actions",children:S.jsx("button",{type:"button",className:"btn danger ghost",disabled:t,onClick:a,children:t?"Deleting…":"Delete"})})]})}function d2({rows:e,listInitialLoading:t,listErrorMessage:a,showEmptyHint:r,deleteBusy:u,onRequestDelete:s}){return S.jsxs("section",{className:"card mappings-existing-card",children:[S.jsx("h2",{children:"Existing"}),t?S.jsx("p",{className:"muted",children:"Loading mappings…"}):null,a?S.jsxs("p",{className:"text-danger",children:["Failed to load mappings: ",a]}):null,r?S.jsx("p",{className:"muted",children:"No mappings yet. Add one above to route GitHub PRs to a Kanban repository."}):null,e.length>0?S.jsxs("table",{className:"data-table",children:[S.jsx("thead",{children:S.jsxs("tr",{children:[S.jsx("th",{children:"GitHub repo"}),S.jsx("th",{children:"Kanban repo"}),S.jsx("th",{})]})}),S.jsx("tbody",{children:e.map(c=>S.jsx(f2,{row:c,deleteBusy:u,onRequestDelete:()=>{confirm("Delete this mapping?")&&s(c.id)}},c.id))})]}):null]})}function h2({value:e,options:t,loading:a,onChange:r}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:"Kanban repository"}),S.jsxs("select",{className:"input",value:e,onChange:u=>r(u.target.value),disabled:a,children:[S.jsx("option",{value:"",children:a?"Loading…":"Select…"}),t.map(u=>S.jsx("option",{value:u.id,children:u.name??u.id},u.id))]})]})}function m2({githubRepo:e,vkRepoId:t,vkRepos:a,vkReposLoading:r,upserting:u,onGithubRepoChange:s,onVkRepoIdChange:c,onSubmit:d}){return S.jsxs("section",{className:"card",children:[S.jsx("h2",{children:"New mapping"}),S.jsxs("form",{className:"form-stack",onSubmit:p=>{p.preventDefault(),d()},children:[S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:"GitHub repo"}),S.jsx("input",{className:"input",value:e,onChange:p=>s(p.target.value),placeholder:"owner/repo"})]}),S.jsx(h2,{value:t,options:a,loading:r,onChange:c}),S.jsx("button",{type:"submit",className:"btn primary",disabled:u,children:u?"Adding…":"Add mapping"})]})]})}function p2({titleRow:e,intro:t,vkReposError:a,newMapping:r,existingMappings:u}){return S.jsxs("div",{className:"stack",children:[e,t,a,r,u]})}function v2(){var T,D,E;const e=kn(el,{fetchPolicy:"cache-and-network"}),t=kn(Pj,{fetchPolicy:"cache-and-network"}),a=(((T=t.data)==null?void 0:T.vibeKanbanRepos)??[]).map(O=>({id:O.id,name:O.name??void 0})),r=t.error?fn(t.error):null,u=!!(t.loading&&!t.data),{handleSubmit:s,reset:c,setValue:d,watch:p}=bc({defaultValues:{githubRepo:"",vibeKanbanRepoId:""}}),m=p(),[v,{loading:y}]=Gn($j,{optimisticResponse:O=>({__typename:"Mutation",upsertMapping:{__typename:"MappingGql",id:o2(),githubRepo:O.input.githubRepo,vibeKanbanRepoId:O.input.vibeKanbanRepoId}}),update(O,{data:w}){const L=w==null?void 0:w.upsertMapping;if(!L)return;const M=O.readQuery({query:el});M&&O.writeQuery({query:el,data:{mappings:s2(M.mappings,L)}})},onCompleted:()=>{c(),je.success("Mapping added.")},onError:O=>je.error(`Add failed: ${fn(O)}`)}),[g,{loading:_}]=Gn(Lj,{optimisticResponse:()=>({__typename:"Mutation",deleteMapping:{__typename:"DeleteMappingPayload",ok:!0}}),update(O,w,{variables:L}){const M=L==null?void 0:L.id;if(M===void 0)return;const I=O.readQuery({query:el});I&&O.writeQuery({query:el,data:{mappings:I.mappings.filter($=>$.id!==M)}})},onCompleted:()=>je.success("Mapping deleted."),onError:O=>je.error(`Delete failed: ${fn(O)}`)}),N=((D=e.data)==null?void 0:D.mappings)??[];return S.jsx(p2,{titleRow:S.jsxs("div",{className:"page-title-row",children:[S.jsx("h1",{children:"Mappings"}),S.jsx(Lm,{})]}),intro:S.jsxs("p",{className:"muted",children:["GitHub repo (",S.jsx("code",{children:"owner/repo"}),") → Vibe Kanban repository. Default Kanban ",S.jsx("strong",{children:"project"})," for new issues is set on the"," ",S.jsx("a",{href:"/vibe-kanban",children:"Vibe Kanban"})," page."]}),vkReposError:r?S.jsx(c2,{message:r,onReloadPage:()=>window.location.reload()}):null,newMapping:S.jsx(m2,{githubRepo:m.githubRepo??"",vkRepoId:m.vibeKanbanRepoId??"",vkRepos:a,vkReposLoading:u,upserting:y,onGithubRepoChange:O=>{d("githubRepo",O,{shouldDirty:!0})},onVkRepoIdChange:O=>{d("vibeKanbanRepoId",O,{shouldDirty:!0})},onSubmit:()=>{s(O=>{v({variables:{input:{githubRepo:O.githubRepo,vibeKanbanRepoId:O.vibeKanbanRepoId}}})})()}}),existingMappings:S.jsx(d2,{rows:N,listInitialLoading:!!(e.loading&&!e.data),listErrorMessage:((E=e.error)==null?void 0:E.message)??null,showEmptyHint:N.length===0&&!e.loading,deleteBusy:_,onRequestDelete:O=>{g({variables:{id:O}})}})})}function I0({checked:e,onChange:t,label:a,settingKey:r,disabled:u=!1}){return S.jsxs("label",{className:"ui-switcher",children:[S.jsxs("span",{className:"ui-switcher-copy",children:[S.jsx("span",{children:a}),r?S.jsx("span",{className:"field-key",children:r}):null]}),S.jsx("input",{className:"ui-switcher-input",type:"checkbox",checked:e,disabled:u,onChange:s=>t(s.target.checked)}),S.jsx("span",{className:"ui-switcher-track","aria-hidden":!0,children:S.jsx("span",{className:"ui-switcher-thumb"})})]})}function y2({loading:e,errorMessage:t,scheduledOn:a,autoCreate:r,onScheduledChange:u,onAutoCreateChange:s,textFields:c,texts:d,onTextChange:p,saving:m,onSubmit:v}){return S.jsxs("section",{className:"card",children:[S.jsx("h2",{children:"Kanban issue creation"}),e?S.jsx("p",{className:"muted",children:"Loading…"}):null,t?S.jsxs("p",{className:"text-danger",children:["Failed to load settings: ",t]}):null,S.jsxs("form",{className:"form-stack",onSubmit:y=>{y.preventDefault(),v()},children:[S.jsx(I0,{checked:a,onChange:u,label:"Enable scheduled sync",settingKey:"scheduled_sync_enabled"}),S.jsx(I0,{checked:r,onChange:s,label:"Auto-create issues from sync",settingKey:"auto_create_issues"}),c.map(y=>S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:y.label}),S.jsxs("p",{className:"muted setting-field-meta",children:[S.jsx("code",{children:y.key}),y.envVar?S.jsxs(S.Fragment,{children:[" ","· env ",S.jsx("code",{children:y.envVar})]}):null]}),y.description?S.jsx("p",{className:"muted setting-field-desc",children:y.description}):null,S.jsx("input",{className:"input",name:y.key,value:d[y.key]??"",onChange:g=>p(y.key,g.target.value)})]},y.key)),S.jsx("button",{type:"submit",className:"btn primary",disabled:m,children:m?"Saving…":"Save"})]})]})}function g2({titleRow:e,settingsCard:t}){return S.jsxs("div",{className:"stack",children:[e,t]})}const b2=new Set(["poll_interval_minutes","jitter_max_seconds","run_now_cooldown_seconds","max_board_pr_count"]);function _2(){var v,y;const e=kn(dk,{fetchPolicy:"cache-and-network"}),{handleSubmit:t,reset:a,setValue:r,watch:u}=bc({defaultValues:{poll_interval_minutes:"",jitter_max_seconds:"",run_now_cooldown_seconds:"",max_board_pr_count:"",scheduled_sync_enabled:!1,auto_create_issues:!1}});j.useEffect(()=>{var N;const g=(N=e.data)==null?void 0:N.effectiveSettings;if(!g)return;const _=new Map(g.coreFields.map(T=>[T.key,T.value]));a({poll_interval_minutes:_.get("poll_interval_minutes")??"",jitter_max_seconds:_.get("jitter_max_seconds")??"",run_now_cooldown_seconds:_.get("run_now_cooldown_seconds")??"",max_board_pr_count:_.get("max_board_pr_count")??"",scheduled_sync_enabled:g.scheduledSyncEnabled,auto_create_issues:g.autoCreateIssues})},[e.data,a]);const[s,{loading:c}]=Gn(Ij,{optimisticResponse:(g,{IGNORE:_})=>{var O;const N=(O=e.data)==null?void 0:O.effectiveSettings;if(!N)return _;const T=String(N.id),D=g.input,E=D;return{__typename:"Mutation",updateSettings:{__typename:"EffectiveSettings",id:T,coreFields:N.coreFields.map(w=>({__typename:"CoreSettingField",...w,value:E[w.key]??w.value})),resolvedSourceLabel:N.resolvedSourceLabel,resolvedDestinationLabel:N.resolvedDestinationLabel,scheduledSyncEnabled:D.scheduled_sync_enabled!=null?D.scheduled_sync_enabled:N.scheduledSyncEnabled,autoCreateIssues:D.auto_create_issues!=null?D.auto_create_issues:N.autoCreateIssues}}},onCompleted(g,_){var D;const N=(D=_==null?void 0:_.variables)==null?void 0:D.input,T=(N==null?void 0:N.poll_interval_minutes)!==void 0||(N==null?void 0:N.jitter_max_seconds)!==void 0;je.success(T?"General settings saved. Scheduler will pick up interval changes.":"General settings saved.")},onError:g=>{je.error(`Save failed: ${fn(g)}`)}}),d=j.useMemo(()=>{var g;return(((g=e.data)==null?void 0:g.effectiveSettings.coreFields)??[]).filter(_=>b2.has(_.key))},[(v=e.data)==null?void 0:v.effectiveSettings.coreFields]),p=u(),m={poll_interval_minutes:p.poll_interval_minutes??"",jitter_max_seconds:p.jitter_max_seconds??"",run_now_cooldown_seconds:p.run_now_cooldown_seconds??"",max_board_pr_count:p.max_board_pr_count??""};return S.jsx(g2,{titleRow:S.jsxs("div",{className:"page-title-row",children:[S.jsx("h1",{children:"General"}),S.jsx(Lm,{})]}),settingsCard:S.jsx(y2,{loading:!!(e.loading&&!e.data),errorMessage:((y=e.error)==null?void 0:y.message)??null,scheduledOn:p.scheduled_sync_enabled??!1,autoCreate:p.auto_create_issues??!1,onScheduledChange:g=>{r("scheduled_sync_enabled",g,{shouldDirty:!0})},onAutoCreateChange:g=>{r("auto_create_issues",g,{shouldDirty:!0})},textFields:d,texts:m,onTextChange:(g,_)=>r(g,_,{shouldDirty:!0}),saving:c,onSubmit:()=>{t(g=>{s({variables:{input:{poll_interval_minutes:g.poll_interval_minutes,jitter_max_seconds:g.jitter_max_seconds,run_now_cooldown_seconds:g.run_now_cooldown_seconds,max_board_pr_count:g.max_board_pr_count,scheduled_sync_enabled:g.scheduled_sync_enabled,auto_create_issues:g.auto_create_issues}}})})()}})})}function S2({label:e,value:t,options:a,disabled:r,loading:u,hasOrgError:s,onChange:c}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:e}),S.jsxs("select",{className:"input",value:t,onChange:d=>c(d.target.value),disabled:r,children:[S.jsx("option",{value:"",children:s?"—":u&&a.length===0?"Loading…":"Select…"}),a.map(d=>S.jsx("option",{value:d.id,children:d.name??d.id},d.id))]})]})}function k2({label:e,value:t,options:a,onChange:r}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:e}),S.jsx("select",{className:"input",value:t,onChange:u=>r(u.target.value),children:a.map(u=>S.jsx("option",{value:u.value,children:u.label},u.value))})]})}function E2({value:e,options:t,loading:a,errorMessage:r,onChange:u}){return S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:"Project"}),S.jsxs("select",{className:"input",value:e,onChange:s=>u(s.target.value),disabled:a,children:[S.jsx("option",{value:"",children:a&&t.length===0?"Loading…":"Select…"}),t.map(s=>S.jsx("option",{value:s.id,children:s.name??s.id},s.id))]}),r?S.jsx("p",{className:"text-danger",children:r}):null]})}function N2({orgLabel:e,doneStatusLabel:t,executorLabel:a,boardPickerEnabled:r,orgErrorMessage:u,orgOptions:s,orgLoading:c,selectedOrgId:d,onOrgChange:p,selectedProjectId:m,projectOptions:v,projectLoading:y,projectErrorMessage:g,onProjectChange:_,doneStatusValue:N,onDoneStatusChange:T,executorValue:D,executorOptions:E,onExecutorChange:O,saving:w,onSubmit:L}){const M=!r||!!u||c&&s.length===0;return S.jsx("section",{className:"card",children:S.jsxs("form",{className:"form-stack",onSubmit:I=>{I.preventDefault(),L()},children:[S.jsx(S2,{label:e,value:d,options:s,disabled:M,loading:c,hasOrgError:!!u,onChange:p}),d.trim()?S.jsxs(S.Fragment,{children:[S.jsx(E2,{value:m,options:v,loading:y,errorMessage:g,onChange:_}),S.jsxs("label",{className:"field",children:[S.jsx("span",{className:"field-label",children:t}),S.jsx("input",{className:"input",value:N,onChange:I=>T(I.target.value)})]}),S.jsx(k2,{label:a,value:D,options:E,onChange:O})]}):null,S.jsx("button",{type:"submit",className:"btn primary",disabled:w,children:w?"Saving…":"Save"})]})})}function T2(){var L,M,I;const e=kn(Xj,{fetchPolicy:"cache-and-network"}),t=((L=e.data)==null?void 0:L.vibeKanbanUiState)??null,{handleSubmit:a,reset:r,setValue:u,watch:s}=bc({defaultValues:{default_organization_id:"",default_project_id:"",kanban_done_status:"",vk_workspace_executor:""}});j.useEffect(()=>{t&&r({default_organization_id:t.boardOrg,default_project_id:t.boardProj,kanban_done_status:t.kanbanDoneStatus,vk_workspace_executor:t.vkExecutor})},[t,r]);const c=s(),d=c.default_organization_id??"",p=c.default_project_id??"",m=c.kanban_done_status??"",v=c.vk_workspace_executor??"",y=kn(Gj,{skip:!(t!=null&&t.vkBoardPicker)||!!(t!=null&&t.orgError),fetchPolicy:"cache-and-network"}),g=j.useMemo(()=>{var $;return(($=y.data)==null?void 0:$.vibeKanbanOrganizations)??[]},[(M=y.data)==null?void 0:M.vibeKanbanOrganizations]),_=kn(Yj,{variables:{organizationId:d},skip:!d.trim(),fetchPolicy:"cache-and-network"}),N=j.useMemo(()=>{var $;return(($=_.data)==null?void 0:$.vibeKanbanProjects)??[]},[(I=_.data)==null?void 0:I.vibeKanbanProjects]),T=_.error?fn(_.error):null,[D,E]=Gn(Zj,{onCompleted:()=>{je.success("Vibe Kanban settings saved.")},onError:$=>{je.error(`Save failed: ${fn($)}`)}}),O=async $=>{await D({variables:{input:$}})};if(e.loading&&!t&&!e.error)return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),S.jsx("p",{className:"muted",children:"Loading…"})]});if(e.error)return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),S.jsx("p",{className:"muted",children:fn(e.error)})]});if(!t)return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),S.jsx("p",{className:"muted",children:"Loading…"})]});const w=t;return S.jsxs("div",{className:"stack",children:[S.jsx("h1",{children:"Vibe Kanban"}),w.orgError?S.jsx("p",{className:"text-danger",children:w.orgError}):null,y.error?S.jsx("p",{className:"text-danger",children:fn(y.error)}):null,S.jsx(N2,{orgLabel:w.vkLabels.default_organization_id,doneStatusLabel:w.vkLabels.kanban_done_status,executorLabel:w.vkLabels.vk_workspace_executor,boardPickerEnabled:w.vkBoardPicker,orgErrorMessage:w.orgError??null,orgOptions:g,orgLoading:!!y.loading,selectedOrgId:d,onOrgChange:$=>{u("default_organization_id",$,{shouldDirty:!0}),u("default_project_id","",{shouldDirty:!0})},selectedProjectId:p,projectOptions:N,projectLoading:!!_.loading,projectErrorMessage:T,onProjectChange:$=>{u("default_project_id",$,{shouldDirty:!0})},doneStatusValue:m,onDoneStatusChange:$=>{u("kanban_done_status",$,{shouldDirty:!0})},executorValue:v,executorOptions:w.executorOptions,onExecutorChange:$=>{u("vk_workspace_executor",$,{shouldDirty:!0})},saving:E.loading,onSubmit:()=>{a($=>{O({default_organization_id:$.default_organization_id,default_project_id:$.default_project_id,kanban_done_status:$.kanban_done_status,vk_workspace_executor:$.vk_workspace_executor})})()}})]})}function O2(){return S.jsx(rx,{children:S.jsxs(Aa,{element:S.jsx(Kj,{}),children:[S.jsx(Aa,{index:!0,element:S.jsx(nx,{to:"/dashboard",replace:!0})}),S.jsx(Aa,{path:"dashboard",element:S.jsx(MM,{})}),S.jsx(Aa,{path:"settings",element:S.jsx(_2,{})}),S.jsx(Aa,{path:"activity",element:S.jsx(uM,{})}),S.jsx(Aa,{path:"mappings",element:S.jsx(v2,{})}),S.jsx(Aa,{path:"github",element:S.jsx(u2,{})}),S.jsx(Aa,{path:"vibe-kanban",element:S.jsx(T2,{})})]})})}v1.createRoot(document.getElementById("root")).render(S.jsx(j.StrictMode,{children:S.jsxs($w,{client:SM,children:[S.jsx(xx,{children:S.jsx(O2,{})}),S.jsx(iD,{position:"top-right",toastOptions:{duration:3e3,style:{background:"#171c19",color:"#e8f0ea",border:"1px solid #2a332e"},success:{iconTheme:{primary:"#3d9f7a",secondary:"#0f1210"}},error:{iconTheme:{primary:"#c45c5c",secondary:"#0f1210"}}}})]})}))});export default w2();
|