wizards 0.7.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/apps/web/dist/assets/{AboutDialog-BJALish1.js → AboutDialog-BQ4jGHij.js} +1 -1
  2. package/apps/web/dist/assets/{ChangelogDialog-CxmHNvq1.js → ChangelogDialog-BqwKOr3c.js} +1 -1
  3. package/apps/web/dist/assets/{ChatView-C9ASPVJj.js → ChatView-Q-Mk0N17.js} +1 -1
  4. package/apps/web/dist/assets/{EditorPage-BHhNEiKa.js → EditorPage-_ZrAipdL.js} +3 -3
  5. package/apps/web/dist/assets/{FlowPreview-DvpjuQdC.js → FlowPreview-CpA_aX8t.js} +1 -1
  6. package/apps/web/dist/assets/{Harness-Duq0wpfg.js → Harness-BdBBdTrI.js} +1 -1
  7. package/apps/web/dist/assets/{NewWizardChannels-CGFy67jk.js → NewWizardChannels-B48OYt7I.js} +1 -1
  8. package/apps/web/dist/assets/{NewWizardPage-DwBcRWJj.js → NewWizardPage-Djq-7i5b.js} +1 -1
  9. package/apps/web/dist/assets/{OnboardingPage-YwKzupPI.js → OnboardingPage-BLkXK6mf.js} +1 -1
  10. package/apps/web/dist/assets/{ProjectPage-DP1xMjbe.js → ProjectPage-Tp7oavbh.js} +1 -1
  11. package/apps/web/dist/assets/{PublicRunner-CECAuP0g.js → PublicRunner-nh8U3BWB.js} +1 -1
  12. package/apps/web/dist/assets/{ReadOnly-BnnGcLWU.js → ReadOnly-CaxuDkrN.js} +1 -1
  13. package/apps/web/dist/assets/{RunDrawer-C0vf8QAc.js → RunDrawer-DhlEkTSh.js} +2 -2
  14. package/apps/web/dist/assets/{RunnerView-CBrZpjt5.js → RunnerView-UGOmm2-Z.js} +1 -1
  15. package/apps/web/dist/assets/{SettingsPage-C0-mVcs5.js → SettingsPage-BkYXyrdN.js} +1 -1
  16. package/apps/web/dist/assets/{SetupPage-BGlYQREU.js → SetupPage-Bw6Hen_A.js} +1 -1
  17. package/apps/web/dist/assets/{SharePage-IwxlV6WC.js → SharePage-BTiFkz8h.js} +1 -1
  18. package/apps/web/dist/assets/changelog-B3yrut-H.js +1 -0
  19. package/apps/web/dist/assets/{esm-6TNBQNCD.js → esm-CY-A_13f.js} +1 -1
  20. package/apps/web/dist/assets/index-B_aM-qZk.css +1 -0
  21. package/apps/web/dist/assets/{index-DU-Onx-c.js → index-FEmK7XOw.js} +4 -4
  22. package/apps/web/dist/assets/{lock-HLZib0u9.js → lock--JFmtLDU.js} +1 -1
  23. package/apps/web/dist/assets/{phone-DsxbIcWi.js → phone-DMtADQ4-.js} +1 -1
  24. package/apps/web/dist/assets/{settings-menu-BMMkIVP1.js → settings-menu-Dac4JUiM.js} +1 -1
  25. package/apps/web/dist/assets/{ui-Brg2qM1A.js → ui-CTXSFCzc.js} +2 -2
  26. package/apps/web/dist/assets/{upload-BaGy0ppG.js → upload-Bcpc3mDn.js} +1 -1
  27. package/apps/web/dist/index.html +3 -3
  28. package/apps/web/dist/mcp/flow.html +3 -3
  29. package/package.json +1 -1
  30. package/apps/web/dist/assets/changelog-CPNPseoQ.js +0 -1
  31. package/apps/web/dist/assets/index-BhVJwBz7.css +0 -1
@@ -66,7 +66,7 @@ Error generating stack: `+e.message+`
66
66
 
67
67
  `)}return o.write(`payload.value = newResult;`),o.write(`return payload;`),o.compile()},o,s=ne,c=!Ye.jitless,l=c&&re.value,u=t.catchall,d;e._zod.parse=(i,f)=>{d??=r.value;let p=i.value;return s(p)?c&&l&&f?.async===!1&&f.jitless!==!0?(o||=a(t.shape),i=o(i,f),u?Mr([],p,i,f,d,e,f?.abortEarly===!0):i):n(i,f):(i.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),i)}});function Fr(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!ve(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Ce(e,r,Xe())))}),t)}var Ir=K(`$ZodUnion`,(e,t)=>{kn.init(e,t),Re(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),Re(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Re(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),Re(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>D(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>Fr(t,r,e,i)):Fr(o,r,e,i)}});function Lr(e){let t=new Map;for(let n of e.options){let r=n._zod.propValues?.[e.discriminator];if(!r||r.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(let e of r)if(t.has(e)){if(e!==void 0)throw Error(`Duplicate discriminator value "${String(e)}"`);t.set(e,null)}else t.set(e,n)}return t}var Rr=K(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,Ir.init(e,t);let n=e._zod.parse;Re(e,`propValues`,e=>{let t={},n=0;for(let r of e.def.options){let i=r._zod.propValues;if(!i||Object.keys(i).length===0)throw Error(`Invalid discriminated union option at index "${e.def.options.indexOf(r)}"`);i[e.def.discriminator]?.has(void 0)&&n++;for(let[e,n]of Object.entries(i)){Object.prototype.hasOwnProperty.call(t,e)||j(t,e,new Set);for(let r of n)t[e].add(r)}}return!e.def.unionFallback&&n>1&&t[e.def.discriminator]?.delete(void 0),t}),t.options.forEach((e,n)=>{let r=M(e._zod.def);if(r&&!Object.prototype.hasOwnProperty.call(r,t.discriminator))throw Error(`Invalid discriminated union option at index "${n}"`)});let r=T(()=>Lr(t));e._zod.parse=(i,a)=>{let o=i.value;if(!ne(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=o?.[t.discriminator],c=r.value.get(s);return c&&(s!==void 0||a.direction!==`backward`)?c._zod.run(i,a):t.unionFallback||a.direction===`backward`?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,options:Array.from(r.value.keys()).filter(e=>r.value.get(e)!==null),input:o,path:[t.discriminator],inst:e}),i)}}),zr=K(`$ZodIntersection`,(e,t)=>{kn.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>Vr(e,t,n)):Vr(e,i,a)}});function Br(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(B(e)&&B(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=Br(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Br(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Vr(e,t,n){let r=new Map,i,a=new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=Br(t.value,n.value);if(!c.valid){if(ve(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var Hr=K(`$ZodRecord`,(e,t)=>{kn.init(e,t);let n=Ye.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!B(a))return r.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),r;let o=[],s=t.keyType._zod.values;if(s&&!t.partial){r.value=n?n.alloc(e,r,{},i):{};let c=new Set;for(let n of s)if(typeof n==`string`||typeof n==`number`||typeof n==`symbol`){if(c.add(typeof n==`number`?n.toString():n),n===`__proto__`)continue;let s=t.keyType._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){r.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>Ce(e,i,Xe())),input:n,path:[n],inst:e});continue}let l=s.value;if(l===`__proto__`)continue;let u=t.valueType._zod.run({value:a[n],issues:[]},i);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&r.issues.push(...be(n,e.issues)),r.value[l]=e.value})):(u.issues.length&&r.issues.push(...be(n,u.issues)),r.value[l]=u.value)}let l;for(let e in a)if(!c.has(e)){if(t.mode===`loose`){if(e===`__proto__`)continue;r.value[e]=a[e]}else l??=[],l.push(e)}l&&l.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:l,continue:!0})}else{r.value=n?n.alloc(e,r,{},i):{};let c;for(let n of Reflect.ownKeys(a)){if(n===`__proto__`||!Object.prototype.propertyIsEnumerable.call(a,n))continue;let l=t.keyType._zod.run({value:n,issues:[]},i);if(l instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof n==`string`&&nn.test(n)&&l.issues.length){let e=t.keyType._zod.run({value:Number(n),issues:[]},i);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(l=e)}if(l.issues.length){t.mode===`loose`?r.value[n]=a[n]:s?(c??=[],c.push(n)):r.issues.push({code:`invalid_key`,origin:`record`,issues:l.issues.map(e=>Ce(e,i,Xe())),input:n,path:[n],inst:e});continue}let u=l.value;if(u===`__proto__`)continue;let d=t.valueType._zod.run({value:a[n],issues:[]},i);d instanceof Promise?o.push(d.then(e=>{e.issues.length&&r.issues.push(...be(n,e.issues)),r.value[u]=e.value})):(d.issues.length&&r.issues.push(...be(n,d.issues)),r.value[u]=d.value)}c&&c.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c,continue:!0})}return o.length?Promise.all(o).then(()=>r):r}}),Ur=K(`$ZodEnum`,(e,t)=>{kn.init(e,t);let n=x(t.entries),r=new Set(n);e._zod.values=r,Re(e,`pattern`,e=>{let t=x(e.def.entries).filter(e=>ae.has(typeof e));return RegExp(t.length?`^(${t.map(e=>se(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Wr=K(`$ZodLiteral`,(e,t)=>{kn.init(e,t);let n=new Set(t.values);e._zod.values=n,Re(e,`pattern`,e=>{let t=e.def.values;return RegExp(t.length?`^(${t.map(e=>typeof e==`string`?se(e):e?se(e.toString()):String(e)).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),Gr=K(`$ZodTransform`,(e,t)=>{kn.init(e,t),e._zod.optin=`optional`,Ye.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Je(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new qe;return n.value=i,n}});function Kr(e,t){return e.value=t.issues.length?void 0:t.value,e}var qr=K(`$ZodOptional`,(e,t)=>{kn.init(e,t),Re(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,Re(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t,void 0]):void 0}),Re(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${D(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>Kr(e,t)):Kr(e,r)}return t.innerType._zod.run(e,n)}}),Jr=K(`$ZodExactOptional`,(e,t)=>{qr.init(e,t),Re(e,`values`,e=>e.def.innerType._zod.values),Re(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Yr=K(`$ZodNullable`,(e,t)=>{kn.init(e,t),Re(e,`optin`,e=>e.def.innerType._zod.optin),Re(e,`optout`,e=>e.def.innerType._zod.optout),Re(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${D(t.source)}|null)$`):void 0}),Re(e,`values`,e=>e.def.innerType._zod.values?new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Xr=K(`$ZodDefault`,(e,t)=>{kn.init(e,t),e._zod.optin=`defaulted`,Re(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Zr(e,t)):Zr(r,t)}});function Zr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Qr=K(`$ZodPrefault`,(e,t)=>{kn.init(e,t),e._zod.optin=`defaulted`,Re(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),$r=K(`$ZodNonOptional`,(e,t)=>{kn.init(e,t),Re(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>ei(t,e)):ei(i,e)}});function ei(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function ti(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>Ce(e,r,Xe()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}var ni=K(`$ZodCatch`,(e,t)=>{kn.init(e,t),Re(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),Re(e,`optout`,e=>e.def.innerType._zod.optout),Re(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>ti(e,r,t,n)):ti(e,r,t,n)}}),ri=K(`$ZodPipe`,(e,t)=>{kn.init(e,t),Re(e,`values`,e=>e.def.in._zod.values),Re(e,`optin`,e=>e.def.in._zod.optin),Re(e,`optout`,e=>e.def.out._zod.optout),Re(e,`propValues`,e=>e.def.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>ii(e,t.in,n)):ii(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>ii(e,t.out,n)):ii(r,t.out,n)}});function ii(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var ai=K(`$ZodPreprocess`,(e,t)=>{ri.init(e,t)}),oi=K(`$ZodReadonly`,(e,t)=>{kn.init(e,t),Re(e,`propValues`,e=>e.def.innerType._zod.propValues),Re(e,`values`,e=>e.def.innerType._zod.values),Re(e,`optin`,e=>e.def.innerType?._zod?.optin),Re(e,`optout`,e=>e.def.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(si):si(r)}});function si(e){return e.memo||(e.value=Object.freeze(e.value)),e}function ci(e){let t=e._zod.def,n=t.pattern,r=!!t.format?.includes(`int`),i,a;for(let e of t.checks??[]){let t=e._zod.def;t.pattern&&(n=t.pattern),r||=!!t.format?.includes(`int`);let o=t.minimum??t.length,s=t.maximum??t.length;o!==void 0&&(i===void 0||o>i)&&(i=o),s!==void 0&&(a===void 0||s<a)&&(a=s)}if(n)return n.source;if(i!==void 0&&a!==void 0&&i>a)return`(?!)`;if(i!==void 0||a!==void 0)return en({minimum:i,maximum:a}).source;let o=e._zod.pattern;return(r&&o===nn?tn:o)?.source}function li(e){let t=e._zod.def,n=e._zod.pattern?.source,r=t.innerType??e._zod.innerType;if(r){let e=r._zod.pattern?.source,t=li(r);return n&&e&&t&&t!==e?n.replace(D(e),()=>D(t)):n}if(t.options){let e=t.options.map(li);if(e.every(Boolean))return`^(${e.map(e=>D(e)).join(`|`)})$`}return ci(e)}var ui=K(`$ZodTemplateLiteral`,(e,t)=>{kn.init(e,t);let n=[];for(let e of t.parts)if(typeof e==`object`&&e){let t=li(e);if(!t)throw Error(`Invalid template literal part, no pattern found: ${[...e._zod.traits].shift()}`);n.push(D(t))}else if(e===null||oe.has(typeof e))n.push(se(`${e}`));else throw Error(`Invalid template literal part: ${e}`);e._zod.pattern=RegExp(`^${n.join(``)}$`),e._zod.parse=(n,r)=>typeof n.value==`string`?(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:`invalid_format`,format:t.format??`template_literal`,pattern:e._zod.pattern.source}),n):(n.issues.push({input:n.value,inst:e,expected:`string`,code:`invalid_type`}),n)}),di=K(`$ZodLazy`,(e,t)=>{kn.init(e,t),A(e._zod,`innerType`,()=>{let e=t;return e._cachedInner||=t.getter(),e._cachedInner}),Re(e,`pattern`,e=>e.innerType?._zod?.pattern),Re(e,`propValues`,e=>e.innerType?._zod?.propValues),Re(e,`optin`,e=>e.innerType?._zod?.optin??void 0),Re(e,`optout`,e=>e.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),fi=K(`$ZodCustom`,(e,t)=>{ln.init(e,t),kn.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>pi(t,n,r,e));pi(i,n,r,e)}});function pi(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Oe(e))}}var mi=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},hi=`~memo`,gi=[];function _i(e){return typeof e==`object`&&!!e}function vi(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var yi=new WeakMap,bi=0,xi=1,Si=2;function Ci(e,t,n){let r=yi.get(e);if(r!==void 0)return r?Si:bi;if(t.has(e))return Si;t.add(e);let i=bi,a=e=>{if(i!==Si&&e?._zod){let r=Ci(e,t,n);r>i&&(i=r)}},o=(e,r)=>{let i=bi;for(let a of Reflect.ownKeys(e)){let o=Object.getOwnPropertyDescriptor(e,a);if(r&&!o.enumerable)continue;let s=o.get?xi:o.value?._zod?Ci(o.value,t,n):bi;s>i&&(i=s)}return i},s=e=>{e>i&&(i=e)},c=e._zod.def;switch(c.type){case`object`:{let e=M(c);s(e?o(e,!0):xi),a(c.catchall);break}case`array`:a(c.element);break;case`tuple`:for(let e of c.items)a(e);a(c.rest);break;case`record`:case`map`:a(c.keyType),a(c.valueType);break;case`set`:a(c.valueType);break;case`union`:for(let e of c.options)a(e);break;case`intersection`:a(c.left),a(c.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:a(c.innerType);break;case`pipe`:a(c.in),a(c.out);break;case`function`:a(c.input),a(c.output);break;case`lazy`:{let r=c._cachedInner??(n?e._zod.innerType:void 0);s(r?Ci(r,t,!1):xi);break}case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in c){let t=Object.getOwnPropertyDescriptor(c,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)a(n);else if(Array.isArray(n))for(let e of n)a(e)}}}return t.delete(e),wi(e,i)}function wi(e,t){return t!==xi&&yi.set(e,t===Si),t}function Ti(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}var Ei,Di=[],Oi={alloc(e,t,n){let r=Ei;if(!r)return n;Ei=void 0;let i={value:n,issues:null};return r.set(t.value,i),Di.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&Ai(n,e.value))throw new mi;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r=!1,i,a;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,o=(s,c)=>{if(n===void 0){let i=Ci(e,new Set,!1);if(i===bi)return e._zod.parse=t,e._zod.run===o&&(e._zod.run=t),t(s,c);i===Si||r?n=!0:r=!0}let l=s.value;if(!_i(l))return t(s,c);let u=c[hi];u||(u={buckets:new WeakMap,backEdges:void 0},c[hi]=u);let d;i===c?d=a:(d=Ti(u,e),i=c,a=d);let f=d.get(l);if(f)return s.value=f.value,f.issues?f.issues.length&&s.issues.push(...vi(f.issues)):(s.memo=!0,u.backEdges??(u.backEdges=new WeakSet),u.backEdges.add(f.value)),s;Ei=d;let p=Di.length,m=t(s,c);Ei=void 0;let h=Di.length>p?Di.pop():void 0;return m instanceof Promise?m.then(e=>(h&&(h.issues=e.issues.length?vi(e.issues):gi),e)):(h&&(h.issues=m.issues.length?vi(m.issues):gi),m)};e._zod.parse=o,e._zod.run===t&&(e._zod.run=o)})}};function ki(){return Oi}function Ai(e,t){let n=e[hi]?.backEdges;return n!==void 0&&_i(t)&&n.has(t)}var ji=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,currency_code:`currency code`,credit_card:`credit card number`,iban:`IBAN`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(De(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${H(e.values[0])}`:`Invalid option: expected one of ${S(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${S(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function Mi(){return{localeError:ji()}}var Ni,Pi=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Fi(){return new Pi}(Ni=globalThis).__zod_globalRegistry??(Ni.__zod_globalRegistry=Fi());var Ii=globalThis.__zod_globalRegistry;function Li(e){return e.checks&&=[...e.checks],e}function Ri(e,t){return new e(Li({type:`string`,...V(t)}))}function zi(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...V(t)})}function Bi(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...V(t)})}function Vi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...V(t)})}function Hi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...V(t)})}function Ui(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...V(t)})}function Wi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...V(t)})}function Gi(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...V(t)})}function Ki(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...V(t)})}function qi(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...V(t)})}function Ji(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...V(t)})}function Yi(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...V(t)})}function Xi(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...V(t)})}function Zi(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...V(t)})}function Qi(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...V(t)})}function $i(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...V(t)})}function ea(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...V(t)})}function ta(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...V(t)})}function na(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...V(t)})}function ra(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...V(t)})}function ia(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...V(t)})}function aa(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...V(t)})}function oa(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...V(t)})}function sa(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...V(t)})}function ca(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...V(t)})}function la(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...V(t)})}function ua(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...V(t)})}function da(e,t){return new e(Li({type:`number`,checks:[],...V(t)}))}function fa(e,t){return new e(Li({type:`number`,coerce:!0,checks:[],...V(t)}))}function pa(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...V(t)})}function ma(e,t){return new e({type:`boolean`,...V(t)})}function ha(e,t){return new e({type:`undefined`,...V(t)})}function ga(e,t){return new e({type:`null`,...V(t)})}function _a(e){return new e({type:`any`})}function va(e){return new e({type:`unknown`})}function ya(e,t){return new e({type:`never`,...V(t)})}function ba(e,t){return new fn({check:`less_than`,...V(t),value:e,inclusive:!1})}function xa(e,t){return new fn({check:`less_than`,...V(t),value:e,inclusive:!0})}function Sa(e,t){return new pn({check:`greater_than`,...V(t),value:e,inclusive:!1})}function Ca(e,t){return new pn({check:`greater_than`,...V(t),value:e,inclusive:!0})}function wa(e,t){return new mn({check:`multiple_of`,...V(t),value:e})}function Ta(e,t){return new gn({check:`max_length`,...V(t),maximum:e})}function Ea(e,t){return new _n({check:`min_length`,...V(t),minimum:e})}function Da(e,t){return new vn({check:`length_equals`,...V(t),length:e})}function Oa(e,t){return new bn({check:`string_format`,format:`regex`,...V(t),pattern:e})}function ka(e){return new xn({check:`string_format`,format:`lowercase`,...V(e)})}function Aa(e){return new Sn({check:`string_format`,format:`uppercase`,...V(e)})}function ja(e,t){return new Cn({check:`string_format`,format:`includes`,...V(t),includes:e})}function Ma(e,t){return new wn({check:`string_format`,format:`starts_with`,...V(t),prefix:e})}function Na(e,t){return new Tn({check:`string_format`,format:`ends_with`,...V(t),suffix:e})}function Pa(e){return new En({check:`overwrite`,tx:e})}function Fa(e){return Pa(t=>t.normalize(e))}function Ia(){return Pa(e=>e.trim())}function La(){return Pa(e=>e.toLowerCase())}function Ra(){return Pa(e=>e.toUpperCase())}function za(){return Pa(e=>z(e))}function Ba(e,t,n){return new e({type:`array`,element:t,...V(n)})}function Va(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...V(n)})}function Ha(e,t){let n=Ua(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(Oe(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(Oe(r))}},e(t.value,t)),t);return n}function Ua(e,t){let n=new ln({check:`custom`,...V(t)});return n._zod.check=e,n}function Wa(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&j(e,t,n[t]);return e}function Ga(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Ii,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function Ka(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function qa(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,qa(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Wa(o.schema,c),t.io===`input`&&ro(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Ja(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function Ya(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${Ja(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+Ja(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
68
68
 
69
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}r.count>1&&e.reused===`ref`&&a(n)}e.external&&(e.sharedDefsExtractedFor=e.external)}function Xa(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;Xa(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var Za=new Set([`type`,`properties`,`required`,`additionalProperties`]),Qa=[`oneOf`,`anyOf`];function $a(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function eo(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!Za.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??$a(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}j(n,r,e.length===1?e[0]:eo(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=$a(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function to(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of Za)if(t in e)return;let n=t.filter(e=>Qa.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=eo(t);else{let e=n[0],i=Qa.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>eo([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,Wa(e,r))}function no(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Wa(i,s),Wa(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())Xa(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])to(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Wa(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,j(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:ao(t,`input`,e.processors),output:ao(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function ro(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return ro(r.element,n);if(r.type===`set`)return ro(r.valueType,n);if(r.type===`lazy`)return ro(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return ro(r.innerType,n);if(r.type===`intersection`)return ro(r.left,n)||ro(r.right,n);if(r.type===`record`||r.type===`map`)return ro(r.keyType,n)||ro(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:ro(r.in,n)||ro(r.out,n);if(r.type===`object`){for(let e in r.shape)if(ro(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(ro(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(ro(e,n))return!0;return!!(r.rest&&ro(r.rest,n))}return!1}var io=(e,t={})=>n=>{let r=Ga({...n,processors:t});return qa(e,r),Ya(r,e),no(r,e)},ao=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Ga({...i??{},target:a,io:t,processors:n});return qa(e,o),Ya(o,e),no(o,e)},oo=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},so=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},co=(e,t)=>{oo(e,`minimum`,t),so(e,`maximum`,t)},lo=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},uo=(e,t)=>{e.patterns??=new Set,e.patterns.add(t)},fo=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},po=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},mo=(e,t)=>oo(e,`minimum`,t.minimum),ho=(e,t)=>so(e,`maximum`,t.maximum),go=e=>(t,n)=>{po(t,n.format);let[r,i]=e[n.format];oo(t,`minimum`,r),so(t,`maximum`,i)},_o={greater_than:(e,t)=>oo(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>so(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>lo(e,t.value),number_format:go(ue),bigint_format:go(de),min_length:mo,max_length:ho,length_equals:(e,t)=>co(e,t.length),min_size:mo,max_size:ho,size_equals:(e,t)=>co(e,t.size),string_format:(e,t)=>{po(e,t.format),t.pattern&&uo(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>fo(e,t.mime)};function vo(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)_o[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&oo(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&oo(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&so(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&so(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&lo(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&fo(t,i.mime);for(let e of i.patterns??[])uo(t,e);return t}var yo={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},bo=new Map([[dr,Ut],[pr,Wt]]),xo=e=>bo.get(e)??e,So=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=vo(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=yo[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(xo);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Co=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=vo(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):Ka(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},wo=(e,t,n,r)=>{n.type=`boolean`},To=(e,t,n,r)=>{Ka(e,t,n,r,`BigInt cannot be represented in JSON Schema`)},Eo=(e,t,n,r)=>{Ka(e,t,n,r,`Symbols cannot be represented in JSON Schema`)},Do=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Oo=(e,t,n,r)=>{Ka(e,t,n,r,`Undefined cannot be represented in JSON Schema`)},ko=(e,t,n,r)=>{Ka(e,t,n,r,`Void cannot be represented in JSON Schema`)},Ao=(e,t,n,r)=>{n.not={}},jo=(e,t,n,r)=>{},Mo=(e,t,n,r)=>{},No=(e,t,n,r)=>{Ka(e,t,n,r,`Date cannot be represented in JSON Schema`)},Po=(e,t,n,r)=>{let i=e._zod.def,a=x(i.entries);if(a.length===0){n.not={};return}a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Fo=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(Ka(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(Ka(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},Io=(e,t,n,r)=>{Ka(e,t,n,r,`NaN cannot be represented in JSON Schema`)},Lo=(e,t,n,r)=>{let i=n,a=e._zod.pattern;if(!a)throw Error(`Pattern not found in template literal`);i.type=`string`,i.pattern=a.source},Ro=(e,t,n,r)=>{let i=n;i.type=`string`,i.format=`binary`,i.contentEncoding=`binary`;let{minimum:a,maximum:o,mime:s}=vo(e);a!==void 0&&(i.minLength=a),o!==void 0&&(i.maxLength=o),s&&(s.length===0?i.not={}:s.length===1?i.contentMediaType=s[0]:i.anyOf=s.map(e=>({contentMediaType:e})))},zo=(e,t,n,r)=>{n.type=`boolean`},Bo=(e,t,n,r)=>{Ka(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},Vo=(e,t,n,r)=>{Ka(e,t,n,r,`Function types cannot be represented in JSON Schema`)},Ho=(e,t,n,r)=>{Ka(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},Uo=(e,t,n,r)=>{Ka(e,t,n,r,`Map cannot be represented in JSON Schema`)},Wo=(e,t,n,r)=>{Ka(e,t,n,r,`Set cannot be represented in JSON Schema`)},Go=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=vo(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=qa(a.element,t,{...r,path:[...r.path,`items`]})};function Ko(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?Ko(t.out):t.type===`catch`?Ko(t.innerType):e._zod.optin}var qo=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&Ka(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)j(i.properties,e,qa(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?Ko(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=qa(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Jo=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>qa(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Yo=(e,t,n,r)=>{let i=e._zod.def,a=qa(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=qa(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},Xo=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>qa(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?qa(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null,u=a.items.length;for(;u>0;){let e=a.items[u-1];if(!(t.io===`input`?Ko(e)!==void 0:e._zod.optout===`optional`))break;u--}let d=a.items.length,f=!a.rest;t.target===`draft-2020-12`?(i.prefixItems=c,f?i.items=!1:l&&(i.items=l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):(i.items=c,f?i.additionalItems=!1:l&&(i.additionalItems=l),u>0&&(i.minItems=u),f&&(i.maxItems=d));let{minimum:p,maximum:m}=vo(e);typeof p==`number`&&(i.minItems=p),typeof m==`number`&&(i.maxItems=m)};function Zo(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=Zo(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>Zo(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i?(p.type=`string`,a||(p.pattern=(r.includes(`number`)?nn:tn).source),p):p}var Qo=new WeakMap;function $o(e){let t=new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=new Map;for(let r of Qo.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=Zo(t,a,new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}var es=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=vo(o).patterns;if(a.mode===`loose`&&s&&s.size>0){let e=qa(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)j(i.patternProperties,xo(t).source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=qa(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=Qo.get(t);n||(n=[],Qo.set(t,n),t.deferred.push(()=>$o(t))),n.push(e)}i.additionalProperties=qa(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&Ko(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},ts=(e,t,n,r)=>{let i=e._zod.def,a=qa(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},ns=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},rs=Symbol();function is(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(Ka(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),rs):JSON.parse(o)}var as=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=is(i.defaultValue,e,t,n,r);o!==rs&&(n.default=o)},os=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=is(i.defaultValue,e,t,n,r);o!==rs&&(n._prefault=o)},ss=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{Ka(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},cs=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;qa(o,t,r);let s=t.seen.get(e);s.ref=o},ls=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},us=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ds=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},fs=(e,t,n,r)=>{let i=e._zod.innerType;qa(i,t,r);let a=t.seen.get(e);a.ref=i},ps={string:So,number:Co,boolean:wo,bigint:To,symbol:Eo,null:Do,undefined:Oo,void:ko,never:Ao,any:jo,unknown:Mo,date:No,enum:Po,literal:Fo,nan:Io,template_literal:Lo,file:Ro,success:zo,custom:Bo,function:Vo,transform:Ho,map:Uo,set:Wo,array:Go,object:qo,union:Jo,intersection:Yo,tuple:Xo,record:es,nullable:ts,nonoptional:ns,default:as,prefault:os,catch:ss,pipe:cs,readonly:ls,promise:us,optional:ds,lazy:fs};function ms(e,t){if(`_idmap`in e){let n=e,r=Ga({...t,processors:ps}),i={};for(let e of n._idmap.entries()){let[t,n]=e;qa(n,r)}let a={};r.external={registry:n,uri:t?.uri,defs:i};for(let e of n._idmap.entries()){let[t,n]=e;Ya(r,n),j(a,t,no(r,n))}return Object.keys(i).length>0&&(a.__shared={[r.target===`draft-2020-12`?`$defs`:`definitions`]:i}),{schemas:a}}let n=Ga({...t,processors:ps});return qa(e,n),Ya(n,e),no(n,e)}var hs=new WeakSet([Object.prototype,Error.prototype]);function gs(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var _s=K(`ZodError`,(e,t)=>{rt.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);hs.has(n)||(hs.add(n),gs(n,`format`,e=>t=>ot(e,t)),gs(n,`flatten`,e=>t=>at(e,t)),gs(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,C,2)}),gs(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,C,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),vs=ct(_s),ys=lt(_s),bs=ut(_s),xs=ft(_s),Ss=vt(_s),Cs=yt(_s),ws=bt(_s),Ts=xt(_s),Es=St(_s),Ds=Ct(_s),Os=wt(_s),ks=Tt(_s);function As(){Ye.localeError||Xe(Mi())}function js(){Ye.memoizer||Xe({memoizer:ki()})}var Ms=K(`ZodType`,(e,t)=>(As(),kn.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(L(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ce(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(cl(e,t))},superRefine(e,t){return this.check(ll(e,t))},overwrite(e){return this.check(Pa(e))},optional(){return zc(this)},exactOptional(){return Vc(this)},nullable(){return Uc(this)},nullish(){return zc(Uc(this))},nonoptional(e){return Yc(this,e)},array(){return Y(this)},or(e){return Ec([this,e])},and(e){return Ac(this,e)},transform(e){return $c(this,Lc(e))},default(e){return Gc(this,e)},prefault(e){return qc(this,e)},catch(e){return Zc(this,e)},pipe(e){return $c(this,e)},readonly(){return nl(this)},describe(e){let t=this.clone();return Ii.add(t,{description:e}),t},meta(...e){if(e.length===0)return Ii.get(this);let t=this.clone();return Ii.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return je(this,`~standard`,{...Mn(this),jsonSchema:{input:ao(this,`input`),output:ao(this,`output`)}})},set"~standard"(e){Ae(this,`~standard`,e)},parse:function e(t,n){return vs(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await ys(this,t,n,{callee:e})},safeParse(e,t){return bs(this,e,t)},async safeParseAsync(e,t){return xs(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){Ae(this,`spa`,e)},validate(e,t){return ht(this,e,t)},validateAsync(e,t){return _t(this,e,t)},encode:function e(t,n){return Ss(this,t,n,{callee:e})},decode:function e(t,n){return Cs(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await ws(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await Ts(this,t,n,{callee:e})},safeEncode(e,t){return Es(this,e,t)},safeDecode(e,t){return Ds(this,e,t)},async safeEncodeAsync(e,t){return Os(this,e,t)},async safeDecodeAsync(e,t){return ks(this,e,t)},toJSONSchema(e){return io(this,{})(e)},get description(){return Ii.get(this)?.description},get _def(){return this._zod.def}}),Ns=K(`_ZodString`,(e,t)=>{Nn.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>So(e,t,n,r)},Me({format:e=>vo(e).format??null,minLength:e=>vo(e).minimum??null,maxLength:e=>vo(e).maximum??null},{regex(...e){return this.check(Oa(...e))},includes(...e){return this.check(ja(...e))},startsWith(...e){return this.check(Ma(...e))},endsWith(...e){return this.check(Na(...e))},min(...e){return this.check(Ea(...e))},max(...e){return this.check(Ta(...e))},length(...e){return this.check(Da(...e))},nonempty(...e){return this.check(Ea(1,...e))},lowercase(e){return this.check(ka(e))},uppercase(e){return this.check(Aa(e))},trim(){return this.check(Ia())},normalize(...e){return this.check(Fa(...e))},toLowerCase(){return this.check(La())},toUpperCase(){return this.check(Ra())},slugify(){return this.check(za())}})),Ps=K(`ZodString`,(e,t)=>{Nn.init(e,t),Ns.init(e,t)},{email(e){return this.check(zi(Bs,e))},url(e){return this.check(Gi(Ws,e))},jwt(e){return this.check(oa(oc,e))},emoji(e){return this.check(Ki(Ks,e))},guid(e){return this.check(Bi(Hs,e))},uuid(e){return this.check(Vi(Us,e))},uuidv4(e){return this.check(Hi(Us,e))},uuidv6(e){return this.check(Ui(Us,e))},uuidv7(e){return this.check(Wi(Us,e))},nanoid(e){return this.check(qi(qs,e))},cuid(e){return this.check(Ji(Js,e))},cuid2(e){return this.check(Yi(Ys,e))},ulid(e){return this.check(Xi(Xs,e))},base64(e){return this.check(ra(rc,e))},base64url(e){return this.check(ia(ic,e))},xid(e){return this.check(Zi(Zs,e))},ksuid(e){return this.check(Qi(Qs,e))},ipv4(e){return this.check($i($s,e))},ipv6(e){return this.check(ea(ec,e))},cidrv4(e){return this.check(ta(tc,e))},cidrv6(e){return this.check(na(nc,e))},e164(e){return this.check(aa(ac,e))},datetime(e){return this.check(sa(Is,e))},date(e){return this.check(ca(Ls,e))},time(e){return this.check(la(Rs,e))},duration(e){return this.check(ua(zs,e))}});function q(e){return Ri(Ps,e)}var Fs=K(`ZodStringFormat`,(e,t)=>{Pn.init(e,t),Ns.init(e,t)}),Is=K(`ZodISODateTime`,(e,t)=>{$n.init(e,t),Fs.init(e,t)}),Ls=K(`ZodISODate`,(e,t)=>{er.init(e,t),Fs.init(e,t)}),Rs=K(`ZodISOTime`,(e,t)=>{tr.init(e,t),Fs.init(e,t)}),zs=K(`ZodISODuration`,(e,t)=>{nr.init(e,t),Fs.init(e,t)}),Bs=K(`ZodEmail`,(e,t)=>{Ln.init(e,t),Fs.init(e,t)});function Vs(e){return zi(Bs,e)}var Hs=K(`ZodGUID`,(e,t)=>{Fn.init(e,t),Fs.init(e,t)}),Us=K(`ZodUUID`,(e,t)=>{In.init(e,t),Fs.init(e,t)}),Ws=K(`ZodURL`,(e,t)=>{Gn.init(e,t),Fs.init(e,t)});function Gs(e){return Gi(Ws,e)}var Ks=K(`ZodEmoji`,(e,t)=>{Kn.init(e,t),Fs.init(e,t)}),qs=K(`ZodNanoID`,(e,t)=>{qn.init(e,t),Fs.init(e,t)}),Js=K(`ZodCUID`,(e,t)=>{Jn.init(e,t),Fs.init(e,t)}),Ys=K(`ZodCUID2`,(e,t)=>{Yn.init(e,t),Fs.init(e,t)}),Xs=K(`ZodULID`,(e,t)=>{Xn.init(e,t),Fs.init(e,t)}),Zs=K(`ZodXID`,(e,t)=>{Zn.init(e,t),Fs.init(e,t)}),Qs=K(`ZodKSUID`,(e,t)=>{Qn.init(e,t),Fs.init(e,t)}),$s=K(`ZodIPv4`,(e,t)=>{rr.init(e,t),Fs.init(e,t)}),ec=K(`ZodIPv6`,(e,t)=>{or.init(e,t),Fs.init(e,t)}),tc=K(`ZodCIDRv4`,(e,t)=>{sr.init(e,t),Fs.init(e,t)}),nc=K(`ZodCIDRv6`,(e,t)=>{lr.init(e,t),Fs.init(e,t)}),rc=K(`ZodBase64`,(e,t)=>{fr.init(e,t),Fs.init(e,t)}),ic=K(`ZodBase64URL`,(e,t)=>{hr.init(e,t),Fs.init(e,t)}),ac=K(`ZodE164`,(e,t)=>{gr.init(e,t),Fs.init(e,t)}),oc=K(`ZodJWT`,(e,t)=>{vr.init(e,t),Fs.init(e,t)}),sc=K(`ZodNumber`,(e,t)=>{yr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Co(e,t,n,r),e.isFinite=!0},Me({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=vo(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=vo(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=vo(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>vo(e).format??null},{gt(e,t){return this.check(Sa(e,t))},gte(e,t){return this.check(Ca(e,t))},min(e,t){return this.check(Ca(e,t))},lt(e,t){return this.check(ba(e,t))},lte(e,t){return this.check(xa(e,t))},max(e,t){return this.check(xa(e,t))},int(e){return this.check(lc(e))},safe(e){return this.check(lc(e))},positive(e){return this.check(Sa(0,e))},nonnegative(e){return this.check(Ca(0,e))},negative(e){return this.check(ba(0,e))},nonpositive(e){return this.check(xa(0,e))},multipleOf(e,t){return this.check(wa(e,t))},step(e,t){return this.check(wa(e,t))},finite(){return this}}));function J(e){return da(sc,e)}var cc=K(`ZodNumberFormat`,(e,t)=>{br.init(e,t),sc.init(e,t)});function lc(e){return pa(cc,e)}var uc=K(`ZodBoolean`,(e,t)=>{xr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wo(e,t,n,r)});function dc(e){return ma(uc,e)}var fc=K(`ZodUndefined`,(e,t)=>{Sr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Oo(e,t,n,r)});function pc(e){return ha(fc,e)}var mc=K(`ZodNull`,(e,t)=>{Cr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Do(e,t,n,r)});function hc(e){return ga(mc,e)}var gc=K(`ZodAny`,(e,t)=>{wr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function _c(){return _a(gc)}var vc=K(`ZodUnknown`,(e,t)=>{Tr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function yc(){return va(vc)}var bc=K(`ZodNever`,(e,t)=>{Er.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ao(e,t,n,r)});function xc(e){return ya(bc,e)}var Sc=K(`ZodArray`,(e,t)=>{js(),Or.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Go(e,t,n,r),e.element=t.element},{min(e,t){return this.check(Ea(e,t))},nonempty(e){return this.check(Ea(1,e))},max(e,t){return this.check(Ta(e,t))},length(e,t){return this.check(Da(e,t))},unwrap(){return this.element}});function Y(e,t){return Ba(Sc,e,t)}var Cc=K(`ZodObject`,(e,t)=>{js(),Pr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qo(e,t,n,r),ze(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return Pc(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(L(this._zod.def,{catchall:e}))},passthrough(){return this.clone(L(this._zod.def,{catchall:yc()}))},loose(){return this.clone(L(this._zod.def,{catchall:yc()}))},strict(){return this.clone(L(this._zod.def,{catchall:xc()}))},strip(){return this.clone(L(this._zod.def,{catchall:void 0}))},extend(e){return he(this,e)},safeExtend(e){return ge(this,e)},merge(e){return W(this,e)},pick(e){return fe(this,e)},omit(e){return me(this,e)},partial(...e){return G(Rc,this,e[0])},exactPartial(...e){return G(Bc,this,e[0],`exactPartial`)},required(...e){return _e(Jc,this,e[0])}});function X(e,t){return new Cc({type:`object`,shape:e??{},...V(t)})}function wc(e,t){return new Cc({type:`object`,shape:e,catchall:yc(),...V(t)})}var Tc=K(`ZodUnion`,(e,t)=>{Ir.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jo(e,t,n,r),e.options=t.options});function Ec(e,t){return new Tc({type:`union`,options:e,...V(t)})}var Dc=K(`ZodDiscriminatedUnion`,(e,t)=>{Tc.init(e,t),Rr.init(e,t)});function Oc(e,t,n){return new Dc({type:`union`,options:t,discriminator:e,...V(n)})}var kc=K(`ZodIntersection`,(e,t)=>{zr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yo(e,t,n,r)});function Ac(e,t){return new kc({type:`intersection`,left:e,right:t})}var jc=K(`ZodRecord`,(e,t)=>{js(),Hr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>es(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Mc(e,t,n){return!t||!t._zod?new jc({type:`record`,keyType:q(),valueType:e,...V(t)}):new jc({type:`record`,keyType:e,valueType:t,...V(n)})}var Nc=K(`ZodEnum`,(e,t)=>{Ur.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Po(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Nc({...t,checks:[],...V(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Nc({...t,checks:[],...V(r),entries:i})}});function Pc(e,t){return new Nc({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...V(t)})}var Fc=K(`ZodLiteral`,(e,t)=>{Wr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fo(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Z(e,t){return new Fc({type:`literal`,values:Array.isArray(e)?e:[e],...V(t)})}var Ic=K(`ZodTransform`,(e,t)=>{js(),Gr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ho(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Je(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Oe(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(Oe(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Lc(e){return new Ic({type:`transform`,transform:e})}var Rc=K(`ZodOptional`,(e,t)=>{qr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function zc(e){return new Rc({type:`optional`,innerType:e})}var Bc=K(`ZodExactOptional`,(e,t)=>{Jr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Vc(e){return new Bc({type:`optional`,innerType:e})}var Hc=K(`ZodNullable`,(e,t)=>{Yr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ts(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Uc(e){return new Hc({type:`nullable`,innerType:e})}var Wc=K(`ZodDefault`,(e,t)=>{Xr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>as(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Gc(e,t){return new Wc({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():ie(t)}})}var Kc=K(`ZodPrefault`,(e,t)=>{Qr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>os(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function qc(e,t){return new Kc({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():ie(t)}})}var Jc=K(`ZodNonOptional`,(e,t)=>{$r.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ns(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Yc(e,t){return new Jc({type:`nonoptional`,innerType:e,...V(t)})}var Xc=K(`ZodCatch`,(e,t)=>{ni.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ss(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Zc(e,t){return new Xc({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:Ve(t)})}var Qc=K(`ZodPipe`,(e,t)=>{ri.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cs(e,t,n,r),e.in=t.in,e.out=t.out});function $c(e,t){return new Qc({type:`pipe`,in:e,out:t})}var el=K(`ZodPreprocess`,(e,t)=>{Qc.init(e,t),ai.init(e,t)}),tl=K(`ZodReadonly`,(e,t)=>{oi.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ls(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function nl(e){return new tl({type:`readonly`,innerType:e})}var rl=K(`ZodTemplateLiteral`,(e,t)=>{ui.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Lo(e,t,n,r)});function il(e,t){return new rl({type:`template_literal`,parts:e,...V(t)})}var al=K(`ZodLazy`,(e,t)=>{di.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fs(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function ol(e){return new al({type:`lazy`,getter:e})}var sl=K(`ZodCustom`,(e,t)=>{fi.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bo(e,t,n,r)});function cl(e,t={}){return Va(sl,e,t)}function ll(e,t){return Ha(e,t)}function ul(e,t){return new el({type:`pipe`,in:Lc(e),out:t})}var dl={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`},fl;fl||={};function pl(e){return sa(Is,e)}function ml(e){return ca(Ls,e)}function hl(e){return fa(sc,e)}var gl=X({description:q().max(1024).optional(),edit:Pc([`inline`,`popout`]).optional(),id:q().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/,`column id must be a lowercase slug (a-z, 0-9, _)`),name:q().min(1).max(128),required:dc().optional()}),_l=Pc([`integer`,`decimal`,`percent`,`currency`]),vl=X({currency:q().regex(/^[A-Z]{3}$/,`currency must be an ISO 4217 code`).optional(),fractionDigits:J().int().min(0).max(8).optional(),grouping:dc().optional(),style:_l}).superRefine((e,t)=>{e.style===`currency`&&!e.currency&&t.addIssue({code:`custom`,message:`currency style needs an ISO 4217 code`,path:[`currency`]}),e.style!==`currency`&&e.currency&&t.addIssue({code:`custom`,message:`currency is only valid on currency columns`,path:[`currency`]})}),yl=Pc([`date`,`datetime`,`time`]),bl=Pc([`short`,`medium`,`long`,`iso`]),xl=Pc([`hours`,`minutes`,`seconds`]),Sl=X({dateStyle:bl.optional(),kind:yl,timePrecision:xl.optional()}),Cl=Pc([`milliseconds`,`seconds`,`minutes`,`hours`,`days`]),wl=Pc([`hms`,`hours`,`minutes`,`decimal-hours`,`iso`]),Tl=X({display:wl,inputUnit:Cl}),El=X({id:q().min(1).max(64),label:q().min(1).max(128)}),Dl=X({allowCustom:dc(),multiple:dc().optional(),options:Y(El).max(200)}),Ol=X({style:Pc([`single`,`multiline`,`markdown`]).default(`single`)}),kl=Y(Oc(`type`,[gl.extend({format:Ol.optional(),type:Z(`text`)}),gl.extend({format:vl,type:Z(`number`)}),gl.extend({format:Sl,type:Z(`date`)}),gl.extend({format:Tl,type:Z(`duration`)}),gl.extend({format:Dl,type:Z(`select`)}),gl.extend({type:Z(`boolean`)})])).min(1).max(64).superRefine((e,t)=>{let n=new Set;for(let r=0;r<e.length;r++){let i=e[r]?.id;i&&(n.has(i)&&t.addIssue({code:`custom`,message:`duplicate column id "${i}"`,path:[r,`id`]}),n.add(i))}});X({description:q().optional(),edit:Pc([`inline`,`popout`]).optional(),format:X({allowCustom:dc().optional(),currency:q().optional(),dateStyle:Pc([`short`,`medium`,`long`,`iso`]).optional(),display:wl.optional(),fractionDigits:J().int().optional(),grouping:dc().optional(),inputUnit:Cl.optional(),kind:yl.optional(),multiple:dc().optional(),options:Y(El).optional(),style:Pc([`single`,`multiline`,`markdown`,`integer`,`decimal`,`percent`,`currency`]).optional(),timePrecision:xl.optional()}).optional(),id:q(),name:q(),required:dc().optional(),type:Pc([`text`,`number`,`date`,`duration`,`select`,`boolean`])}),X({table_id:q().uuid()});var Al=36e5,jl=6e4,Ml=1e3;function Nl(e){return e.fractionDigits===void 0?e.style===`integer`?0:2:e.fractionDigits}function Pl(e,t,n=`en`){if(typeof e!=`number`||!Number.isFinite(e))return``;let r=Nl(t),i=t.grouping!==!1;return t.style===`percent`?new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,style:`percent`,useGrouping:i}).format(e):t.style===`currency`&&t.currency?new Intl.NumberFormat(n,{currency:t.currency,maximumFractionDigits:r,minimumFractionDigits:r,style:`currency`,useGrouping:i}).format(e):new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,useGrouping:i}).format(e)}function Fl(e,t,n=`en`){if(typeof e!=`string`||e.length===0)return``;if(t.kind===`time`)return Il(e,t.timePrecision??`minutes`);if(t.dateStyle===`iso`)return t.kind===`date`?e.slice(0,10):e;let r=t.kind===`date`?new Date(`${e}T00:00:00`):new Date(e);if(Number.isNaN(r.getTime()))return e;let i=t.dateStyle??`medium`;if(t.kind===`date`)return new Intl.DateTimeFormat(n,{dateStyle:i}).format(r);let a=t.timePrecision??`minutes`;return new Intl.DateTimeFormat(n,{dateStyle:i,timeStyle:a===`hours`?`short`:`medium`}).format(r)}function Il(e,t){let[n=`0`,r=`00`,i=`00`]=e.split(`:`);return t===`hours`?`${n.padStart(2,`0`)}:00`:t===`minutes`?`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}`:`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}:${i.padStart(2,`0`)}`}function Ll(e,t){if(typeof e!=`number`||!Number.isFinite(e))return``;let n=Math.max(0,Math.round(e));if(t.display===`iso`)return Rl(n);if(t.display===`minutes`)return`${Math.round(n/jl)} min`;if(t.display===`hours`)return`${(n/Al).toFixed(2)} h`;if(t.display===`decimal-hours`)return(n/Al).toFixed(2);let r=Math.floor(n/Al),i=Math.floor(n%Al/jl),a=Math.floor(n%jl/Ml);return`${r}:${String(i).padStart(2,`0`)}:${String(a).padStart(2,`0`)}`}function Rl(e){let t=Math.floor(e/Al),n=Math.floor(e%Al/jl),r=Math.floor(e%jl/Ml);return`${t>=24?`P${Math.floor(t/24)}D`:`P`}T${t%24}H${n}M${r}S`}function zl(e,t,n=`en`){if(t==null)return``;switch(e.type){case`number`:return Pl(t,e.format,n);case`date`:return Fl(t,e.format,n);case`duration`:return Ll(t,e.format);case`boolean`:return t===!0?`true`:t===!1?`false`:``;case`select`:return Bl(e,t);default:return String(t)}}function Bl(e,t){let n=Array.isArray(t)?t:[t],r=e.format.options.reduce((e,t)=>(e[t.id]=t.label,e),{});return n.filter(e=>typeof e==`string`&&e.length>0).map(e=>r[e]??e).join(`, `)}function Vl(e,t={}){if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e!=`string`)return null;let n=t.units?e.replace(/[^\d,.-]/g,``):e.trim();if(!/^-?(\d+([.,]\d*)?|[.,]\d+)$/.test(n))return null;let r=Number(n.replace(`,`,`.`));return Number.isFinite(r)?r:null}function Hl(e){return e>0?e<999500?`${Math.max(1,Math.round(e/1e3))} KB`:e<99995e4?`${(e/1e6).toFixed(1)} MB`:`${(e/1e9).toFixed(1)} GB`:`0 KB`}function Ul(e,t,n){try{return new Intl.NumberFormat(n,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}var Wl=q().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,40}$/,`keys are letters, digits and _ and start with a letter`),Gl={label:q().min(1).optional(),description:q().optional()},Kl=[X({kind:Z(`text`),...Gl,long:dc().optional()}),X({kind:Z(`number`),...Gl,unit:q().optional()}),X({kind:Z(`yesno`),...Gl,yes:q().optional(),no:q().optional()}),X({kind:Z(`choice`),...Gl,options:Y(q().min(1)).min(2).max(40)}),X({kind:Z(`ref`),...Gl,to:Wl})],ql=`text, number, yesno, choice, ref`;function Jl(e){let t=e<4?Jl(e+1):void 0,n=t?Oc(`kind`,[...Kl,t],{error:`A list holds ${ql} or object.`}):Oc(`kind`,[...Kl],{error:`A list this deep holds ${ql}: objects nest at most 4 deep.`}),r=X({kind:Z(`list`),...Gl,of:n}),i=Oc(`kind`,[...Kl,r],{error:`"kind" is one of ${ql}, list.`});return X({kind:Z(`object`),...Gl,fields:Mc(Wl,i).refine(e=>Object.keys(e).length>0,{message:`An object has fields.`})})}function Yl(e,t=[]){let n=[{shape:e,at:t}];for(let[r,i]of Object.entries(e.fields))i.kind===`list`&&i.of.kind===`object`&&n.push(...Yl(i.of,[...t,`fields`,r,`of`]));return n}function Xl(e,t){let n=e.fields[t];return n?.kind!==`list`||n.of.kind!==`object`?`"ref" to "${t}": that is no list of objects at the top of the schema.`:n.of.fields.id?.kind===`text`?null:`"ref" to "${t}": its entries need an "id" text field to be pointed at.`}var Zl=Jl(1).superRefine((e,t)=>{let n=Yl(e),r=n.reduce((e,t)=>e+Object.keys(t.shape.fields).length,0);r>100&&t.addIssue({code:`custom`,message:`A schema has at most 100 keys in all; this one has ${r}.`});for(let r of n)for(let[n,i]of Object.entries(r.shape.fields)){let a=i.kind===`ref`?i:i.kind===`list`&&i.of.kind===`ref`?i.of:null,o=a?Xl(e,a.to):null;o&&t.addIssue({code:`custom`,message:o,path:[...r.at,`fields`,n]})}});function Ql(e){let t=e=>{let t=e.description?{description:e.description}:{};switch(e.kind){case`number`:return{kind:`number`,...t};case`list`:return{kind:`list`,...t,of:{kind:`text`}};case`yesno`:return{kind:`yesno`,...t};case`choice`:return{kind:`choice`,...t,options:e.options??[]};case`score`:return{kind:`score`,...t,options:e.options??[]};case`table`:return{kind:`table`,...t,...e.columns?.length?{columns:e.columns}:{}};default:return{kind:`text`,...t}}};return{kind:`object`,fields:Object.fromEntries(e.map(e=>[e.id,t(e)]))}}function $l(e){return Object.entries(e.fields).find(([e,t])=>e!==`id`&&t.kind===`text`&&!t.long)?.[0]}function eu(e,t){return t.label??e}function tu(e,t){let n=t.description??(t.label?``:e),r=t.kind===`number`&&t.unit?`in ${t.unit}`:t.kind===`score`?`lowest to highest`:t.kind===`ref`?`the id of an entry of "${t.to}"`:``;return(n&&r?`${n} (${r})`:n||r)||void 0}var nu=Ec([q(),J(),hc()]);function ru(e,t=`data`){let n=tu(t,e),r={...e.label?{title:e.label}:{},...n?{description:n}:{}};switch(e.kind){case`text`:case`ref`:return q().meta(r);case`number`:return J().meta(r);case`yesno`:return dc().meta(r);case`choice`:case`score`:return Pc(e.options).meta(r);case`list`:return Y(ru(e.of,t)).meta(r);case`object`:return X(Object.fromEntries(Object.entries(e.fields).map(([e,t])=>[e,ru(t,e)]))).meta(r);case`table`:return(e.columns?.length?Y(X(Object.fromEntries(e.columns.map(e=>[e,nu])))):X({columns:Y(q()),rows:Y(Y(nu))})).meta(r)}}function iu(e,t){let n=ms(ru(e),{target:`draft-2020-12`});return t&&!e.label?{...n,title:t}:n}var au=[`mail`];function ou(e,t){if(t.trim()===``)return null;switch(e.type){case`number`:case`duration`:return Vl(t)??t;case`boolean`:return t===`true`;case`date`:{if(e.format.kind!==`datetime`)return t;let n=new Date(t);return Number.isNaN(n.getTime())?t:n.toISOString()}default:return t}}var su=Y(wc({id:q().regex(/^[a-zA-Z][a-zA-Z0-9_-]{0,40}$/,`ids are letters, digits, _ and -`),component:Pc([`Column`,`Text`,`List`,`Row`,`DetailGrid`,`Badge`,`Grid`,`Metric`,`Table`,`Image`,`BarChart`,`LineChart`,`DonutChart`,`Actions`,`Button`,`Tabs`,`Card`,`Fold`,`Group`,`Chips`,`Checklist`,`Steps`,`Link`,`Callout`]),children:Ec([Y(q()),X({path:q(),componentId:q()})]).optional()})).min(1).max(200),cu=e=>!(!e||typeof e!=`object`||Array.isArray(e)||typeof e.path!=`string`);function lu(e,t){let n=e;for(let e of t.split(`/`).slice(1)){if(typeof n!=`object`||!n)return;n=n[e.replace(/~1/g,`/`).replace(/~0/g,`~`)]}return n}function uu(e,t,n){return cu(e)?du(e.path.startsWith(`/`)?lu(t,e.path):n===void 0?void 0:lu(n,`/${e.path.replace(/\./g,`/`)}`),e):e}function du(e,t){let n=e,r=t.map;if(r&&typeof r==`object`&&!Array.isArray(r)){let e=String(n);Object.hasOwn(r,e)&&(n=r[e])}return typeof t.format==`string`&&n!=null&&n!==``&&(n=t.format.replace(`{}`,Array.isArray(n)?n.join(`, `):String(n))),n}var fu=[`round`,`drop`,`dome`,`flame`,`oval`,`bean`,`pebble`,`sprout`,`tower`,`wedge`],pu=[`en`,`de`],mu={en:`en-GB`,de:`de-DE`};function hu(e){return typeof e==`string`&&pu.includes(e)}function gu(e){let t=e?.trim().toLowerCase().split(/[-_]/)[0];return hu(t)?t:null}var _u={AT:`de`,BE:`nl`,BG:`bg`,CH:`de`,CY:`el`,CZ:`cs`,DE:`de`,DK:`da`,EE:`et`,ES:`es`,FI:`fi`,FR:`fr`,GB:`en`,GR:`el`,HR:`hr`,HU:`hu`,IE:`en`,IS:`is`,IT:`it`,LI:`de`,LT:`lt`,LU:`fr`,LV:`lv`,MC:`fr`,MT:`en`,NL:`nl`,NO:`nb`,PL:`pl`,PT:`pt`,RO:`ro`,RS:`sr`,SE:`sv`,SI:`sl`,SK:`sk`,SM:`it`,UA:`uk`,VA:`it`};[...new Set([`en`,`de`,...Object.values(_u)])];var vu={"Europe/Amsterdam":`NL`,"Europe/Athens":`GR`,"Europe/Belgrade":`RS`,"Europe/Berlin":`DE`,"Europe/Bratislava":`SK`,"Europe/Brussels":`BE`,"Europe/Bucharest":`RO`,"Europe/Budapest":`HU`,"Europe/Busingen":`DE`,"Europe/Copenhagen":`DK`,"Europe/Dublin":`IE`,"Europe/Helsinki":`FI`,"Europe/Kiev":`UA`,"Europe/Kyiv":`UA`,"Europe/Lisbon":`PT`,"Europe/Ljubljana":`SI`,"Europe/London":`GB`,"Europe/Luxembourg":`LU`,"Europe/Madrid":`ES`,"Europe/Malta":`MT`,"Europe/Monaco":`MC`,"Europe/Oslo":`NO`,"Europe/Paris":`FR`,"Europe/Prague":`CZ`,"Europe/Riga":`LV`,"Europe/Rome":`IT`,"Europe/San_Marino":`SM`,"Europe/Sofia":`BG`,"Europe/Stockholm":`SE`,"Europe/Tallinn":`EE`,"Europe/Vaduz":`LI`,"Europe/Vatican":`VA`,"Europe/Vienna":`AT`,"Europe/Vilnius":`LT`,"Europe/Warsaw":`PL`,"Europe/Zagreb":`HR`,"Europe/Zurich":`CH`,"Atlantic/Canary":`ES`,"Atlantic/Madeira":`PT`,"Atlantic/Reykjavik":`IS`,"Asia/Nicosia":`CY`};function yu(e,t){for(let t of e){let e=gu(t);if(e&&e!==`en`)return e}let n=t?vu[t]:void 0,r=n?gu(_u[n]):null;return r===`en`?null:r}function bu(e){return hu(e)?mu[e]:e}var xu=[`text`,`textarea`,`number`,`select`,`multiselect`,`date`,`email`,`url`,`toggle`,`color`,`image`,`file`,`items`,`connection`,`list`,`location`,`audio`,`signature`,`slot`];function Su(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let{lat:t,lng:n,label:r}=e;return typeof t==`number`&&typeof n==`number`||typeof r==`string`&&r.trim().length>0}function Cu(e){return!!(e&&typeof e==`object`&&typeof e.asset==`string`&&e.asset)}var wu=[`web_search`,`web_fetch`,`browser`,`sandbox`,`image`,`http`,`pages`],Tu=/^[a-z][a-z0-9-]{0,39}$/,Eu=/^[a-z][a-z0-9_]{0,39}$/,Du=[`classifier`,`standard`,`high`,`highest`];[...Du];var Ou=[`low`,`medium`,`high`],ku=[`image`,`video`,`voice`,`document`,`dashboard`],Au=[`png`,`mp4`,`mp3`,`pdf`,`docx`,`html`,`md`,`txt`,`csv`,`xlsx`,`json`,`zip`],ju=[`1:1`,`16:9`,`9:16`,`4:5`,`3:2`,`2:3`],Mu=[`720p`,`480p`],Nu=q().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,40}$/,`ids are letters, digits and _ and start with a letter`),Pu=X({id:Nu,label:q().min(1),kind:Pc([`text`,`number`,`money`])}),Fu=X({field:q(),op:Pc([`equals`,`notEquals`,`in`,`notEmpty`,`empty`,`gt`,`lt`,`contains`]),value:Ec([q(),J(),dc(),Y(q())]).optional()}),Iu=Ec([Fu,Y(Fu).min(1)]),Lu=X({label:q().min(1),value:q().optional(),image:q().optional(),subtitle:q().optional(),meta:q().optional(),link:q().optional()}),Ru=X({id:Nu,label:q().min(1),kind:Pc(xu),required:dc().optional(),placeholder:q().optional(),help:q().optional(),options:Y(q()).optional(),default:Ec([q(),J(),dc(),Y(q())]).optional(),columns:Y(Pu).optional(),vat:X({rate:J().optional(),field:q().optional()}).optional(),currency:q().optional(),multiple:dc().optional(),min:J().int().min(1).max(30).optional(),max:J().int().min(1).max(30).optional(),camera:dc().optional(),video:dc().optional(),listen:dc().optional(),scan:dc().optional(),connection:q().optional(),list:q().optional(),prefill:q().optional(),when:Iu.optional(),optionsFrom:q().optional(),cards:Lu.optional(),ask:q().min(1).optional(),group:q().optional()}),zu=X({id:Nu,instructions:q().min(1),optional:dc().optional()}),Bu=X({when:Iu.optional(),ask:q().min(1).optional(),goto:q(),max:J().int().min(1).max(50).optional()}).refine(e=>e.when===void 0||e.ask===void 0,{message:`A branch has "when" or "ask", not both.`}),Vu={id:Nu,title:q().min(1),description:q().optional(),next:Y(Bu).optional()},Hu=X({id:Nu,kind:Pc([`text`,`number`,`list`,`table`,`yesno`,`choice`,`score`]),description:q().optional(),columns:Y(q().min(1)).optional(),options:Y(q().min(1)).min(2).max(40).optional()}).refine(e=>e.kind!==`choice`&&e.kind!==`score`||!!e.options?.length,{message:`A choice or score field lists its options.`,path:[`options`]}).refine(e=>e.kind!==`score`||(e.options?.length??0)<=10,{message:`A score has at most ten levels.`,path:[`options`]}),Uu=X({...Vu,type:Z(`page`),fields:Y(Ru).min(1),groups:Y(zu).max(6).optional(),cta:q().optional()}),Wu=il([q().regex(Tu),`.`,q().regex(Eu)]),Gu=X({...Vu,type:Z(`agent`),instructions:q().default(``),call:X({tool:Wu,input:Mc(q(),yc()).default({})}).optional(),tools:Y(Ec([Pc(wu),Wu])).default([]),mcp:Y(q()).optional(),connections:Y(q()).optional(),output:X({format:Pc([`text`,`markdown`,`json`]),fields:Y(Hu).optional(),schema:Zl.optional(),surface:Ec([dc(),su]).optional()}).default({format:`markdown`}),model:Pc(Du).optional(),effort:Pc(Ou).optional(),each:q().optional(),working:q().optional()}),Ku=X({...Vu,type:Z(`generate`),asset:Pc(ku),prompt:q().min(1),options:X({aspectRatio:Pc(ju).optional(),duration:J().optional(),resolution:Pc(Mu).optional(),style:q().optional(),template:Pc([`invoice`,`offer`,`briefing`,`letter`,`report`,`free`]).optional()}).optional(),referenceImage:q().optional(),each:q().optional(),model:Pc(Du).optional(),effort:Pc(Ou).optional(),working:q().optional()}),qu=X({...Vu,type:Z(`widget`),entry:q().min(1),data:Mc(q(),q()).default({}),sample:q().optional(),layout:Pc([`fixed`,`page`]).optional(),size:X({width:J().int().min(200).max(3840),height:J().int().min(200).max(3840)}).optional(),video:dc().optional(),working:q().optional()}),Ju=[`16:9`,`9:16`,`1:1`],Yu=X({...Vu,type:Z(`film`),brief:q().min(1),skills:Y(q().min(1)).max(12).default([`hyperframes`]),kit:q().optional(),inputs:Mc(q(),q()).default({}),format:Pc(Ju).default(`16:9`),seconds:J().int().min(3).max(600).optional(),model:Pc(Du).optional(),effort:Pc(Ou).optional(),working:q().optional()}),Xu=X({id:Nu,description:q().min(1),components:su,group:q().optional(),required:dc().optional()}),Zu=X({...Vu,type:Z(`surface`),components:su.optional(),candidates:Y(Xu).max(16).optional(),groups:Y(zu).max(6).optional(),data:Mc(q(),q()).default({}),working:q().optional()}).refine(e=>!!e.components!=!!e.candidates,{message:`A surface step has either "components" or "candidates".`}),Qu=X({...Vu,type:Z(`review`),show:Y(q()).min(1),edit:dc().optional(),regenerate:dc().optional()}),$u=X({from:q(),label:q().optional(),formats:Y(Pc(Au)).min(1)}),ed=Oc(`type`,[Uu,Gu,Ku,qu,Zu,Yu,Qu,X({...Vu,type:Z(`result`),message:q().optional(),deliverables:Y($u)})]);function td(e){return e.output.schema?e.output.schema:e.output.fields?.length?Ql(e.output.fields):void 0}function nd(e){return td(e)??{kind:`object`,fields:{data:{kind:`table`,description:`The result as a table`}}}}var rd=X({id:Nu,title:q().min(1),description:q().optional(),columns:kl,key:q().optional(),check:X({file:q().optional(),status:q().optional()}).optional(),shared:dc().optional()}),id=X({id:Nu,kind:Pc(au).optional(),connector:q().optional(),actions:Y(q()).max(200).optional(),policy:Mc(q(),Pc([`allow`,`ask`])).optional(),title:q().optional(),description:q().optional()});X({version:Z(1).default(1),title:q().min(1),description:q().default(``),avatar:Pc(fu).default(`round`),intro:q().optional(),lang:q().regex(/^[a-z]{2}$/).optional(),lists:Y(rd).max(12).optional(),connections:Y(id).max(12).optional(),steps:Y(ed).min(1)});function ad(e){return e.when===void 0&&e.ask===void 0}function od(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function sd(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function cd(e,t){let n=t[e.field];switch(e.op){case`empty`:return od(n);case`notEmpty`:return!od(n);case`equals`:return String(n)===String(e.value);case`notEquals`:return String(n)!==String(e.value);case`in`:return Array.isArray(e.value)&&e.value.map(String).includes(String(n));case`gt`:case`lt`:{let t=Vl(n),r=Vl(e.value);return t!==null&&r!==null&&(e.op===`gt`?t>r:t<r)}case`contains`:return Array.isArray(n)?n.map(String).includes(String(e.value)):typeof n==`string`&&e.value!==void 0&&n.toLowerCase().includes(String(e.value).toLowerCase())}}function ld(e,t){return sd(e).every(e=>cd(e,t))}function ud(e){return!!(e.ask||e.group)}function dd(e,t,n){let r={...t,...n},i=[];for(let t of e)ld(t.when,r)?i.push(t):delete r[t.id];return i}var fd=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2})(?:\.\d+)?)?(Z|[+-]\d{2}:\d{2})$/;function pd(e){let t=fd.exec(e.trim());if(!t)return null;let[,n,r,i,a,o]=t.map(Number),s=new Date(Date.UTC(n,r-1,i,a,o));return s.getUTCMonth()!==r-1||s.getUTCDate()!==i||a>23||o>59||!Number.isFinite(Date.parse(e))?null:{day:`${t[1]}-${t[2]}-${t[3]}`,time:`${t[4]}:${t[5]}`,wall:s}}function md(e,t=`en`){let n=pd(e);if(!n)return e;let r=bu(t);return`${n.wall.toLocaleDateString(r,{weekday:`long`,timeZone:`UTC`})}, ${n.wall.toLocaleDateString(r,{day:`numeric`,month:`long`,timeZone:`UTC`})}`}function hd(e,t=`en`){let n=pd(e);if(!n)return e;let r=bu(t);return`${n.wall.toLocaleDateString(r,{weekday:`short`,timeZone:`UTC`}).replace(/\.$/,``)} ${n.wall.toLocaleDateString(r,{day:`2-digit`,month:`2-digit`,year:`numeric`,timeZone:`UTC`})}, ${n.time}`}function gd(e,t,n){let r=Array.isArray(t)?t:[],i=(e.columns??[]).filter(e=>e.kind!==`text`),a=r.map(e=>{let t=i.length?i.reduce((t,n)=>t*_d(e[n.id]),1):0;return{...e,amount:vd(t)}}),o=vd(a.reduce((e,t)=>e+t.amount,0)),s=e.vat?.rate??0;if(e.vat?.field){let t=n[e.vat.field],r=Vl(t,{units:!0});r!==null&&(s=r)}let c=vd(o*s/100);return{rows:a,net:o,vatRate:s,vat:c,gross:vd(o+c),currency:e.currency??`EUR`}}function _d(e){return Vl(e)??0}function vd(e){return Math.round(e*100)/100}var yd=new Map;function bd(e){let t=yd.get(e);return t||(t=new Intl.PluralRules(bu(e)),yd.set(e,t)),t}function xd(e,t,n){return typeof e==`string`?e:typeof n==`number`?e[bd(t).select(n)]??e.other:e.other}function Sd(e,t){return typeof e==`number`?e.toLocaleString(bu(t)):Array.isArray(e)?e.map(e=>Sd(e,t)).join(`, `):e}function Cd(e,t,n){return e.replace(/\{(\w+)\}/g,(e,r)=>{let i=n?.[r];return i===void 0?e:Sd(i,t)})}function wd(e,t,n,r){let i=e[n][t]??e.en[t];return i===void 0?t:Cd(xd(i,n,r?.count??r?.n),n,r)}function Td(e,t,n){return Cd(xd(e,t,n?.count??n?.n),t,n)}var Ed={entry:`Entry {n} of {total}`,deciding:`Deciding what to do next…`,choosingFields:`Choosing the right questions…`,batchDone:`{done} of {total} done`,editing:`Editing {n} of {total}`,filming:`Filming {n} of {total}`,clipsRendering:{one:`Rendering {count} clip – this takes a few minutes.`,other:`Rendering {count} clips – this takes a few minutes.`},videoRendering:`Rendering the video – this usually takes 1–3 minutes.`,photo:`Looking at photo {n} of {total}`,found:`{label}: {name}`,listen:`Listening to “{label}”…`,listenFailed:`“{label}” couldn’t be transcribed.`,filmCutting:`Cutting the film – this takes about a minute.`,filmProgress:`{pct} % cut`,filmError:`The film reports: {detail}`,widgetError:`The widget reports an error: {detail}`,mcpConnected:`Connected to {names}`,mcpUnreachable:`MCP server unreachable: {detail}`,reads:`Reading {name}`,readsMany:{one:`Reading {count} document`,other:`Reading {count} documents`},opens:`Opening {name}`,clicks:`Clicking in the browser`,clicksOn:`Clicking “{name}”`,types:`Typing in the browser`,typesText:`Typing “{text}”`,selects:`Choosing “{option}”`,scrolls:`Scrolling`,presses:`Pressing {key}`,goesBack:`Going back a page`,waitsForPage:`Waiting for the page`,fastLoop:`Doing in the browser: {goal}`,personDrives:`You’re driving the browser – the wizard waits`,agentDrives:`The wizard carries on in the browser`,looksAtPage:`Looking at the page`,waitsForSignIn:`Waiting for you to sign in to {name}`,downloads:`Downloading {name}`,runs:`Running: {command}`,python:`Running Python`,drawing:`Drawing an image`,writesPage:`Writing the page “{title}”`,searchesDocuments:`Searching the documents: {query}`,searchesKnowledge:`Searching knowledge: {query} – {relevant} of {candidates} fit`,listsKnowledge:`Listing knowledge`,searchesMail:`Searching {label}`,savesReceipts:{one:`Saving {count} receipt from {label}`,other:`Saving {count} receipts from {label}`},remembers:`Remembering {title}`,files:{one:`Filing {count} file`,other:`Filing {count} files`},filmSetup:`Setting up the folder for the film`,filmClient:`{client} is working on the film – this usually takes 10–40 minutes.`,filmTask:`On the film: {task}`,filmLooks:`Looking at frames of the film`,filmFix:`The film didn’t render – Claude Code is fixing it`,filmResume:`Picking the film up where it stopped`,wizardUnavailable:`This wizard isn’t available right now.`,translationFailed:`This wizard can’t be translated right now. It’s shown as it was written.`,translationOff:`This wizard is only offered as it was written.`,translationPlaceholder:`The translation of “{text}” needs every placeholder in curly brackets the original has.`,wizardLimit:`This wizard has reached its limit for today. Try again tomorrow.`,confirmHuman:`Confirm that you’re a person.`,tooManyRuns:`You’ve started a lot of runs just now. Try again in an hour.`,runOver:`The run is over.`,runBusy:`The wizard is working right now.`,pageOutdated:`This page is out of date.`,noStepBefore:`There is no step before this one.`,checkFields:`Check the marked fields.`,talkOff:`Live conversations aren’t turned on for this wizard.`,talkKeyRefused:`The conversation couldn’t start: the OpenAI API key was refused.`,talkFailed:`The conversation couldn’t start ({status}).`,talkNoSecret:`The conversation couldn’t start: no access key came back.`,tryLater:`Try again later.`,recordingTooLarge:`The recording can be 10 MB at most.`,fileTooLarge:`Choose a file of {mb} MB or less.`,askClosed:`This question is no longer open.`,noBrowser:`The wizard has no browser open right now.`,notWaiting:`The wizard isn’t waiting for you right now.`,pageActFailed:`That didn’t work on the page.`,linkGone:`This link has expired or was withdrawn.`,connected:`Connected. You can close this window.`,connectFailed:`Connecting didn’t work. Try again.`,connectCancelled:`Connecting was cancelled.`,appleOff:`Apple Intelligence is turned off on this Mac. Turn it on in System Settings → Apple Intelligence & Siri.`,appleLoading:`Apple is still loading the model for Apple Intelligence onto this Mac. Try again in a moment.`,appleMissing:`The helper for Apple Intelligence (wizards-apple) is missing from this install.`,appleOs:`Apple Intelligence needs macOS 26 or later.`,appleDevice:`Apple Intelligence only works on a Mac with Apple silicon.`,appleBusy:`Apple Intelligence isn’t taking more requests right now. Try again in a moment.`,appleTooLong:`The text is too long for Apple Intelligence on this Mac (4,096 tokens for question and answer). Choose another model for this class under Settings → Models.`,appleRefused:`Apple Intelligence turned the request down: Apple’s content rules don’t allow it.`,appleLanguage:`Apple Intelligence doesn’t understand the language of this request.`,appleFormat:`Apple Intelligence can’t answer in this format: {detail}`,appleFailed:`Apple Intelligence: {detail}`,appleNoFfmpeg:`Apple Intelligence can’t read {type}, and without ffmpeg the recording can’t be converted. Install ffmpeg or record as MP4 in the browser.`,appleNotConverted:`Apple Intelligence couldn’t convert the recording: {detail}`,connectorAlreadyExistsSpace:`The connector “{id}” already exists in this space.`,connectorNotExist:`This connector doesn’t exist.`,fieldMissing:`“{label}” is missing.`,mailServerNotExist:`The mail server{host} doesn’t exist. Enter the IMAP server. For Gmail and Google Workspace, it’s imap.gmail.com.`,mailServerNotResponding:`The mail server{host} isn’t responding. Check the IMAP server and port.`,connectingNotWork:`Connecting didn’t work{host}: {detail}`,connectEngentyAccountFirst:`Connect your engenty account first (Settings → Account). Then you can connect Google here.`,engentyAccountNotReached:`Your engenty account can’t be reached right now. Try again later.`,googleNoLongerAccepts:`Google no longer accepts this connection. Connect the account again.`,googleNotConnectedThrough:`Google can’t be connected through your engenty account right now.`,stepNeedsToolPlugin:`This step needs the tool “{id}”. The plugin “{plugin}” isn’t installed here.`,clientNotSignedIn:`{name} isn’t signed in on this computer. Sign in under Settings → Models.`,clientNotInstalled:`{name} isn’t installed on this computer. Install it under Settings → Models.`,clientNoCredit:`The account {name} is signed in with has no credit or quota left.`,anthropicAccountClaudeCode:`The Anthropic account Claude Code is signed in with has no credit. Sign Claude Code in with your subscription under Settings → Models.`,chatgptAccountCodexSigned:`The ChatGPT account Codex is signed in with has used up its quota. Try again later or choose another client.`,builtTerminalNotAvailable:`The built-in terminal isn’t available on this computer. Run the command in your own terminal.`,terminalNoLongerExists:`This terminal no longer exists.`,imageTypeNotReadable:`Images of type {mime} can’t be read (PNG, JPEG and WebP work).`,fileNotReadable:`“{name}” ({mime}) can’t be read.`,creditsNotSignedIn:`This is set to run on credits, but you’re not signed in to an account.`,accountNoLongerSigned:`The account is no longer signed in. Sign in again under Settings → Account.`,modelNotUsedYet:`The model “{ref}” can’t be used yet. Add an API key under Settings → Models, or sign in to an account.`,noModelForImages:`No model is set up for images.`,noModelForVideos:`No model is set up for videos.`,noModelForSpeech:`No model is set up for speech.`,noOpenaiApiKey:`No OpenAI API key is set for voice conversations (Settings → Models).`,modelNotAvailableAccount:`This model isn’t available with your account.`,accountNoModelSet:`Your account has no model set up for this.`,claudeCodeMakesFilms:`Claude Code makes films on this computer, using your subscription. Set it up as an AI subscription under Settings → Models.`,macNeedsFfmpegTranscribe:`This Mac needs ffmpeg to transcribe recordings from Chrome or Firefox (WebM, Ogg). Safari and the app don’t. Install ffmpeg, e.g. with “brew install ffmpeg”.`,fieldRequired:`Required`,chooseAtLeast:`Choose at least {min}`,chooseAtMost:`At most {max} – remove some`,enterNumber:`Enter a number`,invalidChoice:`Invalid choice`,timeNotOffered:`This time isn’t offered`,notValidEmailAddress:`Not a valid email address`,notValidUrl:`Not a valid URL`,wizardRunOutCredits:`This wizard has run out of credits for now. Try again later.`,providerCreditLow:`Your credit with the model provider isn’t enough for this (videos need a minimum balance there). Top up there and try again.`,aiServiceBusyRight:`The AI service is busy right now. Try again in a moment.`,stepTookTooLong:`The step took too long. Try again.`,aiServiceNotReached:`The AI service can’t be reached right now. Try again later.`,notAvailableNow:`That isn’t available here right now.`,fileNotFound:`File not found`,connectFirst:`Connect first`,noEntriesStepWork:`There are no entries for this step to work on.`,stepNotReturnResult:`The step didn’t return a result.`,documentNotCreated:`The document couldn’t be created.`,stepMissingSourcesImages:`This step is missing its sources (images or scenes).`,noTextReadAloud:`There is no text to read aloud.`,wizardStillErrors:`The wizard still has errors.`,noLanguageModelSet:`No language model is set up here.`,creditsUsedUp:`Your credits are used up.`,chooseFile:`Choose a file.`,pageNotReached:`The page can’t be reached.`,unknownEntry:`Unknown entry.`,chooseWizardFileMb:`Choose a wizard file ({PACKAGE_EXTENSION}) of 30 MB or less.`,recordingMbMost:`The recording can be 10 MB at most.`,onlyFinishedResultsShared:`Only finished results can be shared.`,gradientFailed:`Couldn’t make a gradient from that. Try describing it differently.`,onlyOneSpaceAllowed:`Only one space is allowed here.`,mostSpaces:{one:`You can have at most {count} space here.`,other:`You can have at most {count} spaces here.`},twoEntriesSameKey:`Two entries have the same key.`,notDeleteLastSpace:`You can’t delete the last space.`,notFound:`This doesn’t exist or was deleted.`,categoryNeedsName:`A category needs a name.`,unknownCategoryType:`Unknown type “{type}”.`,spaceMostCategories:{one:`A space can have at most {count} category.`,other:`A space can have at most {count} categories.`},categoryAlreadyExists:`The category “{name}” already exists.`,onlyChoiceCategoriesValues:`Only choice categories have values.`,onlyValuesOneCategory:`Only values of one category can be merged.`,templateNeedsNewerVersion:`This template needs a newer version of engenty wizards. Update engenty wizards first.`,chatNotExist:`This chat doesn’t exist.`,unknownRunner:`There’s no runner “{unknown}” here.`,leastOneRunnerStay:`At least one runner has to stay on.`,linkOpenRunnerTurned:`The link has to open a runner that’s turned on.`,jobNotExistAlready:`This job doesn’t exist or has already finished.`,accountAlreadySpace:`This account already has a space here.`,accountAlreadySpaces:{one:`This account already has {count} space here.`,other:`This account already has {count} spaces here.`},roomMostPublishedWizards:{one:`There’s room for at most {count} published wizard here.`,other:`There’s room for at most {count} published wizards here.`},spaceIdAlreadyExists:`A space with this ID already exists here and didn’t come from your computer.`,wizardIdAlreadyBelongs:`A wizard with this ID already belongs to another space here.`,idAlreadyUse:`This ID is already in use here.`,wizardNotSpace:`This wizard isn’t in the space.`,invalidColumns:`Invalid columns.`,spaceMostTables:{one:`A space can have at most {count} table.`,other:`A space can have at most {count} tables.`},tableBelongsOneWizard:`This table belongs to one of the wizard’s lists. Its columns come from the wizard.`,entryAlreadyExists:`This entry already exists.`,tableMostRows:{one:`A table can have at most {count} row.`,other:`A table can have at most {count} rows.`},spaceMostPages:{one:`A space can have at most {count} page.`,other:`A space can have at most {count} pages.`},pageNotSubpages:`This page can’t have subpages.`,pageNotOwnSubpage:`A page can’t be its own subpage.`,pageNeedsTitle:`A page needs a title.`,unknownSpace:`There’s no space “{space}”.`,noParentPage:`There’s no page with the key “{parent}” to put this page under.`,onlyTeamAdmins:`Only team admins can do that. As a member, you can edit the wizards that already exist.`,spaceEditedLocally:`You edit this space in engenty wizards on your computer, not here.`,wizardsRunOncePublished:`Wizards run here once you publish them in engenty wizards on your computer. You build and edit them there.`,logoImagePngSvg:`A logo is an image (PNG, SVG, JPEG, WebP).`,patternImageSvgPng:`A pattern is an image (SVG, PNG, JPEG, WebP).`,filesGoHere:`Images, videos, audio, PDFs, fonts, Lottie and 3D models go here. Texts to look things up in go under knowledge.`,addressNotReached:`The address can’t be reached.`,addressResponded:`The address responded with {status}.`,addressLeadsWebPage:`The address leads to a web page, not an image.`,addressFileTooLarge:`The file is too large.`,onlyDocumentsIndex:`Only documents are in the index.`,emptyTooLargeDocument:`“{name}” is empty or too large for a document.`,spaceMostDocuments:{one:`A space can have at most {count} document.`,other:`A space can have at most {count} documents.`},accountSignedOut:`The account is signed out. Sign in again.`,cloudNotReachedRight:`The cloud can’t be reached right now.`,publishWizardFirst:`Publish the wizard first.`,wizardJsonUnreadable:`This isn’t a wizard file: its wizard.json can’t be read.`,wizardFileComesNewer:`This wizard file comes from a newer version, or it’s damaged. Update engenty wizards or export the wizard again.`,fileOver5Mb:`{name} is larger than 5 MB.`,wizardFileTooLarge:`The wizard file is too large: a workspace holds at most 200 files and 25 MB.`,wizardFileNotOpened:`The wizard file can’t be opened. Export the wizard again and try once more.`,wizardJsonMissing:`This isn’t a wizard file: wizard.json is missing.`,notValidFilePath:`“{name}” isn’t a valid file path.`,workspaceWizardFileLarger:`The workspace in the wizard file is larger than 25 MB.`,unknownTemplate:`There’s no template “{starterId}”.`,wizardChangedMeantime:`The wizard was changed in the meantime.`,valueNotExist:`This value doesn’t exist.`,nothingFiledUnderValue:`Nothing is filed under this value yet.`,filmNotRenderedNeeds:`The film couldn’t be rendered. It needs ffmpeg and a timeline in the widget.`,signInRefused:`The sign-in was refused{host}. Are the address and (app) password right? Gmail and Google Workspace need an app password and IMAP turned on.{answer}`,serverSaid:` The server said: {answer}`,viaAccountFailed:`Connecting through your engenty account didn’t work ({code}).`,pluginInvalidInput:`“{id}” got invalid input: {path} – {problem}`,filmClientStopped:`{name} stopped working on the film: {detail}. The work is saved. A new try carries on from there.`,filmWorkSaved:`{problem} The work is saved. A new try carries on from there.`,filmRenderFailed:`The film couldn’t be rendered: {detail}`,commandNotStarted:`The command couldn’t start: {detail}`,providerKeyMissing:`{provider} is chosen for {makes}, but no API key is set.`,noModelFor:`No model is set up for {makes}.`,noApiKeyFor:`No API key is set for {provider}.`,freeTier:`Your AI Gateway key is on Vercel’s free tier, which doesn’t include {model}. Top up at Vercel ({url}) or choose another model under Settings → Models.`,thisModel:`this model`,quoted:`“{text}”`,viewErrors:`The view has errors: {detail}`,blockedSteps:`{steps}: {problem}`,joined:`{first} {second}`,stepFailed:`This step failed: {detail}`,answersMissing:`Answers are missing or don’t fit: {answers}`,fieldError:`{field} – {message}`,templateNeedsPlugins:{one:`This template needs the plugin {plugins}: included with Pro on engenty.ai.`,other:`This template needs the plugins {plugins}: included with Pro on engenty.ai.`},pageMostChars:{one:`A page can have at most {count} character.`,other:`A page can have at most {count} characters.`},chooseFileUpTo:`Choose a file of {mb} MB or less.`,roomMostFiles:{one:`There’s room for at most {count} file here.`,other:`There’s room for at most {count} files here.`},makesText:`text`,makesImages:`images`,makesVideos:`videos`,makesSpeech:`speech`,makesVoiceNotes:`voice notes`},Dd={en:Ed,de:{entry:`Eintrag {n} von {total}`,deciding:`Entscheidet, wie es weitergeht …`,choosingFields:`Wählt die passenden Fragen …`,batchDone:`{done} von {total} fertig`,editing:`Bearbeitet {n} von {total}`,filming:`Dreht {n} von {total}`,clipsRendering:{one:`{count} Clip wird gerendert – das dauert einige Minuten.`,other:`{count} Clips werden gerendert – das dauert einige Minuten.`},videoRendering:`Das Video wird gerendert – das dauert meist 1–3 Minuten.`,photo:`Sieht sich Foto {n} von {total} an`,found:`{label}: {name}`,listen:`Hört „{label}“ an …`,listenFailed:`„{label}“ konnte nicht verschriftlicht werden.`,filmCutting:`Der Film wird geschnitten – das dauert etwa eine Minute.`,filmProgress:`{pct} % geschnitten`,filmError:`Der Film meldet: {detail}`,widgetError:`Das Widget meldet einen Fehler: {detail}`,mcpConnected:`Verbunden mit {names}`,mcpUnreachable:`MCP-Server nicht erreichbar: {detail}`,reads:`Liest {name}`,readsMany:{one:`Liest {count} Dokument`,other:`Liest {count} Dokumente`},opens:`Öffnet {name}`,clicks:`Klickt im Browser`,clicksOn:`Klickt auf „{name}“`,types:`Tippt im Browser`,typesText:`Tippt „{text}“`,selects:`Wählt „{option}“`,scrolls:`Scrollt`,presses:`Drückt {key}`,goesBack:`Geht eine Seite zurück`,waitsForPage:`Wartet auf die Seite`,fastLoop:`Erledigt im Browser: {goal}`,personDrives:`Du steuerst den Browser – der Wizard wartet`,agentDrives:`Der Wizard macht im Browser weiter`,looksAtPage:`Sieht sich die Seite an`,waitsForSignIn:`Wartet auf deine Anmeldung bei {name}`,downloads:`Lädt {name} herunter`,runs:`Führt aus: {command}`,python:`Führt Python aus`,drawing:`Zeichnet ein Bild`,writesPage:`Schreibt die Seite „{title}“`,searchesDocuments:`Sucht in den Dokumenten: {query}`,searchesKnowledge:`Sucht in Wissen: {query} – {relevant} von {candidates} passen`,listsKnowledge:`Listet Wissen`,searchesMail:`Durchsucht {label}`,savesReceipts:{one:`Speichert {count} Beleg aus {label}`,other:`Speichert {count} Belege aus {label}`},remembers:`Merkt sich {title}`,files:{one:`Legt {count} Datei ab`,other:`Legt {count} Dateien ab`},filmSetup:`Richtet den Arbeitsordner für den Film ein`,filmClient:`{client} arbeitet am Film – das dauert meist 10–40 Minuten.`,filmTask:`Am Film: {task}`,filmLooks:`Sieht sich Bilder des Films an`,filmFix:`Der Film ließ sich nicht rendern – Claude Code bessert nach`,filmResume:`Macht dort weiter, wo der Film stehen geblieben ist`,wizardUnavailable:`Dieser Wizard ist gerade nicht verfügbar.`,translationFailed:`Dieser Wizard lässt sich gerade nicht übersetzen. Du siehst ihn so, wie er geschrieben wurde.`,translationOff:`Diesen Wizard gibt es nur so, wie er geschrieben wurde.`,translationPlaceholder:`Die Übersetzung von „{text}“ braucht jeden Platzhalter in geschweiften Klammern, den das Original hat.`,wizardLimit:`Für heute ist das Limit dieses Wizards erreicht. Versuch es morgen wieder.`,confirmHuman:`Bestätige kurz, dass du ein Mensch bist.`,tooManyRuns:`Du hast gerade viele Läufe gestartet. Versuch es in einer Stunde wieder.`,runOver:`Der Lauf ist beendet.`,runBusy:`Der Wizard arbeitet gerade.`,pageOutdated:`Diese Seite ist nicht mehr aktuell.`,noStepBefore:`Kein vorheriger Schritt.`,checkFields:`Prüf die markierten Felder.`,talkOff:`Live-Gespräche sind für diesen Wizard nicht eingeschaltet.`,talkKeyRefused:`Das Gespräch ließ sich nicht starten: Der OpenAI-API-Key wurde abgelehnt.`,talkFailed:`Das Gespräch ließ sich nicht starten ({status}).`,talkNoSecret:`Das Gespräch ließ sich nicht starten: Es kam kein Zugang zurück.`,tryLater:`Versuch es später noch einmal.`,recordingTooLarge:`Die Aufnahme darf höchstens 10 MB groß sein.`,fileTooLarge:`Wähl eine Datei bis {mb} MB.`,askClosed:`Diese Frage ist nicht mehr offen.`,noBrowser:`Der Wizard hat gerade keinen Browser offen.`,notWaiting:`Der Wizard wartet gerade nicht auf dich.`,pageActFailed:`Das hat auf der Seite nicht geklappt.`,linkGone:`Dieser Link ist abgelaufen oder wurde zurückgezogen.`,connected:`Verbunden. Du kannst dieses Fenster schließen.`,connectFailed:`Verbinden hat nicht geklappt. Versuch es noch einmal.`,connectCancelled:`Verbinden wurde abgebrochen.`,appleOff:`Apple Intelligence ist auf diesem Mac ausgeschaltet. Schalte es unter Systemeinstellungen → Apple Intelligence & Siri ein.`,appleLoading:`Apple lädt das Modell für Apple Intelligence noch auf diesen Mac. Versuch es gleich noch einmal.`,appleMissing:`Der Helfer für Apple Intelligence (wizards-apple) fehlt in dieser Installation.`,appleOs:`Apple Intelligence braucht macOS 26 oder neuer.`,appleDevice:`Apple Intelligence gibt es nur auf einem Mac mit Apple Silicon.`,appleBusy:`Apple Intelligence nimmt gerade keine weiteren Anfragen an. Versuch es gleich noch einmal.`,appleTooLong:`Der Text ist zu lang für Apple Intelligence auf diesem Mac (4.096 Tokens für Frage und Antwort). Wähle unter Einstellungen → Modelle ein anderes Modell für diese Klasse.`,appleRefused:`Apple Intelligence hat die Anfrage abgelehnt: Apples Inhaltsregeln lassen sie nicht zu.`,appleLanguage:`Apple Intelligence versteht die Sprache dieser Anfrage nicht.`,appleFormat:`Apple Intelligence kann dieses Antwortformat nicht liefern: {detail}`,appleFailed:`Apple Intelligence: {detail}`,appleNoFfmpeg:`Apple Intelligence liest {type} nicht, und ohne ffmpeg lässt sich die Aufnahme nicht umwandeln. Installiere ffmpeg oder nimm im Browser als MP4 auf.`,appleNotConverted:`Apple Intelligence konnte die Aufnahme nicht umwandeln: {detail}`,connectorAlreadyExistsSpace:`Den Connector „{id}“ gibt es in diesem Space schon.`,connectorNotExist:`Diesen Connector gibt es nicht.`,fieldMissing:`„{label}“ fehlt.`,mailServerNotExist:`Den Mail-Server{host} gibt es nicht. Trag den IMAP-Server ein, bei Gmail und Google Workspace imap.gmail.com.`,mailServerNotResponding:`Der Mail-Server{host} antwortet nicht. Prüf IMAP-Server und Port.`,connectingNotWork:`Verbinden hat nicht geklappt{host}: {detail}`,connectEngentyAccountFirst:`Verbinde zuerst dein engenty-Konto (Einstellungen → Konto). Dann kannst du Google hier verbinden.`,engentyAccountNotReached:`Dein engenty-Konto ist gerade nicht erreichbar. Versuch es später noch einmal.`,googleNoLongerAccepts:`Google nimmt diese Verbindung nicht mehr an. Verbinde das Konto neu.`,googleNotConnectedThrough:`Google lässt sich über dein engenty-Konto gerade nicht verbinden.`,stepNeedsToolPlugin:`Dieser Schritt braucht das Werkzeug „{id}“. Das Plugin „{plugin}“ ist hier nicht installiert.`,clientNotSignedIn:`{name} ist auf diesem Computer nicht angemeldet. Melde dich unter Einstellungen → Modelle an.`,clientNotInstalled:`{name} ist auf diesem Computer nicht installiert. Installiere es unter Einstellungen → Modelle.`,clientNoCredit:`Das Konto, mit dem {name} angemeldet ist, hat kein Guthaben oder Kontingent mehr.`,anthropicAccountClaudeCode:`Das Anthropic-Konto, mit dem Claude Code angemeldet ist, hat kein Guthaben. Melde Claude Code unter Einstellungen → Modelle mit deinem Abo an.`,chatgptAccountCodexSigned:`Das Kontingent des ChatGPT-Kontos, mit dem Codex angemeldet ist, ist aufgebraucht. Versuch es später noch einmal oder wähle einen anderen Client.`,builtTerminalNotAvailable:`Das eingebaute Terminal ist auf diesem Computer nicht verfügbar. Führe den Befehl in deinem eigenen Terminal aus.`,terminalNoLongerExists:`Dieses Terminal gibt es nicht mehr.`,imageTypeNotReadable:`Bilder vom Typ {mime} lassen sich nicht lesen (PNG, JPEG und WebP gehen).`,fileNotReadable:`„{name}“ ({mime}) lässt sich nicht lesen.`,creditsNotSignedIn:`Dafür sind Credits gewählt, aber du bist mit keinem Konto angemeldet.`,accountNoLongerSigned:`Das Konto ist nicht mehr angemeldet. Melde dich unter Einstellungen → Konto neu an.`,modelNotUsedYet:`Das Modell „{ref}“ lässt sich noch nicht nutzen. Hinterleg unter Einstellungen → Modelle einen API-Key oder melde dich mit einem Konto an.`,noModelForImages:`Für Bilder ist kein Modell eingerichtet.`,noModelForVideos:`Für Videos ist kein Modell eingerichtet.`,noModelForSpeech:`Für Sprachausgabe ist kein Modell eingerichtet.`,noOpenaiApiKey:`Für Sprachgespräche ist kein OpenAI-API-Key hinterlegt (Einstellungen → Modelle).`,modelNotAvailableAccount:`Dieses Modell gibt es mit deinem Konto nicht.`,accountNoModelSet:`Dafür ist bei deinem Konto kein Modell eingerichtet.`,claudeCodeMakesFilms:`Filme macht Claude Code auf diesem Computer mit deinem Abo. Richte es unter Einstellungen → Modelle als KI-Abo ein.`,macNeedsFfmpegTranscribe:`Aufnahmen aus Chrome oder Firefox (WebM, Ogg) schreibt dieser Mac erst mit ffmpeg auf. Safari und die App brauchen es nicht. Installiere ffmpeg, z. B. mit „brew install ffmpeg“.`,fieldRequired:`Pflichtfeld`,chooseAtLeast:`Wähl mindestens {min} aus`,chooseAtMost:`Höchstens {max} – entferne einige`,enterNumber:`Gib eine Zahl ein`,invalidChoice:`Ungültige Auswahl`,timeNotOffered:`Dieser Termin wird nicht angeboten`,notValidEmailAddress:`Keine gültige E-Mail-Adresse`,notValidUrl:`Keine gültige URL`,wizardRunOutCredits:`Dieser Wizard hat gerade kein Guthaben mehr. Versuch es später noch einmal.`,providerCreditLow:`Das Guthaben beim Modellanbieter reicht dafür nicht aus (Videos brauchen dort ein Mindestguthaben). Lade dort auf und versuch es noch einmal.`,aiServiceBusyRight:`Der KI-Dienst ist gerade ausgelastet. Versuch es gleich noch einmal.`,stepTookTooLong:`Der Schritt hat zu lange gedauert. Versuch es noch einmal.`,aiServiceNotReached:`Der KI-Dienst ist gerade nicht erreichbar. Versuch es später noch einmal.`,notAvailableNow:`Das ist hier gerade nicht verfügbar.`,fileNotFound:`Datei nicht gefunden`,connectFirst:`Verbinde zuerst`,noEntriesStepWork:`Es gibt keine Einträge, für die dieser Schritt arbeiten könnte.`,stepNotReturnResult:`Der Schritt hat kein Ergebnis geliefert.`,documentNotCreated:`Das Dokument konnte nicht erstellt werden.`,stepMissingSourcesImages:`Für diesen Schritt fehlen die Vorlagen (Bilder oder Szenen).`,noTextReadAloud:`Es gibt keinen Text zum Vorlesen.`,wizardStillErrors:`Der Wizard hat noch Fehler.`,noLanguageModelSet:`Hier ist kein Sprachmodell eingerichtet.`,creditsUsedUp:`Dein Guthaben ist aufgebraucht.`,chooseFile:`Wähl eine Datei.`,pageNotReached:`Die Seite ist nicht erreichbar.`,unknownEntry:`Unbekannter Eintrag.`,chooseWizardFileMb:`Wähl eine Wizard-Datei ({PACKAGE_EXTENSION}) bis 30 MB.`,recordingMbMost:`Die Aufnahme darf höchstens 10 MB groß sein.`,onlyFinishedResultsShared:`Nur fertige Ergebnisse lassen sich teilen.`,gradientFailed:`Daraus ließ sich kein Verlauf machen. Beschreib ihn anders.`,onlyOneSpaceAllowed:`Hier ist nur ein Space möglich.`,mostSpaces:{one:`Hier ist höchstens {count} Space möglich.`,other:`Hier sind höchstens {count} Spaces möglich.`},twoEntriesSameKey:`Zwei Einträge haben denselben Schlüssel.`,notDeleteLastSpace:`Der letzte Space lässt sich nicht löschen.`,notFound:`Das gibt es nicht oder nicht mehr.`,categoryNeedsName:`Eine Kategorie braucht einen Namen.`,unknownCategoryType:`Unbekannter Typ „{type}“.`,spaceMostCategories:{one:`Ein Space hat höchstens {count} Kategorie.`,other:`Ein Space hat höchstens {count} Kategorien.`},categoryAlreadyExists:`Die Kategorie „{name}“ gibt es schon.`,onlyChoiceCategoriesValues:`Werte gibt es nur bei Kategorien vom Typ Auswahl.`,onlyValuesOneCategory:`Nur Werte einer Kategorie lassen sich zusammenführen.`,templateNeedsNewerVersion:`Diese Vorlage braucht eine neuere Version von engenty wizards. Aktualisiere zuerst engenty wizards.`,chatNotExist:`Diesen Chat gibt es nicht.`,unknownRunner:`Einen Runner „{unknown}“ gibt es hier nicht.`,leastOneRunnerStay:`Mindestens ein Runner muss eingeschaltet bleiben.`,linkOpenRunnerTurned:`Der Link muss einen eingeschalteten Runner öffnen.`,jobNotExistAlready:`Diesen Vorgang gibt es nicht, oder er ist schon beendet.`,accountAlreadySpace:`Dieses Konto hat hier schon einen Space.`,accountAlreadySpaces:{one:`Dieses Konto hat hier schon {count} Space.`,other:`Dieses Konto hat hier schon {count} Spaces.`},roomMostPublishedWizards:{one:`Hier hat höchstens {count} veröffentlichter Wizard Platz.`,other:`Hier haben höchstens {count} veröffentlichte Wizards Platz.`},spaceIdAlreadyExists:`Einen Space mit dieser Kennung gibt es hier schon, und er kommt nicht von deinem Computer.`,wizardIdAlreadyBelongs:`Ein Wizard mit dieser Kennung gehört hier schon zu einem anderen Space.`,idAlreadyUse:`Diese Kennung ist hier schon vergeben.`,wizardNotSpace:`Diesen Wizard gibt es im Space nicht.`,invalidColumns:`Ungültige Spalten.`,spaceMostTables:{one:`Ein Space hat höchstens {count} Tabelle.`,other:`Ein Space hat höchstens {count} Tabellen.`},tableBelongsOneWizard:`Diese Tabelle gehört zu einer Liste des Wizards. Die Spalten kommen aus dem Wizard.`,entryAlreadyExists:`Diesen Eintrag gibt es schon.`,tableMostRows:{one:`Eine Tabelle hat höchstens {count} Zeile.`,other:`Eine Tabelle hat höchstens {count} Zeilen.`},spaceMostPages:{one:`Ein Space hat höchstens {count} Seite.`,other:`Ein Space hat höchstens {count} Seiten.`},pageNotSubpages:`Diese Seite kann keine Unterseiten haben.`,pageNotOwnSubpage:`Eine Seite kann nicht ihre eigene Unterseite sein.`,pageNeedsTitle:`Eine Seite braucht einen Titel.`,unknownSpace:`Den Space „{space}“ gibt es nicht.`,noParentPage:`Es gibt keine Seite mit dem Schlüssel „{parent}“, unter die diese Seite könnte.`,onlyTeamAdmins:`Das dürfen nur Admins des Teams. Als Mitglied bearbeitest du die Wizards, die es schon gibt.`,spaceEditedLocally:`Diesen Space bearbeitest du in engenty wizards auf deinem Computer, nicht hier.`,wizardsRunOncePublished:`Hier laufen die Wizards, die du in engenty wizards auf deinem Computer veröffentlichst. Gebaut und bearbeitet wird dort.`,logoImagePngSvg:`Ein Logo ist ein Bild (PNG, SVG, JPEG, WebP).`,patternImageSvgPng:`Ein Muster ist ein Bild (SVG, PNG, JPEG, WebP).`,filesGoHere:`Hierher gehören Bilder, Videos, Audio, PDFs, Schriften, Lottie und 3D-Modelle. Texte zum Nachschlagen gehören ins Wissen.`,addressNotReached:`Die Adresse ist nicht erreichbar.`,addressResponded:`Die Adresse antwortete mit {status}.`,addressLeadsWebPage:`Unter der Adresse steht eine Webseite, kein Bild.`,addressFileTooLarge:`Die Datei ist zu groß.`,onlyDocumentsIndex:`Nur Dokumente stehen im Index.`,emptyTooLargeDocument:`„{name}“ ist leer oder zu groß für ein Dokument.`,spaceMostDocuments:{one:`Ein Space hat höchstens {count} Dokument.`,other:`Ein Space hat höchstens {count} Dokumente.`},accountSignedOut:`Das Konto ist abgemeldet. Melde dich neu an.`,cloudNotReachedRight:`Die Cloud ist gerade nicht erreichbar.`,publishWizardFirst:`Veröffentliche den Wizard zuerst.`,wizardJsonUnreadable:`Das ist keine Wizard-Datei: Die wizard.json darin lässt sich nicht lesen.`,wizardFileComesNewer:`Diese Wizard-Datei stammt aus einer neueren Version oder ist beschädigt. Aktualisiere engenty wizards oder exportiere den Wizard neu.`,fileOver5Mb:`{name} ist größer als 5 MB.`,wizardFileTooLarge:`Die Wizard-Datei ist zu groß: Ein Arbeitsbereich fasst höchstens 200 Dateien und 25 MB.`,wizardFileNotOpened:`Die Wizard-Datei lässt sich nicht öffnen. Exportiere den Wizard neu und versuche es noch einmal.`,wizardJsonMissing:`Das ist keine Wizard-Datei: Die wizard.json fehlt.`,notValidFilePath:`„{name}“ ist kein gültiger Dateipfad.`,workspaceWizardFileLarger:`Der Arbeitsbereich in der Wizard-Datei ist größer als 25 MB.`,unknownTemplate:`Die Vorlage „{starterId}“ gibt es nicht.`,wizardChangedMeantime:`Der Wizard wurde inzwischen geändert.`,valueNotExist:`Diesen Wert gibt es nicht.`,nothingFiledUnderValue:`Unter diesem Wert steht noch nichts.`,filmNotRenderedNeeds:`Der Film ließ sich nicht rendern. Dafür braucht es ffmpeg und eine Zeitleiste im Widget.`,signInRefused:`Anmeldung abgelehnt{host}. Stimmen Adresse und (App-)Passwort? Gmail und Google Workspace brauchen ein App-Passwort und eingeschaltetes IMAP.{answer}`,serverSaid:` Antwort des Servers: {answer}`,viaAccountFailed:`Verbinden über dein engenty-Konto hat nicht geklappt ({code}).`,pluginInvalidInput:`„{id}“ bekam ungültige Angaben: {path} – {problem}`,filmClientStopped:`{name} hat beim Film aufgehört: {detail}. Die Arbeit ist gespeichert. Ein neuer Versuch macht dort weiter.`,filmWorkSaved:`{problem} Die Arbeit ist gespeichert. Ein neuer Versuch macht dort weiter.`,filmRenderFailed:`Der Film ließ sich nicht rendern: {detail}`,commandNotStarted:`Der Befehl konnte nicht starten: {detail}`,providerKeyMissing:`Für {makes} ist {provider} gewählt, aber kein API-Key hinterlegt.`,noModelFor:`Für {makes} ist kein Modell eingerichtet.`,noApiKeyFor:`Für {provider} ist kein API-Key hinterlegt.`,freeTier:`Dein AI-Gateway-Key nutzt bei Vercel die kostenlose Stufe, und die schließt {model} aus. Lade bei Vercel Guthaben auf ({url}) oder wähle unter Einstellungen → Modelle ein anderes Modell.`,thisModel:`dieses Modell`,quoted:`„{text}“`,viewErrors:`Die Ansicht hat Fehler: {detail}`,stepFailed:`Dieser Schritt hat nicht geklappt: {detail}`,answersMissing:`Antworten fehlen oder passen nicht: {answers}`,templateNeedsPlugins:{one:`Diese Vorlage braucht das Plugin {plugins}: bei Pro auf engenty.ai dabei.`,other:`Diese Vorlage braucht die Plugins {plugins}: bei Pro auf engenty.ai dabei.`},pageMostChars:`Eine Seite hat höchstens {count} Zeichen.`,chooseFileUpTo:`Wähl eine Datei bis {mb} MB.`,roomMostFiles:{one:`Hier hat höchstens {count} Datei Platz.`,other:`Hier haben höchstens {count} Dateien Platz.`},makesText:`Text`,makesImages:`Bilder`,makesVideos:`Videos`,makesSpeech:`Sprachausgabe`,makesVoiceNotes:`Sprachnotizen`}};function Od(e,t,n){return Array.isArray(e)?e.map(e=>Od(e,t,n)):typeof e==`object`&&e&&`code`in e?kd(e,t,n):e}function kd(e,t,n){if(!(e.code in Ed))return``;let r={};for(let[i,a]of Object.entries(e.params??{}))r[i]=a===void 0?void 0:Od(a,t,n);let i=n?.[e.code];return i===void 0?wd(Dd,e.code,hu(t)?t:`en`,r):Td(i,t,r)}var Ad={en:{"result.translate":`Translate`,"translation.working":`Translating…`,"translation.machine":`Machine-translated`,"translation.showOriginal":`Show original`,"translation.showTranslated":`Show translation`,"translation.failed":`This wizard can’t be translated right now.`,"share.copied":`Copied`,"surface.done":`{done} of {total}`,"surface.allDone":`All done`,"surface.close":`Close`,"data.view":`View`,"data.edit":`Edit`,"data.json":`JSON`,"data.modes":`Show the data as`,"data.add":`Add {what}`,"data.remove":`Remove`,"data.missing":`{id} is missing`,"data.yes":`Yes`,"data.no":`No`,"data.menu":`More`,"data.open":`View and edit the data`,"data.close":`Close the data`,"data.save":`Save`,"data.saved":`Saved`,"data.schema":`JSON Schema`,"data.copy":`Copy`,"data.download":`Download`,"run.closed":`Not available here right now. It needs {list}.`,"slot.later":`Show later times`,"slot.none":`No times are free right now.`,"cards.open":`Details`,"cards.picked":`Chosen ✓`,"cards.pick":`Choose`,"run.cls.text":`text`,"run.cls.image":`images`,"run.cls.video":`video`,"run.cls.speech":`speech output`,"run.cls.audio":`voice notes`,"run.cls.account":`an engenty account`,"run.next":`Continue`,"run.back":`Back`,"run.accept":`Looks good`,"run.edit":`Edit`,"run.pickItem":`No. {n}`,"run.pickedItem":`No. {n} again`,"run.regeneratePicked":`Only no. {n} will be redone.`,"run.regenerateAll":`Applies to all. Tap a number to redo just that one.`,"check.progress":`{done} of {total} checked`,"check.onlyOpen":`Open only`,"check.noFile":`There’s no file for this row.`,"check.noPreview":`This file has no preview – open it with the link above.`,"check.reopen":`Open again`,"run.feedbackPlaceholder":`Something not right? Write what should be different…`,"run.feedbackTarget":`What should change?`,"run.feedbackPick":`Choose above what should change.`,"ai.generated":`AI-generated`,"ai.modified":`AI-modified`,"ai.publish":`Made with AI: whoever publishes this has to label it as AI-generated (EU AI Act, Art. 50). The file already carries the marking in its metadata.`,"run.regenerateGo":`Recreate`,"run.retry":`Try again`,"run.again":`Start over`,"run.copy":`Copy text`,"run.failed":`Something went wrong.`,"run.notFound":`This wizard doesn’t exist or was deleted.`,"run.working":`One moment…`,"run.elapsed":`{s} s`,"run.cancelled":`Cancelled.`,"run.addRow":`Add row`,"run.upload":`Choose a file or drop it here`,"run.uploading":`Uploading…`,"run.net":`Net`,"run.vat":`VAT {r}%`,"run.total":`Total`,"run.uploadMore":`Another file`,"run.camera":`Camera`,"camera.title":`Take a picture`,"camera.hint":`Hold it flat and well lit.`,"camera.taken":`{n} taken`,"camera.shoot":`Capture`,"camera.done":`Done`,"camera.denied":`The camera isn’t allowed for this page. Allow it in your browser’s site settings (the lock icon in the address bar) – or take the photo with your camera app.`,"connect.go":`Connect`,"connect.connected":`Connected through {name}`,"connect.disconnect":`Disconnect`,"connect.none":`This server has no provider for connecting accounts yet.`,"connect.openLink":`Click here to open the sign-in in a new tab`,"list.empty":`No entries yet.`,"list.delete":`Delete row`,"ask.typeInto":`Type into the page…`,"ask.hide":`hidden`,"ask.up":`Scroll up`,"ask.down":`Scroll down`,"ask.pictureHint":`This is the page the wizard has open, live. You can also click and type right in it.`,"ask.remember":`Remember this sign-in for next time`,"ask.private":`What you enter goes straight into the page. The AI never sees it. Remembered sign-ins are stored encrypted.`,"ask.skip":`Skip`,"ask.done":`I’m signed in`,"ask.signIn":`Sign in`,"ask.wants":`The wizard wants to run this in {service}:`,"ask.allowRest":`Allow for the rest of this run`,"ask.allow":`Allow`,"ask.deny":`Don’t allow`,"store.open":`What this wizard remembers`,"store.title":`Kept for you`,"store.explain":`This wizard keeps lists, files and connected accounts for your next run. Only you see them.`,"store.empty":`Nothing kept yet.`,"store.rows":{one:`{n} entry`,other:`{n} entries`},"store.signIns":`Remembered sign-ins in the browser`,"store.files":{one:`{n} file · {size}`,other:`{n} files · {size}`},"store.delete":`Delete everything`,"store.confirmDelete":`Yes, delete everything`,"common.close":`Close`,"run.uploadTouch":`Choose a file`,"run.maxFiles":{one:`At most {n} fits here – the rest were left out.`,other:`At most {n} fit here – the rest were left out.`},"run.filesMin":`{n} of at least {min}`,"run.filesOf":`{n} of at most {max}`,"run.moveFile":`Move no. {n}`,"run.moveFileHint":`Drag to change the order`,"run.removeFile":`Remove`,"run.awake":`The screen stays on while the wizard works.`,"run.openFull":`Open full size`,"run.yes":`Yes`,"run.no":`No`,"run.share":`Share`,"run.shareNow":`Share now`,"run.shareFile":`Share as a file or open in an app`,"run.print":`Print`,"camera.asking":`Your browser is about to ask for the camera. The picture stays in this wizard.`,"camera.native":`Open the camera app`,"camera.pick":`Choose a photo`,"camera.torch":`Light`,"camera.flip":`Switch camera`,"camera.photo":`Photo`,"camera.video":`Video`,"camera.record":`Start recording`,"camera.stop":`Stop recording`,"camera.recording":`Recording – tap to stop.`,"camera.clipHint":`A short clip, {s} seconds at most.`,"camera.hintMany":`Capture page after page, then “Done”.`,"scan.button":`Scan`,"scan.title":`Scan a code`,"scan.asking":`Your browser is about to ask for the camera – it only reads the code.`,"scan.hint":`Hold the QR code or barcode inside the frame.`,"scan.hintQr":`Hold the QR code inside the frame. This device doesn’t read barcodes here.`,"scan.miss":`No code was found in the photo. Try closer and sharper.`,"scan.fromPhoto":`Choose a photo of the code`,"scan.typeInstead":`Type it instead`,"location.use":`Use my location`,"location.locating":`Finding your location…`,"location.refining":`getting more accurate…`,"location.accuracy":`accurate to about {m} m`,"location.map":`Map`,"location.remove":`Remove location`,"location.why":`Your browser asks for your location. It’s only used for this wizard. You can also just type the address.`,"location.denied":`Location isn’t allowed for this page. Allow it in your browser’s site settings (the lock icon in the address bar) – or type the address below.`,"location.manual":`Type an address or place`,"location.label":`Address or description of the place`,"voice.start":`Record a voice note`,"voice.stop":`Stop`,"voice.recording":`Recording…`,"voice.left":`{s} s left`,"voice.again":`Record again`,"voice.remove":`Delete`,"voice.pick":`Choose an audio file`,"voice.why":`Your browser asks for the microphone. The recording is turned into text afterwards.`,"voice.denied":`The microphone isn’t allowed for this page. Allow it in your browser’s site settings – or record the note with your voice memo app and choose the file.`,"voice.noRecorder":`This browser can’t record here. Record the note with your voice memo app and choose the file.`,"sign.open":`Sign here`,"sign.hint":`Sign with your finger`,"sign.pad":`Signature pad`,"sign.clear":`Clear`,"sign.accept":`Use it`,"sign.again":`Sign again`,"sign.remove":`Remove signature`,"notify.ask":`Tell me when it’s done`,"notify.on":`We’ll let you know`,"notify.why":`With a sound, a buzz or a notification. Your browser asks once for permission.`,"notify.onHint":`You can switch apps – a notification brings you back.`,"notify.quiet":`With a sound and a buzz while this page is open.`,"notify.blocked":`Notifications are blocked for this page – you get a sound and a buzz while it’s open. You can allow them in your browser’s site settings.`,"notify.done":`Your result is ready.`,"notify.next":`The next step is ready – have a look.`,"notify.needsYou":`The wizard needs you for a moment.`,"common.offline":`No connection. Check your network and try again.`,"common.retry":`Try again`,"common.cancel":`Cancel`,"run.start":`Let’s go`,"run.unavailable":`This wizard isn’t available right now.`,"run.resume":`Continue your last run`,"output.preview":`Preview`,"package.newer":`This wizard file comes from a newer version, or it’s damaged. Update engenty wizards or export the wizard again.`,"package.badJson":`This isn’t a wizard file: its wizard.json can’t be read.`,"package.unreadable":`The wizard file can’t be opened. Export the wizard again and try once more.`,"package.noManifest":`This isn’t a wizard file: wizard.json is missing.`,"browser.driving":`You’re in control of the browser – click and type in the page. The wizard waits.`,"browser.handBack":`Hand back`,"browser.takeOver":`Take over`,"chat.above":`Answer above in the chat`,"chat.badEmail":`That doesn’t look like an email address.`,"chat.badNumber":`Enter a number.`,"chat.badUrl":`That isn’t a valid address.`,"chat.change":`Change`,"chat.checked":`Checked`,"chat.connected":`Connected`,"chat.dictate":`Dictate (⌘⇧M)`,"chat.dictateStop":`Stop dictating`,"chat.file":`1 file`,"chat.files":{one:`{n} file`,other:`{n} files`},"chat.listening":`Listening…`,"chat.micDenied":`The microphone isn’t allowed for this page. Allow it in your browser’s site settings.`,"chat.placeholder":`Your answer…`,"chat.readAloud":`Read aloud`,"chat.readAloudOff":`Stop reading aloud`,"chat.required":`I need an answer for this one.`,"chat.rows":{one:`{n} row`,other:`{n} rows`},"chat.send":`Send`,"chat.skip":`Skip`,"chat.skipped":`Skipped`,"chat.transcribing":`Writing it down…`,"chat.voice":`Voice note`,"install.add":`Add to home screen`,"install.app":`Open in the app`,"install.bookmark":`Bookmark this wizard`,"install.bookmark.mac":`Press ⌘ D to keep this wizard in your bookmarks.`,"install.bookmark.pc":`Press Ctrl + D to keep this wizard in your bookmarks.`,"install.ios":`Tap “Share” below, then “Add to Home Screen”.`,"run.madeWith":`Made with engenty wizards`,"run.orAs":`Or: {label}`,"talk.camera":`Switch the camera on`,"talk.cameraDenied":`The camera isn’t allowed for this page. Allow it in your browser’s site settings.`,"talk.cameraOff":`Switch the camera off`,"talk.connecting":`Connecting…`,"talk.failed":`The conversation couldn’t start. Check your connection and try again.`,"talk.hint":`Talk to the wizard – the screen follows along.`,"talk.joinHint":`Your browser asks for the microphone when you start, and for the camera only when you switch it on. The chat beside it follows along and handles what voice can’t.`,"talk.listening":`Listening`,"talk.live":`In conversation`,"talk.speaking":`Speaking`,"talk.start":`Start talking`,"talk.stop":`End the conversation`,"video.cameraOff":`Camera off`,"video.ended":`Call ended`,"video.flip":`Switch camera`,"video.hint":`Your browser asks for the microphone and camera when you join. The chat beside it follows along and handles what voice can’t.`,"video.join":`Join`,"video.leave":`Leave`,"video.mute":`Mute`,"video.rejoin":`Rejoin`,"video.unmute":`Unmute`,"video.you":`You`,"nav.language":`Language`},de:{"result.translate":`Übersetzen`,"translation.working":`Wird übersetzt …`,"translation.machine":`Maschinell übersetzt`,"translation.showOriginal":`Original zeigen`,"translation.showTranslated":`Übersetzung zeigen`,"translation.failed":`Dieser Wizard lässt sich gerade nicht übersetzen.`,"share.copied":`Kopiert`,"surface.done":`{done} von {total}`,"surface.allDone":`Alles erledigt`,"surface.close":`Schließen`,"data.view":`Ansicht`,"data.edit":`Bearbeiten`,"data.json":`JSON`,"data.modes":`Daten zeigen als`,"data.add":`{what} hinzufügen`,"data.remove":`Entfernen`,"data.missing":`{id} fehlt`,"data.yes":`Ja`,"data.no":`Nein`,"data.menu":`Mehr`,"data.open":`Daten ansehen und bearbeiten`,"data.close":`Daten schließen`,"data.save":`Speichern`,"data.saved":`Gespeichert`,"data.schema":`JSON Schema`,"data.copy":`Kopieren`,"data.download":`Herunterladen`,"run.closed":`Hier gerade nicht verfügbar, dafür fehlt: {list}`,"slot.later":`Spätere Termine zeigen`,"slot.none":`Gerade sind keine Termine frei.`,"cards.open":`Details`,"cards.picked":`Ausgewählt ✓`,"cards.pick":`Auswählen`,"run.cls.text":`Text`,"run.cls.image":`Bilder`,"run.cls.video":`Videos`,"run.cls.speech":`Sprachausgabe`,"run.cls.audio":`Sprachnotizen`,"run.cls.account":`ein engenty-Konto`,"run.next":`Weiter`,"run.back":`Zurück`,"run.accept":`Passt so`,"run.edit":`Bearbeiten`,"run.pickItem":`Nr. {n}`,"run.pickedItem":`Nr. {n} neu`,"run.regeneratePicked":`Nur Nr. {n} wird neu erstellt.`,"run.regenerateAll":`Alle werden neu erstellt. Tippe oben auf eine Nummer, um nur einzelne zu erneuern.`,"check.progress":`{done} von {total} geprüft`,"check.onlyOpen":`Nur offene`,"check.noFile":`Zu dieser Zeile gibt es keine Datei.`,"check.noPreview":`Für diese Datei gibt es keine Vorschau – öffne sie mit dem Link oben.`,"check.reopen":`Wieder öffnen`,"run.feedbackPlaceholder":`Passt etwas nicht? Schreib, was anders sein soll …`,"run.feedbackTarget":`Was soll sich ändern?`,"run.feedbackPick":`Wähle oben, was sich ändern soll.`,"ai.generated":`KI-generiert`,"ai.modified":`Mit KI verändert`,"ai.publish":`Mit KI erstellt: Wer das veröffentlicht, muss es als KI-generiert kennzeichnen (EU AI Act, Art. 50). Die Datei trägt die Kennzeichnung bereits in ihren Metadaten.`,"run.regenerateGo":`Neu erstellen`,"run.retry":`Erneut versuchen`,"run.again":`Nochmal`,"run.copy":`Text kopieren`,"run.failed":`Da hat etwas nicht geklappt.`,"run.notFound":`Diesen Wizard gibt es nicht, oder er wurde gelöscht.`,"run.working":`Einen Moment …`,"run.elapsed":`{s} s`,"run.cancelled":`Abgebrochen.`,"run.addRow":`Zeile hinzufügen`,"run.upload":`Datei wählen oder hierher ziehen`,"run.uploading":`Lädt hoch …`,"run.net":`Netto`,"run.vat":`USt. {r} %`,"run.total":`Gesamt`,"run.uploadMore":`Weitere Datei`,"run.camera":`Kamera`,"camera.title":`Mit der Kamera aufnehmen`,"camera.hint":`Gerade und gut beleuchtet ins Bild halten.`,"camera.taken":`{n} aufgenommen`,"camera.shoot":`Aufnehmen`,"camera.done":`Fertig`,"camera.denied":`Die Kamera ist für diese Seite nicht freigegeben. Erlaube sie in den Website-Einstellungen deines Browsers (Schloss-Symbol in der Adresszeile) – oder nimm das Foto mit der Kamera-App auf.`,"connect.go":`Verbinden`,"connect.connected":`Verbunden über {name}`,"connect.disconnect":`Trennen`,"connect.none":`Auf diesem Server ist noch kein Anbieter zum Verbinden eingerichtet.`,"connect.openLink":`Anmeldung in neuem Tab öffnen`,"list.empty":`Noch keine Einträge.`,"list.delete":`Zeile löschen`,"ask.typeInto":`Text in die Seite tippen …`,"ask.hide":`verdeckt`,"ask.up":`Nach oben`,"ask.down":`Nach unten`,"ask.pictureHint":`Hier siehst du live die Seite, die der Wizard geöffnet hat. Du kannst auch direkt hineinklicken und tippen.`,"ask.remember":`Anmeldung für nächstes Mal merken`,"ask.private":`Was du eingibst, geht direkt in die Seite. Die KI bekommt es nicht zu sehen. Gemerkte Anmeldungen werden verschlüsselt gespeichert.`,"ask.skip":`Überspringen`,"ask.done":`Ich bin angemeldet`,"ask.signIn":`Anmelden`,"ask.wants":`Der Wizard möchte in {service} Folgendes ausführen:`,"ask.allowRest":`Für den Rest dieses Laufs erlauben`,"ask.allow":`Erlauben`,"ask.deny":`Nicht erlauben`,"store.open":`Was dieser Wizard sich merkt`,"store.title":`Für dich gemerkt`,"store.explain":`Dieser Wizard merkt sich Listen, Dateien und verbundene Konten für deinen nächsten Lauf. Nur du siehst sie.`,"store.empty":`Noch nichts gespeichert.`,"store.rows":{one:`{n} Eintrag`,other:`{n} Einträge`},"store.signIns":`Gemerkte Anmeldungen im Browser`,"store.files":{one:`{n} Datei · {size}`,other:`{n} Dateien · {size}`},"store.delete":`Alles löschen`,"store.confirmDelete":`Ja, alles löschen`,"common.close":`Schließen`,"run.uploadTouch":`Datei wählen`,"run.maxFiles":{one:`Hier geht höchstens {n} Datei – die übrigen sind weggelassen.`,other:`Hier gehen höchstens {n} Dateien – die übrigen sind weggelassen.`},"run.filesMin":`{n} von mindestens {min}`,"run.filesOf":`{n} von höchstens {max}`,"run.moveFile":`Nr. {n} verschieben`,"run.moveFileHint":`Ziehen, um die Reihenfolge zu ändern`,"run.removeFile":`Entfernen`,"run.awake":`Der Bildschirm bleibt an, solange der Wizard arbeitet.`,"run.openFull":`Groß öffnen`,"run.yes":`Ja`,"run.no":`Nein`,"run.share":`Teilen`,"run.shareNow":`Jetzt teilen`,"run.shareFile":`Als Datei teilen oder in einer App öffnen`,"run.print":`Drucken`,"camera.asking":`Dein Browser fragt gleich nach der Kamera. Das Bild bleibt in diesem Wizard.`,"camera.native":`Kamera-App öffnen`,"camera.pick":`Foto auswählen`,"camera.torch":`Licht`,"camera.flip":`Kamera wechseln`,"camera.photo":`Foto`,"camera.video":`Video`,"camera.record":`Aufnahme starten`,"camera.stop":`Aufnahme beenden`,"camera.recording":`Nimmt auf – tippe zum Beenden.`,"camera.clipHint":`Ein kurzer Clip, höchstens {s} Sekunden.`,"camera.hintMany":`Seite für Seite aufnehmen, dann „Fertig“.`,"scan.button":`Scannen`,"scan.title":`Code scannen`,"scan.asking":`Dein Browser fragt gleich nach der Kamera – sie liest nur den Code.`,"scan.hint":`Halte den QR- oder Barcode in den Rahmen.`,"scan.hintQr":`Halte den QR-Code in den Rahmen. Barcodes kann dieses Gerät hier nicht lesen.`,"scan.miss":`Auf dem Foto war kein Code zu erkennen. Versuch es näher und schärfer.`,"scan.fromPhoto":`Foto mit dem Code wählen`,"scan.typeInstead":`Lieber eintippen`,"location.use":`Meinen Standort verwenden`,"location.locating":`Standort wird bestimmt …`,"location.refining":`wird noch genauer …`,"location.accuracy":`auf etwa {m} m genau`,"location.map":`Karte`,"location.remove":`Standort entfernen`,"location.why":`Dein Browser fragt nach deinem Standort. Er wird nur für diesen Wizard verwendet. Du kannst auch einfach die Adresse eintippen.`,"location.denied":`Der Standort ist für diese Seite nicht freigegeben. Erlaube ihn in den Website-Einstellungen deines Browsers (Schloss-Symbol in der Adresszeile) – oder tippe die Adresse unten ein.`,"location.manual":`Adresse oder Ort eintippen`,"location.label":`Adresse oder Beschreibung des Orts`,"voice.start":`Sprachnotiz aufnehmen`,"voice.stop":`Stopp`,"voice.recording":`Aufnahme läuft …`,"voice.left":`noch {s} s`,"voice.again":`Neu aufnehmen`,"voice.remove":`Löschen`,"voice.pick":`Audiodatei wählen`,"voice.why":`Dein Browser fragt nach dem Mikrofon. Die Aufnahme wird danach in Text umgewandelt.`,"voice.denied":`Das Mikrofon ist für diese Seite nicht freigegeben. Erlaube es in den Website-Einstellungen deines Browsers – oder nimm die Notiz mit der Diktier-App auf und wähle die Datei.`,"voice.noRecorder":`Dieser Browser kann hier nicht aufnehmen. Nimm die Notiz mit der Diktier-App auf und wähle die Datei.`,"sign.open":`Hier unterschreiben`,"sign.hint":`Mit dem Finger unterschreiben`,"sign.pad":`Unterschriftsfeld`,"sign.clear":`Löschen`,"sign.accept":`Übernehmen`,"sign.again":`Neu unterschreiben`,"sign.remove":`Unterschrift entfernen`,"notify.ask":`Bescheid geben, wenn es fertig ist`,"notify.on":`Du bekommst Bescheid`,"notify.why":`Mit Ton, Vibration oder einer Mitteilung. Dein Browser fragt dafür einmal um Erlaubnis.`,"notify.onHint":`Du kannst die App wechseln – eine Mitteilung holt dich zurück.`,"notify.quiet":`Mit Ton und Vibration, solange diese Seite offen ist.`,"notify.blocked":`Mitteilungen sind für diese Seite blockiert – es gibt Ton und Vibration, solange sie offen ist. Erlauben kannst du sie in den Website-Einstellungen deines Browsers.`,"notify.done":`Dein Ergebnis ist fertig.`,"notify.next":`Es geht weiter – wirf einen Blick darauf.`,"notify.needsYou":`Der Wizard braucht dich kurz.`,"common.offline":`Keine Verbindung. Prüf dein Netz und versuch es noch einmal.`,"common.retry":`Erneut versuchen`,"common.cancel":`Abbrechen`,"run.start":`Los geht’s`,"run.unavailable":`Dieser Wizard ist gerade nicht verfügbar.`,"run.resume":`Letzten Lauf fortsetzen`,"output.preview":`Vorschau`,"package.newer":`Diese Wizard-Datei stammt aus einer neueren Version oder ist beschädigt. Aktualisiere engenty wizards oder exportiere den Wizard neu.`,"package.badJson":`Das ist keine Wizard-Datei: Die wizard.json darin lässt sich nicht lesen.`,"package.unreadable":`Die Wizard-Datei lässt sich nicht öffnen. Exportiere den Wizard neu und versuche es noch einmal.`,"package.noManifest":`Das ist keine Wizard-Datei: Die wizard.json fehlt.`,"browser.driving":`Du steuerst den Browser – klick und tipp in die Seite. Der Wizard wartet.`,"browser.handBack":`Zurückgeben`,"browser.takeOver":`Übernehmen`,"chat.above":`Antworte oben im Chat`,"chat.badEmail":`Das sieht nicht nach einer E-Mail-Adresse aus.`,"chat.badNumber":`Das sieht nicht nach einer Zahl aus.`,"chat.badUrl":`Das sieht nicht nach einer Webadresse aus.`,"chat.change":`Ändern`,"chat.checked":`Geprüft`,"chat.connected":`Verbunden`,"chat.dictate":`Diktieren (⌘⇧M)`,"chat.dictateStop":`Diktat beenden`,"chat.file":`1 Datei`,"chat.files":{one:`{n} Datei`,other:`{n} Dateien`},"chat.listening":`Ich höre zu …`,"chat.micDenied":`Das Mikrofon ist für diese Seite nicht freigegeben. Erlaube es in den Website-Einstellungen deines Browsers.`,"chat.placeholder":`Deine Antwort …`,"chat.readAloud":`Vorlesen`,"chat.readAloudOff":`Vorlesen beenden`,"chat.required":`Dafür brauche ich eine Antwort.`,"chat.rows":{one:`{n} Zeile`,other:`{n} Zeilen`},"chat.send":`Senden`,"chat.skip":`Überspringen`,"chat.skipped":`Übersprungen`,"chat.transcribing":`Wird in Text umgewandelt …`,"chat.voice":`Sprachnotiz`,"install.add":`Zum Startbildschirm hinzufügen`,"install.app":`In der App öffnen`,"install.bookmark":`Als Lesezeichen speichern`,"install.bookmark.mac":`Drücke ⌘ D, dann liegt dieser Wizard in deinen Lesezeichen.`,"install.bookmark.pc":`Drücke Strg + D, dann liegt dieser Wizard in deinen Lesezeichen.`,"install.ios":`Tippe unten auf „Teilen“ und dann auf „Zum Home-Bildschirm“.`,"run.madeWith":`Erstellt mit engenty wizards`,"run.orAs":`Oder: {label}`,"talk.camera":`Kamera einschalten`,"talk.cameraDenied":`Die Kamera ist für diese Seite nicht freigegeben. Erlaube sie in den Website-Einstellungen deines Browsers.`,"talk.cameraOff":`Kamera ausschalten`,"talk.connecting":`Verbindet …`,"talk.failed":`Das Gespräch ließ sich nicht starten.`,"talk.hint":`Sprich mit dem Wizard. Auf dem Bildschirm kannst du mitlesen.`,"talk.joinHint":`Beim Start fragt dein Browser nach dem Mikrofon, nach der Kamera erst, wenn du sie einschaltest. Im Chat daneben kannst du mitlesen und eingeben, was sich schlecht sagen lässt.`,"talk.listening":`Hört zu`,"talk.live":`Im Gespräch`,"talk.speaking":`Spricht`,"talk.start":`Gespräch beginnen`,"talk.stop":`Gespräch beenden`,"video.cameraOff":`Kamera aus`,"video.ended":`Anruf beendet`,"video.flip":`Kamera wechseln`,"video.hint":`Beim Beitreten fragt dein Browser nach Mikrofon und Kamera. Im Chat daneben kannst du mitlesen und eingeben, was sich schlecht sagen lässt.`,"video.join":`Beitreten`,"video.leave":`Verlassen`,"video.mute":`Stummschalten`,"video.rejoin":`Wieder beitreten`,"video.unmute":`Stummschaltung aufheben`,"video.you":`Du`,"nav.language":`Sprache`}},jd=`en`,Md=null,Nd=0,Pd=new Set;function Fd(){Nd+=1;for(let e of Pd)e()}function Id(e){e!==jd&&(jd=e,Fd())}function Ld(){return Md}function Rd(){return Md?.lang??jd}function zd(e){return e.note&&kd(e.note,Rd(),Md?.notes)||e.message}var Bd={};function Vd(e){Bd=e??{}}function Hd(e){return Bd[e]??e}function Q(e,t){return Md?.runner[e],wd(Ad,e,jd,t)}var Ud={...Ad.de,"brand.tagline":`Wünsch dir was. Hol dir deinen Wizard.`,"brand.sub":`Er führt dich Schritt für Schritt. Die KI erledigt die Arbeit.`,"auth.dev":`Dev-Login (lokal)`,"auth.legal":`Kein Passwort, keine Registrierung – du meldest dich mit einem bestehenden Konto an.`,"auth.signIn":`Anmelden oder Konto erstellen`,"auth.failed":`Die Anmeldung hat nicht geklappt. Versuch es noch einmal.`,"auth.localTitle":`Dieser Browser ist nicht angemeldet`,"auth.localWhy":`Das Studio läuft auf deinem Computer und lässt nur Browser herein, die seinen Link geöffnet haben. Hier fehlt die Anmeldung – vielleicht wurden die Cookies gelöscht.`,"auth.localLink":`Starte eine neue Sitzung:`,"auth.localStartLink":`Oder gib nur den Link aus, ohne einen Browser zu öffnen. Er gilt einmal, eine Minute lang:`,"auth.wrongHost":`Das Studio läuft unter einer anderen Adresse`,"auth.wrongHostWhy":`Die App auf diesem Computer antwortet nur unter ihrer eigenen Adresse – das schützt sie vor fremden Webseiten. Öffne das Studio dort:`,"auth.unreachable":`Die App antwortet gerade nicht`,"auth.unreachableWhy":`Unter {address} läuft das Studio, aber die App dahinter gibt keine Antwort – sie startet vielleicht gerade neu oder ist beendet. Die Seite versucht es weiter.`,"nav.account":`Konto & Guthaben`,"setup.keysInAccount":`API-Keys für Skripte gehören zu deinem Konto. Du legst sie dort an und ziehst sie dort zurück.`,"setup.openAccount":`Konto öffnen`,"class.label":`Modellklasse`,"class.classifier":`Classifier`,"class.standard":`Standard`,"class.high":`High`,"class.highest":`Highest`,"class.image":`Bild`,"class.video":`Video`,"class.audio":`Audio`,"class.speech":`Sprachausgabe`,"class.classifier.hint":`Zuordnen, Ja/Nein, wenige Werte aus Text ziehen. Am günstigsten.`,"class.standard.hint":`Kurze Texte, eine API aufrufen, umformatieren.`,"class.high.hint":`Recherche mit Werkzeugen, lange Dokumente, Abwägen vieler Quellen.`,"class.highest.hint":`Schweres Abwägen oder Code. Kostet ein Vielfaches von High.`,"class.effort":`Denkaufwand`,"class.effortAuto":`Automatisch`,"class.effort.low":`Niedrig`,"class.effort.medium":`Mittel`,"class.effort.high":`Hoch`,"estimate.step":`≈ {n} Credits, selten mehr als {high}`,"estimate.measured":`gemessen aus den letzten Läufen`,"estimate.formula":`geschätzt, wird nach fünf Läufen genauer`,"estimate.share":`Ein Lauf kostet etwa {run} Credits. Beim Tageslimit sind es höchstens {day} Credits am Tag.`,"local.title":`Modelle`,"local.accountWaiting":`Wartet auf die Anmeldung im Browser …`,"local.accountFailed":`Der Kontodienst ist gerade nicht erreichbar.`,"local.accountExpired":`Die Anmeldung ist abgelaufen. Melde dich neu an.`,"local.sourceNeedsAccount":`Dafür brauchst du ein Konto.`,"local.toAccount":`Zu Einstellungen → Konto`,"local.sourceOwn":`Eigene API-Keys`,"local.keys":`API-Keys`,"local.keysHint":`Ein API-Key reicht. Die Keys liegen im Schlüsselbund dieses Geräts, nie in der Datenbank.`,"local.keySet":`hinterlegt`,"local.keyEmpty":`nicht hinterlegt`,"local.keyRemove":`Entfernen`,"local.classes":`Modell je Klasse`,"local.classesHint":`Ein Schritt nennt nur die Klasse. Hier steht, welches Modell sie bedient, z. B. anthropic/claude-haiku-4.5, openai:gpt-5.4-mini oder ollama:qwen3.`,"local.save":`Speichern`,"local.saved":`Gespeichert`,"local.chat":`Der Chat im Studio antwortet über`,"local.chatModels":`Modellklasse Highest`,"local.chatClaude":`Claude-Abo (Claude Code)`,"local.subscription":`Mit dem Abo baut Claude Code auf diesem Computer den Wizard – angemeldet mit deinem Konto dort. Läufe nutzen weiter API-Keys oder Guthaben.`,"harness.hint":`Texte schreibt {name} auf diesem Computer, mit deinem {sub}. Kein API-Key nötig. Bilder, Videos und Audio brauchen weiter einen API-Key.`,"harness.hintImages":`Texte und Bilder erzeugt {name} auf diesem Computer, mit deinem {sub}. Kein API-Key nötig. Videos und Audio brauchen weiter einen API-Key.`,"harness.found":`{name} {version} gefunden`,"harness.missing":`{name} ist auf diesem Computer nicht installiert.`,"harness.install":`Oder in deinem eigenen Terminal:`,"harness.installButton":`{name} installieren`,"harness.installing":`{name} wird im Terminal unten installiert – das dauert etwa eine Minute. Danach meldest du es an.`,"harness.installEnded":`Die Installation ist fertig, aber {name} ist nicht da. Warum, steht oben.`,"harness.appHere":`Die {app}-App ist auf diesem Computer: {name} meldet sich mit demselben {sub} an.`,"harness.notInstalled":`nicht installiert`,"harness.authSubscription":`Angemeldet mit deinem {sub}.`,"harness.authKey":`Angemeldet mit einem API-Key aus deiner Shell, nicht mit dem Abo. Melde dich hier an, damit es über dein {sub} läuft.`,"harness.authNone":`Noch nicht angemeldet.`,"harness.signIn":`Hier anmelden`,"harness.signingIn":`Die Anmeldung läuft im Terminal unten – dein Browser öffnet sich dafür. Das Terminal schließt sich, sobald die Anmeldung da ist.`,"harness.signInInteractive":`Unten startet {name}. Wähle dort die Anmeldung mit deinem {sub} und melde dich im Browser an. Das Terminal schließt sich, sobald die Anmeldung da ist.`,"harness.loginEnded":`Die Anmeldung wurde beendet, ohne dass {name} angemeldet ist.`,"harness.sub.claude":`Claude-Abo`,"harness.sub.codex":`ChatGPT-Abo`,"harness.sub.gemini":`Google-Konto`,"harness.sub.cursor":`Cursor-Abo`,"harness.desc.claude":`Mit deinem Claude-Abo – kein API-Key nötig.`,"harness.desc.codex":`Mit deinem ChatGPT-Abo – kein API-Key nötig.`,"harness.desc.gemini":`Mit deinem Google-Konto – kein API-Key nötig.`,"harness.desc.cursor":`Mit deinem Cursor-Abo – kein API-Key nötig.`,"harness.ready":`angemeldet`,"local.recheck":`Erneut prüfen`,"local.test":`Testen`,"local.testHint":`Ein kurzer Aufruf prüft, ob das Modell erreichbar ist.`,"local.testOk":`Antwort in {s} s über {ref}: „{reply}“`,"local.testFailed":`Der Test hat nicht geklappt: {error}`,"models.groupCaps":`Fähigkeiten`,"models.groupAccess":`Zugänge`,"models.groupMore":`Weitere Anbieter`,"models.cap.text":`Text & Denken`,"models.cap.text.hint":`Schreibt, fasst zusammen, recherchiert und entscheidet – in fast jedem Schritt.`,"models.cap.image":`Bilder`,"models.cap.image.hint":`Erzeugt Bilder: Logos, Produktfotos, Illustrationen.`,"models.cap.video":`Videos`,"models.cap.video.hint":`Erzeugt kurze Clips aus Text oder aus einem Bild.`,"models.cap.speech":`Sprachausgabe`,"models.cap.speech.hint":`Liest Texte vor: Voice-over, Hörfassungen, Ansagen.`,"models.cap.listening":`Sprachnotizen`,"models.cap.listening.hint":`Versteht Gesprochenes und macht aus Sprachnotizen Text.`,"models.way.local":`Lokales Modell`,"models.way.credits":`Guthaben`,"models.way.creditsTeam":`Guthaben des Teams`,"models.way.none":`nicht eingerichtet`,"models.who":`Wer macht das?`,"models.optSubscription":`Dein Abo`,"models.optKey":`Eigener API-Key`,"models.optLocal":`Lokales Modell`,"models.optLocalNote":`Ollama auf diesem Computer`,"models.optApple":`Apple Intelligence`,"models.optAppleNote":`auf diesem Mac, ohne Internet`,"models.appleOff":`ausgeschaltet – Systemeinstellungen → Apple Intelligence & Siri`,"models.appleLoading":`Apple lädt das Modell noch`,"models.appleDevice":`nicht auf diesem Mac`,"models.appleHint":`Kurze Texte und Entscheidungen (Classifier, Standard) übernimmt Apple Intelligence auf diesem Mac. Nichts verlässt ihn. Recherche, lange Dokumente und Code (High, Highest): {way}.`,"models.appleListenHint":`Sprachnotizen schreibt dieser Mac selbst auf – nichts verlässt ihn. Beim ersten Mal lädt Apple die Sprache nach.`,"models.noteIncluded":`im Abo enthalten`,"models.noteSignedOut":`nicht angemeldet`,"models.noteMissing":`nicht installiert`,"models.noteKey":`API-Key hinterlegt`,"models.noteKeyShort":`Key`,"models.noteSignedIn":`angemeldet`,"models.noteShellKey":`API-Key aus der Shell`,"models.optOther":`Andere`,"models.optCreditsGroup":`engenty`,"models.noteNoKey":`API-Key fehlt`,"models.noteNeedsAccount":`Konto nötig`,"models.notePerImage":`≈ {n} Credits je Bild`,"models.notePerSecond":`≈ {n} Credits je Sekunde`,"models.notePer1k":`≈ {n} Credits je 1000 Zeichen`,"models.notePerMinute":`≈ {n} Credits je Minute`,"models.creditsAuto":`engenty wählt: {model}`,"models.creditsAutoNone":`engenty wählt das Modell`,"models.creditsPickHint":`Abgerechnet in Credits – ohne eigenen API-Key.`,"models.viaCredits":`{name} über engenty-Guthaben`,"models.viaCreditsHint":`Ohne eigenen API-Key, abgerechnet in Credits.`,"models.viaCreditsNeedsAccount":`Mit einem engenty-Konto, abgerechnet in Credits.`,"models.noteUsage":`Credits nach Verbrauch`,"models.model":`Modell`,"models.modelCustom":`Eigenes Modell …`,"models.textSimple":`Einfache Schritte`,"models.textDemanding":`Anspruchsvolle Schritte`,"models.perClass":`Je Klasse anpassen`,"models.manageKey":`API-Key von {name}`,"models.key":`API-Key`,"models.keyFor":`API-Key von {name}`,"models.keyGet":`Key bei {name} holen`,"models.keySave":`Prüfen und speichern`,"models.keyStored":`API-Key hinterlegt`,"models.keyNone":`Kein API-Key`,"models.keyCheck":`Prüfen`,"models.keyReplace":`Ersetzen`,"models.keyRemove":`Entfernen`,"models.keyOk":`Der Key funktioniert.`,"models.keyBad":`Der Key wurde nicht angenommen.`,"models.keyWhereLocal":`Der Key bleibt auf diesem Computer, nie in der Datenbank.`,"models.keyWhereCloud":`Der Key liegt verschlüsselt beim Team. Niemand sieht ihn wieder.`,"models.keyFallback":`Bis der Key da ist, springt das Guthaben ein.`,"models.uses":`Wofür`,"models.useFor":`Verwenden`,"models.inUse":`wird genutzt`,"models.try":`Ausprobieren`,"models.try.text":`Testen`,"models.try.image":`Probebild erzeugen`,"models.try.video":`Probeclip erzeugen`,"models.try.speech":`Probe anhören`,"models.try.listening":`Zuhören testen`,"models.tryCost":`Kostet wie ein echter Aufruf.`,"models.tryCostVideo":`Ein Clip von 4 Sekunden – kostet wie ein echter.`,"models.tryWait":`Wird erzeugt …`,"models.tryWaitVideo":`Ein Clip dauert ein bis zwei Minuten …`,"models.tryOk":`In {s} s mit {model}`,"models.tryHeard":`Gehört: „{text}“`,"models.tryHeardNothing":`Nichts gehört – aber das Modell ist erreichbar.`,"models.tryFailed":`Das hat nicht geklappt: {error}`,"models.creditsName":`engenty-Guthaben`,"models.creditsTeam":`Guthaben des Teams`,"models.creditsLocalLead":`Springt ein, wo kein Abo und kein eigener API-Key eingerichtet ist.`,"models.creditsCloudHint":`Alles ohne eigenen API-Key läuft über das Guthaben. Eigene Keys gehen vor und kosten keine Credits.`,"models.creditsConnectTitle":`Mit einem Konto`,"models.creditsLocalHint":`Mit einem engenty-Konto springt das Guthaben ein, wo nichts Eigenes eingerichtet ist – etwa für Videos ohne eigenen API-Key.`,"models.creditsConnect":`Konto verbinden`,"models.creditsFallback":`Guthaben springt ein`,"models.creditsFallbackOn":`Was kein Abo und keinen eigenen API-Key hat, läuft über das Guthaben.`,"models.creditsFallbackOff":`Aus: Was kein Abo und keinen eigenen API-Key hat, läuft nicht.`,"models.creditsOn":`Läuft über das Guthaben`,"models.creditsNone":`Gerade läuft nichts über das Guthaben.`,"models.creditsTopUp":`Aufladen`,"models.creditsPicks":`engenty wählt das Modell und rechnet in Credits ab.`,"models.creditsModel":`Gerade: {model}.`,"models.clientSignIn":`Anmeldung`,"models.clientImages":`{name} erzeugt Bilder mit deinem {sub} – ohne eigenen API-Key.`,"models.clientNotChosen":`Text läuft gerade nicht über {name}.`,"models.ollamaHint":`Adresse von Ollama und das Modell, das dort läuft.`,"models.readOnly":`Nur Admins des Teams ändern die Modelle.`,"models.viewAs":`Vorschau als`,"models.view.auto":`aktuell`,"models.view.local":`Computer`,"models.view.linked":`Computer + Konto`,"models.view.cloud":`Cloud`,"setup.title":`Setup`,"setup.sub":`engenty kann deine vorhandenen Konten auf deinem Computer nutzen.`,"setup.source":`Womit soll engenty denken?`,"setup.local":`Läuft auf diesem Computer.`,"setup.thisComputer":`Dieser Computer: Space {space} von {team}`,"setup.account":`Dein engenty-Konto`,"setup.accountText":`Dein Team, sein Space und deine Wizards liegen in deinem Konto. Dieser Computer tritt dem Space bei.`,"setup.accountLinked":`Angemeldet als {name}`,"setup.accountCredits":`{credits} Credits`,"setup.creditsChoice":`engenty-Guthaben`,"setup.creditsDesc":`Läuft über das Guthaben deines Kontos, wie in der Cloud. Nichts zu installieren.`,"onboard.kicker1":`Willkommen, {name} · Wer du bist`,"onboard.kicker1Anon":`Willkommen · Wer du bist`,"onboard.team":`Wie heißt dein Team?`,"onboard.teamSub":`Deine Firma, dein Verein oder einfach dein Name. Das Team ist dein Konto: Dort liegen dein Guthaben und deine Wizards. Umbenennen kannst du es jederzeit.`,"onboard.teamPlaceholder":`Platzer Fenster & Türen`,"onboard.kind":`Wofür nutzt du engenty?`,"onboard.kindSub":`Damit wir dir die passenden Vorlagen und Tipps zeigen.`,"onboard.guess":`Aus {domain} geraten: {kind}. Stimmt das nicht, wähl einfach anders.`,"onboard.kindPersonal":`Für mich`,"onboard.kindPersonalSub":`Privat, Hobby, Ausprobieren`,"onboard.kindClub":`Verein`,"onboard.kindClubSub":`Verein, Initiative, Ehrenamt`,"onboard.kindSmall":`Kleines Unternehmen`,"onboard.kindSmallSub":`Selbstständig bis 49 Leute`,"onboard.kindCorp":`Unternehmen`,"onboard.kindCorpSub":`Ab 50 Leuten`,"onboard.personalTitle":`Was wünschst du dir von engenty?`,"onboard.personalPlaceholder":`z. B. Bewerbungen schreiben, Fotos für Kleinanzeigen, Reisen planen`,"onboard.clubTitle":`Erzähl uns von deinem Verein`,"onboard.businessTitle":`Erzähl uns von deinem Unternehmen`,"onboard.clubKind":`Art des Vereins`,"onboard.members":`Mitglieder`,"onboard.yourRole":`Deine Rolle`,"onboard.people":`Wie viele seid ihr?`,"onboard.justMe":`Nur ich`,"onboard.sector":`Branche`,"onboard.sectorPlaceholder":`z. B. Tischlerei, Physiotherapie, Online-Shop`,"onboard.need":`Was brauchst du?`,"onboard.needPlaceholder":`z. B. Angebote schneller schreiben, Anfragen von der Website beantworten`,"onboard.optional":`optional`,"onboard.legalName":`Offizieller Firmenname`,"onboard.legalNamePlaceholder":`z. B. Muster Handels GmbH`,"onboard.phone":`Telefon`,"onboard.phoneWhy":`für Rückfragen zu Vertrag und Rechnung`,"onboard.club.sport":`Sport`,"onboard.club.culture":`Kultur & Musik`,"onboard.club.social":`Soziales`,"onboard.club.education":`Bildung`,"onboard.club.environment":`Umwelt`,"onboard.club.rescue":`Feuerwehr & Rettung`,"onboard.club.other":`Anderes`,"onboard.role.chair":`Vorsitz`,"onboard.role.board":`Vorstand`,"onboard.role.treasurer":`Kasse`,"onboard.role.secretary":`Schriftführung`,"onboard.role.member":`Mitglied`,"onboard.role.management":`Geschäftsführung`,"onboard.role.it":`IT`,"onboard.role.marketing":`Marketing`,"onboard.role.sales":`Vertrieb`,"onboard.role.operations":`Betrieb & Prozesse`,"onboard.role.other":`Anderes`,"onboard.siteNameHint":`Keine Adresse? Ein Name genügt, wir merken ihn uns.`,"onboard.back":`Zurück`,"onboard.kicker2":`Über dich & deine Marke`,"onboard.site":`Wo können die Wizards über dich lesen?`,"onboard.siteSub":`Nenn deine Website, und engenty holt sich Namen, Tätigkeit, Logo und Farben von dort. Jeder Wizard klingt dann wie du und sieht aus wie du. Keine Website? Schreib stattdessen eine Zeile über dich.`,"onboard.sitePlaceholder":`platzer-fenster.at`,"onboard.read":`Einlesen`,"onboard.reading":`Liest …`,"onboard.readDone":`Gelesen: {name}{details}.`,"onboard.readAbout":`, was du tust`,"onboard.readColors":`, {n} Farben`,"onboard.readLogo":`, das Logo`,"onboard.readFailed":`Die Seite ließ sich nicht lesen. Prüf die Adresse, oder schreib eine Zeile über dich.`,"onboard.line":`Lieber eine Zeile schreiben`,"onboard.linePlaceholder":`Wir fertigen und montieren Fenster und Türen in Oberösterreich, für Privathäuser und Bauträger. Freundlich, auf den Punkt.`,"onboard.save":`Speichern`,"onboard.skip":`Später`,"onboard.kicker3":`Wissen`,"onboard.know":`Was sollen die Wizards wissen?`,"onboard.knowSub":`Dokumente, in denen die Wizards nachschlagen dürfen: Preislisten, Broschüren, deine AGB, ein FAQ. PDF, Word, Excel. Ein Wizard antwortet daraus, statt zu raten. Mehr geht jederzeit unter Space → Wissen.`,"onboard.drop":`Dateien hier ablegen oder auswählen`,"onboard.uploading":`liest …`,"onboard.uploaded":`gelesen`,"onboard.uploadFailed":`nicht gelesen`,"onboard.kicker4":`Dein Space`,"onboard.space":`All das liegt in deinem Space.`,"onboard.spaceSub":`Der erste Space deines Teams heißt {space}. Hier liegt alles, was deine Wizards gemeinsam nutzen und erzeugen. Jeder KI-Schritt kennt den Space, darum fragt ein Wizard nie nach deinem Namen oder deinen Preisen. Umbenennen kannst du ihn jederzeit, das Haus in der App-Leiste öffnet ihn.`,"onboard.partInfo":`Info & Marke`,"onboard.partInfoText":`Wer du bist und wie du aussiehst: Titel, Über uns, Logo, Farben, Fakten.`,"onboard.partKnow":`Wissen`,"onboard.partKnowText":`Worin jeder KI-Schritt nachschlägt: deine Dokumente und Seiten.`,"onboard.partData":`Daten`,"onboard.partDataText":`Tabellen und Seiten, die deine Wizards führen: Anfragen, Buchungen, Listen. Füllt sich, während deine Wizards laufen.`,"onboard.partResults":`Ergebnisse`,"onboard.partResultsText":`Alle abgeschlossenen Läufe, nach Wizard sortiert. PDF, Word, Bilder, Video.`,"onboard.build":`Deinen ersten Wizard bauen`,"onboard.continue":`Weiter`,"onboard.step":`Schritt {n} von 4`,"setup.stage.connect":`Verbinden`,"setup.stage.test":`Testen`,"setup.stage.done":`Fertig`,"setup.h.install":`{name} installieren`,"setup.h.signIn":`{name} anmelden`,"setup.h.keys":`API-Key eintragen`,"setup.h.test":`Ein kurzer Test`,"setup.h.done":`Verbunden`,"setup.ready":`Alles bereit.`,"setup.noHarness":`Noch kein KI-Client installiert. Wähle einen aus – er wird dann hier installiert. Oder trage eigene API-Keys ein.`,"setup.ownDesc":`AI Gateway, OpenAI, Anthropic oder Ollama.`,"setup.appleDesc":`Das Modell auf diesem Mac – ohne Konto, ohne Internet.`,"setup.appleHint":`Kurze Texte und Entscheidungen übernimmt Apple Intelligence auf diesem Mac. Nichts verlässt ihn. Für Recherche, lange Dokumente und Code richtest du später unter Einstellungen → Modelle einen weiteren Zugang ein.`,"setup.appleHintKeeps":`Kurze Texte und Entscheidungen übernimmt Apple Intelligence auf diesem Mac. Nichts verlässt ihn. Recherche, lange Dokumente und Code (High, Highest) bleiben, wie sie waren: {way}.`,"setup.recommended":`Empfohlen`,"setup.done":`Zum Studio`,"setup.untilWorks":`Das Studio öffnet sich, sobald der Test klappt.`,"cloud.notSent":`Diese Version ist noch nicht in der Cloud.`,"cloud.send":`Jetzt senden`,"cloud.resend":`Erneut senden`,"cloud.again":`Um {when} versuchen wir es noch einmal.`,"cloud.sent":`Version {v} · in der Cloud angekommen am {when}`,"cloud.notRunnable":`Version {v} läuft in der Cloud nicht.`,"cloud.keepsRunning":`Dort läuft weiter Version {v}.`,"cloud.nothingRuns":`Dort läuft deshalb noch nichts.`,"cloud.notes":`Was in der Cloud anders läuft:`,"cloud.check":`Was dem jetzigen Stand in der Cloud fehlen würde:`,"cloud.checkBlocking":`So, wie der Wizard jetzt ist, würde er in der Cloud nicht laufen:`,"cloud.documents":`Die Dokumente des Space bleiben auf diesem Computer. In der Cloud arbeiten die Schritte ohne sie.`,"cloud.stepName":`„{title}“`,"cloud.problem.sandbox":`In der Cloud kann kein Code ausgeführt werden. Der Schritt läuft dort ohne.`,"cloud.problem.mcp":`Die MCP-Server des Space gibt es in der Cloud nicht: {detail}.`,"cloud.problem.model":`Dafür gibt es in der Cloud kein Modell.`,"cloud.problem.connector":`Dem Space fehlt in der Cloud ein Connector.`,"cloud.problem.invalid":`So nimmt die Cloud den Wizard nicht an.`,"cloud.spaceLimit":`In der Cloud deines Kontos liegt schon der Space eines anderen Computers:`,"cloud.replace":`Bisherigen Space ersetzen`,"cloud.replaceConfirm":`Den bisherigen Space aus der Cloud entfernen? Seine Wizards und ihre Links verschwinden dort. Danach kommt in der Cloud an, was hier veröffentlicht ist.`,"cloud.noticeError":`Hier veröffentlicht. In der Cloud ist diese Version nicht angekommen – mehr dazu unten.`,"cloud.noticeNotRunnable":`Hier veröffentlicht. In der Cloud läuft diese Version nicht – mehr dazu unten.`,"readonly.wizard":`Diesen Wizard bearbeitest du in engenty wizards auf deinem Computer. Veröffentlichst du ihn dort, läuft die neue Version hier.`,"readonly.project":`Diesen Space bearbeitest du in engenty wizards auf deinem Computer. Änderungen erscheinen hier, sobald du dort wieder einen Wizard veröffentlichst.`,"readonly.server":`Hier laufen die Wizards, die du in engenty wizards auf deinem Computer veröffentlichst. Gebaut und bearbeitet wird dort.`,"nav.wizards":`Wizards`,"nav.spaceMenu":`Space-Menü`,"nav.renameSpace":`Space-Namen bearbeiten`,"nav.wizardsInSpace":`Wizards im Space`,"nav.addWizard":`Wizard hinzufügen`,"nav.spaceLocal":`Auf diesem Computer`,"nav.spaceCloud":`In der Cloud`,"nav.settings":`Einstellungen`,"nav.project":`Space`,"nav.switchSpace":`Space wechseln`,"nav.addSpace":`Space hinzufügen`,"nav.wizardCount":{one:`{n} Wizard`,other:`{n} Wizards`},"appbar.position":`Position`,"appbar.left":`Links`,"appbar.top":`Oben`,"appbar.right":`Rechts`,"appbar.bottom":`Unten`,"appbar.theme":`Farbschema`,"appbar.light":`Hell`,"appbar.dark":`Dunkel`,"appbar.system":`Systemstandard`,"account.title":`Konto`,"account.hint":`Wie dich die App nennt und wie man dich erreicht.`,"account.initials":`Dein Kürzel im Menü oben rechts: die Anfangsbuchstaben deines Namens.`,"account.name":`Name`,"account.nameHint":`Anfangs steht hier der Benutzername dieses Computers.`,"account.fromAccount":`Name und E-Mail kommen aus deinem Konto.`,"account.about":`Über dich`,"account.aboutHint":`Wer du bist und was du machst.`,"account.email":`E-Mail`,"account.phone":`Telefon`,"account.connection":`engenty.ai`,"account.connectionHint":`Anmeldung, Guthaben und die Cloud, in der deine Wizards für alle laufen.`,"account.profile":`Profil`,"account.local":`Auf deinem Computer`,"account.localText":`Diese App läuft auf deinem Computer und ist mit keinem Konto verbunden. Wizards, Space und Dateien bleiben hier.`,"account.linked":`Verbunden`,"account.with":`Mit einem Konto`,"account.withCredits":`Guthaben für die Modelle, wo kein KI-Client installiert ist. Kein API-Key nötig.`,"account.withCloud":`Was du veröffentlichst, läuft auch auf engenty.ai, über einen öffentlichen Link – auch wenn dein Computer aus ist.`,"account.signIn":`Anmelden`,"account.signInAgain":`Neu anmelden`,"account.new":`Noch kein Konto?`,"account.newHint":`Ein neues Konto braucht einen Einladungscode. Trag ihn hier ein, dann steht er bei der Registrierung schon im Formular.`,"account.code":`Einladungscode`,"account.create":`Konto erstellen`,"account.credits":`Guthaben`,"account.topUp":`Aufladen`,"account.expires":{one:`{n} Credit gültig bis {date}`,other:`{n} Credits gültig bis {date}`},"account.kind.start":`Startguthaben`,"account.kind.monthly":`Monatsguthaben`,"account.kind.gift":`Geschenkt`,"account.cloud":`Was du hier veröffentlichst, läuft auch auf {host}.`,"account.look":`Darstellung`,"account.lookHint":`Sprache und Design der App in diesem Browser.`,"nav.logout":`Abmelden`,"nav.connected":`Verbunden mit {host}`,"nav.expired":`Anmeldung abgelaufen`,"nav.onlyHere":`Nur auf diesem Computer`,"nav.local":`lokal`,"nav.theme":`Design`,"nav.credits":{one:`{n} Credit`,other:`{n} Credits`},"about.version":`Version {v}`,"about.title":`Über engenty wizards`,"about.kind.script":`Auf deinem Computer`,"about.kind.checkout":`Entwicklungs-Checkout`,"about.kind.npm":`Mit npm installiert`,"about.kind.cloud":`In der Cloud`,"about.update.check":`Nach Updates suchen`,"about.update.checking":`Sucht nach Updates …`,"about.update.upToDate":`Du bist auf dem neuesten Stand.`,"about.update.checkedAt":`zuletzt geprüft {when}`,"about.update.unknown":`Die Prüfung hat nicht geklappt. Keine Verbindung zu GitHub?`,"about.update.off":`Die Suche nach Updates ist abgeschaltet.`,"about.update.manual":`Diese Installation aktualisiert sich nicht selbst: Hol dir die neue Version dort, wo du sie installiert hast.`,"about.tab.new":`Was ist neu`,"about.tab.earlier":`Versionen`,"about.changes":{one:`{n} Änderung`,other:`{n} Änderungen`},"about.change":`1 Änderung`,"about.update.available":`Version {v} von engenty wizards ist da.`,"about.update.install":`Aktualisieren`,"about.update.installing":`Version {v} wird installiert …`,"about.update.restarting":`Startet neu mit Version {v} …`,"about.update.done":`Installiert. Starte engenty wizards neu, um {v} zu nutzen.`,"about.update.failed":`Das Update hat nicht geklappt. Details stehen in logs/update.log.`,"about.update.notes":`Was ist neu`,"about.update.updated":`Aktualisiert auf Version {v}.`,"about.update.ready":`Version {v} ist heruntergeladen und läuft ab dem nächsten Start.`,"about.changelog":`Changelog`,"about.changelogHint":`Was sich von Version zu Version geändert hat.`,"about.changelogEmpty":`Noch keine Einträge.`,"about.unreleased":`Noch nicht veröffentlicht`,"about.breaking":`inkompatibel`,"about.credits":`Open Source`,"about.creditsHint":`engenty wizards und die Open-Source-Software, auf der es aufbaut.`,"about.creditsProduct":`engenty`,"about.creditsBuiltWith":`Gebaut mit`,"about.creditsDeps":`Direkte Abhängigkeiten`,"about.creditsDepsHint":`Was die Teile dieser App selbst einbinden, mit Version und Lizenz – ohne deren eigene Abhängigkeiten.`,"about.creditsShared":`Von mehreren Teilen genutzt`,"about.search":`Suchen …`,"about.noMatches":`Nichts gefunden.`,"theme.dark":`Dunkles Design`,"theme.light":`Helles Design`,"home.title":`Wizards in {space}`,"home.search":`Wizards suchen …`,"home.noMatch":`Keiner deiner Wizards heißt so.`,"home.newFromSearch":`Neuen Wizard bauen: „{q}“`,"home.new":`Neuer Wizard`,"home.import":`Importieren`,"import.failed":`Der Import hat nicht geklappt.`,"home.empty":`Noch keine Wizards in diesem Space.`,"home.live":`Live`,"home.draft":`Entwurf`,"where.here":`Lokal`,"where.hereVersion":`Lokal · Version {v}`,"where.hereHint":`Läuft nur auf diesem Computer, solange die App läuft.`,"where.liveHint":`Läuft auf {host} – für alle mit dem Link.`,"where.liveAt":`Live auf {host} · Version {v}`,"where.note":`1 Hinweis`,"where.notes":{one:`{n} Hinweis`,other:`{n} Hinweise`},"where.sending":`Unterwegs in die Cloud …`,"where.missing":`Nicht in der Cloud`,"home.steps":{one:`{n} Schritt`,other:`{n} Schritte`},"home.all":`Alle`,"home.newProject":`Neuer Space`,"home.projectName":`Name des Space`,"home.projectLimit":{one:`Höchstens {n} Space`,other:`Höchstens {n} Spaces`},"team.title":`Team`,"team.hint":`Wer im Team ist und auf welchem Paket es läuft. Einladen und verwalten kannst du im Konto.`,"team.plan":`Paket`,"team.planFree":`Free`,"team.seats":`{taken} von {limit} Plätzen`,"team.seatsUnlimited":`Plätze ohne Limit`,"team.members":`Mitglieder`,"team.invited":`eingeladen`,"team.you":`du`,"team.manage":`Mitglieder verwalten`,"team.changePlan":`Paket ansehen`,"team.roles":`Inhaber:innen und Admins legen Wizards und Spaces an und löschen sie. Mitglieder bearbeiten die vorhandenen Wizards.`,"team.memberNote":`Du bist Mitglied: Du bearbeitest Wizards. Admins legen neue an und löschen sie.`,"team.failed":`Das Team ließ sich nicht laden.`,"team.role.owner":`Inhaber:in`,"team.role.admin":`Admin`,"team.role.member":`Mitglied`,"models.ownKeysPlan":`Eigene API-Keys gibt es ab dem Pro-Paket. Hier wird mit den Credits des Teams bezahlt.`,"home.fromLocal":`Wird auf deinem Computer bearbeitet.`,"home.syncedAt":`Zuletzt angekommen: {when}.`,"home.local.title":`Hier laufen die Wizards von deinem Computer`,"home.local.text":`Du baust auf deinem eigenen Computer. Was du dort veröffentlichst, läuft hier, für alle mit dem Link.`,"home.local.install":`Installiere engenty wizards auf deinem Computer:`,"home.local.signIn":`Melde dich dort unter Einstellungen → Konto mit diesem Konto an.`,"home.local.publish":`Veröffentliche einen Wizard. Er erscheint dann hier.`,"new.title":`Was soll dein Wizard können?`,"new.placeholder":`z. B. Kund:innen geben ihr Produkt und ihre Zielgruppe ein, der Wizard recherchiert die Konkurrenz und erstellt daraus ein Positionierungs-Briefing als PDF.`,"new.build":`Wizard bauen`,"new.orStarter":`Oder beginne mit einer Vorlage`,"new.import":`Wizard-Datei importieren`,"new.hint":`Du kannst danach alles im Chat ändern.`,"guest.signIn":`Anmelden`,"guest.hint":`Danach meldest du dich an. Dein Wunsch bleibt dabei stehen.`,"onboard.wish":`Dein Wunsch`,"onboard.wishNext":`Gleich danach baut das Studio deinen Wizard.`,"legal.imprint":`Impressum`,"legal.privacy":`Datenschutz`,"legal.terms":`Nutzungsbedingungen`,"new.runsAs":`Läuft als`,"new.where":`Wie soll er laufen?`,"new.web":`Im Browser`,"new.phone":`Am Telefon`,"new.messages":`Per Nachricht`,"new.off":`aus`,"new.ch.steps":`Wizard in Schritten`,"new.ch.chat":`Chat`,"new.ch.talk":`Sprachgespräch`,"new.ch.video":`Videoanruf`,"new.ch.call":`Anruf`,"new.ch.sms":`SMS`,"new.ch.whatsapp":`WhatsApp`,"new.callHandoff":`Was am Telefon nicht geht, kommt per SMS.`,"new.similar":`Ähnliches gibt es schon`,"new.yours":`Deiner`,"new.template":`Vorlage`,"new.open":`Öffnen`,"new.take":`Übernehmen`,"new.more":`{n} weitere …`,"new.dropHint":`Zum Anhängen loslassen`,"editor.resize":`Breite ändern – Doppelklick setzt zurück`,"editor.resizeSheet":`Höhe ändern – Tippen klappt ein und aus`,"editor.export":`Als Wizard-Datei exportieren (.wizard)`,"wizardMenu.label":`Mehr`,"wizardMenu.duplicate":`Duplizieren`,"wizardMenu.delete":`Löschen`,"wizardMenu.deleteTitle":`„{title}“ löschen?`,"wizardMenu.deleteDraft":`Der Wizard und sein Verlauf werden gelöscht. Das lässt sich nicht rückgängig machen.`,"wizardMenu.deletePublished":`Der Wizard wird gelöscht. Sein Link geht dann nicht mehr, und die veröffentlichte Version verschwindet – auch aus der Cloud, wenn ein Konto verbunden ist. Das lässt sich nicht rückgängig machen.`,"addStep.title":`Was soll hier passieren?`,"addStep.placeholder":`Zum Beispiel: eine Karte mit allen gefundenen Objekten, der Preis als Farbe`,"addStep.kind":`Art des Schritts`,"addStep.auto":`KI wählt`,"addStep.empty":`Beschreibe zuerst, was der Schritt tun soll.`,"addStep.busy":`Der Assistent arbeitet noch an der letzten Nachricht. Versuch es gleich noch einmal.`,"addStep.emptyStep":`Leer einfügen`,"addStep.cancel":`Abbrechen`,"addStep.create":`Erstellen`,"addStep.building":`Neuer Schritt wird gebaut …`,"addStep.showChat":`Im Chat ansehen`,"addStep.add":`Schritt hinzufügen`,"surface.preview":`Vorschau`,"surface.code":`Code`,"surface.sampleNote":`Mit Beispieldaten – ein Lauf zeigt seine eigenen.`,"surface.sampleText":`Beispieltext`,"surface.sampleBrand":`Deine Firma`,"addStep.when":`Wann?`,"addStep.always":`Immer`,"addStep.onlyIf":`Nur wenn …`,"addStep.aiDecides":`KI entscheidet …`,"addStep.ifPlaceholder":`Zum Beispiel: Umsatz unter 100`,"addStep.askPlaceholder":`Zum Beispiel: Die Person will ihr Geld zurück`,"addStep.whenEmpty":`Sag, wann der Schritt kommen soll.`,"addStep.messageIf":`Nur wenn: {text} – sonst geht es nach „{from}“ weiter wie bisher.`,"addStep.messageAsk":`KI entscheidet: {text} – sonst geht es nach „{from}“ weiter wie bisher.`,"addStep.here":`Hier einen Schritt einfügen`,"addStep.between":`Zwischen „{before}“ und „{after}“`,"addStep.after":`Nach „{title}“`,"addStep.first":`Als erster Schritt, vor „{title}“`,"addStep.message":`Neuer Schritt · {place}`,"addStep.messageAs":`Neuer Schritt ({kind}) · {place}`,"widget.missing":`Das Widget ist noch nicht gebaut.`,"widget.what":`Was soll das Widget zeigen? (optional)`,"widget.build":`Vom Assistenten bauen lassen`,"widget.upload":`Eigenes HTML hochladen`,"widget.buildMessage":`Bitte baue das Widget „{title}“. {what}`,"editor.chat":`Assistent`,"editor.flow":`Ablauf`,"editor.dropToAttach":`Loslassen, um es der Nachricht anzuhängen`,"editor.memory":`Gedächtnis`,"memory.explain":`Was der Wizard über alle Läufe hinweg weiß. Dazu gehören Notizen, die KI-Schritte mit dem Werkzeug „Seiten“ lesen und fortschreiben, und die Tabellen seiner geteilten Listen. Dieselben Daten findest du auch unter Daten.`,"memory.unused":`Noch nutzt kein Schritt das Gedächtnis. Bitte den Assistenten, dass sich ein KI-Schritt etwas merken soll.`,"memory.none":`Noch nichts gemerkt.`,"memory.add":`Notiz`,"memory.newNote":`Notiz`,"memory.back":`Gedächtnis`,"memory.testCopy":`Testläufe lesen das Gedächtnis, schreiben aber in eine eigene Kopie, die mit dem Lauf verschwindet.`,"editor.step":`Schritte`,"editor.runs":`Läufe`,"editor.reviewEditable":`bearbeitbar`,"editor.reviewRedo":`kann neu erstellt werden`,"editor.otherwise":`sonst`,"editor.next.title":`Nächster Schritt`,"editor.next.ways":{one:`Nächster Schritt · {count} Weg`,other:`Nächster Schritt · {count} Wege`},"editor.next.open":`Schritt öffnen`,"editor.next.then":`Danach`,"editor.next.fold":`Zuklappen`,"editor.next.unfold":`Aufklappen`,"editor.branch.ai":`KI`,"editor.branch.addWhen":`Bedingung`,"editor.branch.when":`Weiter, wenn`,"editor.branch.pick":`Wählen …`,"editor.branch.and":`und`,"editor.branch.statement":`Aussage`,"editor.branch.none":`Keine trifft klar zu`,"editor.branch.how":`Das entscheidet ein Entscheidungsmodell (Jev), wenn es eines dafür gibt. Sonst entscheidet das Sprachmodell der Klasse Classifier. Liegen die zwei wahrscheinlichsten Antworten weniger als 10 Punkte auseinander, gilt „keine“.`,"editor.branch.lastRun":`Im letzten Testlauf entschieden von {source}.`,"editor.branch.bySystemOne":`einem Entscheidungsmodell`,"editor.branch.byLlm":`dem Sprachmodell`,"editor.branch.notYet":`Ein Testlauf zeigt hier, wie die KI entschieden hat.`,"editor.branch.end":`Ende`,"editor.branch.max":`Höchstens so oft (sonst 10)`,"editor.branch.remove":`Verzweigung entfernen`,"editor.branch.addAsk":`KI entscheidet`,"editor.branch.newAsk":`Die Person möchte …`,"editor.whenFilled":`{field} ausgefüllt`,"editor.whenEmpty":`{field} leer`,"editor.whenContains":`{field} enthält {value}`,"editor.whenAsk":`entscheidet: {text}`,"editor.surfaceJson":`Ansicht (JSON)`,"editor.fieldAsk":`Oder: zeigen, wenn die KI das für zutreffend hält …`,"editor.atMost":`höchstens {count}×`,"editor.shownWhen":`Nur zeigen, wenn`,"editor.shownAlways":`Immer zeigen`,"editor.conditionValue":`Wert`,"editor.optionsFrom":`Auswahl aus früheren Daten`,"editor.optionsFixed":`Feste Auswahl`,"editor.op.equals":`ist`,"editor.op.notEquals":`ist nicht`,"editor.op.in":`ist eins von`,"editor.op.notEmpty":`ist ausgefüllt`,"editor.op.empty":`ist leer`,"editor.op.gt":`größer als`,"editor.op.lt":`kleiner als`,"editor.op.contains":`enthält`,"editor.conditionsMore":{one:`und {count} weitere Bedingung`,other:`und {count} weitere Bedingungen`},"tool.web_search":`Websuche`,"tool.web_fetch":`Webseiten lesen`,"tool.browser":`Browser`,"tool.sandbox":`Code & Shell`,"tool.image":`Bilder`,"tool.http":`API`,"tool.pages":`Seiten`,"editor.test":`Testen`,"editor.share":`Teilen`,"editor.published":`Live · Version {v}`,"editor.notPublished":`Noch nicht veröffentlicht`,"editor.composer":`Beschreibe, was sich ändern soll …`,"editor.attach":`Dateien anhängen`,"editor.detach":`Entfernen`,"editor.attached":`Angehängt`,"editor.thread":`Verlauf`,"editor.voice":`Diktieren`,"editor.voiceStop":`Diktat beenden`,"editor.listening":`Ich höre zu …`,"editor.transcribing":`Wird in Text umgewandelt …`,"editor.micDenied":`Das Mikrofon ist für diese Seite nicht freigegeben. Erlaube es in den Website-Einstellungen deines Browsers.`,"editor.building":`Baut den Ablauf …`,"editor.files":`Dateien`,"files.explain":`Diese Dateien nutzt dein Wizard bei jedem Lauf, etwa Widget-Code, Bibliotheken oder Preislisten. Der Assistent legt sie im Chat an. Du kannst auch eigene hochladen.`,"files.upload":`Hochladen`,"files.drop":`Zum Hochladen loslassen`,"files.count":{one:`{n} Datei · {size}`,other:`{n} Dateien · {size}`},"files.empty":`Noch keine Dateien. Zieh Dateien hierher oder bitte den Assistenten, ein Widget zu bauen.`,"files.download":`Herunterladen`,"files.delete":`Löschen`,"files.confirmDelete":`„{path}“ löschen?`,"files.none":`Dieser Wizard hat keine Dateien.`,"editor.thinking":`Denkt nach …`,"editor.chatBroken":`Die Verbindung ist abgebrochen. Was schon gebaut war, ist gespeichert. Schick die Nachricht noch einmal.`,"editor.issues":`Bevor du testest oder teilst, braucht der Wizard noch Korrekturen:`,"editor.fixWithChat":`Vom Assistenten beheben lassen`,"editor.models.blocking":`So kann der Wizard nicht starten. Es fehlen Modelle:`,"editor.models.optional":`Diese Schritte laufen so nicht. Wähle beim Testen einen Weg ohne sie oder richte die Modelle ein:`,"editor.models.settings":`Modelle einrichten`,"editor.prevStep":`Vorheriger Schritt`,"editor.nextStep":`Nächster Schritt`,"editor.deleteStep":`Schritt löschen`,"editor.holdToDelete":`Zum Löschen gedrückt halten`,"editor.deleting":`Wird gelöscht …`,"editor.moveUp":`Nach oben`,"editor.moveDown":`Nach unten`,"editor.noRuns":`Noch keine Läufe.`,"editor.restart":`Neu starten`,"editor.close":`Schließen`,"runDrawer.expand":`Ganzes Fenster`,"runDrawer.shrink":`Zurück an den Rand`,"editor.chatHello":`Beschreibe mir, was dein Wizard tun soll. Ich baue den Ablauf und du siehst ihn links als Diagramm.`,"shareRun.button":`Teilen`,"shareRun.title":`Ergebnis teilen`,"shareRun.email":`E-Mail`,"shareRun.more":`Mehr …`,"shareRun.until":`Der Link ist bis {date} gültig.`,"shareRun.kept":`Der Link gilt, bis du ihn zurückziehst.`,"shareRun.withdraw":`Link zurückziehen`,"sharePage.gone":`Dieser Link ist abgelaufen oder wurde zurückgezogen.`,"sharePage.own":`Selbst ausprobieren`,"sharePage.until":`Geteilt · verfügbar bis {date}`,"sharePage.shared":`Geteilt am {date}`,"share.publishing":`Wird veröffentlicht …`,"share.firstTitle":`Beim Teilen veröffentlicht`,"share.firstText":`Version {v} ist live. Hinein kommt nur, wer den Link bekommt.`,"share.notReady":`Noch nicht bereit zum Teilen`,"share.notReadyHint":`Beim ersten Teilen wird er veröffentlicht – vorher muss das stimmen:`,"share.stillBuilding":`Der Assistent baut ihn noch. Sobald er fertig ist, wird er beim Teilen veröffentlicht.`,"live.open":`Änderungen veröffentlichen`,"live.openShort":`Veröffentlichen`,"live.title":`Änderungen veröffentlichen`,"live.intro":`Andere sehen Version {v}. Veröffentlichst du, wird daraus Version {next}. Der Link bleibt gleich.`,"live.changed":`Was sich geändert hat`,"live.nothing":`Nichts, was Schritte oder Dateien ändert.`,"live.stepAdded":`Neuer Schritt „{name}“`,"live.stepRemoved":`Schritt „{name}“ entfernt`,"live.stepChanged":`„{name}“: {parts}`,"live.wizardChanged":`Der Wizard selbst: {parts}`,"live.order":`Reihenfolge der Schritte`,"live.fileAdded":`Datei „{name}“ neu`,"live.fileRemoved":`Datei „{name}“ entfernt`,"live.fileChanged":`Datei „{name}“ ersetzt`,"live.and":`und`,"live.part.title":`Titel`,"live.part.description":`Beschreibung`,"live.part.fields":`Felder`,"live.part.cta":`Knopf`,"live.part.instructions":`Anweisung`,"live.part.tools":`Werkzeuge`,"live.part.connections":`Verbindungen`,"live.part.output":`Ergebnis`,"live.part.model":`Modell`,"live.part.next":`was danach kommt`,"live.part.each":`Wiederholung`,"live.part.intro":`Begrüßung`,"live.part.avatar":`engenty`,"live.part.lists":`Listen`,"live.part.other":`Einstellungen`,"live.fixFirst":`Erst beheben, dann veröffentlichen`,"live.tested":`Getestet {when} – mit diesen Änderungen`,"live.testedFailed":`Der Test {when} mit diesen Änderungen hat nicht geklappt.`,"live.justNow":`gerade eben`,"live.seeRun":`Lauf ansehen`,"live.untested":`Noch nicht mit diesen Änderungen getestet.`,"live.test":`Jetzt testen`,"live.keepRunning":`Wer gerade mittendrin ist, macht mit Version {v} weiter.`,"live.cost":`Ein Lauf kostet jetzt etwa {after} statt {before} Credits.`,"live.cloud":`Version {v} kommt auch in der Cloud deines Kontos an.`,"live.cancel":`Abbrechen`,"live.go":`Veröffentlichen`,"live.going":`Wird veröffentlicht …`,"live.done":`Version {v} ist live`,"live.doneHint":`Neue Läufe starten mit Version {v}. Wer mittendrin war, macht mit Version {was} weiter.`,"live.doneCloud":`Neue Läufe starten mit Version {v}, hier und in der Cloud. Wer mittendrin war, macht mit Version {was} weiter.`,"live.close":`Fertig`,"share.titleOf":`„{title}“ teilen`,"share.access":`Zugriff`,"share.anyone":`Jeder mit dem Link`,"share.anyoneMenu":`kann ihn öffnen und ausfüllen`,"share.anyoneHint":`kann ihn öffnen und ausfüllen · bis zu {n} Läufe am Tag`,"share.onlyYou":`Nur du`,"share.onlyYouHint":`Der Link ist aus. Du testest ihn im Studio.`,"share.thisComputer":`Nur auf diesem Computer`,"share.thisComputerHint":`Andere erreichen ihn erst über die Cloud.`,"share.ways":`So erreichen ihn andere`,"share.change":`Ändern`,"share.copyLink":`Link`,"share.copyNumber":`Nummer`,"share.copyLinkFor":`Link für {name} kopieren`,"share.copyNumberFor":`Nummer für {name} kopieren`,"share.keywordTo":`„{keyword}“ an {number}`,"share.unset":`Noch nicht eingerichtet`,"share.setUp":`Einrichten`,"share.waiting":`Wartet`,"share.notInPlan":`Nicht in deinem Paket`,"share.seePlan":`{plan} ansehen`,"share.seePlans":`Pakete ansehen`,"share.offNote":`Solange nur du Zugriff hast, sehen alle anderen nur einen Hinweis.`,"share.opensSteps":`in Schritten`,"share.opensAs":`als {name}`,"share.linkNote":`Der kopierte Link öffnet ihn {how} und bietet die anderen Wege gleich mit an.`,"share.copyMain":`Link kopieren`,"share.notPublished":`Noch nicht veröffentlicht`,"share.changes":`Andere sehen Version {v}. Deine Änderungen sind noch nicht live.`,"share.localHint":`Hier läuft er nur auf diesem Computer. Mit einem Konto läuft er auch in der Cloud – dort öffnen ihn alle.`,"share.back":`Zurück`,"share.close":`Schließen`,"share.done":`Fertig`,"share.qrOpens":`Öffnet`,"share.qrMessage":`Mit der Handykamera scannen: {name} öffnet sich, das Stichwort steht schon da.`,"share.print":`Drucken`,"share.download":`Herunterladen`,"share.onWebsite":`Auf deiner Website`,"share.webShows":`Was zeigt die Website?`,"share.webWhere":`Wo auf der Seite?`,"share.webCode":`Code für deine Seite`,"share.copyCode":`Code kopieren`,"share.webNeedsLink":`Der Code für deine Seite braucht einen Link, den alle erreichen: veröffentlicht, für jeden mit dem Link.`,"share.wpLine":`WordPress? Mit unserem Plugin geht es ohne Code.`,"share.wpPackageLink":`Ohne Konto: als Wizard-Datei`,"share.place.inline":`In der Seite`,"share.place.inlineHint":`Er steht mitten auf deiner Seite, wo du den Code einfügst.`,"share.place.button":`Hinter einem Knopf`,"share.place.buttonHint":`Ein Knopf auf deiner Seite öffnet ihn in einem Fenster.`,"share.place.bubble":`Als schwebender Knopf`,"share.place.bubbleHint":`Er sitzt unten rechts auf jeder Seite, ein Klick öffnet ihn. Füg den Code am besten in die Fußzeile ein.`,"share.place.popout":`Als Chat-Knopf`,"share.place.popoutHint":`Er sitzt unten rechts auf jeder Seite, ein Klick öffnet den Chat. Füg den Code am besten in die Fußzeile ein.`,"share.runs":`Läufe`,"share.newLink":`Neuer Link`,"share.rotated":`Neuer Link erzeugt`,"share.link":`Link`,"share.copy":`Kopieren`,"share.limit":`Höchstens am Tag`,"translate.offer":`Übersetzung anbieten`,"translate.offerHint":`Wer eine andere Sprache spricht, kann den Wizard in seiner Sprache lesen. Die erste Übersetzung in eine Sprache ist ein kurzer KI-Aufruf, danach wird sie nur noch gelesen.`,"translate.byYou":`Von dir bearbeitet`,"translate.byMachine":`Maschinell übersetzt`,"translate.edit":`Übersetzung bearbeiten`,"translate.delete":`Übersetzung löschen`,"translate.none":`Noch keine Übersetzung. Sie entsteht, sobald jemand den Wizard in einer anderen Sprache öffnet.`,"translate.save":`Speichern`,"translate.editHint":`Was du hier änderst, bleibt auch nach dem nächsten Veröffentlichen, solange der Originaltext gleich bleibt. Platzhalter in geschweiften Klammern bleiben, wie sie sind.`,"share.rotate":`Neuen Link erzeugen`,"share.rotateHint":`Der alte Link und der QR-Code gehen danach nicht mehr.`,"share.website":`Website`,"share.openHere":`Auf diesem Computer testen`,"share.settings":`Einstellungen`,"share.rotateCloud":`Der alte Link und der QR-Code gehen danach nicht mehr – auch in der Cloud.`,"share.others":`Mit anderen teilen`,"share.details":`Details`,"teaser.link":`Dieser Link geht nur auf diesem Computer, solange die App läuft. Mit einem Konto läuft der Wizard auch auf engenty.ai – mit einem Link für alle.`,"teaser.models":`Ohne eigenen API-Key: Mit einem Konto laufen Text, Bilder und Videos über das Guthaben.`,"teaser.connect":`Konto verbinden`,"teaser.modelsLinked":`Oder über das Guthaben deines Kontos: Wähle unter Modelle „engenty-Guthaben“.`,"share.open":`Öffnen`,"share.qr":`QR-Code`,"share.qrHint":`Mit der Handykamera scannen: Der Wizard öffnet sich – in der App engenty wizards, wenn sie installiert ist.`,"share.code":`ID für die App:`,"share.readOnly":`Ob der Link aktiv ist und wie viele Läufe er am Tag zulässt, stellst du auf deinem Computer ein.`,"share.fit.no":`Nicht möglich: {steps}`,"chat.view":`Ansicht`,"chat.steps":`Schritte`,"chat.chat":`Chat`,"video.chat":`Chat`,"type.page":`Seite`,"type.agent":`KI-Schritt`,"type.generate":`Erzeugen`,"type.surface":`Ansicht`,"type.widget":`Widget`,"type.film":`Film`,"type.review":`Prüfen`,"type.result":`Ergebnis`,"run.regenerate":`Neue Variante`,"run.regenerateNote":`Was soll anders werden?`,"market.search":`Vorlage suchen …`,"market.hits":`Aus dem Marktplatz`,"market.all":`Alle`,"market.industry":`Branche`,"market.format":`Ergebnis`,"market.capability":`Fähigkeit`,"market.unavailable":`nicht eingerichtet`,"market.without":`Geht auch ohne: {list}`,"market.optional":`nicht eingerichtet, geht auch ohne`,"market.optionalHint":`Läuft hier ohne {list}: Antworten, die das bräuchten, sind im Wizard gesperrt. Einrichten kannst du es unter Modelle.`,"market.missing":`Hier nicht eingerichtet: {list}`,"market.plan":`Paket`,"market.pro":`Pro`,"market.proHint":`Braucht Plugins, die mit Pro auf engenty.ai dabei sind.`,"market.needsPro":`Mit Pro: braucht {list}`,"market.needsProHint":`Diese Vorlage braucht {list}. Die Plugins sind mit Pro und Team auf engenty.ai dabei.`,"market.missingHint":`Dafür fehlt hier ein Modell: {list}. Richte es unter Modelle ein.`,"market.none":`Keine Vorlage passt zu dieser Auswahl.`,"market.notFound":`Diese Vorlage gibt es nicht, oder sie wurde entfernt.`,"market.star":`Merken`,"market.starred":`Gemerkt`,"market.starHint":`Gemerkte Vorlagen liegen auf diesem Computer bereit, auch ohne Verbindung.`,"market.fromPlugin":`Kommt mit dem Plugin „{name}“`,"market.noneStarred":`Du hast noch keine Vorlage gemerkt.`,"market.offline":`Keine Verbindung zum Marktplatz: Du siehst die Vorlagen, die hier bereitliegen.`,"market.more":`Mehr anzeigen`,"market.reset":`Auswahl zurücksetzen`,"market.count":{one:`{n} Vorlage`,other:`{n} Vorlagen`},"market.countOf":`{n} von {all} Vorlagen`,"market.countOfShort":`{n} von {all}`,"market.resetShort":`Zurücksetzen`,"market.minutes":`≈ {n} Min.`,"market.credits":`≈ {n} Credits pro Lauf`,"market.needsUpdate":`Braucht eine neuere App`,"market.needsUpdateHint":`Diese Vorlage nutzt Funktionen, die deine App noch nicht kennt. Aktualisiere die App, dann kannst du sie verwenden.`,"market.use":`Mit dieser Vorlage starten`,"market.steps":`So läuft der Wizard ab`,"market.duration":`Dauer`,"market.durationHint":`vom Start bis zum Ergebnis, mit {n} Angaben von dir`,"market.result":`Ergebnis`,"market.creditsRange":`≈ {n} Credits`,"market.creditsHint":`pro Lauf geschätzt, selten mehr als das Doppelte`,"market.needs":`Braucht`,"market.cost":`Kosten`,"new.forWebsite":`Kleine Helfer für deine Website`,"run.download":`Herunterladen`,"run.required":`Pflichtfeld`,"settings.title":`Einstellungen`,"settings.name":`Name`,"settings.mcp":`Verbundene Systeme`,"settings.mcpHint":`KI-Schritte können in diese Systeme schreiben oder daraus lesen – nur, wenn du sie im Schritt freigibst.`,"settings.addServer":`System verbinden`,"settings.serverName":`Name`,"settings.serverUrl":`MCP-URL`,"settings.serverHeader":`Authorization-Header (optional)`,"settings.save":`Speichern`,"settings.saved":`Gespeichert`,"settings.delete":`Space löschen`,"settings.noProject":`Hier erscheint dein Space, sobald du auf deinem Computer den ersten Wizard veröffentlichst.`,"settings.copy":`Kopieren`,"settings.copied":`Kopiert`,"settings.lastUsed":`zuletzt {when}`,"settings.neverUsed":`noch nie benutzt`,"settings.revoke":`API-Key löschen`,"mcp.appsDisconnect":`Austragen`,"plugins.title":`Plugins`,"plugins.hint":`Plugins erweitern diese App um Seiten, Einstellungen und Werkzeuge für Schritte. Sie laufen mit allen Rechten der App: Installiere nur, was du kennst.`,"plugins.hintManaged":`Diese Plugins sind für dein Konto freigeschaltet.`,"plugins.reload":`Neu laden`,"plugins.rescan":`Neu suchen`,"plugins.tools":`Werkzeuge für Schritte`,"plugins.serverFailed":`Der Server-Teil ließ sich nicht laden: {error}`,"plugins.studioFailed":`Der Studio-Teil ließ sich nicht laden: {error}`,"plugins.problems":`Fehlerhafte Plugins`,"plugins.crashed":`Dieser Teil eines Plugins ist abgestürzt.`,"plugins.none":`Keine eigenen Plugins installiert.`,"pro.title":`Pro-Module`,"pro.hint":`Diese Module gehören zu deinem Paket (Pro, Team) und laufen auf deinem Computer. Sie kommen von deinem engenty-Konto und sind von engenty signiert. Sie bleiben aktiv, solange dein Paket sie enthält – ohne Internet bis zu einer Woche.`,"pro.check":`Paket prüfen`,"pro.notLinked":`Verbinde dein engenty-Konto (Einstellungen → Konto), um die Module deines Pakets hier zu nutzen.`,"pro.plan":`Paket: {plan}`,"pro.confirmedUntil":`bestätigt bis {date}`,"pro.plans":`Pakete`,"pro.on":`Aktiv`,"pro.notInPlan":`Nicht in deinem Paket`,"pro.install":`Installieren`,"pro.update":`Aktualisieren`,"pro.remove":`Entfernen`,"pro.none":`Für diese Version ({runtime}) gibt es noch keine Pro-Module.`,"pro.held.plan":`Nicht in deinem Paket`,"pro.held.release":`Wird für diese Version neu geladen`,"pro.held.unconfirmed":`Paket nicht bestätigt – online prüfen`,"integrate.nav":`Einbinden`,"integrate.title":`Deine Wizards in deinen KI-Apps`,"integrate.intro":`Starte Wizards direkt im Chat von Claude, ChatGPT, Cursor und Co. Dort füllst du die Schritte aus und bekommst das Ergebnis. Die KI läuft über das Abo, das du schon hast.`,"integrate.introManaged":`Starte deine Wizards direkt im Chat von claude.ai, ChatGPT, Claude Desktop und Co. Dort füllst du die Schritte aus und bekommst das Ergebnis.`,"integrate.groupHere":`Auf diesem Computer`,"integrate.groupCloud":`Über engenty.ai`,"integrate.groupBrowser":`Im Browser`,"integrate.groupDesktop":`Auf deinem Computer`,"integrate.groupMore":`Weitere Apps`,"integrate.groupShare":`Teilen`,"integrate.shareLink":`Per Link teilen`,"integrate.shareSite":`Auf einer Website`,"integrate.wpIntro":`Das Plugin „engenty wizards“ bringt deine veröffentlichten Wizards auf eine WordPress-Seite: als Block, Shortcode, Elementor-Widget oder schwebenden Knopf unten rechts. Ergebnisse, Kontakte und Termine stehen dann auch im WordPress-Admin.`,"integrate.wpInstall":`1 · Plugin installieren`,"integrate.wpInstallHint":`In WordPress unter Plugins → Installieren → Plugin hochladen die ZIP-Datei wählen und aktivieren.`,"integrate.wpDownload":`engenty-wizards.zip laden`,"integrate.wpConnect":`2 · Verbinden`,"integrate.wpConnectHint":`Klick im WordPress-Admin unter „engenty“ auf „Eigene KI erstellen“ (neues Konto) oder „Anmelden“. Danach liest engenty die Website ein: Name, Logo, Farben, Kontaktdaten und ihre Seiten als Wissen.`,"integrate.wpConnectLocal":`Das Plugin verbindet sich mit einem Konto auf engenty.ai, nicht mit diesem Computer. Verknüpfe hier dein Konto und veröffentliche deine Wizards dorthin. Dann wählst du sie in WordPress aus.`,"integrate.wpPlace":`3 · Auf die Seite bringen`,"integrate.wpPlaceHint":`Block „engenty Wizard“, das gleichnamige Elementor-Widget, der schwebende Knopf aus den Einstellungen des Plugins oder dieser Shortcode mit der ID des Wizards:`,"integrate.wpSampleLabel":`Anfrage starten`,"share.wpPlugin":`Plugin laden`,"share.wpLocal":`Ohne Konto, auf der Website selbst`,"share.wpLocalHint":`Importierst du ihn als Wizard-Datei in ein WordPress 7, nutzt der Wizard den KI-Anbieter der Website und braucht kein Konto. Was er dort braucht, laut Galerie:`,"share.wpPackage":`Wizard-Datei herunterladen`,"share.wpPackageDraft":`Entwurf als Wizard-Datei`,"share.wpKnowledge":`Wissen mitnehmen`,"share.wpKnowledgeHint":`Die Seiten dieses Space, in denen der Wizard sonst nachliest, kommen als Dateien mit (bis 2 MB).`,"share.wpFull":`Läuft dort vollständig`,"share.wpLess":`Läuft mit weniger`,"share.wpNo":`Braucht ein Konto`,"share.wpNeedsAccount":`Mit Konto: braucht {list}`,"share.wpHelp":`Im Plugin: engenty → Wizards → Importieren. Ohne Konto bleiben die Ergebnisse in WordPress. Kontakte, Termine und Dateien gibt es nur über das Konto.`,"need.full":`läuft`,"need.missing":`nicht eingerichtet`,"need.optional":`geht auch ohne`,"need.lists":`Listen, die der Wizard zwischen Läufen behält`,"need.memory":`Das Gedächtnis des Wizards`,"need.each":`Ein Lauf je Eintrag (hier nacheinander)`,"need.field:slot":`Terminwahl aus freien Zeiten`,"need.asset:document":`Dokumente erzeugen (PDF, Word)`,"need.asset:dashboard":`Dashboards erzeugen`,"need.tool:pages":`Die Seiten des Space lesen`,"need.format":`Ergebnis als {format}`,"integrate.wpLocal":`Ohne Konto`,"integrate.wpLocalHint":`Ein WordPress 7 mit eigenem KI-Anbieter (Einstellungen → Connectors) lässt Wizards auch ohne Konto laufen. Das geht mit mitgelieferten Vorlagen oder mit einer Wizard-Datei aus dem Teilen-Dialog eines Wizards. Dort steht je Wizard, ob er ganz, mit weniger oder nur mit Konto läuft.`,"integrate.wpPro":`Mit Pro`,"integrate.wpProHint":`Kontakte und Termine aus deinen Wizards stehen im WordPress-Admin. Wizards aus Vorlagen legst du direkt in WordPress an.`,"integrate.soon":`bald`,"integrate.found":`Auf diesem Computer gefunden`,"integrate.stateWorks":`Funktioniert`,"integrate.stateAdded":`Eingetragen, noch nicht getestet`,"integrate.stateNone":`Noch nicht eingerichtet`,"integrate.outRun":`Wizards im Chat starten`,"integrate.outWidget":`Wizard erscheint im Chat`,"integrate.outText":`Wizards als Text im Chat`,"integrate.outSignIn":`Ohne API-Key – du meldest dich an`,"integrate.view":`Ansehen`,"integrate.testIt":`Testen`,"integrate.connectShort":`Verbinden`,"integrate.cloudTitle":`claude.ai und ChatGPT`,"integrate.cloudText":`Laufen im Browser und erreichen deinen Computer nicht. Mit deinem engenty-Konto kommen deine Wizards trotzdem dorthin.`,"integrate.cloudButton":`Über engenty.ai verbinden`,"integrate.steps":`So geht’s`,"integrate.connect":`In {app} eintragen`,"integrate.connectHint":`Trägt engenty wizards in die Einstellungen von {app} ein.`,"integrate.connected":`In {app} eingetragen`,"integrate.notInstalled":`{app} ist auf diesem Computer nicht zu finden. Eintragen geht trotzdem – es wirkt, sobald {app} da ist.`,"integrate.details":`Details`,"integrate.restart":`{app} neu starten`,"integrate.restartHint":`Ganz beenden und wieder öffnen. Wir merken es von selbst – du musst hier nichts klicken.`,"integrate.reload":`Lade die Server in {app} neu oder starte {app} neu. Wir merken es von selbst.`,"integrate.waiting":`Wartet auf {app}`,"integrate.try":`Im Chat ausprobieren`,"integrate.tryHint":`Schreib in einem neuen Chat:`,"integrate.askTool":`Welche Wizards habe ich in engenty?`,"integrate.elsewhere":`{app} auf einem anderen Computer?`,"integrate.byAddress":`Mit Adresse und API-Key verbinden`,"integrate.backHere":`Doch auf diesem Computer verbinden`,"integrate.keyCreate":`API-Key für {app} erstellen`,"integrate.keyHint":`Damit meldet sich {app} an. Er wird nur einmal angezeigt und steht dann gleich im Befehl.`,"integrate.keyReady":`API-Key erstellt – er steht schon im Befehl.`,"integrate.add":`Server eintragen`,"integrate.addressLocal":`Nur auf diesem Computer erreichbar, und nur solange engenty wizards läuft.`,"integrate.works":`Funktioniert`,"integrate.next":`Probier als Nächstes`,"integrate.nextHint":`Kopier einen Satz in einen neuen Chat in {app}.`,"integrate.labelAsk":`Fragen`,"integrate.labelRun":`Ausführen`,"integrate.labelBuild":`Bauen`,"integrate.labelExplain":`Erklären`,"integrate.askRun":`Starte meinen Wizard „{title}“`,"integrate.askBuild":`Bau mir einen Wizard für Newsletter-Entwürfe`,"integrate.askExplain":`Was macht der Wizard „{title}“?`,"integrate.textOnly":`{app} zeigt Wizards als Text: Seiten und Fragen kommen als Nachrichten. Den Wizard selbst als Fenster im Chat zeigen Claude Desktop, Cursor und VS Code.`,"integrate.addedIn":`Eingetragen in {app}`,"integrate.remoteWhy":`{app} läuft auf den Servern seines Herstellers und erreicht deinen Computer nicht. Deine Wizards auf engenty.ai erreicht es schon.`,"integrate.viaAccount":`Über dein engenty-Konto verbinden`,"integrate.tileHere":`Dieser Computer`,"integrate.tileHereText":`Hier baust du weiter wie bisher.`,"integrate.tileCloudText":`Hier laufen deine veröffentlichten Wizards.`,"integrate.tileAppText":`Verbindet sich mit engenty.ai und startet sie im Chat.`,"integrate.linkAccount":`Mit engenty.ai verbinden`,"integrate.linkHint":`Danach zeigen wir dir die Schritte in {app}.`,"integrate.noAccount":`Lieber ohne Konto?`,"integrate.useDesktop":`Claude Desktop geht direkt hier – ein Klick`,"integrate.linked":`Über dein Konto {email}: {app} sieht die Wizards, die du hier veröffentlichst.`,"integrate.openConnectors":`„Konnektoren“ in claude.ai öffnen`,"integrate.open":`{app} öffnen`,"integrate.claudeAiWhere":`Dort: „Eigenen Konnektor hinzufügen“`,"integrate.desktopWhere":`In Claude Desktop: Einstellungen → „Konnektoren“ → „Eigenen Konnektor hinzufügen“`,"integrate.chatgptWhere":`In ChatGPT: Einstellungen → Apps & Connectors → Erweitert → Entwicklermodus, dann „Erstellen“`,"integrate.nameAddress":`Name und Adresse eintragen`,"integrate.name":`Name`,"integrate.address":`Adresse`,"integrate.allow":`Auf „Verbinden“ klicken, anmelden, erlauben`,"integrate.allowHint":`Ein Fenster von engenty öffnet sich. Du meldest dich an und klickst „Erlauben“. So sieht es aus:`,"integrate.allowFirst":`Beim ersten Aufruf anmelden und erlauben`,"integrate.allowFirstHint":`{app} öffnet ein Fenster von engenty. Du meldest dich an und klickst „Erlauben“.`,"integrate.consentPreview":`{app} möchte auf deine Wizards zugreifen`,"integrate.checkSeen":`Verbunden`,"integrate.checkTool":`Werkzeug benutzt`,"integrate.checkWidget":`Wizard im Chat gezeigt`,"integrate.revoke":`Trennen geht jederzeit in deinem Konto – der Zugriff endet sofort.`,"integrate.revokeLink":`Verbundene Programme`,"integrate.needsPublic":`{app} verbindet sich von den Servern seines Herstellers aus. Das geht nur, wenn dieser Server öffentlich über HTTPS erreichbar ist.`,"integrate.file":`In {file} eintragen:`,"integrate.vscode":`In VS Code: „MCP: Open User Configuration“, dann eintragen:`,"integrate.chatgpt":`In ChatGPT: Einstellungen → Apps & Connectors → Erweitert → Entwicklermodus, dann „Erstellen“ mit dieser Adresse:`,"integrate.generic":`In den MCP-Einstellungen der App einen Server mit dieser Adresse anlegen (Streamable HTTP):`,"mcp.terminal":`Im Terminal ausführen:`,"mcp.ccPlugin":`Optional das Plugin – es bringt den Befehl /wizard mit:`,"mcp.codexKey":`Im Terminal ausführen – Codex liest den API-Key aus einer Umgebungsvariable:`,"mcp.claudeAi":`In claude.ai: Einstellungen → „Konnektoren“ → „Eigenen Konnektor hinzufügen“, dann diese Adresse eintragen:`,"mcp.oauth":`Kein API-Key nötig: Beim ersten Aufruf meldet sich deine App im Browser an.`,"mcp.keys":`API-Keys`,"mcp.keysHint":`Jeder API-Key meldet eine App an und hat alle Rechte – behandle ihn wie ein Passwort. Löschst du ihn, ist die App abgemeldet.`,"editor.viaClient":`Über {client}`,"editor.changedVia":`Geändert über {client}`,"editor.flowChanged":`Ablauf aktualisiert`,"editor.merged":`Mit Änderungen von außen zusammengeführt`,"common.remove":`Entfernen`,"common.back":`Zurück`,"editor.fixIssuesAsk":`Bitte behebe diese Probleme im Wizard:`,"runs.status.waiting_input":`wartet`,"runs.status.running":`läuft`,"runs.status.done":`fertig`,"runs.status.failed":`fehlgeschlagen`,"runs.status.cancelled":`abgebrochen`,"step.new.page":`Neue Seite`,"step.new.question":`Neue Frage`,"step.new.agent":`KI-Schritt`,"step.new.agentTask":`Beschreibe die Aufgabe …`,"step.new.image":`Bild erzeugen`,"step.new.imagePrompt":`Beschreibe das Bild …`,"inspector.kind.text":`Kurzer Text`,"inspector.kind.textarea":`Langer Text`,"inspector.kind.number":`Zahl`,"inspector.kind.select":`Auswahl`,"inspector.kind.multiselect":`Mehrfachauswahl`,"inspector.kind.date":`Datum`,"inspector.kind.email":`E-Mail`,"inspector.kind.url":`Link`,"inspector.kind.toggle":`Ja/Nein`,"inspector.kind.color":`Farbe`,"inspector.kind.image":`Bild-Upload`,"inspector.kind.file":`Datei-Upload`,"inspector.kind.items":`Positionen (Tabelle)`,"inspector.kind.connection":`Konto verbinden`,"inspector.kind.list":`Gespeicherte Liste`,"inspector.kind.location":`Standort`,"inspector.kind.audio":`Sprachnotiz`,"inspector.kind.signature":`Unterschrift`,"inspector.kind.slot":`Termin`,"inspector.whichAccount":`Welches Konto?`,"inspector.whichList":`Welche Liste?`,"inspector.multipleFiles":`Mehrere Dateien`,"inspector.howMany":`Wie viele?`,"inspector.atLeast":`Mindestens`,"inspector.atMost":`Höchstens`,"inspector.camera":`Auch mit der Kamera aufnehmen`,"inspector.cameraVideo":`Kamera nimmt auch kurze Videos auf`,"inspector.scan":`QR- oder Barcode scannen`,"inspector.placeholder":`Platzhalter`,"inspector.help":`Hilfetext`,"inspector.widgetPreview":`Vorschau mit Beispieldaten`,"inspector.htmlFile":`HTML-Datei`,"inspector.sample":`Beispieldaten`,"inspector.none":`keine`,"inspector.size":`Größe`,"inspector.widgetData":`Daten für das Widget`,"inspector.value":`Wert`,"inspector.questions":`Fragen`,"inspector.addQuestion":`Frage hinzufügen`,"inspector.task":`Auftrag`,"inspector.insertAnswers":`Antworten einsetzen mit`,"inspector.insertField":`feld`,"inspector.insertResults":`, frühere Ergebnisse mit`,"inspector.tools":`Werkzeuge`,"inspector.personAccounts":`Konten der Person`,"inspector.personAccountsHint":`Konten, die die Person im Lauf verbindet. Lesen darf der Schritt frei, Änderungen erst nach ihrem Ja.`,"inspector.systems":`Verbundene Systeme`,"inspector.systemsHint":`Nur freigegebene Systeme sind in diesem Schritt erreichbar.`,"inspector.output":`Ergebnis`,"inspector.working":`Text während der Arbeit, z. B. „Recherchiert …“`,"inspector.whatMade":`Was wird erzeugt?`,"inspector.options":`Optionen`,"inspector.style":`Stil, z. B. „helle Fotografie, minimalistisch“`,"inspector.duration":`Länge (Sekunden)`,"inspector.resolution":`Auflösung`,"inspector.template":`Vorlage`,"inspector.whatShown":`Was wird gezeigt?`,"inspector.editable":`Text direkt bearbeitbar`,"inspector.redo":`Neue Variante anfordern`,"inspector.ending":`Abschluss`,"inspector.endMessage":`Nachricht am Ende`,"inspector.title":`Titel`,"inspector.description":`Beschreibung`,"inspector.intro":`Begrüßung`,"inspector.introHint":`Steht über der ersten Seite.`,"inspector.lang":`Sprache`,"inspector.langHint":`In dieser Sprache spricht der Wizard: seine Meldungen, Zahlen und Datumsangaben.`,"inspector.langAuto":`Automatisch, aus den Texten`,"inspector.remembers":`Merkt sich für jede Person`,"inspector.remembersHint":`Bleibt zwischen den Läufen erhalten – getrennt für jede Person, die den Wizard nutzt. Ändern kannst du das im Chat.`,"inspector.account":`Konto`,"inspector.list":`Liste`,"inspector.stepDescription":`Erklärung unter dem Titel (optional)`,"composer.send":`Senden`,"composer.stop":`Anhalten`,"composer.sendBusy":`Senden: vor dem nächsten Schritt (Enter) – {keys}: erst, wenn die Antwort fertig ist`,"dictation.settings":`Mikrofon und Aufnahme`,"dictation.microphone":`Mikrofon`,"dictation.default":`Systemstandard`,"dictation.mic":`Mikrofon {n}`,"dictation.showMics":`Namen der Mikrofone zeigen …`,"dictation.hold":`Zum Aufnehmen gedrückt halten`,"dictation.holdToTalk":`Zum Sprechen gedrückt halten`,"dictation.speak":`Sprechen`,"dictation.stop":`Stopp`,"dictation.writing":`Schreibt …`,"date.pick":`Datum wählen`,"time.pick":`Uhrzeit wählen`,"time.hour":`Stunde`,"time.minute":`Minute`,"date.pickRange":`Tag oder Zeitraum wählen`,"date.pickStart":`Ersten Tag wählen`,"date.pickEnd":`Letzten Tag wählen – oder denselben für einen Tag`,"date.today":`Heute`,"date.clear":`Leeren`,"date.prev":`Voriger Monat`,"date.next":`Nächster Monat`,"connectors.title":`Connectors`,"connectors.hint":`Dienste, in denen ein Wizard für die Person arbeiten kann. Sie verbindet beim Lauf ihr eigenes Konto. Die wichtigsten sind eingebaut. Jeden weiteren findest du im Verzeichnis integrations.sh und importierst ihn aus seiner OpenAPI-Beschreibung oder seinem MCP-Server.`,"connectors.imported":`Aus dem Verzeichnis`,"connectors.noneImported":`Hier ist kein Connector aus dem Verzeichnis importiert.`,"connectors.notSetUp":`nicht eingerichtet`,"connectors.setup":`Es fehlen noch diese Einstellungen:`,"connectors.search":`Dienst suchen, z. B. Notion, Stripe, GitHub`,"connectors.find":`Suchen`,"connectors.none":`Nichts gefunden.`,"connectors.import":`Importieren`,"connectors.exists":`Schon importiert.`,"connectors.ownClient":`Eigener OAuth-Client`,"connectors.refresh":`Aktionen neu laden`,"connectors.remove":`Entfernen`,"connectors.actions":`{n} Aktionen, {r} lesend`,"connectors.pending":`Aktionen erscheinen, sobald ein Konto verbunden ist`,"connectors.needsClient":`Dieser Dienst braucht einen OAuth-Client (ID und Secret). Entfernen und mit „Eigener OAuth-Client“ neu importieren.`,"connectors.authNone":`ohne Anmeldung`,"connectors.authOauth":`Anmeldung per OAuth`,"connectors.authKey":`API-Key`,"connectors.group.read":`liest`,"connectors.group.write":`ändert`,"connectors.group.destructive":`löscht`,"camera.missing":`An diesem Gerät wurde keine Kamera gefunden. Lade stattdessen ein Foto hoch.`,"camera.busy":`Die Kamera wird gerade von einer anderen App verwendet. Schließ sie und versuch es noch einmal.`,"location.unavailable":`Dein Gerät konnte den Standort gerade nicht bestimmen. Versuch es im Freien noch einmal oder tipp die Adresse ein.`,"location.timeout":`Das hat zu lange gedauert. Versuch es noch einmal oder tipp die Adresse ein.`,"install.app.offer":`Installiere das Studio als App: eigenes Fenster, eigenes Symbol im Dock oder in der Taskleiste.`,"install.app.browser":`In Chrome oder Edge lässt sich das Studio als App installieren: eigenes Fenster, eigenes Symbol.`,"install.app.action":`Als App installieren`,"install.app.close":`Schließen`,"install.app.how.ios":`Tippe in Safari auf „Teilen“ und dann auf „Zum Home-Bildschirm“. Das Studio liegt dann wie eine App auf deinem Home-Bildschirm.`,"install.app.how.mac":`Wähle in Safari Ablage → Zum Dock hinzufügen. Das Studio bekommt ein eigenes Fenster und ein Symbol im Dock.`,"install.app.how.android":`Tippe in Chrome auf das Menü ⋮ und dann auf „App installieren“ oder „Zum Startbildschirm hinzufügen“.`,"install.app.how.chromium":`Klicke in der Adressleiste auf das Installieren-Symbol oder wähle im Menü „App installieren“. Das Studio bekommt ein eigenes Fenster und ein Symbol.`,"common.loading":`Lädt …`,"common.error":`Fehler`,"data.hint":`Tabellen und Seiten, die der Space und seine Wizards behalten.`,"data.all":`Alle Daten`,"data.own":`Allgemein`,"data.table":`Tabelle`,"data.page":`Seite`,"data.newTable":`Neue Tabelle`,"data.newPage":`Neue Seite`,"data.title":`Titel`,"data.owner":`Gehört zu`,"data.create":`Anlegen`,"data.empty":`Noch keine Tabellen und Seiten. Leg eine an – bald schreiben auch deine Wizards hier.`,"data.rows":{one:`{n} Zeile`,other:`{n} Zeilen`},"data.addRow":`Zeile`,"data.noRows":`Noch keine Zeilen.`,"data.deleteRow":`Zeile löschen`,"data.deleteTable":`Tabelle löschen`,"data.deletePage":`Seite löschen`,"data.confirmDelete":`„{title}“ löschen?`,"data.newColumn":`Neue Spalte`,"data.columnName":`Name`,"data.columnType":`Typ`,"data.required":`Pflichtfeld`,"data.deleteColumn":`Spalte löschen`,"data.removeOption":`Entfernen`,"data.fromList":`Eine Liste des Wizards: Jeder Lauf schreibt hier hinein. Die Spalten kommen aus dem Wizard.`,"data.badCell":`Dieser Wert passt nicht in „{column}“ und ist nicht gespeichert.`,"data.type.text":`Text`,"data.type.number":`Zahl`,"data.type.date":`Datum`,"data.type.duration":`Dauer`,"data.type.select":`Auswahl`,"data.type.boolean":`Ja / Nein`,"data.text.single":`Eine Zeile`,"data.text.multiline":`Mehrere Zeilen`,"data.number.integer":`Ganze Zahl`,"data.number.decimal":`Dezimalzahl`,"data.number.percent":`Prozent`,"data.number.currency":`Betrag`,"data.currency":`Währung (z. B. EUR)`,"data.date.date":`Datum`,"data.date.datetime":`Datum und Uhrzeit`,"data.date.time":`Uhrzeit`,"data.unit":`Eingabe in`,"data.unit.milliseconds":`ms`,"data.unit.seconds":`Sekunden`,"data.unit.minutes":`Minuten`,"data.unit.hours":`Stunden`,"data.unit.days":`Tage`,"data.options":`Auswahlmöglichkeiten, eine je Zeile`,"data.multiple":`Mehrere wählbar`,"data.write":`Schreiben`,"data.preview":`Vorschau`,"data.pageEmpty":`Diese Seite ist noch leer.`,"data.markdownHint":`Markdown: # Überschrift, **fett**, - Liste`,"space.holds.intro":`Ein Space bündelt, was zusammengehört – eine Firma, eine Marke oder ein Vorhaben. Jeder Wizard gehört zu genau einem Space.`,"space.holds.wizards":`Seine eigene Liste – die Startseite und die Suche zeigen nur sie.`,"space.holds.info":`Name, Logos, Farben und Fakten, die seine Wizards kennen.`,"space.holds.knowledge":`Dokumente, Tabellen und Seiten, die sich seine Wizards teilen.`,"space.holds.connectors":`Die Connectors, die seine Wizards nutzen.`,"space.holds.results":`Die Läufe seiner Wizards.`,"space.holds.shared":`Konto, Modelle und Plugins gelten für alle Spaces.`,"space.info":`Info & Marke`,"space.knowledge":`Wissen`,"space.data":`Daten`,"space.results":`Ergebnisse`,"space.resultsAll":`Alle Ergebnisse`,"space.resultsHint":`Abgeschlossene Läufe deiner Wizards, die neuesten zuerst.`,"space.resultsEmpty":`Noch keine Ergebnisse. Ein Lauf steht hier, sobald er fertig ist.`,"space.resultCredits":{one:`{n} Credit`,other:`{n} Credits`},"space.resultsSearch":`Suchen: Wizard, Eingaben, Ergebnis …`,"space.resultsModeAll":`Live & Test`,"space.resultsAnyTime":`Jederzeit`,"space.resultsDay":`Letzte 24 Stunden`,"space.resultsDays":`Letzte {n} Tage`,"space.resultsNone":`Nichts gefunden.`,"space.resultFiles":{one:`{n} Datei`,other:`{n} Dateien`},"project.rename":`Space umbenennen`,"project.saving":`Speichert …`,"project.base":`Grundlagen`,"project.baseHint":`Wer hinter den Wizards steht. Jeder KI-Schritt kennt das.`,"project.title":`Titel`,"project.titleHint":`Firma, Marke oder Vorhaben – so sehen es auch alle, die deine Wizards nutzen.`,"project.about":`Über`,"project.aboutHint":`Was du machst, für wen und in welchem Ton du schreibst.`,"project.logos":`Logos`,"project.logosHint":`Das erste Logo sehen alle, die deine Wizards nutzen. Eine Beschreibung sagt, wofür eine Variante gedacht ist.`,"project.logoAdd":`Logo`,"project.logoMain":`Hauptlogo`,"project.logoMakeMain":`Als Hauptlogo setzen`,"project.logoSectionAdd":`Logo-Abschnitt`,"project.logoSectionTitle":`Titel, z. B. Logomark`,"project.logoSectionUse":`Wann diese Logos passen, z. B. kleine Flächen und App-Icons`,"project.sectionUntitled":`Abschnitt ohne Titel`,"project.sectionRemove":`Abschnitt entfernen`,"project.logoSectionRemoveConfirm":`„{name}“ entfernen? Seine Logos kommen zu den Standardlogos.`,"project.sectionMove":`Verschieben`,"project.sectionStandard":`Standard`,"project.rules":`Regeln`,"project.ruleNew":`Neue Regel`,"project.logoRulePlaceholder":`z. B. Logo nicht strecken oder verzerren`,"project.rulesHint":`Nur was deine Marke vorgibt. Ein Klick auf das Zeichen davor ändert es.`,"project.markBullet":`Punkt`,"project.markDo":`So ja`,"project.markDont":`So nicht`,"project.markQuestion":`Zu klären`,"project.markImportant":`Wichtig`,"project.markNumber":`Nummeriert`,"project.logoUpload":`Logo hochladen`,"project.logoFromUrl":`Logo von URL`,"project.logoUrl":`Adresse`,"project.logoUrlHint":`Die Adresse eines Bildes – oder einer Webseite: Dann zeigt engenty die Logos darauf zur Auswahl.`,"project.logoFound":`Logos auf der Seite`,"project.logoFoundHint":`Wähle eines oder mehrere. Am besten SVG oder ein großes PNG.`,"project.logoNoneFound":`Auf dieser Seite ist kein Logo zu finden.`,"project.addMany":`{n} hinzufügen`,"project.colors":`Farben`,"project.colorsHint":`Die erste Farbe ist der Akzent in Dokumenten, Dashboards und auf öffentlichen Seiten.`,"project.colorNew":`Neue Farbe`,"project.colorsFromUrl":`Farben von URL`,"project.colorsUrlHint":`Die Adresse einer Webseite – engenty liest die Farben aus ihrem Stylesheet.`,"project.colorsFound":`Farben der Seite`,"project.colorsFoundHint":`Wähle die Farben deiner Marke. Wofür sie da sind, trägst du danach ein.`,"project.colorsNoneFound":`Auf dieser Seite sind keine Farben zu finden.`,"project.colorsEmpty":`Noch keine Farben.`,"project.colorSectionAdd":`Farbabschnitt`,"project.colorSectionTitle":`Titel, z. B. Illustration`,"project.kindColors":`Farben`,"project.kindGradients":`Verläufe`,"project.kindPatterns":`Muster`,"project.colorAdd":`Farbe`,"project.fillUseLabel":`Wofür`,"project.gradientUse":`Wofür, z. B. Header und Titelfolien`,"project.patternUse":`Wofür, z. B. Hintergrund von Social-Posts`,"project.gradientSectionAdd":`Verläufe`,"project.gradientSectionTitle":`Verläufe`,"project.gradientSectionTitlePlaceholder":`Titel, z. B. Verläufe`,"project.patternSectionAdd":`Muster`,"project.patternSectionTitle":`Muster`,"project.patternSectionTitlePlaceholder":`Titel, z. B. Hintergründe`,"project.fillSectionRemoveConfirm":`„{name}“ mit allem darin entfernen?`,"project.gradientAdd":`Verlauf`,"project.gradientEdit":`Verlauf bearbeiten`,"project.gradientName":`Name`,"project.gradientNamePlaceholder":`z. B. Horizontal warm`,"project.gradientType":`Art`,"project.gradientLinear":`Linear`,"project.gradientRadial":`Radial`,"project.gradientConic":`Konisch`,"project.gradientAngle":`Winkel`,"project.gradientStops":`Farbpunkte`,"project.gradientAt":`Position`,"project.gradientStopAdd":`Farbpunkt`,"project.gradientFromBrand":`Aus den Markenfarben:`,"project.gradientCssHint":`Oder CSS einfügen: linear-, radial- oder conic-gradient mit Hex-Farben.`,"project.gradientCssError":`Das ist kein Verlauf mit Hex-Farben, den engenty lesen kann.`,"project.gradientCopy":`CSS kopieren`,"project.gradientCopied":`Kopiert`,"project.patternAdd":`Muster`,"project.patternName":`Name`,"project.patternTile":`Als Kachel wiederholen`,"project.patternFill":`Fläche füllen`,"project.patternNew":`Neues Muster`,"project.patternEdit":`Muster bearbeiten`,"project.patternPick":`Bild hierher ziehen oder auswählen`,"project.patternReplace":`Bild ersetzen`,"project.patternNamePlaceholder":`z. B. Bohnen`,"project.patternShow":`Darstellung`,"project.gradientNew":`Neuer Verlauf`,"project.gradientDescribe":`Verlauf beschreiben`,"project.gradientDescribeNew":`Beschreibe den Verlauf, z. B. „von Primär zu Text, diagonal“`,"project.gradientDescribeChange":`Was soll anders sein? z. B. „weicher, mehr Orange“`,"project.gradientDescribeMake":`Erstellen`,"project.gradientDescribeApply":`Ändern`,"project.gradientDescribeHint":`engenty setzt daraus Art, Winkel und Farbpunkte – danach kannst du alles von Hand ändern.`,"project.download":`Herunterladen`,"project.colorSectionRemoveConfirm":`„{name}“ entfernen? Seine Farben kommen zu den Standardfarben.`,"project.colorRulePlaceholder":`z. B. Akzent nie als Fläche hinter Fließtext`,"project.colorName":`z. B. Primär – Knöpfe und Überschriften`,"project.colorUse":`Beschreibe, wie engenty diese Farbe einsetzen soll.`,"project.add":`Hinzufügen`,"project.colorAccent":`Akzent`,"project.colorFirst":`Als Akzent setzen`,"project.typography":`Typografie`,"project.typographyHint":`Schriften, ihre Schnitte und wie Text gesetzt wird. KI-Schritte setzen Dokumente darin.`,"project.fontFamily":`Schriftfamilie, z. B. Inter`,"project.fontRole":`Wofür, z. B. Fließtext`,"project.fontLicense":`Lizenz`,"project.fontLicensePlaceholder":`Lizenz, z. B. SIL Open Font License`,"project.fontUses":`Erlaubt für`,"project.fontUseWeb":`Web`,"project.fontUseDocuments":`Dokumente`,"project.fontUsePrint":`Druck`,"project.fontUseImages":`Bilder & Social`,"project.fontUseVideo":`Video`,"project.fontRoleFirst":`Wofür, z. B. Überschriften und Fließtext`,"project.fontNew":`Neue Schrift`,"project.fontsFromUrl":`Schriften von URL`,"project.fontsUrlHint":`Die Adresse einer Webseite – engenty liest die Schriften aus ihrem CSS.`,"project.fontsFound":`Schriften der Seite`,"project.fontsFoundHint":`Wähle die Schriften deiner Marke.`,"project.fontsNoneFound":`Auf dieser Seite ist keine eigene Schrift zu finden.`,"project.fontWeightsUnknown":`Schnitte unbekannt`,"project.fontsEmpty":`Noch keine Schriften.`,"project.styles":`Textstile`,"project.stylesHint":`Die Typo-Skala: Größe, Schnitt, Zeilenhöhe und Laufweite je Stil.`,"project.styleNew":`Textstil`,"project.styleName":`Name, z. B. Headline XL`,"project.styleFont":`Schrift`,"project.styleWeight":`Schnitt`,"project.styleSize":`Größe`,"project.styleLine":`% Zeile`,"project.styleLineLabel":`Zeilenhöhe in %`,"project.styleTracking":`% Laufweite`,"project.styleTrackingLabel":`Laufweite in %`,"project.styleUpper":`Großbuchstaben`,"project.typeRulePlaceholder":`z. B. Überschriften nie in Großbuchstaben`,"project.typeSample":`Gute Schrift macht Inhalte leicht.`,"project.assets":`Markenmaterial`,"project.assetsGeneral":`Allgemein`,"project.assetUpload":`Asset hochladen`,"project.assetFromUrl":`Asset von URL`,"project.assetUrlHint":`Die Adresse einer Datei – oder einer Webseite: Dann zeigt engenty die Bilder darauf zur Auswahl.`,"project.assetFound":`Bilder auf der Seite`,"project.assetFoundHint":`Wähle eines oder mehrere.`,"project.assetNoneFound":`Auf dieser Seite sind keine Bilder zu finden.`,"project.assetSectionAdd":`Asset-Abschnitt`,"project.assetSectionTitle":`Titel, z. B. Icons`,"project.assetSectionName":`Name`,"project.assetSectionRename":`Abschnitt bearbeiten`,"project.assetSectionRemoveConfirm":`„{name}“ entfernen? Seine Assets kommen zu „Allgemein“.`,"project.assetsHint":`Bilder, Videos, Audio, PDFs, Schriften, Lottie und 3D. KI-Schritte setzen Bilder in Dokumente und wählen sie nach ihrer Beschreibung aus.`,"project.assetAdd":`Dateien`,"project.assetSearch":`Assets filtern …`,"know.all":`Alles`,"know.title":`Wissen`,"know.hint":`Was die Schritte deiner Wizards nachschlagen. Dokumente werden beim Hochladen zu Seiten und Tabellen. Kategorien halten die Einträge auseinander.`,"know.empty":`Noch nichts da. Lad Dokumente hoch oder leg eine Seite an.`,"know.drop":`Dokumente hierher ziehen oder`,"know.pick":`auswählen`,"know.page":`Seite`,"know.table":`Tabelle`,"know.faq":`FAQ`,"know.file":`Datei`,"know.category":`Kategorie`,"know.categories":`Kategorien`,"know.newPage":`Neue Seite`,"know.newTable":`Neue Tabelle`,"know.asFaq":`Als FAQ: Frage und Antwort je Zeile`,"know.newCategory":`Neue Kategorie`,"know.search":`Suche testen …`,"know.searchNone":`Nichts gefunden.`,"know.searchStats":`{candidates} Kandidaten geprüft, {hits} relevant`,"know.searchUnchecked":`{hits} Treffer, ungeprüft`,"know.unchecked":`Das Classifier-Modell prüft die Treffer. Mit einem API-Key für AI Gateway oder TypeSafe oder mit einem Konto übernimmt das ein Entscheidungsmodell.`,"know.keywordsOnly":`Ohne Embedding-Modell findet die Suche nach Wörtern, nicht nach Bedeutung.`,"know.clear":`Zurücksetzen`,"know.sub":{one:`{n} Unterseite`,other:`{n} Unterseiten`},"know.rows":{one:`{n} Zeile`,other:`{n} Zeilen`},"know.review":`Prüfen`,"know.reviewed":`Geprüft`,"know.from":`Aus {label}`,"know.kept":`Von Hand geändert – {label} überschreibt das nicht mehr.`,"know.original":`Original`,"know.reading":`Wird gelesen …`,"know.subPages":`Unterseiten`,"know.addSub":`Unterseite`,"know.type.choice":`Auswahl`,"know.type.date":`Datum`,"know.type.number":`Zahl`,"know.type.text":`Text`,"know.type.boolean":`Ja / Nein`,"know.name":`Name`,"know.type":`Typ`,"know.unit":`Einheit`,"know.unitHint":`z. B. h, €, kg`,"know.multiple":`Mehrere Werte je Eintrag`,"know.ordered":`Die Werte sind gestuft (niedrig → hoch)`,"know.values":`Werte`,"know.valuesHint":`Einer je Zeile. Weitere kommen mit den Einträgen dazu.`,"know.hintField":`Woher die Werte kommen`,"know.hintFieldHint":`Kurz, z. B. Kopfzeile, Dateiname, Filter der Website.`,"know.create":`Anlegen`,"know.proposed":`Vorgeschlagen`,"know.proposedHint":`Sie wird gefüllt, sobald du sie übernimmst.`,"know.accept":`Übernehmen`,"know.dismiss":`Verwerfen`,"know.alike":`„{a}“ und „{b}“ meinen wohl dasselbe.`,"know.merge":`Zusammenführen`,"know.items":{one:`{n} Eintrag`,other:`{n} Einträge`},"know.item":`1 Eintrag`,"know.row":`1 Zeile`,"know.oneSub":`1 Unterseite`,"know.addValue":`Wert hinzufügen`,"know.range":`{min} bis {max}`,"know.summary":`Übersicht`,"know.summaryHint":`Ein Modell fasst die Einträge dieses Werts zusammen. Die Suche findet die Übersicht wie eine Seite.`,"know.summaryWrite":`Übersicht schreiben`,"know.summaryAgain":`Neu schreiben`,"know.summaryEmpty":`Noch keine Übersicht.`,"know.toc":`Inhaltsverzeichnis`,"know.tocRows":{one:`{n} Zeile in {table}`,other:`{n} Zeilen in {table}`},"know.deleteCategory":`Kategorie löschen`,"know.confirmCategory":`„{name}“ löschen? Die Einträge bleiben, nur die Kategorie geht.`,"know.deleteValue":`Wert löschen`,"know.yes":`Ja`,"know.no":`Nein`,"know.minimum":`ab`,"know.maximum":`bis`,"know.contains":`enthält`,"know.by.person":`von Hand gesetzt`,"know.by.origin":`aus der Quelle`,"know.by.model":`von einem Modell gelesen`,"know.remove":`Entfernen`,"know.unset":`Nicht gesetzt`,"know.deleteFile":`Datei löschen`,"project.documents":`Dokumente`,"project.documentsHint":`PDFs, Listen, Excel, Word, Text. Sie werden gelesen und kommen in einen Index, den jeder KI-Schritt durchsucht.`,"project.documentAdd":`Dokumente`,"project.drop":`Hierher ziehen oder`,"project.staysLocal":`Bleibt auf deinem Computer und kommt nicht hierher.`,"project.description":`Beschreibung hinzufügen …`,"project.describing":`Bild wird beschrieben …`,"project.reading":`Wird gelesen …`,"project.indexed":`Im Index`,"project.indexedKeywords":`Im Index (Stichwörter)`,"project.notIndexed":`Kein Text gefunden`,"project.reindex":`Neu einlesen`,"project.pages":{one:`{n} Seite`,other:`{n} Seiten`},"project.keywordsOnly":`Der Index sucht gerade nach Stichwörtern. Mit einem API-Key für AI Gateway oder OpenAI kommt die Suche nach Bedeutung dazu.`,"project.preview":`Vorschau`,"project.viewList":`Als Liste zeigen`,"project.viewCards":`Als Karten zeigen`,"project.original":`Original`,"project.readText":`Gelesener Text`,"project.openOriginal":`Original öffnen`,"project.noText":`Noch kein Text: Das Dokument wird gerade gelesen oder ließ sich nicht lesen.`,"project.textCut":`Die Vorschau zeigt den Anfang ({shown} von {total} Zeichen).`,"project.searchTest":`Im Index suchen …`,"project.searchNone":`Nichts gefunden.`,"project.remove":`Entfernen`,"project.removeConfirm":`„{name}“ entfernen?`,"project.facts":`Fakten`,"project.factsHint":`Was Wizards wissen sollen: Adresse, USt-IdNr., Öffnungszeiten – alles, was passt.`,"project.factLabel":`Bezeichnung`,"project.factValue":`Wert`,"project.factAdd":`Eintrag`,"credit.engenty-wizards":`KI-Wizards aus einer Beschreibung, mit einem Link geteilt.`,"credit.engenty":`Connectors, Datentabellen, Suche und die Engenties stammen aus dem engenty-Framework.`,"credit.mastra":`Agent-Framework hinter den KI-Schritten.`,"credit.ai-sdk":`Modell-Aufrufe für Text, Bild, Video und Sprache.`,"credit.model-context-protocol":`MCP-Server zum Bauen von Wizards, MCP-Client für Werkzeuge der Schritte.`,"credit.hono":`HTTP-API der Runtime.`,"credit.drizzle-orm":`Schema und Migrationen der Datenbanken.`,"credit.libsql":`Eine Datenbank je Mandant, lokal als Datei oder bei Turso.`,"credit.playwright":`Browser-Schritte sowie PDF- und PNG-Export.`,"credit.react":`UI-Bibliothek der Web-App.`,"credit.vite":`Build-Werkzeug der Web-App.`,"credit.tailwind-css":`Styling der Oberfläche.`,"credit.react-flow":`Das Diagramm der Schritte im Editor.`,"credit.tanstack-query":`Server-Daten in der Web-App.`,"credit.xterm-js":`Das Terminal auf der Seite, in dem sich KI-Clients anmelden.`,"credit.lucide":`Icons.`,"credit.geist-geist-mono":`Schrift der Oberfläche.`,"credit.space-grotesk":`Schrift der Überschriften.`,"credit.git-cliff":`Erzeugt den Changelog aus den Commits.`,"fact.adresse":`Adresse`,"fact.plz":`PLZ`,"fact.ort":`Ort`,"fact.uid":`USt-IdNr.`,"fact.telefon":`Telefon`,"fact.e_mail":`E-Mail`,"fact.website":`Website`,"fact.iban":`IBAN`,"project.factType":`Typ`,"project.factAuto":`Automatisch`,"project.type.text":`Text`,"project.type.longtext":`Langer Text`,"project.type.number":`Zahl`,"project.type.date":`Datum`,"project.type.url":`Link`,"project.type.email":`E-Mail`,"project.type.phone":`Telefon`,"project.type.boolean":`Ja / Nein`,"project.yes":`Ja`,"project.no":`Nein`,"assistant.name":`Goose`,"assistant.ask":`Frag Goose`,"assistant.open":`Goose öffnen`,"assistant.sees":`Sieht: {page}`,"assistant.menu":`Chat-Menü`,"assistant.newChat":`Neuer Chat`,"assistant.earlier":`Frühere Chats`,"assistant.noEarlier":`Noch keine früheren Chats.`,"assistant.untitled":`Ohne Titel`,"assistant.summarising":`Fasst den Chat zusammen …`,"assistant.readOnly":`Ein früherer Chat, nur zum Lesen. Goose kennt seine Zusammenfassung.`,"assistant.back":`Zurück`,"assistant.layoutBottom":`Unten andocken`,"assistant.layoutSidebar":`Als Seitenleiste`,"assistant.close":`Schließen`,"assistant.helloTitle":`Wie kann ich helfen?`,"assistant.hello":`Ich kenne engenty wizards und sehe, was du gerade siehst. Frag mich, wie etwas geht – ich zeige es dir auch.`,"assistant.composer":`Frag etwas oder sag, was du brauchst …`,"assistant.filesNeedSpace":`Dateien kommen in einen Space – hier lässt sich keiner ändern.`,"assistant.talk":`Sprechen`,"assistant.live":`Live-Chat`,"assistant.liveListening":`Hört zu`,"assistant.liveThinking":`Denkt nach`,"assistant.liveSpeaking":`Spricht`,"assistant.liveMuted":`Stumm`,"assistant.mute":`Mikrofon aus`,"assistant.unmute":`Mikrofon an`,"assistant.end":`Beenden`,"assistant.naturalVoice":`Natürliche Stimme (Sprachmodell)`,"assistant.gotIt":`Verstanden`,"assistant.move":`Ziehen, um Goose zu verschieben – nah am unteren oder rechten Rand rastet er ein`,"assistant.flap":`Verlauf: ziehen für die Höhe, klicken zum Ein- und Ausklappen`,"assistant.busyComposer":`Dazwischen schreiben – Enter: vor dem nächsten Schritt, {keys}: danach`,"assistant.pending":`Wartet auf Goose`,"assistant.pendingSignal":`nächster Schritt`,"assistant.pendingSignalHint":`Goose liest es vor seinem nächsten Schritt`,"assistant.pendingQueue":`danach`,"assistant.pendingQueueHint":`Geht raus, wenn Goose fertig ist`,"assistant.sendNow":`Jetzt senden`,"assistant.sendNowHint":`Goose anhalten und das jetzt senden`,"assistant.edit":`Bearbeiten`,"assistant.remove":`Entfernen`,"assistant.signalled":`Während der Antwort geschrieben`,"assistant.dev":`Entwicklermodus`,"assistant.devOn":`Entwicklermodus an: Schritte, Werkzeuge, Prompt und Runden. Klick schaltet ihn aus.`,"assistant.devOff":`Entwicklermodus aus. Klick schaltet ihn ein.`,"assistant.step":`Schritt {n}`,"assistant.tokens":`{input} ein · {output} aus · {total} Token`,"assistant.stepTools":`Werkzeuge`,"assistant.args":`Argumente`,"assistant.result":`Ergebnis`,"assistant.usage":`Kontextfenster und Verbrauch`,"assistant.window":`Kontextfenster`,"assistant.lastTurn":`Letzte Frage`,"assistant.wholeChat":`Ganzer Chat`,"assistant.promptTokens":`Prompt`,"assistant.answerTokens":`Antwort`,"assistant.duration":`Dauer`,"assistant.cost":`Kosten`,"assistant.steps":`Schritte`,"assistant.inspect":`Runden ansehen`,"assistant.copyThread":`Verlauf mit Events als JSON kopieren`,"assistant.copied":`Kopiert`,"assistant.turns":`Runden`,"assistant.turnsTimeline":`Verlauf`,"assistant.turnsPrompt":`Prompt`,"assistant.turnsEvents":`Events`,"assistant.noTurns":`Noch keine Runden. Sie werden aufgezeichnet, solange der Entwicklermodus an ist.`,"assistant.download":`Als JSONL herunterladen`,"assistant.system":`Anweisung`,"assistant.context":`Seite, Space und Nachricht`,"assistant.history":{one:`Chat ({n} Nachricht)`,other:`Chat ({n} Nachrichten)`},"assistant.tools":`Werkzeuge ({n})`,"assistant.estimate":`≈ {tokens} Token (4 Zeichen je Token)`,"assistant.tool.navigate":`Geöffnet: {where}`,"assistant.tool.highlight":`Markiert: {what}`,"assistant.tool.look":`Seite angesehen`,"assistant.tool.read":`Gelesen: {what}`,"assistant.tool.fill":`Eingetragen: {what}`,"assistant.tool.docs":`In der Anleitung gelesen`,"assistant.tool.gallery":`In der Galerie gesucht`,"assistant.tool.account":`Konto nachgesehen`,"assistant.tool.chats":`Frühere Chats durchsucht`,"assistant.tool.space":`Wizards und Läufe nachgesehen`,"assistant.tool.models":`Modelle nachgesehen`,"assistant.suggest.what":`Was kann ich mit engenty wizards machen?`,"assistant.suggest.models":`Zeig mir, wo ich die Modelle einstelle`,"assistant.suggest.credits":`Wie viele Credits habe ich noch?`,"assistant.suggest.modelsNow":`Welches Modell arbeitet hier gerade, und was fehlt?`,"assistant.suggest.modelsMissing":`Warum kann hier kein Video entstehen?`,"assistant.suggest.modelsCost":`Was kostet mich welcher Zugang?`,"assistant.suggest.accountWhy":`Wozu brauche ich ein Konto?`,"assistant.suggest.plans":`Welche Pakete gibt es, und was kosten sie?`,"assistant.suggest.integrateWhat":`Was kann ich aus Claude oder Cursor heraus machen?`,"assistant.suggest.integrateClaude":`Wie binde ich Claude Desktop ein?`,"assistant.suggest.connectorsWhat":`Wofür sind Connectors gut?`,"assistant.suggest.connectorsAdd":`Verbinde diesen Dienst: `,"assistant.suggest.readSite":`Lies unsere Website `,"assistant.suggest.missing":`Was fehlt dem Space noch?`,"assistant.suggest.facts":`Wofür brauchen die Wizards die Fakten?`,"assistant.suggest.knowledgeHow":`Wie kommt Wissen in den Space?`,"assistant.suggest.knowledgeSite":`Lies diese Website ins Wissen: `,"assistant.suggest.knowledgeCategories":`Wofür sind Kategorien gut?`,"assistant.suggest.dataWhat":`Was steht in diesen Daten?`,"assistant.suggest.dataWho":`Welcher Wizard füllt welche Tabelle?`,"assistant.suggest.dataEdit":`Wie ändere ich eine Spalte?`,"assistant.suggest.resultsFailed":`Welche Läufe haben zuletzt nicht geklappt?`,"assistant.suggest.resultsCost":`Was hat diesen Monat am meisten Credits gekostet?`,"assistant.suggest.resultsShare":`Wie teile ich ein Ergebnis?`,"project.assistantTitle":`Erzähl mir von dir und deiner Firma`,"project.assistantHello":`Nenn mir deine Website oder gib mir Dateien. Ich trage ein, was ich finde: Titel, Beschreibung, Logo, Farben und Fakten.`,"project.assistantComposer":`z. B. „Lies unsere Website example.at“ …`,"project.assistantTitleKnowledge":`Was sollen deine Wizards wissen?`,"project.assistantHelloKnowledge":`Gib mir Dokumente oder sag mir, wo das Wissen steht. Ich lese es ein – auf dieser Seite siehst du, was hineinkommt.`,"project.assistantComposerKnowledge":`Dokumente anhängen oder sagen, wo das Wissen steht …`,"project.assistantChanged":`Space aktualisiert`,"flowApp.loading":`Der Wizard kommt …`,"flowApp.broken":`Das lässt sich hier nicht zeigen.`,"flowApp.draft":`Entwurf`,"flowApp.published":`Veröffentlicht`,"flowApp.issues":{one:`{n} Fehler im Entwurf`,other:`{n} Fehler im Entwurf`},"flowApp.flow":`Ablauf`,"flowApp.notPublished":`Veröffentliche ihn im Studio, dann läuft er hier.`,"flowApp.runPage":`Im Browser weiter`,"flowApp.inBrowser":`Nur im Browser: {fields}`,"flowApp.done":`Fertig`,"flowApp.credits":{one:`{n} Credit`,other:`{n} Credits`},"flowApp.ask":`Der Wizard fragt`,"flowApp.allow":`Erlauben`,"flowApp.skip":`Überspringen`,"flowApp.signIn":`Eine Anmeldung bei {site} – das geht nur im Browser.`,"flowApp.fullscreen":`Größer`,"flowApp.inline":`Kleiner`,"flowApp.failed":`Das hat nicht geklappt: {error}`,"inspector.aspectRatio":`Format`,"inspector.downloads":`Downloads`,"inspector.avatar":`Avatar`,"editor.zoomOut":`Verkleinern`,"editor.zoomFit":`Alles zeigen`,"editor.zoomIn":`Vergrößern`,"nav.breadcrumb":`Du bist hier`,"run.testChip":`Testlauf`,"common.delete":`Löschen`,"settings.deleteTitle":`„{name}“ löschen?`,"settings.deleteBody":`Der Space wird mit seinen Wizards, seinem Wissen und seinen Daten gelöscht. Die Links der Wizards gehen danach nicht mehr. Das lässt sich nicht rückgängig machen.`,"connectors.removeConfirm":`„{name}“ entfernen? Schritte, die ihn nutzen, gehen erst wieder, wenn du ihn neu importierst.`,"connectors.clientId":`OAuth-Client-ID`,"connectors.clientSecret":`OAuth-Client-Secret`},Wd={en:{...Ad.en,"brand.tagline":`Make a wish. Get your wizard.`,"brand.sub":`It guides you step by step. Let AI do the work.`,"auth.dev":`Developer sign-in (local)`,"auth.legal":`No password, no sign-up form – you sign in with an account you already have.`,"auth.signIn":`Sign in or create an account`,"auth.failed":`Sign-in didn’t work. Try again.`,"auth.localTitle":`This browser isn’t signed in`,"auth.localWhy":`The studio runs on your computer and only lets in browsers that opened its link. This browser isn’t signed in – maybe the cookies were cleared.`,"auth.localLink":`Run this in a terminal – it opens the studio and signs this browser in:`,"auth.localStartLink":`Or print just the link, without opening a browser. It works once, for a minute:`,"auth.wrongHost":`The studio runs at another address`,"auth.wrongHostWhy":`engenty wizards only answers at its own address on this computer – that keeps other web pages out. Open the studio there:`,"auth.unreachable":`engenty wizards isn’t answering`,"auth.unreachableWhy":`The studio is at {address}, but engenty wizards isn’t answering – it may be restarting or stopped. This page keeps trying.`,"nav.account":`Account & credits`,"setup.keysInAccount":`API keys for scripts belong to your account. You create and revoke them there.`,"setup.openAccount":`Open account`,"class.label":`Model class`,"class.classifier":`Classifier`,"class.standard":`Standard`,"class.high":`High`,"class.highest":`Highest`,"class.image":`Image`,"class.video":`Video`,"class.audio":`Audio`,"class.speech":`Speech`,"class.classifier.hint":`Routing, yes/no, pulling a few values out of text. Cheapest.`,"class.standard.hint":`Short copy, calling an API, reformatting.`,"class.high.hint":`Research with tools, long documents, weighing many sources.`,"class.highest.hint":`Hard reasoning or code. Several times the cost of High.`,"class.effort":`Thinking effort`,"class.effortAuto":`Automatic`,"class.effort.low":`Low`,"class.effort.medium":`Medium`,"class.effort.high":`High`,"estimate.step":`≈ {n} credits, rarely more than {high}`,"estimate.measured":`measured from the latest runs`,"estimate.formula":`estimated – more accurate after five runs`,"estimate.share":`A run costs about {run} credits. At the daily limit, that’s at most {day} credits a day.`,"local.title":`Models`,"local.accountWaiting":`Waiting for the sign-in in your browser…`,"local.accountFailed":`The account service can’t be reached right now. Try again in a moment.`,"local.accountExpired":`Your sign-in has expired. Sign in again.`,"local.sourceNeedsAccount":`This needs an account.`,"local.toAccount":`Go to Settings → Account`,"local.sourceOwn":`Your own keys`,"local.keys":`Keys`,"local.keysHint":`One key is enough. Keys stay in this computer’s keychain, never in the database.`,"local.keySet":`stored`,"local.keyEmpty":`not stored`,"local.keyRemove":`Delete`,"local.classes":`Model per class`,"local.classesHint":`A step only names the class. Here you choose which model handles it, e.g. anthropic/claude-haiku-4.5, openai:gpt-5.4-mini or ollama:qwen3.`,"local.save":`Save`,"local.saved":`Saved`,"local.chat":`The studio chat uses`,"local.chatModels":`Model class Highest`,"local.chatClaude":`Claude subscription (Claude Code)`,"local.subscription":`With the subscription, Claude Code on this computer builds the wizard, using your sign-in there. Runs still use keys or credits.`,"harness.hint":`Text runs on {name} on this computer, using your {sub}. No key needed. Images, video and audio still need a key.`,"harness.hintImages":`Text and images run on {name} on this computer, using your {sub}. No key needed. Video and audio still need a key.`,"harness.found":`{name} {version} found`,"harness.missing":`{name} isn’t installed on this computer.`,"harness.install":`Or in your own terminal:`,"harness.installButton":`Install {name}`,"harness.installing":`{name} is installing in the terminal below – it takes about a minute. Then you sign in.`,"harness.installEnded":`The installation ended, but {name} isn’t there. The output above says why.`,"harness.appHere":`The {app} app is on this computer: {name} signs in with the same {sub}.`,"harness.notInstalled":`not installed`,"harness.authSubscription":`Signed in with your {sub}.`,"harness.authKey":`Signed in with an API key from your shell, not the subscription. Sign in here so it runs on your {sub}.`,"harness.authNone":`Not signed in yet.`,"harness.signIn":`Sign in here`,"harness.signingIn":`The sign-in runs in the terminal below – your browser opens for it. The terminal closes once you’re signed in.`,"harness.signInInteractive":`{name} starts below. Choose to sign in with your {sub} there, then finish in the browser. The terminal closes once you’re signed in.`,"harness.loginEnded":`The sign-in ended, but {name} isn’t signed in. Try again.`,"harness.sub.claude":`Claude subscription`,"harness.sub.codex":`ChatGPT subscription`,"harness.sub.gemini":`Google account`,"harness.sub.cursor":`Cursor subscription`,"harness.desc.claude":`On your Claude subscription – no key needed.`,"harness.desc.codex":`On your ChatGPT subscription – no key needed.`,"harness.desc.gemini":`On your Google account – no key needed.`,"harness.desc.cursor":`On your Cursor subscription – no key needed.`,"harness.ready":`signed in`,"local.recheck":`Check again`,"local.test":`Test`,"local.testHint":`One short call checks that the model can be reached.`,"local.testOk":`Answered in {s} s on {ref}: “{reply}”`,"local.testFailed":`The test didn’t work: {error}`,"models.groupCaps":`Capabilities`,"models.groupAccess":`Access`,"models.groupMore":`More providers`,"models.cap.text":`Text & reasoning`,"models.cap.text.hint":`Writes, summarises, researches and decides – in almost every step.`,"models.cap.image":`Images`,"models.cap.image.hint":`Makes images: logos, product shots, illustrations.`,"models.cap.video":`Videos`,"models.cap.video.hint":`Makes short clips from text or from an image.`,"models.cap.speech":`Voice`,"models.cap.speech.hint":`Reads text aloud: voice-overs, audio versions, announcements.`,"models.cap.listening":`Voice notes`,"models.cap.listening.hint":`Understands speech and turns voice notes into text.`,"models.way.local":`Local model`,"models.way.credits":`Credits`,"models.way.creditsTeam":`Team credits`,"models.way.none":`not set up`,"models.who":`Who does it?`,"models.optSubscription":`Your subscription`,"models.optKey":`Your own API key`,"models.optLocal":`Local model`,"models.optLocalNote":`Ollama on this computer`,"models.optApple":`Apple Intelligence`,"models.optAppleNote":`on this Mac, offline`,"models.appleOff":`switched off – System Settings → Apple Intelligence & Siri`,"models.appleLoading":`Apple is still loading the model`,"models.appleDevice":`not on this Mac`,"models.appleHint":`Short texts and decisions (Classifier, Standard) run on Apple Intelligence on this Mac; nothing leaves it. Research, long documents and code (High, Highest): {way}.`,"models.appleListenHint":`This Mac turns voice notes into text itself; nothing leaves it. The first time, Apple downloads the language.`,"models.noteIncluded":`included in the plan`,"models.noteSignedOut":`not signed in`,"models.noteMissing":`not installed`,"models.noteKey":`API key stored`,"models.noteKeyShort":`key`,"models.noteSignedIn":`signed in`,"models.noteShellKey":`API key from the shell`,"models.optOther":`Other`,"models.optCreditsGroup":`engenty`,"models.noteNoKey":`API key missing`,"models.noteNeedsAccount":`needs an account`,"models.notePerImage":`≈ {n} credits per image`,"models.notePerSecond":`≈ {n} credits per second`,"models.notePer1k":`≈ {n} credits per 1,000 characters`,"models.notePerMinute":`≈ {n} credits per minute`,"models.creditsAuto":`engenty chooses: {model}`,"models.creditsAutoNone":`engenty chooses the model`,"models.creditsPickHint":`Billed in credits – no API key of your own.`,"models.viaCredits":`{name} on engenty credits`,"models.viaCreditsHint":`No API key of your own, billed in credits.`,"models.viaCreditsNeedsAccount":`With an engenty account, billed in credits.`,"models.noteUsage":`credits by usage`,"models.model":`Model`,"models.modelCustom":`Another model…`,"models.textSimple":`Simple steps`,"models.textDemanding":`Demanding steps`,"models.perClass":`Adjust per class`,"models.manageKey":`{name} API key`,"models.key":`API key`,"models.keyFor":`{name} API key`,"models.keyGet":`Get a key from {name}`,"models.keySave":`Check and save`,"models.keyStored":`API key stored`,"models.keyNone":`No API key`,"models.keyCheck":`Check`,"models.keyReplace":`Replace`,"models.keyRemove":`Delete`,"models.keyOk":`The key works.`,"models.keyBad":`The key wasn’t accepted. Check it and try again.`,"models.keyWhereLocal":`The key stays on this computer, never in the database.`,"models.keyWhereCloud":`The key is kept encrypted for the team. Nobody sees it again.`,"models.keyFallback":`Until you add a key, credits step in.`,"models.uses":`Used for`,"models.useFor":`Use`,"models.inUse":`in use`,"models.try":`Try it`,"models.try.text":`Test`,"models.try.image":`Make a test image`,"models.try.video":`Make a test clip`,"models.try.speech":`Hear a sample`,"models.try.listening":`Test listening`,"models.tryCost":`Costs like a real call.`,"models.tryCostVideo":`A 4-second clip – costs like a real one.`,"models.tryWait":`Generating…`,"models.tryWaitVideo":`A clip takes a minute or two…`,"models.tryOk":`In {s} s with {model}`,"models.tryHeard":`Heard: “{text}”`,"models.tryHeardNothing":`Nothing heard – but the connection works.`,"models.tryFailed":`That didn’t work: {error}`,"models.creditsName":`engenty credits`,"models.creditsTeam":`Team credits`,"models.creditsLocalLead":`Credits step in where you have no subscription or API key of your own.`,"models.creditsCloudHint":`Anything without your own API key runs on credits. Your own keys come first and cost no credits.`,"models.creditsConnectTitle":`With an account`,"models.creditsLocalHint":`With an engenty account, credits step in where you have nothing of your own set up – for example, videos without your own API key.`,"models.creditsConnect":`Connect an account`,"models.creditsFallback":`Credits step in`,"models.creditsFallbackOn":`Anything without a subscription or your own API key runs on credits.`,"models.creditsFallbackOff":`Off: anything without a subscription or your own API key doesn’t run.`,"models.creditsOn":`Runs on credits`,"models.creditsNone":`Nothing runs on credits right now.`,"models.creditsTopUp":`Top up`,"models.creditsPicks":`engenty chooses the model and bills in credits.`,"models.creditsModel":`Right now: {model}.`,"models.clientSignIn":`Sign-in`,"models.clientImages":`{name} makes images with your {sub} – no API key of your own.`,"models.clientNotChosen":`Text doesn’t run on {name} right now.`,"models.ollamaHint":`Where Ollama runs and the model it serves.`,"models.readOnly":`Only the team’s admins can change its models.`,"models.viewAs":`Preview as`,"models.view.auto":`as it is`,"models.view.local":`this computer`,"models.view.linked":`this computer + account`,"models.view.cloud":`the cloud`,"setup.title":`Setup`,"setup.sub":`engenty wizards can use your existing accounts on your computer.`,"setup.source":`Choose how the AI runs`,"setup.local":`Runs on this computer.`,"setup.thisComputer":`This computer: space {space} of {team}`,"setup.account":`Your engenty account`,"setup.accountText":`Your team, its space and your wizards belong to the account. This computer joins the space.`,"setup.accountLinked":`Signed in as {name}`,"setup.accountCredits":`{credits} credits`,"setup.creditsChoice":`engenty credits`,"setup.creditsDesc":`Runs on your account’s credits, as in the cloud. Nothing to install.`,"onboard.kicker1":`Welcome, {name} · Who you are`,"onboard.kicker1Anon":`Welcome · Who you are`,"onboard.team":`What’s your team called?`,"onboard.teamSub":`Your company, your club or just your name. The team is your account: it holds your credits and your wizards. You can rename it any time.`,"onboard.teamPlaceholder":`Platzer Windows & Doors`,"onboard.kind":`What will you use engenty for?`,"onboard.kindSub":`So we can show you the templates and tips that fit.`,"onboard.guess":`Guessed from {domain}: {kind}. If that’s not right, just pick another.`,"onboard.kindPersonal":`Just me`,"onboard.kindPersonalSub":`Personal, hobby, trying it out`,"onboard.kindClub":`Club`,"onboard.kindClubSub":`Club, initiative, volunteering`,"onboard.kindSmall":`Small business`,"onboard.kindSmallSub":`Self-employed up to 49 people`,"onboard.kindCorp":`Company`,"onboard.kindCorpSub":`50 people or more`,"onboard.personalTitle":`What would you like engenty to do for you?`,"onboard.personalPlaceholder":`e.g. job applications, photos for listings, planning trips`,"onboard.clubTitle":`Tell us about your club`,"onboard.businessTitle":`Tell us about your business`,"onboard.clubKind":`Kind of club`,"onboard.members":`Members`,"onboard.yourRole":`Your role`,"onboard.people":`How many of you are there?`,"onboard.justMe":`Just me`,"onboard.sector":`Sector`,"onboard.sectorPlaceholder":`e.g. joinery, physiotherapy, online shop`,"onboard.need":`What do you need?`,"onboard.needPlaceholder":`e.g. quotes written faster, enquiries from the website answered`,"onboard.optional":`optional`,"onboard.legalName":`Official company name`,"onboard.legalNamePlaceholder":`e.g. Example Trading Ltd`,"onboard.phone":`Phone`,"onboard.phoneWhy":`for questions about contract and invoices`,"onboard.club.sport":`Sport`,"onboard.club.culture":`Culture & music`,"onboard.club.social":`Social`,"onboard.club.education":`Education`,"onboard.club.environment":`Environment`,"onboard.club.rescue":`Fire & rescue`,"onboard.club.other":`Other`,"onboard.role.chair":`Chair`,"onboard.role.board":`Board`,"onboard.role.treasurer":`Treasurer`,"onboard.role.secretary":`Secretary`,"onboard.role.member":`Member`,"onboard.role.management":`Management`,"onboard.role.it":`IT`,"onboard.role.marketing":`Marketing`,"onboard.role.sales":`Sales`,"onboard.role.operations":`Operations`,"onboard.role.other":`Other`,"onboard.siteNameHint":`No address? A name is enough, we keep it in mind.`,"onboard.back":`Back`,"onboard.kicker2":`About you & your brand`,"onboard.site":`Where can the wizards read about you?`,"onboard.siteSub":`Enter your website and engenty picks up your name, what you do, your logo and colours from it. Every wizard then sounds like you and looks like you. No website? Write a line about yourself instead.`,"onboard.sitePlaceholder":`platzer-fenster.at`,"onboard.read":`Read it`,"onboard.reading":`Reading…`,"onboard.readDone":`Got it: {name}{details}.`,"onboard.readAbout":`, what you do`,"onboard.readColors":`, {n} colours`,"onboard.readLogo":`, the logo`,"onboard.readFailed":`That page couldn’t be read. Check the address, or write a line about yourself instead.`,"onboard.line":`Write a line instead`,"onboard.linePlaceholder":`We make and fit windows and doors in Upper Austria, for private homes and builders. Friendly, to the point.`,"onboard.save":`Save`,"onboard.skip":`Skip for now`,"onboard.kicker3":`Knowledge`,"onboard.know":`What should the wizards know?`,"onboard.knowSub":`Documents the wizards may look things up in: price lists, brochures, your terms, an FAQ. PDF, Word, Excel. A wizard answers from them instead of guessing. You can add more any time under Space → Knowledge.`,"onboard.drop":`Drop files here, or choose them`,"onboard.uploading":`reading…`,"onboard.uploaded":`read`,"onboard.uploadFailed":`not read`,"onboard.kicker4":`Your space`,"onboard.space":`All of that lives in your space.`,"onboard.spaceSub":`Your team’s first space is called {space}. All your wizards share it and add to it: every AI step knows it, so a wizard never asks for your name or your prices. You can rename it any time – the house icon in the app bar opens it.`,"onboard.partInfo":`Info & brand`,"onboard.partInfoText":`Who you are and how you look: title, about, logo, colours, facts.`,"onboard.partKnow":`Knowledge`,"onboard.partKnowText":`What every AI step looks things up in: your documents and pages.`,"onboard.partData":`Data`,"onboard.partDataText":`Tables and pages your wizards keep: enquiries, bookings, lists. Fills as they run.`,"onboard.partResults":`Results`,"onboard.partResultsText":`Every run that reached its result, per wizard. PDF, Word, images, video.`,"onboard.build":`Build your first wizard`,"onboard.continue":`Continue`,"onboard.step":`Step {n} of 4`,"setup.stage.connect":`Connect`,"setup.stage.test":`Test`,"setup.stage.done":`Done`,"setup.h.install":`Install {name}`,"setup.h.signIn":`Sign in to {name}`,"setup.h.keys":`Enter a key`,"setup.h.test":`One short test`,"setup.h.done":`Connected.`,"setup.ready":`All set.`,"setup.noHarness":`No AI client is installed yet. Choose one and it installs right here, or enter your own keys.`,"setup.ownDesc":`AI Gateway, OpenAI, Anthropic or Ollama.`,"setup.appleDesc":`The model on this Mac – no account, no internet.`,"setup.appleHint":`Apple Intelligence handles short texts and decisions on this Mac; nothing leaves it. For research, long documents and code, add another option later under Settings → Models.`,"setup.appleHintKeeps":`Apple Intelligence handles short texts and decisions on this Mac; nothing leaves it. Research, long documents and code (High, Highest) stay as they were: {way}.`,"setup.recommended":`Recommended`,"setup.done":`Open the studio`,"setup.untilWorks":`The studio opens once the test works.`,"cloud.notSent":`This version hasn’t arrived in the cloud yet.`,"cloud.send":`Send now`,"cloud.resend":`Send again`,"cloud.again":`We’ll try again at {when}.`,"cloud.sent":`Version {v} · arrived {when}`,"cloud.notRunnable":`Version {v} doesn’t run in the cloud.`,"cloud.keepsRunning":`Version {v} keeps running there.`,"cloud.nothingRuns":`Nothing runs there yet.`,"cloud.notes":`What runs differently in the cloud:`,"cloud.check":`What the cloud would lack for the wizard as it is now:`,"cloud.checkBlocking":`As it is now, the wizard wouldn’t run in the cloud:`,"cloud.documents":`The space’s documents stay on this computer. In the cloud, the steps work without them.`,"cloud.stepName":`“{title}”`,"cloud.problem.sandbox":`The cloud can’t run code steps. There, the wizard runs without them.`,"cloud.problem.mcp":`The space’s connected systems aren’t available in the cloud: {detail}.`,"cloud.problem.model":`The cloud has no model for this.`,"cloud.problem.connector":`The space lacks a connector in the cloud.`,"cloud.problem.invalid":`The cloud doesn’t accept the wizard in this form.`,"cloud.spaceLimit":`Your account’s cloud already holds a space from another computer:`,"cloud.replace":`Replace that space`,"cloud.replaceConfirm":`Remove that space from the cloud? Its wizards and their links stop working there. Then everything you published here arrives in the cloud.`,"cloud.noticeError":`Published here. This version didn’t arrive in the cloud – see below.`,"cloud.noticeNotRunnable":`Published here. This version doesn’t run in the cloud – see below.`,"readonly.wizard":`You edit this wizard in engenty wizards on your computer. When you publish it there, the new version runs here.`,"readonly.project":`You edit this space in engenty wizards on your computer. Changes show up here the next time you publish a wizard.`,"readonly.server":`Wizards run here once you publish them in engenty wizards on your computer. You build and edit them there.`,"nav.wizards":`Wizards`,"nav.spaceMenu":`Space menu`,"nav.renameSpace":`Rename space`,"nav.wizardsInSpace":`Wizards in space`,"nav.addWizard":`Add wizard`,"nav.spaceLocal":`On this computer`,"nav.spaceCloud":`In the cloud`,"nav.settings":`Settings`,"nav.project":`Space`,"nav.switchSpace":`Switch space`,"nav.addSpace":`Add space`,"nav.wizardCount":{one:`{n} wizard`,other:`{n} wizards`},"appbar.position":`Position`,"appbar.left":`Left`,"appbar.top":`Top`,"appbar.right":`Right`,"appbar.bottom":`Bottom`,"appbar.theme":`Colour scheme`,"appbar.light":`Light`,"appbar.dark":`Dark`,"appbar.system":`Match system`,"account.title":`Account`,"account.hint":`What engenty wizards calls you and how to reach you.`,"account.initials":`Your initials in the menu at the top right: the first letters of your name.`,"account.name":`Name`,"account.nameHint":`It starts as this computer’s user name.`,"account.fromAccount":`Name and email come from your account.`,"account.about":`About you`,"account.aboutHint":`Who you are and what you do.`,"account.email":`Email`,"account.phone":`Phone`,"account.connection":`engenty account`,"account.connectionHint":`Sign-in, credits and the cloud that runs your wizards for everyone.`,"account.profile":`Profile`,"account.local":`On your computer`,"account.localText":`engenty wizards runs on your computer and isn’t connected to an account. Wizards, the space and files stay here.`,"account.linked":`Connected`,"account.with":`With an account`,"account.withCredits":`Credits for the models where no AI client is installed. No API key needed.`,"account.withCloud":`What you publish also runs on engenty.ai, behind a public link, even when this computer is off.`,"account.signIn":`Sign in`,"account.signInAgain":`Sign in again`,"account.new":`No account yet?`,"account.newHint":`A new account needs an invitation code. Enter it here and it’s filled in when you create the account.`,"account.code":`Invitation code`,"account.create":`Create account`,"account.credits":`Credits`,"account.topUp":`Top up`,"account.expires":{one:`{n} credit valid until {date}`,other:`{n} credits valid until {date}`},"account.kind.start":`Starting credits`,"account.kind.monthly":`Monthly credits`,"account.kind.gift":`Gift`,"account.cloud":`What you publish here also runs on {host}.`,"account.look":`Appearance`,"account.lookHint":`Language and theme of the studio in this browser.`,"nav.logout":`Sign out`,"nav.connected":`Connected to {host}`,"nav.expired":`Sign-in expired`,"nav.onlyHere":`Only on this computer`,"nav.local":`local`,"nav.theme":`Theme`,"nav.credits":{one:`{n} credit`,other:`{n} credits`},"about.version":`Version {v}`,"about.title":`About engenty wizards`,"about.kind.script":`On your computer`,"about.kind.checkout":`Development checkout`,"about.kind.npm":`Installed with npm`,"about.kind.cloud":`In the cloud`,"about.update.check":`Check for updates`,"about.update.checking":`Checking for updates…`,"about.update.upToDate":`You’re up to date.`,"about.update.checkedAt":`last checked {when}`,"about.update.unknown":`Couldn’t check for updates. Check your connection to GitHub and try again.`,"about.update.off":`Checking for updates is switched off.`,"about.update.manual":`This copy doesn’t update itself. Get the new version where you installed it.`,"about.tab.new":`What’s new`,"about.tab.earlier":`Versions`,"about.changes":{one:`{n} change`,other:`{n} changes`},"about.change":`1 change`,"about.update.available":`Version {v} of engenty wizards is out.`,"about.update.install":`Update`,"about.update.installing":`Installing version {v}…`,"about.update.restarting":`Restarting with version {v}…`,"about.update.done":`Installed. Restart engenty wizards to use {v}.`,"about.update.failed":`The update failed. Details are in logs/update.log.`,"about.update.notes":`What’s new`,"about.update.updated":`Updated to version {v}.`,"about.update.ready":`Version {v} is downloaded and runs from the next start.`,"about.changelog":`Changelog`,"about.changelogHint":`What changed from release to release.`,"about.changelogEmpty":`Nothing here yet.`,"about.unreleased":`Unreleased`,"about.breaking":`breaking`,"about.credits":`Credits`,"about.creditsHint":`engenty wizards and the open-source software it builds on.`,"about.creditsProduct":`engenty`,"about.creditsBuiltWith":`Built with`,"about.creditsDeps":`Direct dependencies`,"about.creditsDepsHint":`What each part of engenty wizards includes directly, with version and licence – not their own dependencies.`,"about.creditsShared":`Used by more than one part`,"about.search":`Search…`,"about.noMatches":`No matches.`,"theme.dark":`Dark theme`,"theme.light":`Light theme`,"home.title":`Wizards in {space}`,"home.search":`Search your wizards`,"home.noMatch":`No matches.`,"home.newFromSearch":`Build a new wizard: “{q}”`,"home.new":`New wizard`,"home.import":`Import`,"import.failed":`The import didn’t work. Check the file and try again.`,"home.empty":`No wizards in this space yet.`,"home.live":`Live`,"home.draft":`Draft`,"where.here":`Local`,"where.hereVersion":`Local · version {v}`,"where.hereHint":`Runs only on this computer, while engenty wizards is running.`,"where.liveHint":`Runs on {host}, for everyone with the link.`,"where.liveAt":`Live on {host} · version {v}`,"where.note":`1 note`,"where.notes":{one:`{n} note`,other:`{n} notes`},"where.sending":`On its way to the cloud`,"where.missing":`Not in the cloud`,"home.steps":{one:`{n} step`,other:`{n} steps`},"home.all":`All`,"home.newProject":`New space`,"home.projectName":`Space name`,"home.projectLimit":{one:`At most {n} space`,other:`At most {n} spaces`},"team.title":`Team`,"team.hint":`Who’s in the team and which plan it’s on. You invite and manage members in the account.`,"team.plan":`Plan`,"team.planFree":`Free`,"team.seats":`{taken} of {limit} seats`,"team.seatsUnlimited":`Unlimited seats`,"team.members":`Members`,"team.invited":`invited`,"team.you":`you`,"team.manage":`Manage members`,"team.changePlan":`See plans`,"team.roles":`Owners and admins create and delete wizards and spaces. Members edit existing wizards.`,"team.memberNote":`You’re a member: you can edit wizards. Admins create and delete them.`,"team.failed":`The team couldn’t be loaded. Try again.`,"team.role.owner":`Owner`,"team.role.admin":`Admin`,"team.role.member":`Member`,"models.ownKeysPlan":`Your own API keys come with the Pro plan. Here, runs use the team’s credits.`,"home.fromLocal":`Edited on your computer.`,"home.syncedAt":`Arrived in the cloud: {when}.`,"home.local.title":`Wizards you publish from your computer run here`,"home.local.text":`You build on your own computer. What you publish there runs here – for everyone, behind a link.`,"home.local.install":`Install engenty wizards on your computer:`,"home.local.signIn":`Sign in there with this account, under Settings → Account.`,"home.local.publish":`Publish a wizard. It then shows up here.`,"new.title":`What should your wizard do?`,"new.placeholder":`e.g. Customers enter their product and audience, the wizard researches competitors and writes a positioning briefing as a PDF.`,"new.build":`Build wizard`,"new.orStarter":`Or start from a template`,"new.import":`Import a wizard file`,"new.hint":`You can change everything afterwards in the chat.`,"guest.signIn":`Sign in`,"guest.hint":`Next you sign in. Your wish stays with you.`,"onboard.wish":`Your wish`,"onboard.wishNext":`Right after this, the studio builds your wizard.`,"legal.imprint":`Imprint`,"legal.privacy":`Privacy`,"legal.terms":`Terms`,"new.runsAs":`Runs as`,"new.where":`How should it run?`,"new.web":`In the browser`,"new.phone":`On the phone`,"new.messages":`By message`,"new.off":`off`,"new.ch.steps":`Step-by-step wizard`,"new.ch.chat":`Chat`,"new.ch.talk":`Live voice`,"new.ch.video":`Video call`,"new.ch.call":`Call`,"new.ch.sms":`SMS`,"new.ch.whatsapp":`WhatsApp`,"new.callHandoff":`Anything a call can’t do is sent by SMS.`,"new.similar":`Similar wizards`,"new.yours":`Yours`,"new.template":`Template`,"new.open":`Open`,"new.take":`Use`,"new.more":`{n} more…`,"new.dropHint":`Drop to attach`,"editor.resize":`Drag to resize, double-click to reset`,"editor.resizeSheet":`Drag to resize, tap to fold or unfold`,"editor.export":`Export as a wizard file (.wizard)`,"wizardMenu.label":`More`,"wizardMenu.duplicate":`Duplicate`,"wizardMenu.delete":`Delete`,"wizardMenu.deleteTitle":`Delete “{title}”?`,"wizardMenu.deleteDraft":`The wizard and its history are deleted. This can’t be undone.`,"wizardMenu.deletePublished":`The wizard is deleted. Its link stops working and the published version goes away – from the cloud too, if an account is connected. This can’t be undone.`,"addStep.title":`What should happen here?`,"addStep.placeholder":`e.g. a map of all properties found, coloured by price`,"addStep.kind":`Kind of step`,"addStep.auto":`AI chooses`,"addStep.empty":`Describe what the step should do first.`,"addStep.busy":`The assistant is still working on the last message. Try again in a moment.`,"addStep.emptyStep":`Insert empty`,"addStep.cancel":`Cancel`,"addStep.create":`Create`,"addStep.building":`Building the new step…`,"addStep.showChat":`See it in the chat`,"addStep.add":`Add step`,"surface.preview":`Preview`,"surface.code":`Code`,"surface.sampleNote":`With sample data – a run shows its own.`,"surface.sampleText":`Sample text`,"surface.sampleBrand":`Your company`,"addStep.when":`When?`,"addStep.always":`Always`,"addStep.onlyIf":`Only if…`,"addStep.aiDecides":`AI decides…`,"addStep.ifPlaceholder":`e.g. revenue below 100`,"addStep.askPlaceholder":`e.g. the person wants a refund`,"addStep.whenEmpty":`Say when this step should run.`,"addStep.messageIf":`Only if: {text} – otherwise the run continues after “{from}” as before.`,"addStep.messageAsk":`AI decides: {text} – otherwise the run continues after “{from}” as before.`,"addStep.here":`Add a step here`,"addStep.between":`Between “{before}” and “{after}”`,"addStep.after":`After “{title}”`,"addStep.first":`As the first step, before “{title}”`,"addStep.message":`New step · {place}`,"addStep.messageAs":`New step ({kind}) · {place}`,"widget.missing":`The widget isn’t built yet.`,"widget.what":`What should the widget show? (optional)`,"widget.build":`Let the assistant build it`,"widget.upload":`Upload your own HTML`,"widget.buildMessage":`Please build the widget “{title}”. {what}`,"editor.chat":`Assistant`,"editor.flow":`Flow`,"editor.dropToAttach":`Drop to attach to your message`,"editor.memory":`Memory`,"memory.explain":`What the wizard knows across all its runs. AI steps with the “Pages” tool read and add notes here, and its shared lists keep their tables here. The same data is under Data in your space.`,"memory.unused":`No step uses the memory yet. Ask the assistant to have an AI step remember something.`,"memory.none":`Nothing remembered yet.`,"memory.add":`Note`,"memory.newNote":`Note`,"memory.back":`Memory`,"memory.testCopy":`Test runs read the memory but write to a copy of their own, which belongs to the run.`,"editor.step":`Steps`,"editor.runs":`Runs`,"editor.reviewEditable":`editable`,"editor.reviewRedo":`can be redone`,"editor.otherwise":`otherwise`,"editor.next.title":`Next step`,"editor.next.ways":{one:`Next step · {count} path`,other:`Next step · {count} paths`},"editor.next.open":`Open step`,"editor.next.then":`Then`,"editor.next.fold":`Hide details`,"editor.next.unfold":`Show details`,"editor.branch.ai":`AI`,"editor.branch.addWhen":`Condition`,"editor.branch.when":`Continue when`,"editor.branch.pick":`Choose…`,"editor.branch.and":`and`,"editor.branch.statement":`Statement`,"editor.branch.none":`None clearly applies`,"editor.branch.how":`A decision model decides when one is available; otherwise the Classifier model does. If the top two answers are within 10 points, “none” applies.`,"editor.branch.lastRun":`In the last test run, {source} decided.`,"editor.branch.bySystemOne":`a decision model`,"editor.branch.byLlm":`the language model`,"editor.branch.notYet":`A test run shows here how the AI decided.`,"editor.branch.end":`End`,"editor.branch.max":`At most this often (default 10)`,"editor.branch.remove":`Remove branch`,"editor.branch.addAsk":`AI decides`,"editor.branch.newAsk":`The person wants…`,"editor.whenFilled":`{field} filled in`,"editor.whenEmpty":`{field} empty`,"editor.whenContains":`{field} contains {value}`,"editor.whenAsk":`decides: {text}`,"editor.surfaceJson":`View (JSON)`,"editor.fieldAsk":`Or: show when the AI finds this true…`,"editor.atMost":`at most {count}×`,"editor.shownWhen":`Show only when`,"editor.shownAlways":`Always show`,"editor.conditionValue":`Value`,"editor.optionsFrom":`Choices from earlier data`,"editor.optionsFixed":`Fixed choices`,"editor.op.equals":`is`,"editor.op.notEquals":`is not`,"editor.op.in":`is one of`,"editor.op.notEmpty":`is filled in`,"editor.op.empty":`is empty`,"editor.op.gt":`greater than`,"editor.op.lt":`less than`,"editor.op.contains":`contains`,"editor.conditionsMore":{one:`and {count} more condition`,other:`and {count} more conditions`},"tool.web_search":`Web search`,"tool.web_fetch":`Read web pages`,"tool.browser":`Browser`,"tool.sandbox":`Code & shell`,"tool.image":`Images`,"tool.http":`API`,"tool.pages":`Pages`,"editor.test":`Test`,"editor.share":`Share`,"editor.published":`Live · version {v}`,"editor.notPublished":`Not published yet`,"editor.composer":`Describe what should change…`,"editor.attach":`Attach files`,"editor.detach":`Remove`,"editor.attached":`Attached`,"editor.thread":`Chat history`,"editor.voice":`Dictate`,"editor.voiceStop":`Stop dictating`,"editor.listening":`Listening…`,"editor.transcribing":`Writing it down…`,"editor.micDenied":`The microphone isn’t allowed for this page. Allow it in your browser’s site settings.`,"editor.building":`Building the flow…`,"editor.files":`Files`,"files.explain":`Your wizard uses these files on every run, like widget code, libraries or price lists. The assistant creates them in the chat, or you can upload your own.`,"files.upload":`Upload`,"files.drop":`Drop to upload`,"files.count":{one:`{n} file · {size}`,other:`{n} files · {size}`},"files.empty":`No files yet. Drop files here or ask the assistant to build a widget.`,"files.download":`Download`,"files.delete":`Delete`,"files.confirmDelete":`Delete “{path}”?`,"files.none":`This wizard has no files.`,"editor.thinking":`Thinking…`,"editor.chatBroken":`The connection dropped. What was already built is saved. Send your message again.`,"editor.issues":`Before you test or share, the wizard needs a few fixes:`,"editor.fixWithChat":`Let the assistant fix it`,"editor.models.blocking":`The wizard can’t start like this. Models are missing:`,"editor.models.optional":`These steps won’t run like this. Choose a path without them when testing, or set up the models:`,"editor.models.settings":`Set up models`,"editor.prevStep":`Previous step`,"editor.nextStep":`Next step`,"editor.deleteStep":`Delete step`,"editor.holdToDelete":`Hold to delete`,"editor.deleting":`Delete`,"editor.moveUp":`Move up`,"editor.moveDown":`Move down`,"editor.noRuns":`No runs yet.`,"editor.restart":`Restart`,"editor.close":`Close`,"runDrawer.expand":`Fill the window`,"runDrawer.shrink":`Back to the side`,"editor.chatHello":`Tell me what your wizard should do. I’ll build the flow and you’ll see it as a diagram on the left.`,"shareRun.button":`Share`,"shareRun.title":`Share result`,"shareRun.email":`Email`,"shareRun.more":`More…`,"shareRun.until":`The link works until {date}.`,"shareRun.kept":`The link works until you withdraw it.`,"shareRun.withdraw":`Withdraw link`,"sharePage.gone":`This link has expired or was withdrawn.`,"sharePage.own":`Try it yourself`,"sharePage.until":`Shared · available until {date}`,"sharePage.shared":`Shared on {date}`,"share.publishing":`Publishing…`,"share.firstTitle":`Published when you shared it`,"share.firstText":`Version {v} is live. Only people with the link can open it.`,"share.notReady":`Not ready to share yet`,"share.notReadyHint":`Sharing it for the first time publishes it. Fix this first:`,"share.stillBuilding":`The assistant is still building it. Once it’s done, sharing publishes it.`,"live.open":`Publish changes`,"live.openShort":`Publish`,"live.title":`Publish changes`,"live.intro":`Others see version {v}. Publishing makes it version {next} – the link stays the same.`,"live.changed":`What changed`,"live.nothing":`Nothing that changes steps or files.`,"live.stepAdded":`New step “{name}”`,"live.stepRemoved":`Step “{name}” removed`,"live.stepChanged":`“{name}”: {parts}`,"live.wizardChanged":`The wizard itself: {parts}`,"live.order":`The order of the steps`,"live.fileAdded":`File “{name}” added`,"live.fileRemoved":`File “{name}” removed`,"live.fileChanged":`File “{name}” replaced`,"live.and":`and`,"live.part.title":`title`,"live.part.description":`description`,"live.part.fields":`fields`,"live.part.cta":`button`,"live.part.instructions":`instructions`,"live.part.tools":`tools`,"live.part.connections":`connections`,"live.part.output":`result`,"live.part.model":`model`,"live.part.next":`what comes next`,"live.part.each":`repetition`,"live.part.intro":`greeting`,"live.part.avatar":`engenty`,"live.part.lists":`lists`,"live.part.other":`settings`,"live.fixFirst":`Fix first, then publish`,"live.tested":`Tested {when} – with these changes`,"live.testedFailed":`The test {when} failed with these changes.`,"live.justNow":`just now`,"live.seeRun":`See the run`,"live.untested":`Not tested with these changes yet.`,"live.test":`Test now`,"live.keepRunning":`Anyone in the middle of a run carries on with version {v}.`,"live.cost":`A run now costs about {after} instead of {before} credits.`,"live.cloud":`Version {v} also arrives in your account’s cloud.`,"live.cancel":`Cancel`,"live.go":`Publish`,"live.going":`Publishing…`,"live.done":`Version {v} is live`,"live.doneHint":`New runs start on version {v}. Anyone mid-run carries on with version {was}.`,"live.doneCloud":`New runs start on version {v}, here and in the cloud. Anyone mid-run carries on with version {was}.`,"live.close":`Done`,"share.titleOf":`Share “{title}”`,"share.access":`Access`,"share.anyone":`Anyone with the link`,"share.anyoneMenu":`can open and fill it in`,"share.anyoneHint":`can open and fill it in · up to {n} runs a day`,"share.onlyYou":`Only you`,"share.onlyYouHint":`The link is off. You test it in the studio.`,"share.thisComputer":`Only on this computer`,"share.thisComputerHint":`Others reach it only through the cloud.`,"share.ways":`How others reach it`,"share.change":`Change`,"share.copyLink":`Link`,"share.copyNumber":`Number`,"share.copyLinkFor":`Copy the link for {name}`,"share.copyNumberFor":`Copy the number for {name}`,"share.keywordTo":`“{keyword}” to {number}`,"share.unset":`Not set up yet`,"share.setUp":`Set up`,"share.waiting":`Waiting`,"share.notInPlan":`Not in your plan`,"share.seePlan":`See {plan}`,"share.seePlans":`See the plans`,"share.offNote":`While only you have access, everyone else sees a notice.`,"share.opensSteps":`step by step`,"share.opensAs":`as {name}`,"share.linkNote":`“Copy link” opens it {how} and offers the other options right away.`,"share.copyMain":`Copy link`,"share.notPublished":`Not published yet`,"share.changes":`Others see version {v}. Your changes are not live yet.`,"share.localHint":`Here it runs on this computer only. With an account, it also runs in the cloud, and everyone opens it there.`,"share.back":`Back`,"share.close":`Close`,"share.done":`Done`,"share.qrOpens":`Opens`,"share.qrMessage":`Scan with the phone’s camera: {name} opens with the keyword already typed.`,"share.print":`Print`,"share.download":`Download`,"share.onWebsite":`On your website`,"share.webShows":`What does the website show?`,"share.webWhere":`Where on the page?`,"share.webCode":`Code for your page`,"share.copyCode":`Copy code`,"share.webNeedsLink":`The code only works once the wizard is published and open to anyone with the link.`,"share.wpLine":`WordPress? Our plugin does it without code.`,"share.wpPackageLink":`Without an account: as a package`,"share.place.inline":`In the page`,"share.place.inlineHint":`It sits in your page, where you paste the code.`,"share.place.button":`Behind a button`,"share.place.buttonHint":`A button on your page opens it in a window.`,"share.place.bubble":`As a bubble`,"share.place.bubbleHint":`Bottom right on every page – one click opens it. Ideally, put the code in the footer.`,"share.place.popout":`As a chat button`,"share.place.popoutHint":`Bottom right on every page – one click opens the chat. Ideally, put the code in the footer.`,"share.runs":`runs`,"share.newLink":`New link`,"share.rotated":`New link created`,"share.link":`Link`,"share.copy":`Copy`,"share.limit":`Limit per day`,"translate.offer":`Offer a translation`,"translate.offerHint":`People who speak another language can read the wizard in theirs. The first translation into a language is one short AI call. After that it is only read.`,"translate.byYou":`Edited by you`,"translate.byMachine":`Machine-translated`,"translate.edit":`Edit translation`,"translate.delete":`Delete translation`,"translate.none":`No translation yet. One is made when someone opens the wizard in another language.`,"translate.save":`Save`,"translate.editHint":`What you change here stays when you publish again, as long as the original text stays the same. Leave placeholders in curly brackets as they are.`,"share.rotate":`Create a new link`,"share.rotateHint":`The old link and the QR code stop working.`,"share.open":`Open`,"share.website":`Website`,"share.openHere":`Test on this computer`,"share.settings":`Settings`,"share.rotateCloud":`The old link and the QR code stop working, in the cloud too.`,"share.others":`Share with others`,"share.details":`Details`,"teaser.link":`This link only works on this computer, while engenty wizards is running. With an account, the wizard also runs on engenty.ai, with a link for everyone.`,"teaser.models":`No API key of your own? With an account, text, images and videos run on credits.`,"teaser.connect":`Connect an account`,"teaser.modelsLinked":`Or use your account’s credits: under Models, choose “engenty credits”.`,"share.qr":`QR code`,"share.qrHint":`Scan it with a phone’s camera: the wizard opens in the engenty wizards app if it’s installed.`,"share.code":`ID for the app:`,"share.readOnly":`You set whether the link is active and how many runs a day it allows on your computer.`,"share.fit.no":`Not possible: {steps}`,"chat.view":`View`,"chat.steps":`Steps`,"chat.chat":`Chat`,"video.chat":`Chat`,"type.page":`Page`,"type.agent":`AI step`,"type.generate":`Generate`,"type.surface":`View`,"type.widget":`Widget`,"type.film":`Film`,"type.review":`Review`,"type.result":`Result`,"run.regenerate":`New version`,"run.regenerateNote":`What should change?`,"market.search":`Search templates…`,"market.hits":`From the marketplace`,"market.all":`All`,"market.industry":`Industry`,"market.format":`Result`,"market.capability":`Capability`,"market.unavailable":`not set up`,"market.without":`Works without: {list}`,"market.optional":`not set up, works without`,"market.optionalHint":`Runs here without {list}: answers that would need it are locked in the wizard. Set it up under Models.`,"market.missing":`Not set up here: {list}`,"market.plan":`Plan`,"market.pro":`Pro`,"market.proHint":`Needs plugins that come with Pro on engenty.ai`,"market.needsPro":`With Pro: needs {list}`,"market.needsProHint":`This template needs {list}. The plugins come with Pro and Team on engenty.ai.`,"market.missingHint":`This needs a model that isn’t set up here: {list}. Set it up under Models.`,"market.none":`No matches.`,"market.notFound":`This template doesn’t exist or was removed.`,"market.star":`Star`,"market.starred":`Starred`,"market.starHint":`Starred templates are kept on this computer, ready without a connection.`,"market.fromPlugin":`Comes with the plugin “{name}”`,"market.noneStarred":`You haven’t starred a template yet.`,"market.offline":`No connection to the marketplace. You’re seeing the templates saved on this computer.`,"market.more":`Show more`,"market.reset":`Reset filters`,"market.count":{one:`{n} template`,other:`{n} templates`},"market.countOf":`{n} of {all} templates`,"market.countOfShort":`{n} of {all}`,"market.resetShort":`Reset`,"market.minutes":`≈ {n} min`,"market.credits":`≈ {n} credits per run`,"market.needsUpdate":`Needs a newer version`,"market.needsUpdateHint":`This template uses features your version doesn’t support yet. Update engenty wizards to use it.`,"market.use":`Start with this template`,"market.steps":`How the wizard runs`,"market.duration":`Duration`,"market.durationHint":`from start to result, with {n} inputs from you`,"market.result":`Result`,"market.creditsRange":`≈ {n} credits`,"market.creditsHint":`estimated per run, rarely more than twice that`,"market.needs":`Needs`,"market.cost":`Cost`,"new.forWebsite":`Small helpers for your website`,"run.download":`Download`,"run.required":`Required`,"settings.title":`Settings`,"settings.name":`Name`,"settings.mcp":`Connected systems`,"settings.mcpHint":`AI steps can read from and write to these systems – only when you allow it on the step.`,"settings.addServer":`Connect a system`,"settings.serverName":`Name`,"settings.serverUrl":`MCP URL`,"settings.serverHeader":`Authorization header (optional)`,"settings.save":`Save`,"settings.saved":`Saved`,"settings.delete":`Delete space`,"settings.noProject":`Your space shows up here once you publish your first wizard from your computer.`,"settings.copy":`Copy`,"settings.copied":`Copied`,"settings.lastUsed":`last used {when}`,"settings.neverUsed":`never used`,"settings.revoke":`Delete key`,"mcp.appsDisconnect":`Disconnect`,"plugins.title":`Plugins`,"plugins.hint":`Plugins add pages, settings and tools for steps to engenty wizards. They run with full rights, so only install plugins you trust.`,"plugins.hintManaged":`These plugins are switched on for your account.`,"plugins.reload":`Reload`,"plugins.rescan":`Look again`,"plugins.tools":`Tools for steps`,"plugins.serverFailed":`The server part didn’t load. Check the plugin and reload: {error}`,"plugins.studioFailed":`The studio part didn’t load. Check the plugin and reload: {error}`,"plugins.problems":`Not a plugin`,"plugins.crashed":`This part of a plugin crashed.`,"plugins.none":`No plugins of your own yet.`,"pro.title":`Pro modules`,"pro.hint":`Your plan (Pro, Team) includes these modules on your computer. They come from your engenty account and are signed by engenty. They stay on while your plan includes them, for up to a week offline.`,"pro.check":`Check plan`,"pro.notLinked":`Connect your engenty account (Settings → Account) to use your plan’s modules here.`,"pro.plan":`Plan: {plan}`,"pro.confirmedUntil":`confirmed until {date}`,"pro.plans":`Plans`,"pro.on":`On`,"pro.notInPlan":`Not in your plan`,"pro.install":`Install`,"pro.update":`Update`,"pro.remove":`Remove`,"pro.none":`There are no Pro modules for this version ({runtime}) yet.`,"pro.held.plan":`Not in your plan`,"pro.held.release":`Downloading again for this version`,"pro.held.unconfirmed":`Plan not confirmed – go online to check`,"integrate.nav":`Integrate`,"integrate.title":`Your wizards in your AI apps`,"integrate.intro":`Start wizards right in the chat of Claude, ChatGPT, Cursor and the like – answer the pages there and get the result. The AI runs on the subscription you already have.`,"integrate.introManaged":`Start your wizards right in the chat of claude.ai, ChatGPT, Claude Desktop and the like – answer the pages there and get the result.`,"integrate.groupHere":`On this computer`,"integrate.groupCloud":`Through engenty.ai`,"integrate.groupBrowser":`In the browser`,"integrate.groupDesktop":`On your computer`,"integrate.groupMore":`More apps`,"integrate.groupShare":`Share`,"integrate.shareLink":`Share by link`,"integrate.shareSite":`On a website`,"integrate.wpIntro":`The plugin “engenty wizards” puts your published wizards on a WordPress site: as a block, a shortcode, an Elementor widget or a bubble at the bottom right. Results, contacts and bookings also show up in the WordPress admin.`,"integrate.wpInstall":`1 · Install the plugin`,"integrate.wpInstallHint":`In WordPress under Plugins → Add New → Upload Plugin, choose the ZIP file and activate it.`,"integrate.wpDownload":`Download engenty-wizards.zip`,"integrate.wpConnect":`2 · Connect`,"integrate.wpConnectHint":`In the WordPress admin under “engenty”, choose “Create your own AI” (new account) or “Sign in”. The plugin then reads in the site: name, logo, colours, contact details and its pages as knowledge.`,"integrate.wpConnectLocal":`The plugin connects to an account on engenty.ai, not to this computer. Connect your account here and publish your wizards; then you choose them in WordPress.`,"integrate.wpPlace":`3 · Put it on a page`,"integrate.wpPlaceHint":`The “engenty Wizard” block, the Elementor widget of the same name, the bubble from the plugin’s settings, or this shortcode with the wizard’s ID:`,"integrate.wpSampleLabel":`Start a request`,"share.wpPlugin":`Get the plugin`,"share.wpLocal":`Without an account, on the site itself`,"share.wpLocalHint":`Imported as a package into WordPress 7, the wizard uses the site’s own AI provider and needs no account. What it needs:`,"share.wpPackage":`Download the package`,"share.wpPackageDraft":`Draft as a package`,"share.wpKnowledge":`Take the knowledge along`,"share.wpKnowledgeHint":`This space’s pages go into the package as files (up to 2 MB) – what the wizard would otherwise look up in the space.`,"share.wpFull":`Runs there as is`,"share.wpLess":`Runs with less`,"share.wpNo":`Needs an account`,"share.wpNeedsAccount":`With an account: needs {list}`,"share.wpHelp":`In the plugin: engenty → Wizards → Import. Without an account, the results stay in WordPress; contacts, bookings and files need an account.`,"need.full":`runs`,"need.missing":`not set up`,"need.optional":`works without`,"need.lists":`Lists the wizard keeps between runs`,"need.memory":`The wizard’s memory`,"need.each":`One run per entry (here, one after the other)`,"need.field:slot":`Choosing an appointment from free times`,"need.asset:document":`Making documents (PDF, Word)`,"need.asset:dashboard":`Making dashboards`,"need.tool:pages":`Reading the space’s pages`,"need.format":`Result as {format}`,"integrate.wpLocal":`Without an account`,"integrate.wpLocalHint":`WordPress 7 with its own AI provider (Settings → Connectors) runs wizards without an account: the templates that come with the plugin, or a package from a wizard’s share dialog. The share dialog shows for each wizard whether it runs there as is, with less or only with an account.`,"integrate.wpPro":`With Pro`,"integrate.wpProHint":`Contacts and bookings from your wizards in the WordPress admin; wizards made from templates right in WordPress.`,"integrate.soon":`soon`,"integrate.found":`Found on this computer`,"integrate.stateWorks":`Works`,"integrate.stateAdded":`Added, not tested yet`,"integrate.stateNone":`Not set up yet`,"integrate.outRun":`Start wizards in the chat`,"integrate.outWidget":`The wizard shows in the chat`,"integrate.outText":`Wizards as text in the chat`,"integrate.outSignIn":`No API key – you sign in`,"integrate.view":`View`,"integrate.testIt":`Test`,"integrate.connectShort":`Connect`,"integrate.cloudTitle":`claude.ai and ChatGPT`,"integrate.cloudText":`They run in the browser and can’t reach your computer. With your engenty account, your wizards get there anyway.`,"integrate.cloudButton":`Connect through engenty.ai`,"integrate.steps":`How it works`,"integrate.connect":`Add to {app}`,"integrate.connectHint":`Adds engenty wizards to the settings of {app}.`,"integrate.connected":`Added to {app}`,"integrate.notInstalled":`{app} isn’t on this computer. Adding works anyway – it takes effect once {app} is installed.`,"integrate.details":`Details`,"integrate.restart":`Restart {app}`,"integrate.restartHint":`Quit it completely and open it again. This page updates by itself – nothing to click here.`,"integrate.reload":`Reload the servers in {app}, or restart {app}. This page updates by itself.`,"integrate.waiting":`Waiting for {app}`,"integrate.try":`Try it in the chat`,"integrate.tryHint":`In a new chat, write:`,"integrate.askTool":`Which wizards do I have in engenty?`,"integrate.elsewhere":`{app} on another computer?`,"integrate.byAddress":`Connect with the address and an API key`,"integrate.backHere":`Connect on this computer after all`,"integrate.keyCreate":`Create an API key for {app}`,"integrate.keyHint":`{app} signs in with it. It’s shown once and goes straight into the command.`,"integrate.keyReady":`API key created – it’s already in the command.`,"integrate.add":`Add the server`,"integrate.addressLocal":`Reachable on this computer only, and only while engenty wizards is running.`,"integrate.works":`Works`,"integrate.next":`Try next`,"integrate.nextHint":`Copy a sentence into a new chat in {app}.`,"integrate.labelAsk":`Ask`,"integrate.labelRun":`Run`,"integrate.labelBuild":`Build`,"integrate.labelExplain":`Explain`,"integrate.askRun":`Start my wizard “{title}”`,"integrate.askBuild":`Build me a wizard for newsletter drafts`,"integrate.askExplain":`What does the wizard “{title}” do?`,"integrate.textOnly":`{app} shows wizards as text: pages and questions come as messages. Claude Desktop, Cursor and VS Code show the wizard itself as a window in the chat.`,"integrate.addedIn":`Added to {app}`,"integrate.remoteWhy":`{app} runs on its maker’s servers and can’t reach your computer. It can reach your wizards on engenty.ai.`,"integrate.viaAccount":`Connect through your engenty account`,"integrate.tileHere":`This computer`,"integrate.tileHereText":`You keep building here as before.`,"integrate.tileCloudText":`Runs your published wizards.`,"integrate.tileAppText":`Connects to engenty.ai and starts them in the chat.`,"integrate.linkAccount":`Connect to engenty.ai`,"integrate.linkHint":`Then we’ll show you the steps in {app}.`,"integrate.noAccount":`Prefer not to use an account?`,"integrate.useDesktop":`Claude Desktop works right here – one click`,"integrate.linked":`Through your account {email}: {app} sees the wizards you publish here.`,"integrate.openConnectors":`Open connectors in claude.ai`,"integrate.open":`Open {app}`,"integrate.claudeAiWhere":`There: Add custom connector`,"integrate.desktopWhere":`In Claude Desktop: Settings → Connectors → Add custom connector`,"integrate.chatgptWhere":`In ChatGPT: Settings → Apps & Connectors → Advanced → Developer mode, then “Create”`,"integrate.nameAddress":`Enter name and address`,"integrate.name":`Name`,"integrate.address":`Address`,"integrate.allow":`Click “Connect”, sign in, allow`,"integrate.allowHint":`An engenty window opens. You sign in and click “Allow”. It looks like this:`,"integrate.allowFirst":`Sign in and allow on first use`,"integrate.allowFirstHint":`{app} opens an engenty window. You sign in and click “Allow”.`,"integrate.consentPreview":`{app} wants to access your wizards`,"integrate.checkSeen":`Connected`,"integrate.checkTool":`Used a tool`,"integrate.checkWidget":`Showed a wizard in the chat`,"integrate.revoke":`Disconnect any time in your account – access ends at once.`,"integrate.revokeLink":`Connected apps`,"integrate.needsPublic":`{app} connects from its maker’s servers. That only works if this server can be reached publicly over HTTPS.`,"integrate.file":`Put this into {file}:`,"integrate.vscode":`In VS Code: “MCP: Open User Configuration”, then add:`,"integrate.chatgpt":`In ChatGPT: Settings → Apps & Connectors → Advanced → Developer mode, then “Create” with this address:`,"integrate.generic":`In the app’s MCP settings, add a server at this address (Streamable HTTP):`,"mcp.terminal":`Run in the terminal:`,"mcp.ccPlugin":`Optionally, the plugin – it adds the /wizard command:`,"mcp.codexKey":`Run in the terminal – Codex reads the API key from an environment variable:`,"mcp.claudeAi":`In claude.ai: Settings → Connectors → Add custom connector, and enter this address:`,"mcp.oauth":`No API key needed: the first time, your app signs in through the browser.`,"mcp.keys":`API keys`,"mcp.keysHint":`Each API key signs in one app and has full rights – treat it like a password. Delete it and that app is signed out.`,"editor.viaClient":`Via {client}`,"editor.changedVia":`Changed via {client}`,"editor.flowChanged":`Flow updated`,"editor.merged":`Merged with changes from elsewhere`,"common.remove":`Remove`,"common.back":`Back`,"editor.fixIssuesAsk":`Please fix these problems in the wizard:`,"runs.status.waiting_input":`waiting`,"runs.status.running":`running`,"runs.status.done":`done`,"runs.status.failed":`failed`,"runs.status.cancelled":`cancelled`,"step.new.page":`New page`,"step.new.question":`New question`,"step.new.agent":`AI step`,"step.new.agentTask":`Describe the task…`,"step.new.image":`Make an image`,"step.new.imagePrompt":`Describe the image…`,"inspector.kind.text":`Short text`,"inspector.kind.textarea":`Long text`,"inspector.kind.number":`Number`,"inspector.kind.select":`Choice`,"inspector.kind.multiselect":`Multiple choice`,"inspector.kind.date":`Date`,"inspector.kind.email":`Email`,"inspector.kind.url":`Link`,"inspector.kind.toggle":`Yes/no`,"inspector.kind.color":`Colour`,"inspector.kind.image":`Image upload`,"inspector.kind.file":`File upload`,"inspector.kind.items":`Line items (table)`,"inspector.kind.connection":`Connect an account`,"inspector.kind.list":`Saved list`,"inspector.kind.location":`Location`,"inspector.kind.audio":`Voice note`,"inspector.kind.signature":`Signature`,"inspector.kind.slot":`Appointment`,"inspector.whichAccount":`Which account?`,"inspector.whichList":`Which list?`,"inspector.multipleFiles":`Several files`,"inspector.howMany":`How many?`,"inspector.atLeast":`At least`,"inspector.atMost":`At most`,"inspector.camera":`Also record with the camera`,"inspector.cameraVideo":`Camera also records short videos`,"inspector.scan":`Scan a QR code or barcode`,"inspector.placeholder":`Placeholder`,"inspector.help":`Help text`,"inspector.widgetPreview":`Preview with sample data`,"inspector.htmlFile":`HTML file`,"inspector.sample":`Sample data`,"inspector.none":`none`,"inspector.size":`Size`,"inspector.widgetData":`Data for the widget`,"inspector.value":`Value`,"inspector.questions":`Questions`,"inspector.addQuestion":`Add question`,"inspector.task":`Instructions`,"inspector.insertAnswers":`Insert answers with`,"inspector.insertField":`field`,"inspector.insertResults":`, earlier results with`,"inspector.tools":`Tools`,"inspector.personAccounts":`The person’s accounts`,"inspector.personAccountsHint":`Accounts the person connects during the run. The step reads from them freely; anything it changes waits for the person’s yes.`,"inspector.systems":`Connected systems`,"inspector.systemsHint":`This step can only reach the systems allowed here.`,"inspector.output":`Result`,"inspector.working":`Status text while it works, e.g. “Researching…”`,"inspector.whatMade":`What does it make?`,"inspector.options":`Options`,"inspector.style":`Style, e.g. “bright photography, minimalist”`,"inspector.duration":`Length (seconds)`,"inspector.resolution":`Resolution`,"inspector.template":`Template`,"inspector.whatShown":`What does it show?`,"inspector.editable":`Text can be edited directly`,"inspector.redo":`Ask for a new variant`,"inspector.ending":`Ending`,"inspector.endMessage":`Message at the end`,"inspector.title":`Title`,"inspector.description":`Description`,"inspector.intro":`Greeting`,"inspector.introHint":`Shown above the first page.`,"inspector.lang":`Language`,"inspector.langHint":`The language the wizard speaks to people in: its messages, numbers and dates.`,"inspector.langAuto":`Automatic, from its texts`,"inspector.remembers":`Remembers for each person`,"inspector.remembersHint":`Kept between runs – separately for each person who uses the wizard. You can change this in the chat.`,"inspector.account":`Account`,"inspector.list":`List`,"inspector.stepDescription":`Explanation under the title (optional)`,"composer.send":`Send`,"composer.stop":`Stop`,"composer.sendBusy":`Send: before the next step (Enter) – {keys}: once the answer is done`,"dictation.settings":`Microphone and recording`,"dictation.microphone":`Microphone`,"dictation.default":`System default`,"dictation.mic":`Microphone {n}`,"dictation.showMics":`Show microphone names…`,"dictation.hold":`Hold to record`,"dictation.holdToTalk":`Hold to talk`,"dictation.speak":`Speak`,"dictation.stop":`Stop`,"dictation.writing":`Writing…`,"date.pick":`Choose a date`,"time.pick":`Choose a time`,"time.hour":`Hour`,"time.minute":`Minute`,"date.pickRange":`Choose a day or a period`,"date.pickStart":`Choose the first day`,"date.pickEnd":`Choose the last day – or the same one for one day`,"date.today":`Today`,"date.clear":`Clear`,"date.prev":`Previous month`,"date.next":`Next month`,"connectors.title":`Connectors`,"connectors.hint":`Services a wizard can work in for the person – they connect their own account during a run. The main ones are built in. You find others in the integrations.sh registry and import them from their OpenAPI spec or MCP server.`,"connectors.imported":`From the registry`,"connectors.noneImported":`No connectors imported from the registry yet.`,"connectors.notSetUp":`not set up`,"connectors.setup":`Still needs these settings:`,"connectors.search":`Find a service, e.g. Notion, Stripe, GitHub`,"connectors.find":`Search`,"connectors.none":`No matches.`,"connectors.import":`Import`,"connectors.exists":`Already imported.`,"connectors.ownClient":`Your own OAuth client`,"connectors.refresh":`Reload actions`,"connectors.remove":`Remove`,"connectors.actions":`{n} actions, {r} of them only read`,"connectors.pending":`Actions appear once an account is connected`,"connectors.needsClient":`This service needs an OAuth client (ID and secret). Remove it and import it again with “Your own OAuth client”.`,"connectors.authNone":`no sign-in`,"connectors.authOauth":`OAuth sign-in`,"connectors.authKey":`API key`,"connectors.group.read":`reads`,"connectors.group.write":`changes`,"connectors.group.destructive":`deletes`,"camera.missing":`No camera was found on this device. Upload a photo instead.`,"camera.busy":`Another app is using the camera. Close it and try again.`,"location.unavailable":`Your device couldn’t find its location right now. Try again outdoors or type the address.`,"location.timeout":`That took too long. Try again or type the address.`,"install.app.offer":`Install the studio as an app: its own window, its own icon in the Dock or taskbar.`,"install.app.browser":`In Chrome or Edge the studio installs as an app: its own window, its own icon.`,"install.app.action":`Install as app`,"install.app.close":`Close`,"install.app.how.ios":`In Safari, tap Share and then “Add to Home Screen”. The studio then sits on your home screen like an app.`,"install.app.how.mac":`In Safari, choose File → “Add to Dock”. The studio gets its own window and an icon in the Dock.`,"install.app.how.android":`In Chrome, tap the ⋮ menu and then “Install app” or “Add to Home screen”.`,"install.app.how.chromium":`Click the install icon in the address bar, or choose “Install app” in the menu. The studio gets its own window and an icon.`,"common.loading":`Loading…`,"common.error":`Error`,"data.hint":`Tables and pages the space and its wizards keep.`,"data.all":`All data`,"data.own":`General`,"data.table":`Table`,"data.page":`Page`,"data.newTable":`New table`,"data.newPage":`New page`,"data.title":`Title`,"data.owner":`Belongs to`,"data.create":`Create`,"data.empty":`No tables or pages yet. Create one – soon your wizards will write here too.`,"data.rows":{one:`{n} row`,other:`{n} rows`},"data.addRow":`Row`,"data.noRows":`No rows yet.`,"data.deleteRow":`Delete row`,"data.deleteTable":`Delete table`,"data.deletePage":`Delete page`,"data.confirmDelete":`Delete “{title}”?`,"data.newColumn":`New column`,"data.columnName":`Name`,"data.columnType":`Type`,"data.required":`Must be filled in`,"data.deleteColumn":`Delete column`,"data.removeOption":`Remove`,"data.fromList":`This list belongs to a wizard: every run writes to it. The columns come from the wizard.`,"data.badCell":`This value doesn’t fit “{column}” and isn’t saved.`,"data.type.text":`Text`,"data.type.number":`Number`,"data.type.date":`Date`,"data.type.duration":`Duration`,"data.type.select":`Choice`,"data.type.boolean":`Yes/no`,"data.text.single":`One line`,"data.text.multiline":`Several lines`,"data.number.integer":`Whole number`,"data.number.decimal":`Decimal`,"data.number.percent":`Percent`,"data.number.currency":`Amount`,"data.currency":`Currency (e.g. EUR)`,"data.date.date":`Date`,"data.date.datetime":`Date and time`,"data.date.time":`Time`,"data.unit":`Entered in`,"data.unit.milliseconds":`ms`,"data.unit.seconds":`seconds`,"data.unit.minutes":`minutes`,"data.unit.hours":`hours`,"data.unit.days":`days`,"data.options":`Choices, one per line`,"data.multiple":`Several can be chosen`,"data.write":`Write`,"data.preview":`Preview`,"data.pageEmpty":`This page is still empty.`,"data.markdownHint":`Markdown: # heading, **bold**, - list`,"space.holds.intro":`A space holds what belongs together – a company, a brand or an undertaking. Every wizard belongs to exactly one space.`,"space.holds.wizards":`Its own list of wizards – home and search show only these.`,"space.holds.info":`Name, logos, colours and facts its wizards know.`,"space.holds.knowledge":`Documents, tables and pages its wizards share.`,"space.holds.connectors":`The connections its wizards use.`,"space.holds.results":`The runs of its wizards.`,"space.holds.shared":`Account, models and plugins apply to every space.`,"space.info":`Info & brand`,"space.knowledge":`Knowledge`,"space.data":`Data`,"space.results":`Results`,"space.resultsAll":`All results`,"space.resultsHint":`Runs of your wizards that reached their result, newest first.`,"space.resultsEmpty":`No results yet. A run shows up here once it’s done.`,"space.resultCredits":{one:`{n} credit`,other:`{n} credits`},"space.resultsSearch":`Search: wizard, answers, result…`,"space.resultsModeAll":`Live & test`,"space.resultsAnyTime":`Any time`,"space.resultsDay":`Last 24 hours`,"space.resultsDays":`Last {n} days`,"space.resultsNone":`No matches.`,"space.resultFiles":{one:`{n} file`,other:`{n} files`},"project.rename":`Rename space`,"project.saving":`Saving…`,"project.base":`Basics`,"project.baseHint":`Who is behind the wizards. Every AI step knows this.`,"project.title":`Title`,"project.titleHint":`Company, brand or undertaking – people using your wizards see it too.`,"project.about":`About`,"project.aboutHint":`What you do, for whom and the tone you write in.`,"project.logos":`Logos`,"project.logosHint":`People using your wizards see the first logo. A description says what a variant is for.`,"project.logoAdd":`Logo`,"project.logoMain":`Main logo`,"project.logoMakeMain":`Make main logo`,"project.logoSectionAdd":`Logo section`,"project.logoSectionTitle":`Title, e.g. Logomark`,"project.logoSectionUse":`When these logos fit, e.g. small sizes and app icons`,"project.sectionUntitled":`Untitled section`,"project.sectionRemove":`Remove section`,"project.logoSectionRemoveConfirm":`Remove “{name}”? Its logos join the standard logos.`,"project.sectionMove":`Move`,"project.sectionStandard":`Standard`,"project.rules":`Rules`,"project.ruleNew":`New rule`,"project.logoRulePlaceholder":`e.g. Don’t stretch or distort the logo`,"project.rulesHint":`Only what your brand prescribes. Click the symbol before a rule to change its type.`,"project.markBullet":`Bullet`,"project.markDo":`Do`,"project.markDont":`Don’t`,"project.markQuestion":`To check`,"project.markImportant":`Important`,"project.markNumber":`Numbered`,"project.logoUpload":`Upload logo`,"project.logoFromUrl":`Logo from URL`,"project.logoUrl":`Address`,"project.logoUrlHint":`The address of an image, or of a web page – engenty then shows its logos for you to choose from.`,"project.logoFound":`Logos on the page`,"project.logoFoundHint":`Choose one or more. An SVG or a large PNG works best.`,"project.logoNoneFound":`No logos found on this page.`,"project.addMany":`Add {n}`,"project.colors":`Colours`,"project.colorsHint":`The first colour is the accent of documents, dashboards and public pages.`,"project.colorNew":`New colour`,"project.colorsFromUrl":`Colours from URL`,"project.colorsUrlHint":`The address of a web page – engenty reads the colours from its stylesheet.`,"project.colorsFound":`Colours of the page`,"project.colorsFoundHint":`Choose your brand’s colours. You can note what they’re for afterwards.`,"project.colorsNoneFound":`No colours found on this page.`,"project.colorsEmpty":`No colours yet.`,"project.colorSectionAdd":`Colour section`,"project.colorSectionTitle":`Title, e.g. Illustration`,"project.kindColors":`Colours`,"project.kindGradients":`Gradients`,"project.kindPatterns":`Patterns`,"project.colorAdd":`Colour`,"project.fillUseLabel":`What for`,"project.gradientUse":`What for, e.g. headers and title slides`,"project.patternUse":`What for, e.g. backgrounds of social posts`,"project.gradientSectionAdd":`Gradients`,"project.gradientSectionTitle":`Gradients`,"project.gradientSectionTitlePlaceholder":`Title, e.g. Gradients`,"project.patternSectionAdd":`Patterns`,"project.patternSectionTitle":`Patterns`,"project.patternSectionTitlePlaceholder":`Title, e.g. Backgrounds`,"project.fillSectionRemoveConfirm":`Remove “{name}” and delete everything in it?`,"project.gradientAdd":`Gradient`,"project.gradientEdit":`Edit gradient`,"project.gradientName":`Name`,"project.gradientNamePlaceholder":`e.g. Horizontal warm`,"project.gradientType":`Type`,"project.gradientLinear":`Linear`,"project.gradientRadial":`Radial`,"project.gradientConic":`Conic`,"project.gradientAngle":`Angle`,"project.gradientStops":`Colour stops`,"project.gradientAt":`Position`,"project.gradientStopAdd":`Colour stop`,"project.gradientFromBrand":`From the brand colours:`,"project.gradientCssHint":`Or paste CSS: linear-, radial- or conic-gradient with hex colours.`,"project.gradientCssError":`engenty can’t read that. Paste a CSS gradient with hex colours.`,"project.gradientCopy":`Copy CSS`,"project.gradientCopied":`Copied`,"project.patternAdd":`Pattern`,"project.patternName":`Name`,"project.patternTile":`Repeat as a tile`,"project.patternFill":`Fill the area`,"project.patternNew":`New pattern`,"project.patternEdit":`Edit pattern`,"project.patternPick":`Drop a picture here or choose one`,"project.patternReplace":`Replace picture`,"project.patternNamePlaceholder":`e.g. Beans`,"project.patternShow":`Shown as`,"project.gradientNew":`New gradient`,"project.gradientDescribe":`Describe the gradient`,"project.gradientDescribeNew":`Describe the gradient, e.g. “from primary to text, diagonal”`,"project.gradientDescribeChange":`What should change? e.g. “softer, more orange”`,"project.gradientDescribeMake":`Create`,"project.gradientDescribeApply":`Change`,"project.gradientDescribeHint":`engenty turns it into type, angle and colour stops – you can change everything by hand afterwards.`,"project.download":`Download`,"project.colorSectionRemoveConfirm":`Remove “{name}”? Its colours join the standard colours.`,"project.colorRulePlaceholder":`e.g. Never the accent as a fill behind body text`,"project.colorName":`e.g. Primary – buttons and headings`,"project.colorUse":`Describe how engenty should use this colour.`,"project.add":`Add`,"project.colorAccent":`Accent`,"project.colorFirst":`Make accent`,"project.typography":`Typography`,"project.typographyHint":`Fonts, their weights and how text is set. AI steps set documents in them.`,"project.fontFamily":`Font family, e.g. Inter`,"project.fontRole":`What for, e.g. body text`,"project.fontLicense":`Licence`,"project.fontLicensePlaceholder":`Licence, e.g. SIL Open Font License`,"project.fontUses":`Allowed for`,"project.fontUseWeb":`Web`,"project.fontUseDocuments":`Documents`,"project.fontUsePrint":`Print`,"project.fontUseImages":`Images & social`,"project.fontUseVideo":`Video`,"project.fontRoleFirst":`What for, e.g. headings and body text`,"project.fontNew":`New font`,"project.fontsFromUrl":`Fonts from URL`,"project.fontsUrlHint":`The address of a web page – engenty reads the fonts from its CSS.`,"project.fontsFound":`Fonts of the page`,"project.fontsFoundHint":`Choose your brand’s fonts.`,"project.fontsNoneFound":`This page uses no custom fonts.`,"project.fontWeightsUnknown":`Weights unknown`,"project.fontsEmpty":`No fonts yet.`,"project.styles":`Text styles`,"project.stylesHint":`The type scale: size, weight, line height and letter spacing per style.`,"project.styleNew":`Text style`,"project.styleName":`Name, e.g. Headline XL`,"project.styleFont":`Font`,"project.styleWeight":`Weight`,"project.styleSize":`Size`,"project.styleLine":`% line`,"project.styleLineLabel":`Line height in %`,"project.styleTracking":`% tracking`,"project.styleTrackingLabel":`Letter spacing in %`,"project.styleUpper":`Uppercase`,"project.typeRulePlaceholder":`e.g. Never set headings in capitals`,"project.typeSample":`Good type makes content easy.`,"project.assets":`Brand assets`,"project.assetsGeneral":`General`,"project.assetUpload":`Upload asset`,"project.assetFromUrl":`Asset from URL`,"project.assetUrlHint":`The address of a file, or of a web page – engenty then shows its pictures for you to choose from.`,"project.assetFound":`Pictures on the page`,"project.assetFoundHint":`Choose one or more.`,"project.assetNoneFound":`No pictures found on this page.`,"project.assetSectionAdd":`Asset section`,"project.assetSectionTitle":`Title, e.g. Icons`,"project.assetSectionName":`Name`,"project.assetSectionRename":`Edit section`,"project.assetSectionRemoveConfirm":`Remove “{name}”? Its assets join “General”.`,"project.assetsHint":`Images, videos, audio, PDFs, fonts, Lottie and 3D. AI steps place images in documents and choose them by their description.`,"project.assetAdd":`Files`,"project.assetSearch":`Filter assets…`,"know.all":`All`,"know.title":`Knowledge`,"know.hint":`What your wizards’ steps look things up in. Documents become pages and tables when they arrive; categories keep the items apart.`,"know.empty":`No knowledge yet. Upload documents or add a page.`,"know.drop":`Drop documents here or`,"know.pick":`choose`,"know.page":`Page`,"know.table":`Table`,"know.faq":`FAQ`,"know.file":`File`,"know.category":`Category`,"know.categories":`Categories`,"know.newPage":`New page`,"know.newTable":`New table`,"know.asFaq":`As an FAQ: a question and its answer per row`,"know.newCategory":`New category`,"know.search":`Try a search…`,"know.searchNone":`No matches.`,"know.searchStats":`{candidates} candidates checked, {hits} relevant`,"know.searchUnchecked":`{hits} hits, unchecked`,"know.unchecked":`The Classifier model checks hits. With an AI Gateway or TypeSafe key, or an account, a decision model does it instead.`,"know.keywordsOnly":`Without an embedding model the search finds words, not meaning.`,"know.clear":`Reset`,"know.sub":{one:`{n} sub-page`,other:`{n} sub-pages`},"know.rows":{one:`{n} row`,other:`{n} rows`},"know.review":`Check`,"know.reviewed":`Checked`,"know.from":`From {label}`,"know.kept":`Edited by hand – {label} no longer updates it.`,"know.original":`Original`,"know.reading":`Reading…`,"know.subPages":`Sub-pages`,"know.addSub":`Sub-page`,"know.type.choice":`Choice`,"know.type.date":`Date`,"know.type.number":`Number`,"know.type.text":`Text`,"know.type.boolean":`Yes/no`,"know.name":`Name`,"know.type":`Type`,"know.unit":`Unit`,"know.unitHint":`e.g. h, €, kg`,"know.multiple":`Several values per item`,"know.ordered":`The values are ranked (low → high)`,"know.values":`Values`,"know.valuesHint":`One per line. More are added as items come in.`,"know.hintField":`Where the values come from`,"know.hintFieldHint":`Keep it short, e.g. header, file name or the website’s filter.`,"know.create":`Create`,"know.proposed":`Proposed`,"know.proposedHint":`It gets filled once you accept it.`,"know.accept":`Accept`,"know.dismiss":`Dismiss`,"know.alike":`“{a}” and “{b}” look like one value.`,"know.merge":`Merge`,"know.items":{one:`{n} item`,other:`{n} items`},"know.item":`1 item`,"know.row":`1 row`,"know.oneSub":`1 sub-page`,"know.addValue":`Add a value`,"know.range":`{min} to {max}`,"know.summary":`Overview`,"know.summaryHint":`A model summarises the items with this value. Search finds the overview like a page.`,"know.summaryWrite":`Write the overview`,"know.summaryAgain":`Write again`,"know.summaryEmpty":`No overview yet.`,"know.toc":`Contents`,"know.tocRows":{one:`{n} row in {table}`,other:`{n} rows in {table}`},"know.deleteCategory":`Delete category`,"know.confirmCategory":`Delete “{name}”? The items stay – only the category is deleted.`,"know.deleteValue":`Delete value`,"know.yes":`Yes`,"know.no":`No`,"know.minimum":`from`,"know.maximum":`to`,"know.contains":`contains`,"know.by.person":`set by hand`,"know.by.origin":`from the source`,"know.by.model":`read by a model`,"know.remove":`Remove`,"know.unset":`Not set`,"know.deleteFile":`Delete file`,"project.documents":`Documents`,"project.documentsHint":`PDFs, lists, Excel, Word, text. They’re read and put into an index that every AI step searches.`,"project.documentAdd":`Documents`,"project.drop":`Drop here or`,"project.staysLocal":`Stays on your computer and isn’t sent here.`,"project.description":`Add a description…`,"project.describing":`Looking at it…`,"project.reading":`Reading…`,"project.indexed":`In the index`,"project.indexedKeywords":`In the index (keywords)`,"project.notIndexed":`No text found`,"project.reindex":`Read again`,"project.pages":{one:`{n} page`,other:`{n} pages`},"project.keywordsOnly":`The index searches by keywords right now. With an AI Gateway or OpenAI key it also searches by meaning.`,"project.preview":`Preview`,"project.viewList":`Show as a list`,"project.viewCards":`Show as cards`,"project.original":`Original`,"project.readText":`Text as read`,"project.openOriginal":`Open the original`,"project.noText":`No text yet: the document is still being read, or couldn’t be read.`,"project.textCut":`The preview shows the start ({shown} of {total} characters).`,"project.searchTest":`Search the index…`,"project.searchNone":`No matches.`,"project.remove":`Delete`,"project.removeConfirm":`Delete “{name}”?`,"project.facts":`Facts`,"project.factsHint":`What wizards should know: address, VAT ID, opening hours – anything that fits.`,"project.factLabel":`Label`,"project.factValue":`Value`,"project.factAdd":`Entry`,"credit.engenty-wizards":`AI wizards built from a description, shared with a link.`,"credit.engenty":`Connectors, data tables, search and the engenties come from the engenty framework.`,"credit.mastra":`Agent framework behind the AI steps.`,"credit.ai-sdk":`Model calls for text, image, video and speech.`,"credit.model-context-protocol":`MCP server for building wizards, MCP client for the steps’ tools.`,"credit.hono":`The HTTP API of engenty wizards.`,"credit.drizzle-orm":`Schema and migrations of the databases.`,"credit.libsql":`One database per tenant, a local file or at Turso.`,"credit.playwright":`Browser steps and the PDF and PNG export.`,"credit.react":`UI library of the web app.`,"credit.vite":`Build tool of the web app.`,"credit.tailwind-css":`Styling of the interface.`,"credit.react-flow":`The diagram of steps in the editor.`,"credit.tanstack-query":`Server data in the web app.`,"credit.xterm-js":`The terminal on the page where AI clients sign in.`,"credit.lucide":`Icons.`,"credit.geist-geist-mono":`Typeface of the interface.`,"credit.space-grotesk":`Typeface of the headings.`,"credit.git-cliff":`Generates the changelog from the commits.`,"fact.adresse":`Address`,"fact.plz":`Postcode`,"fact.ort":`City`,"fact.uid":`VAT ID`,"fact.telefon":`Phone`,"fact.e_mail":`Email`,"fact.website":`Website`,"fact.iban":`IBAN`,"project.factType":`Type`,"project.factAuto":`Automatic`,"project.type.text":`Text`,"project.type.longtext":`Long text`,"project.type.number":`Number`,"project.type.date":`Date`,"project.type.url":`Link`,"project.type.email":`Email`,"project.type.phone":`Phone`,"project.type.boolean":`Yes/no`,"project.yes":`Yes`,"project.no":`No`,"assistant.name":`Goose`,"assistant.ask":`Ask Goose`,"assistant.open":`Open Goose`,"assistant.sees":`Sees: {page}`,"assistant.menu":`Chat menu`,"assistant.newChat":`New chat`,"assistant.earlier":`Earlier chats`,"assistant.noEarlier":`No earlier chats yet.`,"assistant.untitled":`Untitled`,"assistant.summarising":`Summarising the chat…`,"assistant.readOnly":`An earlier chat – you can only read it. Goose knows its summary.`,"assistant.back":`Back`,"assistant.layoutBottom":`Dock at the bottom`,"assistant.layoutSidebar":`As a sidebar`,"assistant.close":`Close`,"assistant.helloTitle":`How can I help?`,"assistant.hello":`I know engenty wizards and see what you see. Ask me how something works – I’ll show you too.`,"assistant.composer":`Ask something or say what you need…`,"assistant.filesNeedSpace":`Files belong to a space. You can’t change any here.`,"assistant.talk":`Talk`,"assistant.live":`Live chat`,"assistant.liveListening":`Listening`,"assistant.liveThinking":`Thinking`,"assistant.liveSpeaking":`Speaking`,"assistant.liveMuted":`Muted`,"assistant.mute":`Microphone off`,"assistant.unmute":`Microphone on`,"assistant.end":`End`,"assistant.naturalVoice":`Natural voice (speech model)`,"assistant.gotIt":`Got it`,"assistant.move":`Drag to move Goose – near the bottom or the right edge it snaps into place`,"assistant.flap":`Chat history: drag to resize, click to fold it in or out`,"assistant.busyComposer":`Write in between – Enter: before the next step, {keys}: after`,"assistant.pending":`Waiting for Goose`,"assistant.pendingSignal":`next step`,"assistant.pendingSignalHint":`Goose reads it before its next step`,"assistant.pendingQueue":`after`,"assistant.pendingQueueHint":`Goes out once Goose is done`,"assistant.sendNow":`Send now`,"assistant.sendNowHint":`Stop Goose and send this now`,"assistant.edit":`Edit`,"assistant.remove":`Remove`,"assistant.signalled":`Written during the answer`,"assistant.dev":`Developer mode`,"assistant.devOn":`Developer mode on: steps, tools, prompt and turns. Click to switch it off.`,"assistant.devOff":`Developer mode off. Click to switch it on.`,"assistant.step":`Step {n}`,"assistant.tokens":`{input} in · {output} out · {total} tokens`,"assistant.stepTools":`Tools`,"assistant.args":`Arguments`,"assistant.result":`Result`,"assistant.usage":`Context window and usage`,"assistant.window":`Context window`,"assistant.lastTurn":`Last question`,"assistant.wholeChat":`Whole chat`,"assistant.promptTokens":`Prompt`,"assistant.answerTokens":`Answer`,"assistant.duration":`Duration`,"assistant.cost":`Cost`,"assistant.steps":`Steps`,"assistant.inspect":`View the turns`,"assistant.copyThread":`Copy the thread with its events as JSON`,"assistant.copied":`Copied`,"assistant.turns":`Turns`,"assistant.turnsTimeline":`Timeline`,"assistant.turnsPrompt":`Prompt`,"assistant.turnsEvents":`Events`,"assistant.noTurns":`No turns yet – they’re recorded while developer mode is on.`,"assistant.download":`Download as JSONL`,"assistant.system":`Instructions`,"assistant.context":`Page, space and message`,"assistant.history":{one:`Chat ({n} message)`,other:`Chat ({n} messages)`},"assistant.tools":`Tools ({n})`,"assistant.estimate":`≈ {tokens} tokens (4 characters a token)`,"assistant.tool.navigate":`Opened {where}`,"assistant.tool.highlight":`Marked: {what}`,"assistant.tool.look":`Looked at the page`,"assistant.tool.read":`Read: {what}`,"assistant.tool.fill":`Filled in: {what}`,"assistant.tool.docs":`Read the guide`,"assistant.tool.gallery":`Searched the templates`,"assistant.tool.account":`Checked the account`,"assistant.tool.chats":`Searched earlier chats`,"assistant.tool.space":`Checked wizards and runs`,"assistant.tool.models":`Checked the models`,"assistant.suggest.what":`What can I do with engenty wizards?`,"assistant.suggest.models":`Show me where to set up the models`,"assistant.suggest.credits":`How many credits do I have left?`,"assistant.suggest.modelsNow":`What runs here right now, and what’s missing?`,"assistant.suggest.modelsMissing":`Why can’t videos be made here?`,"assistant.suggest.modelsCost":`What does each option cost me?`,"assistant.suggest.accountWhy":`What do I need an account for?`,"assistant.suggest.plans":`Which plans are there, and what do they cost?`,"assistant.suggest.integrateWhat":`What can I do from Claude or Cursor?`,"assistant.suggest.integrateClaude":`How do I add Claude Desktop?`,"assistant.suggest.connectorsWhat":`What are connectors for?`,"assistant.suggest.connectorsAdd":`Connect this service: `,"assistant.suggest.readSite":`Read our website `,"assistant.suggest.missing":`What’s the space still missing?`,"assistant.suggest.facts":`What do the wizards need the facts for?`,"assistant.suggest.knowledgeHow":`How does knowledge get into the space?`,"assistant.suggest.knowledgeSite":`Read this website into the knowledge: `,"assistant.suggest.knowledgeCategories":`What are categories for?`,"assistant.suggest.dataWhat":`What’s in this data?`,"assistant.suggest.dataWho":`Which wizard fills which table?`,"assistant.suggest.dataEdit":`How do I change a column?`,"assistant.suggest.resultsFailed":`Which runs failed recently?`,"assistant.suggest.resultsCost":`What cost the most credits this month?`,"assistant.suggest.resultsShare":`How do I share a result?`,"project.assistantTitle":`Tell me about your business`,"project.assistantHello":`Give me your website or some files. I’ll fill in what I find: title, description, logo, colours and facts.`,"project.assistantComposer":`e.g. “Read our website example.com”…`,"project.assistantTitleKnowledge":`What should your wizards know?`,"project.assistantHelloKnowledge":`Give me documents or tell me where the knowledge is. I’ll read it in – this page shows what goes in.`,"project.assistantComposerKnowledge":`Attach documents or say where the knowledge is…`,"project.assistantChanged":`Space updated`,"flowApp.loading":`The wizard is on its way…`,"flowApp.broken":`This can’t be shown here.`,"flowApp.draft":`Draft`,"flowApp.published":`Published`,"flowApp.issues":{one:`{n} issue in the draft`,other:`{n} issues in the draft`},"flowApp.flow":`Flow`,"flowApp.notPublished":`Publish it in the studio to run it here.`,"flowApp.runPage":`Continue in the browser`,"flowApp.inBrowser":`Only in the browser: {fields}`,"flowApp.done":`Done`,"flowApp.credits":{one:`{n} credit`,other:`{n} credits`},"flowApp.ask":`The wizard asks`,"flowApp.allow":`Allow`,"flowApp.skip":`Skip`,"flowApp.signIn":`A sign-in at {site} – only in the browser.`,"flowApp.fullscreen":`Full screen`,"flowApp.inline":`Exit full screen`,"flowApp.failed":`That didn’t work: {error}`,"inspector.aspectRatio":`Aspect ratio`,"inspector.downloads":`Downloads`,"inspector.avatar":`Avatar`,"editor.zoomOut":`Zoom out`,"editor.zoomFit":`Fit to view`,"editor.zoomIn":`Zoom in`,"nav.breadcrumb":`You are here`,"run.testChip":`Test run`,"common.delete":`Delete`,"settings.deleteTitle":`Delete “{name}”?`,"settings.deleteBody":`The space is deleted with its wizards, knowledge and data. The wizards’ links stop working. This can’t be undone.`,"connectors.removeConfirm":`Remove “{name}”? Steps that use it stop working until you import it again.`,"connectors.clientId":`OAuth client ID`,"connectors.clientSecret":`OAuth client secret`},de:Ud},Gd=`wizards.lang`,Kd=`wizards.lang.local`,qd=`engenty_lang`;function Jd(){if(typeof document>`u`)return null;let e=document.cookie.split(`;`).map(e=>e.trim()).find(e=>e.startsWith(`${qd}=`))?.slice(13);return hu(e)?e:null}function Yd(e){if(typeof document>`u`)return;let t=window.location.hostname,n=t.split(`.`),r=n.length>1&&!/^\d+$/.test(n[n.length-1])?n.length>2?n.slice(1).join(`.`):t:``,i=window.location.protocol===`https:`?`; Secure`:``;document.cookie=`${qd}=${e}; Path=/; Max-Age=31536000; SameSite=Lax${r?`; Domain=${r}`:``}${i}`}function Xd(e){try{let t=localStorage.getItem(e);return hu(t)?t:null}catch{return null}}function Zd(){return Xd(Gd)}function Qd(){if(typeof navigator>`u`)return null;let e=null;try{e=Intl.DateTimeFormat().resolvedOptions().timeZone}catch{}return yu(navigator.languages??[navigator.language],e)}var $d=Zd()??Jd()??Qd()??`en`,ef=new Set,tf=0;function nf(e){if(Yd(e),e!==$d){$d=e,Id(e),document.documentElement.lang=e;try{localStorage.setItem(Gd,e),e!==`en`&&localStorage.setItem(Kd,e)}catch{}tf+=1;for(let e of ef)e()}}function rf(e){let t=Ld();return e.note&&kd(e.note,t?.lang??$d,t?.notes)||e.message}function af(e,t){let n=Ld(),r=n?.runner[e];return n&&r!==void 0?Td(r,n.lang,t):wd(Wd,e,$d,t)}typeof document<`u`&&(document.documentElement.lang=$d);var of=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function sf(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:of(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var cf=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},lf=e=>{let t=cf(e);return t.charAt(0).toUpperCase()+t.slice(1)},uf=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),df={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function ff(e){return e!=null}function pf(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??df.width,a=e.size??e.height??df.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?uf(...c):uf(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??df[`stroke-width`])*Number(e.size??e.width??df.width)/Number(t.size??t.width??df.width):t.strokeWidth??df[`stroke-width`];return[`svg`,{...Object.entries(df).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&ff(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&ff(t.width)&&{[r(`width`)]:t.width},...`height`in t&&ff(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function mf(e,t={}){return pf(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var hf=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},gf=(0,y.createContext)({}),_f=()=>(0,y.useContext)(gf),vf=(0,y.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:m=2,absoluteStrokeWidth:h=!1,nonScalingStroke:g=!1,color:_=`currentColor`,className:v=``}=_f()??{},b=!!c||hf(d),[x,S,C=[]]=mf(u,{color:e??_,width:n??t??p,height:r??t??p,strokeWidth:i??m,absoluteStrokeWidth:a??h,nonScalingStroke:o??g,className:uf(v,s),hasA11yProp:b,attributes:d});return(0,y.createElement)(x,{ref:f,...S},[...C.map(([e,t])=>(0,y.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function yf(e,t=[],n=[]){let r=typeof e==`string`?sf(e,t,n):e,i=(0,y.forwardRef)(({className:e,...t},n)=>(0,y.createElement)(vf,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=lf(r.name)),i}var bf={name:`app-window`,size:24,node:[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]};bf.node;var xf=yf(bf),Sf={name:`arrow-down`,size:24,node:[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]};Sf.node;var Cf=yf(Sf),wf={name:`arrow-left`,size:24,node:[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]};wf.node;var Tf=yf(wf),Ef={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};Ef.node;var Df=yf(Ef),Of={name:`arrow-up`,size:24,node:[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]};Of.node;var kf=yf(Of),Af={name:`bell-ring`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]};Af.node;var jf=yf(Af),Mf={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};Mf.node;var Nf=yf(Mf),Pf={name:`bot`,size:24,node:[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]};Pf.node;var Ff=yf(Pf),If={name:`braces`,size:24,node:[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]],aliases:[`curly-braces`]};If.node;var Lf=yf(If),Rf={name:`camera`,size:24,node:[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]};Rf.node;var zf=yf(Rf),Bf={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};Bf.node;var Vf=yf(Bf),Hf={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};Hf.node;var Uf=yf(Hf),Wf={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};Wf.node;var Gf=yf(Wf),Kf={name:`clapperboard`,size:24,node:[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]};Kf.node;var qf=yf(Kf),Jf={name:`clock`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]};Jf.node;var Yf=yf(Jf),Xf={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};Xf.node;var Zf=yf(Xf),Qf={name:`corner-down-left`,size:24,node:[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]};Qf.node;var $f=yf(Qf),ep={name:`database`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]};ep.node;var tp=yf(ep),np={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};np.node;var rp=yf(np),ip={name:`ellipsis-vertical`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]],aliases:[`more-vertical`]};ip.node;var ap=yf(ip),op={name:`eraser`,size:24,node:[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]};op.node;var sp=yf(op),cp={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};cp.node;var lp=yf(cp),up={name:`eye`,size:24,node:[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};up.node;var dp=yf(up),fp={name:`file-headphone`,size:24,node:[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]],aliases:[`file-audio`,`file-audio-2`]};fp.node;var pp=yf(fp),mp={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]};mp.node;var hp=yf(mp),gp={name:`film`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]};gp.node;var _p=yf(gp),vp={name:`flag`,size:24,node:[[`path`,{d:`M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528`,key:`1jaruq`}]]};vp.node;var yp=yf(vp),bp={name:`flashlight-off`,size:24,node:[[`path`,{d:`M11.652 6H18`,key:`voqkpr`}],[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V6`,key:`dzyf92`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M7.649 2H17a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8a4 4 0 0 0-.55 1.007`,key:`1hvcfn`}]]};bp.node;var xp=yf(bp),Sp={name:`flashlight`,size:24,node:[[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M17 2a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8A4 4 0 0 0 16 12v8a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V3a1 1 0 0 1 1-1z`,key:`17vh7j`}],[`path`,{d:`M6 6h12`,key:`n6hhss`}]]};Sp.node;var Cp=yf(Sp),wp={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};wp.node;var Tp=yf(wp),Ep={name:`image-plus`,size:24,node:[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Ep.node;var Dp=yf(Ep),Op={name:`image-up`,size:24,node:[[`path`,{d:`M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21`,key:`9csbqa`}],[`path`,{d:`m14 19.5 3-3 3 3`,key:`9vmjn0`}],[`path`,{d:`M17 22v-5.5`,key:`1aa6fl`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Op.node;var kp=yf(Op),Ap={name:`image`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]};Ap.node;var jp=yf(Ap),Mp={name:`languages`,size:24,node:[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]};Mp.node;var Np=yf(Mp),Pp={name:`layout-dashboard`,size:24,node:[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]};Pp.node;var Fp=yf(Pp),Ip={name:`layout-template`,size:24,node:[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]};Ip.node;var Lp=yf(Ip),Rp={name:`lightbulb`,size:24,node:[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,key:`1gvzjb`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]};Rp.node;var zp=yf(Rp),Bp={name:`link-2`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]};Bp.node;var Vp=yf(Bp),Hp={name:`list-checks`,size:24,node:[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`path`,{d:`m3 7 2 2 4-4`,key:`1obspn`}]]};Hp.node;var Up=yf(Hp),Wp={name:`locate-fixed`,size:24,node:[[`line`,{x1:`2`,x2:`5`,y1:`12`,y2:`12`,key:`bvdh0s`}],[`line`,{x1:`19`,x2:`22`,y1:`12`,y2:`12`,key:`1tbv5k`}],[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`5`,key:`11lu5j`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}],[`circle`,{cx:`12`,cy:`12`,r:`7`,key:`fim9np`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Wp.node;var Gp=yf(Wp),Kp={name:`lock-keyhole`,size:24,node:[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]};Kp.node;var qp=yf(Kp),Jp={name:`map-pin`,size:24,node:[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]};Jp.node;var Yp=yf(Jp),Xp={name:`maximize-2`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]};Xp.node;var Zp=yf(Xp),Qp={name:`mic`,size:24,node:[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]};Qp.node;var $p=yf(Qp),em={name:`minimize-2`,size:24,node:[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]};em.node;var tm=yf(em),nm={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};nm.node;var rm=yf(nm),im={name:`mouse-pointer-click`,size:24,node:[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]};im.node;var am=yf(im),om={name:`paperclip`,size:24,node:[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]};om.node;var sm=yf(om),cm={name:`pen-line`,size:24,node:[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]],aliases:[`edit-3`]};cm.node;var lm=yf(cm),um={name:`pencil-line`,size:24,node:[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]};um.node;var dm=yf(um),fm={name:`pencil`,size:24,node:[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]};fm.node;var pm=yf(fm),mm={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};mm.node;var hm=yf(mm),gm={name:`printer`,size:24,node:[[`path`,{d:`M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2`,key:`143wyd`}],[`path`,{d:`M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6`,key:`1itne7`}],[`rect`,{x:`6`,y:`14`,width:`12`,height:`8`,rx:`1`,key:`1ue0tg`}]]};gm.node;var _m=yf(gm),vm={name:`refresh-cw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]};vm.node;var ym=yf(vm),bm={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};bm.node;var xm=yf(bm),Sm={name:`scan-line`,size:24,node:[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`path`,{d:`M7 12h10`,key:`b7w52i`}]]};Sm.node;var Cm=yf(Sm),wm={name:`scan`,size:24,node:[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}]]};wm.node;var Tm=yf(wm),Em={name:`share-2`,size:24,node:[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]};Em.node;var Dm=yf(Em),Om={name:`share`,size:24,node:[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]};Om.node;var km=yf(Om),Am={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};Am.node;var jm=yf(Am),Mm={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};Mm.node;var Nm=yf(Mm),Pm={name:`square`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]};Pm.node;var Fm=yf(Pm),Im={name:`switch-camera`,size:24,node:[[`path`,{d:`M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5`,key:`mtk2lu`}],[`path`,{d:`M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5`,key:`120jsl`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`m18 22-3-3 3-3`,key:`kgdoj7`}],[`path`,{d:`m6 2 3 3-3 3`,key:`1fnbkv`}]]};Im.node;var Lm=yf(Im),Rm={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};Rm.node;var zm=yf(Rm),Bm={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};Bm.node;var Vm=yf(Bm),Hm={name:`undo-2`,size:24,node:[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]};Hm.node;var Um=yf(Hm),Wm={name:`unplug`,size:24,node:[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]};Wm.node;var Gm=yf(Wm),Km={name:`video`,size:24,node:[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]};Km.node;var qm=yf(Km),Jm={name:`wand-sparkles`,size:24,node:[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]],aliases:[`wand-2`]};Jm.node;var Ym=yf(Jm),Xm={name:`workflow`,size:24,node:[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]};Xm.node;var Zm=yf(Xm),Qm={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};Qm.node;var $m=yf(Qm),eh=class extends Error{status;body;constructor(e,t,n){super(e),this.status=t,this.body=n}};function th(e){try{return JSON.parse(e)}catch{return{error:e}}}function nh(e,t={},n){async function r(r,i,a){let o=await fetch(e(i),{method:r,credentials:`include`,headers:{"accept-language":jd,...t,...a!==void 0&&!(a instanceof FormData)?{"content-type":`application/json`}:{}},body:a===void 0?void 0:a instanceof FormData?a:JSON.stringify(a)}).catch(()=>{throw new eh(Q(`common.offline`),0,null)}),s=await o.text(),c=s?th(s):null;if(!o.ok)throw o.status>=500&&n?.(`${r} ${i} answered ${o.status}: ${c?.error??``}`),new eh(c?.error??c?.message??o.statusText,o.status,c);return c}return{get:e=>r(`GET`,e),post:(e,t)=>r(`POST`,e,t??{}),put:(e,t)=>r(`PUT`,e,t),patch:(e,t)=>r(`PATCH`,e,t),del:e=>r(`DELETE`,e),upload:(e,t)=>{let n=new FormData;return n.set(`file`,t),r(`POST`,e,n)}}}var rh={can:()=>!1,call:e=>Promise.reject(Error(`the app cannot ${e}`)),tell:()=>void 0,download:()=>!1},ih=null;function ah(){throw Error(`configureRunner() first`)}var oh=nh(e=>e),sh=e=>ah().withBase(e),ch=e=>ah().asset(e),lh=e=>ah().runBase(e),uh=e=>(ih?.app??rh).can(e),dh=(e,t)=>(ih?.app??rh).call(e,t),fh=(e,t)=>(ih?.app??rh).tell(e,t),ph=(e,t,n)=>(ih?.app??rh).download(e,t,n),mh=()=>ih?.standalone===!0,hh=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),gh=s(((e,t)=>{t.exports=hh()})),$=gh();function _h(...e){return e.filter(Boolean).join(` `)}var vh={primary:`bg-primary text-primary-foreground hover:brightness-[1.06] active:brightness-95 shadow-[0_1px_0_oklch(0%_0_0/0.08)]`,secondary:`bg-card text-ink border border-border hover:bg-paper-2`,ghost:`text-ink-2 hover:text-ink hover:bg-accent`,quiet:`bg-paper-2 text-ink hover:bg-paper-3`,danger:`text-rose hover:bg-rose-tint`},yh=(0,y.forwardRef)(function({variant:e=`primary`,size:t=`md`,busy:n,className:r,children:i,disabled:a,...o},s){return(0,$.jsxs)(`button`,{ref:s,type:`button`,disabled:a||n,className:_h(`inline-flex select-none items-center justify-center gap-2 whitespace-nowrap rounded-full font-medium transition-[background,filter,color,transform] duration-150 active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50`,t===`sm`&&`h-8 px-3 text-[0.8125rem] coarse:h-11 coarse:px-4`,t===`md`&&`h-10 px-4 text-sm coarse:h-11`,t===`lg`&&`h-12 px-6 text-[0.9375rem]`,vh[e],r),...o,children:[n?(0,$.jsx)(Mh,{className:`size-4`}):null,i]})});function bh({label:e,className:t,children:n,...r}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":e,title:e,className:_h(`inline-flex size-9 shrink-0 items-center justify-center rounded-full text-ink-3 transition hover:bg-accent hover:text-ink disabled:opacity-40 coarse:size-11`,t),...r,children:n})}var xh=`rounded-lg border border-input bg-card px-3.5 text-[0.9375rem] text-ink shadow-[inset_0_1px_0_oklch(0%_0_0/0.02)] outline-none transition placeholder:text-ink-4 focus:border-focus focus:ring-4 focus:ring-focus-glow disabled:opacity-60`;function Sh(e){return/(^|\s)w-/.test(e??``)?null:`w-full`}var Ch=(0,y.forwardRef)(function({className:e,...t},n){return(0,$.jsx)(`input`,{ref:n,className:_h(xh,Sh(e),`h-11`,e),...t})});function wh(e){return(0,$.jsx)(`input`,{type:`color`,className:`swatch size-11 shrink-0 cursor-pointer rounded-lg border border-input bg-card p-1`,...e})}var Th=(0,y.forwardRef)(function({className:e,minRows:t=3,maxRows:n=14,onChange:r,...i},a){let o=(0,y.useRef)(null),s=()=>{let e=o.current;if(!e)return;let r=Number.parseFloat(getComputedStyle(e).lineHeight)||22;e.style.height=`auto`;let i=r*n+20;e.style.height=`${Math.min(Math.max(e.scrollHeight,r*t+20),i)}px`,e.style.overflowY=e.scrollHeight>i?`auto`:`hidden`};return(0,y.useLayoutEffect)(s),(0,$.jsx)(`textarea`,{ref:e=>{o.current=e,typeof a==`function`?a(e):a&&(a.current=e)},className:_h(xh,Sh(e),`resize-none py-2.5 leading-[1.5]`,e),onChange:e=>{s(),r?.(e)},...i})});function Eh({value:e,onChange:t,options:n,className:r,placeholder:i}){return(0,$.jsxs)(`div`,{className:_h(`relative`,r),children:[(0,$.jsxs)(`select`,{value:e,onChange:e=>t(e.target.value),className:_h(xh,`h-11 w-full appearance-none pr-9`),children:[i===void 0?null:(0,$.jsx)(`option`,{value:``,children:i}),n.map(e=>(0,$.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}),(0,$.jsx)(`svg`,{className:`-translate-y-1/2 pointer-events-none absolute top-1/2 right-3 size-4 text-ink-3`,viewBox:`0 0 16 16`,fill:`none`,children:(0,$.jsx)(`path`,{d:`M4 6l4 4 4-4`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})]})}function Dh({value:e,onChange:t,options:n,multi:r,disabled:i,label:a}){let o=new Set(Array.isArray(e)?e:e?[e]:[]);return(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(e=>{let s=o.has(e);return(0,$.jsx)(`button`,{type:`button`,"aria-pressed":s,disabled:i?.includes(e),onClick:()=>{if(r){let r=new Set(o);s?r.delete(e):r.add(e),t(n.filter(e=>r.has(e)))}else t(e)},className:_h(`h-10 rounded-full border px-4 text-sm transition disabled:pointer-events-none disabled:opacity-60 disabled:line-through coarse:h-11`,s?`border-ember bg-ember-tint text-ink`:`border-input bg-card text-ink-2 hover:border-ink-4 hover:text-ink`),children:a?a(e):e},e)})})}var Oh=`cubic-bezier(0.3, 0.7, 0.2, 1)`;function kh({value:e,onChange:t,options:n,label:r}){let i=(0,y.useRef)(new Map),[a,o]=(0,y.useState)(null);return(0,y.useLayoutEffect)(()=>{let t=i.current.get(e);if(!t)return;let n=()=>o({x:t.offsetLeft,w:t.offsetWidth});n();let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[e]),(0,$.jsxs)(`div`,{role:`tablist`,"aria-label":r,className:`relative inline-flex items-center rounded-full bg-paper-2 p-0.5 ring-1 ring-border-soft`,children:[a?(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`absolute top-0.5 bottom-0.5 left-0 rounded-full bg-card shadow-sm motion-reduce:transition-none`,style:{width:a.w,transform:`translateX(${a.x}px)`,transition:`transform 300ms ${Oh}, width 300ms ${Oh}`}}):null,n.map(n=>{let r=n.id===e;return(0,$.jsx)(`button`,{ref:e=>{e?i.current.set(n.id,e):i.current.delete(n.id)},type:`button`,role:`tab`,"aria-selected":r,onClick:()=>t(n.id),className:_h(`relative h-8 whitespace-nowrap rounded-full px-4 font-medium text-[0.875rem] transition-colors motion-reduce:transition-none coarse:h-9`,r?`text-ink`:`text-ink-3 hover:text-ink-2`),children:n.label},n.id)})]})}function Ah({checked:e,onChange:t,label:n,disabled:r}){return(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,disabled:r,onClick:()=>t(!e),className:_h(`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition before:absolute before:-inset-x-1 before:-inset-y-2.5 before:content-[''] disabled:pointer-events-none disabled:opacity-60`,e?`bg-primary`:`bg-paper-3`),children:(0,$.jsx)(`span`,{className:_h(`inline-block size-5 rounded-full bg-white shadow-sm transition-transform`,e?`translate-x-[22px]`:`translate-x-[2px]`)})})}function jh({children:e,hint:t,required:n}){return(0,$.jsxs)(`div`,{className:`mb-2`,children:[(0,$.jsxs)(`div`,{className:`font-medium text-[0.875rem] text-ink`,children:[e,n?(0,$.jsx)(`span`,{className:`ml-1 text-ember`,children:`*`}):null]}),t?(0,$.jsx)(`div`,{className:`mt-0.5 text-[0.8125rem] text-ink-3`,children:t}):null]})}function Mh({className:e}){return(0,$.jsxs)(`svg`,{className:_h(`size-5 animate-spin`,e),viewBox:`0 0 24 24`,fill:`none`,children:[(0,$.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,stroke:`currentColor`,strokeOpacity:`0.2`,strokeWidth:`3`}),(0,$.jsx)(`path`,{d:`M21 12a9 9 0 0 0-9-9`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`})]})}function Nh({className:e,children:t,...n}){return(0,$.jsx)(`div`,{className:_h(`rounded-xl bg-card shadow-soft ring-1 ring-border-soft`,e),...n,children:t})}function Ph({children:e,tone:t=`neutral`,icon:n,title:r}){return(0,$.jsxs)(`span`,{title:r,className:_h(`inline-flex h-6 items-center gap-1.5 whitespace-nowrap rounded-full px-2.5 font-medium text-[0.75rem]`,t===`neutral`&&`bg-paper-2 text-ink-2`,t===`live`&&`bg-moss-tint text-moss`,t===`warn`&&`bg-amber-tint text-ink-2`,t===`ember`&&`bg-ember-tint text-ember-strong`),children:[n??(t===`live`?(0,$.jsx)(`span`,{className:`size-1.5 rounded-full bg-moss`}):null),e]})}function Fh({open:e,onClose:t,title:n,children:r,wide:i,bare:a,height:o=`auto`}){let s=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let t=s.current;t&&(e&&!t.open?(t.showModal(),t.querySelector(`[data-autofocus]`)?.focus()):!e&&t.open&&t.close())},[e]),(0,y.useEffect)(()=>{let t=s.current;if(!t||!e||a||o===`tall`)return;let n=0,r=()=>{n=Math.max(n,t.getBoundingClientRect().height),t.style.minHeight=`${Math.min(n,window.innerHeight-32)}px`},i=new ResizeObserver(r);return i.observe(t),window.addEventListener(`resize`,r),()=>{i.disconnect(),window.removeEventListener(`resize`,r),t.style.minHeight=``}},[e,a,o]),(0,$.jsx)(`dialog`,{ref:s,onClose:t,onClick:e=>{e.target===s.current&&t()},className:_h(`m-auto p-0 text-ink backdrop:bg-[oklch(20%_0.01_60/0.28)] backdrop:backdrop-blur-[2px]`,`max-sm:m-0 max-sm:h-dvh max-sm:max-h-none max-sm:w-full max-sm:max-w-none`,a?`w-[calc(100%-48px)] overflow-visible bg-transparent`:`max-h-[calc(100dvh-32px)] w-[calc(100%-32px)] overflow-y-auto overscroll-contain rounded-2xl bg-card shadow-overlay max-sm:rounded-none max-sm:pt-[env(safe-area-inset-top)] max-sm:pb-[env(safe-area-inset-bottom)]`,i===`page`?`sm:max-w-4xl`:i?`sm:max-w-2xl`:`sm:max-w-md`,!a&&o===`tall`&&`sm:h-[min(calc(100dvh-32px),56rem)]`),children:e&&a?r:e?(0,$.jsxs)(`div`,{className:`p-5 sm:p-7`,children:[n?(0,$.jsxs)(`div`,{className:`mb-5 flex items-start justify-between gap-3`,children:[(0,$.jsx)(`h2`,{className:`min-w-0 font-display font-semibold text-xl`,children:n}),(0,$.jsx)(bh,{label:Q(`common.close`),onClick:t,className:`-mt-1.5 -mr-2`,children:(0,$.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,className:`size-4`,"aria-hidden":`true`,children:(0,$.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})})]}):null,r]}):null})}function Ih({text:e}){return e.split(/(https?:\/\/[^\s)]+)/).map((e,t)=>t%2?(0,$.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`font-medium text-ink underline underline-offset-2`,children:new URL(e).host},e):e)}var Lh=250;function Rh({runId:e,driving:t,caption:n,action:r,hint:i,className:a,onBroken:o}){let s=(0,y.useRef)(null),c=(0,y.useRef)(null),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),h=async t=>{m(null);try{await oh.post(`${lh(e)}/browser/act`,t)}catch(e){m(e.message)}};return(0,y.useEffect)(()=>{t&&c.current?.scrollIntoView({block:`nearest`,behavior:`smooth`})},[t]),(0,y.useEffect)(()=>{let n=s.current;if(!(n&&t))return;let r=0,i=null,a=t=>{t.preventDefault(),r+=t.deltaY,i??=setTimeout(()=>{i=null;let t=Math.max(-2e3,Math.min(2e3,Math.round(r)));r=0,t&&oh.post(`${lh(e)}/browser/act`,{type:`scroll`,dy:t}).catch(()=>void 0)},Lh)};return n.addEventListener(`wheel`,a,{passive:!1}),()=>{n.removeEventListener(`wheel`,a),i&&clearTimeout(i)}},[t,e]),(0,$.jsxs)(`div`,{className:a,children:[(0,$.jsxs)(`div`,{className:_h(`relative aspect-[1280/900] w-full overflow-hidden rounded-xl bg-paper-2 ring-1`,t?`ring-2 ring-ember`:`ring-border-soft`),children:[(0,$.jsx)(`img`,{ref:s,src:sh(`${lh(e)}/browser/live`),alt:``,draggable:!1,onClick:e=>{if(!t)return;let n=e.currentTarget.getBoundingClientRect();h({type:`click`,fx:Math.min(1,Math.max(0,(e.clientX-n.left)/n.width)),fy:Math.min(1,Math.max(0,(e.clientY-n.top)/n.height))})},onError:o,className:_h(`size-full object-cover object-top`,t&&`cursor-pointer`)}),r?(0,$.jsx)(`div`,{className:`absolute top-2 right-2`,children:r}):null,n&&!t?(0,$.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-0 flex items-center gap-1.5 bg-gradient-to-t from-black/75 to-transparent px-3 pt-8 pb-2 text-[0.8125rem] text-white`,children:[(0,$.jsx)(am,{className:`size-3.5 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate`,children:n})]}):null]}),t?(0,$.jsxs)(`div`,{ref:c,className:`mt-1.5`,children:[i?(0,$.jsx)(`p`,{className:`mb-1.5 text-[0.8125rem] text-ink-3`,children:i}):null,(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 rounded-xl bg-card p-2 ring-1 ring-border-soft`,children:[(0,$.jsx)(Ch,{type:d?`password`:`text`,autoComplete:`off`,value:l,placeholder:Q(`ask.typeInto`),onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),h({type:`type`,text:l}).then(()=>u(``)))},autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:`send`,className:`h-9 min-w-[9rem] flex-1 basis-full text-[0.8125rem] sm:basis-0 coarse:h-11`}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>f(e=>!e),className:_h(`h-9 shrink-0 rounded-md px-2.5 text-[0.75rem] coarse:h-11 coarse:px-3.5`,d?`bg-ember-veil text-ink`:`text-ink-3 hover:bg-paper-2`),children:Q(`ask.hide`)}),(0,$.jsx)(zh,{label:`Enter`,onClick:()=>void h({type:`key`,key:`Enter`}),children:(0,$.jsx)($f,{className:`size-4`})}),(0,$.jsx)(zh,{label:Q(`ask.up`),onClick:()=>void h({type:`scroll`,dy:-500}),children:(0,$.jsx)(kf,{className:`size-4`})}),(0,$.jsx)(zh,{label:Q(`ask.down`),onClick:()=>void h({type:`scroll`,dy:500}),children:(0,$.jsx)(Cf,{className:`size-4`})})]}),p?(0,$.jsx)(`p`,{className:`mt-1.5 text-[0.8125rem] text-rose`,children:p}):null]}):null]})}function zh({label:e,onClick:t,children:n}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:t,className:`flex size-9 shrink-0 items-center justify-center rounded-md text-ink-3 hover:bg-paper-2 hover:text-ink coarse:size-11`,children:n})}function Bh({runId:e,ask:t}){return t.kind===`confirm`?(0,$.jsx)(Vh,{runId:e,ask:t}):(0,$.jsx)(Hh,{runId:e,ask:t})}function Vh({runId:e,ask:t}){let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),c=async n=>{a(!0),s(null);try{await oh.post(`${lh(e)}/ask/${t.id}`,n)}catch(e){s(e.message),a(!1)}},l=t.action.destructive?Vm:dm;return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,$.jsx)(`div`,{className:_h(`flex size-10 shrink-0 items-center justify-center rounded-full`,t.action.destructive?`bg-rose-tint text-rose`:`bg-ember-tint text-ember-strong`),children:(0,$.jsx)(l,{className:`size-5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:Q(`ask.wants`,{service:t.service})}),(0,$.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason})]})]}),(0,$.jsx)(`pre`,{className:`max-h-72 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-paper-2 p-4 text-[0.8125rem] leading-relaxed ring-1 ring-border-soft`,children:t.input}),(0,$.jsxs)(`div`,{className:`mt-5 flex items-center gap-4`,children:[(0,$.jsx)(Ah,{checked:n,onChange:r,label:Q(`ask.allowRest`)}),(0,$.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:Q(`ask.allowRest`)})]}),o?(0,$.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:o}):null,(0,$.jsxs)(`div`,{className:`action-bar mt-6 flex items-center justify-between gap-3`,children:[(0,$.jsx)(yh,{variant:`ghost`,disabled:i,onClick:()=>void c({type:`skip`}),children:Q(`ask.deny`)}),(0,$.jsx)(yh,{busy:i,onClick:()=>void c({type:`done`,remember:n}),children:Q(`ask.allow`)})]})]})}function Hh({runId:e,ask:t}){let[n,r]=(0,y.useState)({}),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),u=async n=>{s(!0),l(null);try{await oh.post(`${lh(e)}/ask/${t.id}`,n)}catch(e){l(e.message),s(!1)}},d=t.fields.some(e=>n[e.id]);return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,$.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-ember-tint text-ember-strong`,children:(0,$.jsx)(qp,{className:`size-5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason}),(0,$.jsxs)(`p`,{className:`mt-0.5 truncate text-[0.8125rem] text-ink-3`,children:[t.site.host,t.site.title?` · ${t.site.title}`:``]})]})]}),(0,$.jsx)(Rh,{runId:e,driving:!0}),(0,$.jsx)(`p`,{className:`mt-2 text-[0.75rem] text-ink-4`,children:Q(`ask.pictureHint`)}),t.fields.length?(0,$.jsxs)(`form`,{className:`mt-5 flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),u({type:`fill`,values:n,remember:i})},children:[t.fields.map((e,i)=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(jh,{children:e.label}),(0,$.jsx)(Ch,{autoFocus:i===0,type:e.secret?`password`:`text`,autoComplete:`off`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:i===t.fields.length-1?`go`:`next`,value:n[e.id]??``,onChange:t=>r(n=>({...n,[e.id]:t.target.value}))})]},e.id)),(0,$.jsx)(`button`,{type:`submit`,hidden:!0})]}):null,(0,$.jsxs)(`div`,{className:`mt-5 flex items-center justify-between gap-4`,children:[(0,$.jsx)(Ah,{checked:i,onChange:a,label:Q(`ask.remember`)}),(0,$.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:Q(`ask.remember`)})]}),(0,$.jsxs)(`p`,{className:`mt-3 flex items-start gap-2 text-[0.8125rem] text-ink-3`,children:[(0,$.jsx)(jm,{className:`mt-0.5 size-4 shrink-0 text-moss`}),` `,Q(`ask.private`)]}),c?(0,$.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:c}):null,(0,$.jsxs)(`div`,{className:`action-bar mt-6 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(yh,{variant:`ghost`,disabled:o,onClick:()=>void u({type:`skip`}),children:Q(`ask.skip`)}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.fields.length?(0,$.jsx)(yh,{variant:`secondary`,disabled:o,onClick:()=>void u({type:`done`,remember:i}),children:Q(`ask.done`)}):null,t.fields.length?(0,$.jsx)(yh,{busy:o,disabled:!d,onClick:()=>void u({type:`fill`,values:n,remember:i}),children:Q(`ask.signIn`)}):(0,$.jsx)(yh,{busy:o,onClick:()=>void u({type:`done`,remember:i}),children:Q(`ask.done`)})]})]})]})}var Uh=typeof window<`u`&&window.matchMedia?.(`(pointer: coarse)`).matches===!0,Wh=typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia;function Gh(){(0,y.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=document.documentElement,n=()=>{let n=e.scale>1.01?0:window.innerHeight-e.height-e.offsetTop,r=n>80;t.style.setProperty(`--kb`,r?`${Math.round(n)}px`:`0px`),t.classList.toggle(`keyboard-open`,r)};return n(),e.addEventListener(`resize`,n),e.addEventListener(`scroll`,n),()=>{e.removeEventListener(`resize`,n),e.removeEventListener(`scroll`,n),t.style.removeProperty(`--kb`),t.classList.remove(`keyboard-open`)}},[])}function Kh(e){let[t,n]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{if(e&&uh(`keepAwake`))return fh(`keepAwake`,!0),n(!0),()=>{fh(`keepAwake`,!1),n(!1)};if(!e||!(`wakeLock`in navigator))return;let t=null,r=!1,i=async()=>{if(!(r||t||document.visibilityState!==`visible`))try{let e=await navigator.wakeLock.request(`screen`);if(r){e.release().catch(()=>void 0);return}t=e,n(!0),e.addEventListener(`release`,()=>{t===e&&(t=null,n(!1))})}catch{}};return i(),document.addEventListener(`visibilitychange`,i),()=>{r=!0,document.removeEventListener(`visibilitychange`,i),t?.release().catch(()=>void 0),t=null,n(!1)}},[e]),t}var qh=`wz.notify`,Jh=new Set,Yh=null;function Xh(){try{return localStorage.getItem(qh)===`1`}catch{return!1}}function Zh(e){try{e?localStorage.setItem(qh,`1`):localStorage.removeItem(qh)}catch{}for(let e of Jh)e()}var Qh=typeof window<`u`&&`Notification`in window,$h=null;function eg(){return Xh()?uh(`notify`)?$h===!1?`quiet`:`on`:Qh&&Notification.permission===`granted`?`on`:`quiet`:`off`}function tg(){return(0,y.useSyncExternalStore)(e=>(Jh.add(e),()=>Jh.delete(e)),eg,()=>`off`)}function ng(){return uh(`notify`)?$h===!1:Qh&&Notification.permission===`denied`}async function rg(){if(Zh(!0),uh(`notify`)){$h=!uh(`notifyPermission`)||await dh(`notifyPermission`).catch(()=>!1);for(let e of Jh)e();return eg()}try{Yh??=new AudioContext,Yh.resume()}catch{Yh=null}if(Qh&&Notification.permission==="default")try{await Notification.requestPermission()}catch{}if(Qh&&Notification.permission===`granted`){let e=ah().serviceWorker;e&&await navigator.serviceWorker?.register(e).catch(()=>void 0)}for(let e of Jh)e();return eg()}function ig(){Zh(!1)}function ag(){let e=Yh;if(e?.state!==`running`)return;let t=e.currentTime;for(let[n,r]of[660,880].entries()){let i=e.createOscillator(),a=e.createGain();i.frequency.value=r,a.gain.setValueAtTime(0,t+n*.16),a.gain.linearRampToValueAtTime(.18,t+n*.16+.02),a.gain.exponentialRampToValueAtTime(.001,t+n*.16+.32),i.connect(a).connect(e.destination),i.start(t+n*.16),i.stop(t+n*.16+.34)}}async function og(e){if(!Xh())return;if(uh(`notify`)){fh(`notify`,e);return}if(document.visibilityState===`visible`){ag(),navigator.vibrate?.([120,60,120]);return}if(!Qh||Notification.permission!==`granted`)return;let t={body:e.body,tag:e.tag,icon:ch(`icons/icon-192.png`),badge:ch(`icons/icon-192.png`),data:{url:location.href}};try{let n=await navigator.serviceWorker?.getRegistration();if(n?.active){await n.showNotification(e.title,t);return}}catch{}try{new Notification(e.title,t)}catch{}}function sg(){if(typeof navigator>`u`||!navigator.canShare)return!1;try{return navigator.canShare({files:[new File([`x`],`x.pdf`,{type:`application/pdf`})]})}catch{return!1}}async function cg(e,t=2400){if(!/^image\/(jpeg|png|webp)$/.test(e.type)||e.size<12e5)return e;try{let n=await createImageBitmap(e),r=Math.min(1,t/Math.max(n.width,n.height)),i=document.createElement(`canvas`);i.width=Math.round(n.width*r),i.height=Math.round(n.height*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height);let a=await new Promise(e=>i.toBlob(e,`image/jpeg`,.86));return a&&a.size<e.size?new File([a],`${e.name.replace(/\.[^.]+$/,``)}.jpg`,{type:`image/jpeg`}):e}catch{return e}}function lg(){return new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`)}function ug(e){let t=e?.name;return t===`NotFoundError`||t===`OverconstrainedError`?`missing`:t===`NotReadableError`||t===`AbortError`?`busy`:`denied`}function dg(e){return!!e?.getCapabilities?.()?.torch}function fg(e,t,n=!1){let r=(0,y.useRef)(null),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(1),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{if(!e)return;let r=null,i=!1;s(null),a(null),d(!1),p(!1);let o={facingMode:{ideal:t},width:{ideal:2560},height:{ideal:1440}};return(async()=>{if(!navigator.mediaDevices?.getUserMedia)throw new DOMException(`no camera api`,`NotAllowedError`);try{r=await navigator.mediaDevices.getUserMedia({video:o,audio:n})}catch(e){if(!n)throw e;r=await navigator.mediaDevices.getUserMedia({video:o})}if(i){for(let e of r.getTracks())e.stop();return}a(r);let e=r.getVideoTracks()[0],t=()=>!i&&d(dg(e));t(),setTimeout(t,600);let s=await navigator.mediaDevices.enumerateDevices().catch(()=>[]);i||l(s.filter(e=>e.kind===`videoinput`).length)})().catch(e=>!i&&s(ug(e))),()=>{i=!0;for(let e of r?.getTracks()??[])e.stop()}},[e,t,n]),(0,y.useEffect)(()=>{r.current&&i&&(r.current.srcObject=i)},[i]),{video:r,stream:i,error:o,cameras:c,torchable:u,torch:f,setTorch:async e=>{let t=i?.getVideoTracks()[0];try{await t?.applyConstraints({advanced:[{torch:e}]}),p(e)}catch{d(!1)}},mirrored:i?.getVideoTracks()[0]?.getSettings().facingMode===`user`}}function pg({open:e,onClose:t,label:n,children:r}){let i=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let t=i.current;t&&(e&&!t.open?t.showModal():!e&&t.open&&t.close())},[e]),(0,$.jsx)(`dialog`,{ref:i,onClose:t,"aria-label":n,className:`media-sheet`,children:e?(0,$.jsx)(`div`,{className:`flex h-full flex-col`,children:r}):null})}function mg({label:e,onClick:t,active:n,children:r}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":e,title:e,"aria-pressed":n,onClick:t,className:_h(`flex size-11 shrink-0 items-center justify-center rounded-full transition`,n?`bg-white text-black`:`bg-white/12 text-white hover:bg-white/20`),children:r})}function hg({title:e,onClose:t,camera:n,onFlip:r}){return(0,$.jsx)(`div`,{className:`safe-top`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,$.jsx)(mg,{label:Q(`common.close`),onClick:t,children:(0,$.jsx)($m,{className:`size-5`})}),(0,$.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-center font-medium text-[0.9375rem]`,children:e}),n.torchable?(0,$.jsx)(mg,{label:Q(`camera.torch`),active:n.torch,onClick:()=>void n.setTorch(!n.torch),children:n.torch?(0,$.jsx)(Cp,{className:`size-5`}):(0,$.jsx)(xp,{className:`size-5`})}):null,n.stream&&(n.cameras>1||Uh)?(0,$.jsx)(mg,{label:Q(`camera.flip`),onClick:r,children:(0,$.jsx)(Lm,{className:`size-5`})}):(0,$.jsx)(`span`,{className:`size-11`})]})})}function gg({camera:e,asking:t,children:n,actions:r}){return(0,$.jsxs)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:[(0,$.jsx)(`video`,{ref:e.video,autoPlay:!0,playsInline:!0,muted:!0,className:_h(`absolute inset-0 size-full object-contain`,e.mirrored&&`-scale-x-100`)}),e.error?(0,$.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-5 bg-black px-8 text-center`,children:[(0,$.jsx)(`p`,{className:`max-w-sm text-[0.9375rem] text-white/85 leading-relaxed`,children:Q(`camera.${e.error}`)}),r]}):e.stream?n:(0,$.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-4 px-8 text-center text-white/75`,children:[(0,$.jsx)(Mh,{}),(0,$.jsx)(`p`,{className:`max-w-xs text-[0.875rem] leading-relaxed`,children:t})]})]})}var _g=30;function vg(){if(typeof MediaRecorder<`u`)return[`video/mp4;codecs=avc1.42E01E,mp4a.40.2`,`video/mp4`,`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`,`video/webm`].find(e=>MediaRecorder.isTypeSupported(e))}var yg=!!vg();function bg({open:e,multiple:t,video:n,onClose:r,onCapture:i,onNative:a}){let[o,s]=(0,y.useState)(`environment`),[c,l]=(0,y.useState)(`photo`),[u,d]=(0,y.useState)(0),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),g=(0,y.useRef)(null),_=fg(e,o,c===`video`);(0,y.useEffect)(()=>{e&&(d(0),l(`photo`),h(null))},[e]);let v=async e=>{p(!0);try{await i(e),d(e=>e+1),t||r()}finally{p(!1)}},b=async()=>{let e=_.video.current;if(!e?.videoWidth)return;let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight,t.getContext(`2d`)?.drawImage(e,0,0);let n=await new Promise(e=>t.toBlob(e,`image/jpeg`,.9));n&&await v(new File([n],`foto-${lg()}.jpg`,{type:`image/jpeg`}))},x=()=>{g.current?.state===`recording`&&g.current.stop()},S=()=>{let e=vg();if(!_.stream||!e)return;let t=[],n=new MediaRecorder(_.stream,{mimeType:e,videoBitsPerSecond:25e5,audioBitsPerSecond:96e3});n.ondataavailable=e=>e.data.size&&t.push(e.data),n.onstop=()=>{h(null),g.current=null;let n=e.split(`;`)[0];if(t.length){let e=n===`video/mp4`?`mp4`:`webm`;v(new File(t,`video-${lg()}.${e}`,{type:n}))}},g.current=n,n.start(1e3),h(0)};(0,y.useEffect)(()=>{if(m===null)return;if(m>=_g){g.current?.state===`recording`&&g.current.stop();return}let e=setTimeout(()=>h(e=>e===null?null:e+1),1e3);return()=>clearTimeout(e)},[m]),(0,y.useEffect)(()=>{!e&&g.current&&(g.current.onstop=null,g.current.stop(),g.current=null)},[e]);let C=e=>`0:${String(e).padStart(2,`0`)}`;return(0,$.jsxs)(pg,{open:e,onClose:r,label:Q(`camera.title`),children:[(0,$.jsx)(hg,{title:m===null?u?Q(`camera.taken`,{n:u}):Q(`camera.title`):`${C(m)} / ${C(_g)}`,onClose:r,camera:_,onFlip:()=>s(e=>e===`environment`?`user`:`environment`)}),(0,$.jsx)(gg,{camera:_,asking:Q(`camera.asking`),actions:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a?(0,$.jsxs)(xg,{onClick:()=>{r(),a()},children:[(0,$.jsx)(zf,{className:`size-4`}),` `,Q(Uh?`camera.native`:`camera.pick`)]}):null,(0,$.jsx)(xg,{quiet:!0,onClick:r,children:Q(`common.close`)})]})}),(0,$.jsxs)(`div`,{className:_h(`safe-bottom px-4 pt-3`,_.error&&`invisible`),children:[n&&yg&&m===null?(0,$.jsx)(`div`,{className:`mb-3 flex justify-center gap-1 text-[0.8125rem]`,children:[`photo`,`video`].map(e=>(0,$.jsx)(`button`,{type:`button`,"aria-pressed":c===e,onClick:()=>l(e),className:_h(`h-9 rounded-full px-4 font-medium transition`,c===e?`bg-white text-black`:`text-white/70 hover:text-white`),children:Q(e===`photo`?`camera.photo`:`camera.video`)},e))}):null,(0,$.jsxs)(`div`,{className:`grid grid-cols-[1fr_auto_1fr] items-center gap-3`,children:[(0,$.jsx)(`span`,{className:`text-[0.8125rem] text-white/70 leading-snug`,children:m===null?c===`video`?Q(`camera.clipHint`,{s:_g}):Q(t?`camera.hintMany`:`camera.hint`):Q(`camera.recording`)}),(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(c===`photo`?`camera.shoot`:m===null?`camera.record`:`camera.stop`),disabled:!_.stream||f,onClick:()=>c===`photo`?void b():m===null?S():x(),className:`flex size-[72px] items-center justify-center rounded-full border-4 border-white transition active:scale-95 disabled:opacity-40`,children:f?(0,$.jsx)(Mh,{className:`text-white`}):c===`photo`?(0,$.jsx)(`span`,{className:`size-[54px] rounded-full bg-white`}):m===null?(0,$.jsx)(`span`,{className:`flex size-[54px] items-center justify-center rounded-full bg-[#e5484d]`,children:(0,$.jsx)(qm,{className:`size-6 text-white`})}):(0,$.jsx)(`span`,{className:`size-7 rounded-md bg-[#e5484d]`})}),(0,$.jsx)(`div`,{className:`flex justify-end`,children:t&&u&&m===null?(0,$.jsxs)(xg,{onClick:r,children:[(0,$.jsx)(Vf,{className:`size-4`}),` `,Q(`camera.done`)]}):null})]})]})]})}function xg({onClick:e,quiet:t,children:n}){return(0,$.jsx)(`button`,{type:`button`,onClick:e,className:_h(`inline-flex h-11 items-center justify-center gap-2 rounded-full px-5 font-medium text-[0.875rem] transition`,t?`text-white/75 hover:text-white`:`bg-white text-black hover:bg-white/90`),children:n})}var Sg=`w-full min-w-0 rounded-md bg-transparent px-2 py-1.5 text-[0.875rem] outline-none transition placeholder:text-ink-4 hover:bg-accent focus:bg-paper focus:ring-1 focus:ring-ring`,Cg=`font-medium text-[0.6875rem] text-ink-3 uppercase tracking-[0.08em]`,wg=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function Tg(e,t,n){if(!t.length)return n;let[r,...i]=t;if(Array.isArray(e)){let t=[...e];return t[r]=Tg(t[r],i,n),t}let a=e??{};return{...a,[r]:Tg(a[r],i,n)}}function Eg(e,t){let n=e?.length?e:[...new Set(t.filter(wg).flatMap(e=>Object.keys(e)))];return{kind:`object`,fields:Object.fromEntries(n.map(e=>[e,{kind:`text`}]))}}var Dg=e=>e.kind!==`object`&&e.kind!==`table`&&(e.kind!==`list`||e.of.kind!==`object`)&&!(e.kind===`text`&&e.long),Og=e=>Object.values(e.fields).every(Dg),kg=e=>Object.values(e.fields).every(e=>e.kind!==`table`&&(e.kind!==`list`||e.of.kind!==`object`));function Ag(e,t){let n=$l(e);return n?String(t[n]??``):``}function jg({text:e}){return(0,$.jsx)(`span`,{className:`whitespace-pre-wrap`,children:e})}function Mg({shape:e,value:t,path:n,ctx:r,cell:i}){switch(e.kind){case`text`:return r.edit?e.long?(0,$.jsx)(`textarea`,{className:_h(Sg,`field-sizing-content max-h-60 resize-none`),value:String(t??``),onChange:e=>r.set(n,e.target.value)}):(0,$.jsx)(`input`,{className:Sg,value:String(t??``),onChange:e=>r.set(n,e.target.value)}):(0,$.jsx)(jg,{text:t==null?``:String(t)});case`number`:return r.edit?(0,$.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`input`,{type:`number`,className:_h(Sg,`text-right tabular-nums`,i&&`w-20`),value:t==null?``:Number(t),onChange:e=>r.set(n,e.target.value===``?null:Number(e.target.value))}),e.unit?(0,$.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3`,children:e.unit}):null]}):(0,$.jsx)(`span`,{className:`tabular-nums`,children:t==null?``:`${t}${e.unit?` ${e.unit}`:``}`});case`yesno`:{let i=t?e.yes??Q(`data.yes`):e.no??Q(`data.no`);return r.edit?(0,$.jsxs)(`label`,{className:`flex items-center gap-2 px-2 py-1.5 text-[0.8125rem] text-ink-2`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!!t,onChange:e=>r.set(n,e.target.checked),className:`size-4 accent-[var(--second)]`}),i]}):(0,$.jsx)(`span`,{className:_h(`inline-flex rounded-full px-2 py-0.5 text-[0.75rem]`,t?`bg-second-tint text-second`:`bg-paper-2 text-ink-3`),children:i})}case`choice`:case`score`:return r.edit?(0,$.jsx)(`select`,{className:Sg,value:String(t??``),onChange:e=>r.set(n,e.target.value),children:[...new Set([String(t??``),...e.options])].map(e=>(0,$.jsx)(`option`,{value:e,children:e},e))}):(0,$.jsx)(`span`,{children:String(t??``)});case`ref`:{let i=r.shape.fields[e.to],a=i?.kind===`list`&&i.of.kind===`object`?i.of:{kind:`object`,fields:{}},o=(Array.isArray(r.root[e.to])?r.root[e.to]:[]).filter(wg),s=o.find(e=>e.id===t);return r.edit?(0,$.jsxs)(`select`,{className:Sg,value:String(t??``),onChange:e=>r.set(n,e.target.value),children:[s?null:(0,$.jsx)(`option`,{value:String(t??``),children:String(t??``)}),o.map(e=>(0,$.jsx)(`option`,{value:String(e.id),children:Ag(a,e)||String(e.id)},String(e.id)))]}):s?(0,$.jsxs)(`button`,{type:`button`,onClick:()=>r.open(String(s.id)),className:`inline-flex items-center gap-1 text-left text-ember-strong hover:underline`,children:[(0,$.jsx)(Vp,{className:`size-3.5 shrink-0`}),Ag(a,s)||String(s.id)]}):(0,$.jsx)(`span`,{className:`text-rose`,children:Q(`data.missing`,{id:String(t??``)})})}case`table`:{let i=Array.isArray(t)?t:[];return(0,$.jsx)(Ig,{shape:Eg(e.columns,i),value:i,path:n,ctx:r})}case`list`:if(e.of.kind===`object`){let i=e.of,a=Og(i)?Ig:kg(i)?Lg:Rg;return(0,$.jsx)(a,{shape:i,value:t,path:n,ctx:r})}return(0,$.jsx)(Ng,{value:t,path:n,ctx:r});case`object`:return(0,$.jsx)(zg,{shape:e,value:t,path:n,ctx:r})}}function Ng({value:e,path:t,ctx:n}){let r=Array.isArray(e)?e.map(String):[],[i,a]=(0,y.useState)(``);return(0,$.jsxs)(`span`,{className:`flex flex-wrap items-center gap-1`,children:[r.map((e,i)=>(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-paper-2 px-2 py-0.5 text-[0.75rem]`,children:[e,n.edit?(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(`data.remove`),onClick:()=>n.set(t,r.filter((e,t)=>t!==i)),className:`text-ink-3 hover:text-ink`,children:(0,$.jsx)($m,{className:`size-3`})}):null]},`${e}-${i}`)),n.edit?(0,$.jsx)(`input`,{className:`w-20 rounded-full bg-transparent px-2 py-0.5 text-[0.75rem] outline-none ring-1 ring-border-soft focus:ring-ring`,placeholder:`+`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&i.trim()&&(e.preventDefault(),n.set(t,[...r,i.trim()]),a(``))}}):null]})}var Pg=e=>(Array.isArray(e)?e:[]).filter(wg),Fg=e=>e.fields.id?{id:`n${Date.now().toString(36)}`}:{};function Ig({shape:e,value:t,path:n,ctx:r}){let i=Pg(t),a=Object.entries(e.fields);return(0,$.jsxs)(`div`,{className:`overflow-x-auto rounded-lg ring-1 ring-border-soft`,children:[(0,$.jsxs)(`table`,{className:`w-full border-collapse text-[0.8125rem]`,children:[(0,$.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,$.jsxs)(`tr`,{children:[a.map(([e,t])=>(0,$.jsx)(`th`,{className:`whitespace-nowrap px-3 py-2 text-left font-medium`,children:eu(e,t)},e)),r.edit?(0,$.jsx)(`th`,{className:`w-8`}):null]})}),(0,$.jsx)(`tbody`,{children:i.map((e,t)=>(0,$.jsxs)(`tr`,{className:`group border-border-soft border-t`,children:[a.map(([i,a])=>(0,$.jsx)(`td`,{className:_h(`align-top`,r.edit?`p-0.5`:`px-3 py-2`),children:(0,$.jsx)(Mg,{shape:a,value:e[i],path:[...n,t,i],ctx:r,cell:!0})},i)),r.edit?(0,$.jsx)(`td`,{className:`p-0.5 align-middle`,children:(0,$.jsx)(Vg,{onClick:()=>r.set(n,i.filter((e,n)=>n!==t))})}):null]},t))})]}),r.edit?(0,$.jsx)(Hg,{what:e.label,onClick:()=>r.set(n,[...i,Fg(e)])}):null]})}function Lg({shape:e,value:t,path:n,ctx:r}){let i=Pg(t),a=Object.entries(e.fields),o=a.filter(([,e])=>e.kind===`text`&&e.long),s=a.filter(([,e])=>!(e.kind===`text`&&e.long));return(0,$.jsxs)(`div`,{className:`overflow-hidden rounded-lg ring-1 ring-border-soft`,children:[(0,$.jsx)(`ol`,{children:i.map((e,t)=>(0,$.jsxs)(`li`,{className:`grid grid-cols-[1.75rem_1fr_auto] items-start gap-2 border-border-soft border-t px-3 py-2 first:border-0`,children:[(0,$.jsx)(`span`,{className:`pt-1.5 font-display font-semibold text-ember-strong tabular-nums`,children:t+1}),(0,$.jsx)(`div`,{className:_h(`flex min-w-0 flex-col`,!r.edit&&`pt-1`),children:o.map(([i,a])=>(0,$.jsx)(Mg,{shape:a,value:e[i],path:[...n,t,i],ctx:r},i))}),(0,$.jsxs)(`div`,{className:_h(`flex items-center gap-2 text-[0.8125rem] text-ink-3`,!r.edit&&`pt-1`),children:[s.map(([i,a])=>(0,$.jsx)(Mg,{shape:a,value:e[i],path:[...n,t,i],ctx:r,cell:!0},i)),r.edit?(0,$.jsx)(Vg,{onClick:()=>r.set(n,i.filter((e,n)=>n!==t))}):null]})]},t))}),r.edit?(0,$.jsx)(Hg,{what:e.label,onClick:()=>r.set(n,[...i,Fg(e)])}):null]})}function Rg({shape:e,value:t,path:n,ctx:r}){let i=Pg(t),a=Object.entries(e.fields),o=$l(e),s=a.filter(([e,t])=>e!==o&&e!==`id`&&(t.kind===`text`&&!t.long||t.kind===`number`||t.kind===`choice`)),c=a.filter(([,e])=>e.kind===`list`&&e.of.kind===`object`);return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[i.map((t,a)=>{let o=typeof t.id==`string`?t.id:void 0;return(0,$.jsxs)(`details`,{id:o?`${r.scope}-${o}`:void 0,className:`group rounded-xl bg-card ring-1 ring-border-soft open:ring-ink-4/40`,children:[(0,$.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center gap-3 px-4 py-3 [&::-webkit-details-marker]:hidden`,children:[(0,$.jsx)(Uf,{className:`size-4 shrink-0 text-ink-3 transition-transform group-open:rotate-90`}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate font-medium text-[0.9375rem]`,children:Ag(e,t)||`${e.label??``} ${a+1}`.trim()}),(0,$.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-[0.75rem] text-ink-3`,children:[s.map(([e,n])=>t[e]===void 0||t[e]===``?null:(0,$.jsx)(`span`,{children:n.kind===`number`&&n.unit?`${t[e]} ${n.unit}`:String(t[e])},e)),c.map(([e,n])=>(0,$.jsxs)(`span`,{children:[Array.isArray(t[e])?t[e].length:0,` `,eu(e,n)]},e))]})]}),r.edit?(0,$.jsx)(Vg,{onClick:()=>r.set(n,i.filter((e,t)=>t!==a))}):null]}),(0,$.jsx)(`div`,{className:`border-border-soft border-t px-4 py-4`,children:(0,$.jsx)(zg,{shape:e,value:t,path:[...n,a],ctx:r})})]},a)}),r.edit?(0,$.jsx)(Hg,{what:e.label,onClick:()=>r.set(n,[...i,Fg(e)])}):null]})}function zg({shape:e,value:t,path:n,ctx:r}){let i=wg(t)?t:{},a=e=>e.kind===`list`||e.kind===`object`||e.kind===`table`||e.kind===`text`&&!!e.long;return(0,$.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] gap-x-4 gap-y-4`,children:Object.entries(e.fields).map(([e,t])=>(0,$.jsx)(Bg,{title:eu(e,t),wide:a(t),count:Array.isArray(i[e])?i[e].length:null,children:(0,$.jsx)(Mg,{shape:t,value:i[e],path:[...n,e],ctx:r})},e))})}function Bg({title:e,wide:t,count:n,children:r}){return(0,$.jsxs)(`div`,{className:_h(`flex min-w-0 flex-col gap-1.5 text-[0.875rem]`,t&&`col-span-full`),children:[(0,$.jsxs)(`span`,{className:Cg,children:[e,n===null?null:(0,$.jsx)(`span`,{className:`ml-1 text-ink-4`,children:n})]}),r]})}function Vg({onClick:e}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(`data.remove`),onClick:t=>{t.preventDefault(),e()},className:`grid size-7 place-items-center rounded-md text-ink-3 hover:bg-accent hover:text-rose`,children:(0,$.jsx)(zm,{className:`size-3.5`})})}function Hg({what:e,onClick:t}){return(0,$.jsxs)(`button`,{type:`button`,onClick:t,className:`flex w-full items-center gap-1.5 border-border-soft border-t px-3 py-2 text-[0.8125rem] text-ink-3 hover:bg-accent hover:text-ink`,children:[(0,$.jsx)(hm,{className:`size-3.5`}),` `,Q(`data.add`,{what:e??``}).trim()]})}function Ug({shape:e,value:t,onChange:n,mode:r,onMode:i,modes:a=[`view`,`edit`,`json`],start:o}){let s=n?a:a.filter(e=>e!==`edit`),[c,l]=(0,y.useState)(o&&s.includes(o)?o:s[0]??`view`),u=r??c,d=i??l,f=(0,y.useId)().replace(/[^a-zA-Z0-9_-]/g,``),p={root:t,shape:e,edit:u===`edit`&&!!n,scope:f,set:(e,r)=>n?.(Tg(t,e,r)),open:e=>{let t=document.getElementById(`${f}-${e}`);t&&(t.open=!0,t.scrollIntoView({behavior:`smooth`,block:`center`}))}},m=Object.entries(e.fields);return(0,$.jsxs)(`div`,{className:`flex flex-col`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 border-border-soft border-b px-3 py-2`,children:[(0,$.jsx)(`div`,{className:`flex min-w-0 flex-wrap gap-1`,children:m.length>1?m.map(([e,n])=>(0,$.jsxs)(`a`,{href:`#${f}-part-${e}`,className:`rounded-full px-2.5 py-1 text-[0.8125rem] text-ink-2 hover:bg-accent`,children:[eu(e,n),Array.isArray(t[e])?(0,$.jsx)(`span`,{className:`ml-1 text-ink-4 tabular-nums`,children:t[e].length}):null]},e)):null}),s.length>1?(0,$.jsx)(kh,{value:u,onChange:d,label:Q(`data.modes`),options:s.map(e=>({id:e,label:Q(`data.${e}`)}))}):null]}),u===`json`?(0,$.jsx)(`pre`,{className:`max-h-[36rem] overflow-auto p-4 font-mono text-[0.75rem] text-ink-2 leading-relaxed`,children:JSON.stringify(t,null,2)}):(0,$.jsx)(`div`,{className:`flex flex-col gap-7 p-4 sm:p-5`,children:m.map(([e,n])=>(0,$.jsxs)(`section`,{id:`${f}-part-${e}`,className:`flex scroll-mt-4 flex-col gap-2`,children:[(0,$.jsxs)(`h3`,{className:`flex items-baseline gap-2 font-display font-semibold text-[1rem]`,children:[eu(e,n),Array.isArray(t[e])?(0,$.jsx)(`span`,{className:`font-normal font-sans text-[0.8125rem] text-ink-4 tabular-nums`,children:t[e].length}):null]}),(0,$.jsx)(`div`,{className:`text-[0.9375rem] leading-relaxed`,children:(0,$.jsx)(Mg,{shape:n,value:t[e],path:[e],ctx:p})})]},e))})]})}function Wg({items:e}){let[t,n]=(0,y.useState)(!1),r=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!t)return;let e=e=>{r.current?.contains(e.target)||n(!1)},i=e=>e.key===`Escape`&&n(!1);return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,i)}},[t]),(0,$.jsxs)(`div`,{ref:r,className:`relative`,children:[(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(`data.menu`),title:Q(`data.menu`),"aria-haspopup":`menu`,"aria-expanded":t,onClick:()=>n(e=>!e),className:_h(`grid size-8 place-items-center rounded-full text-ink-3 transition hover:bg-accent hover:text-ink coarse:size-11`,t&&`bg-accent text-ink`),children:(0,$.jsx)(ap,{className:`size-4`})}),t?(0,$.jsx)(`div`,{role:`menu`,className:`absolute top-full right-0 z-50 mt-1 w-60 animate-rise rounded-xl bg-card p-1.5 shadow-overlay ring-1 ring-border-soft`,children:e.map(e=>(0,$.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-[0.875rem] text-ink-2 transition hover:bg-accent hover:text-ink`,onClick:()=>{n(!1),e.onClick()},children:[e.icon,e.label]},e.label))}):null]})}function Gg(e){return e.toLowerCase().replace(/ä/g,`ae`).replace(/ö/g,`oe`).replace(/ü/g,`ue`).replace(/ß/g,`ss`).replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)||`output`}function Kg({shape:e,title:t,open:n,onClose:r}){let[i,a]=(0,y.useState)(!1),o=n?JSON.stringify(iu(e,t),null,2):``;return(0,$.jsx)(Fh,{open:n,onClose:r,title:`${Q(`data.schema`)} · ${t}`,wide:!0,height:`tall`,children:(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3`,children:[(0,$.jsx)(`pre`,{className:`min-h-0 flex-1 overflow-auto rounded-lg bg-paper-2 p-3 font-mono text-[0.75rem] text-ink-2 leading-relaxed`,children:o}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(o),a(!0),setTimeout(()=>a(!1),1500)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[i?(0,$.jsx)(Vf,{className:`size-3.5`}):(0,$.jsx)(Zf,{className:`size-3.5`}),Q(i?`share.copied`:`data.copy`)]}),(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{let e=URL.createObjectURL(new Blob([o],{type:`application/schema+json`})),n=document.createElement(`a`);n.href=e,n.download=`${Gg(t)}.schema.json`,n.click(),setTimeout(()=>URL.revokeObjectURL(e),1e3)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[(0,$.jsx)(rp,{className:`size-3.5`}),` `,Q(`data.download`)]})]})]})})}function qg(e){let t=e;return t.type===`agent`&&t.output.format===`json`&&!t.each&&!t.call}function Jg({runId:e,step:t,output:n,header:r,children:i}){let a=nd(t),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),g=u??(wg(n.json)?n.json:{}),_=async()=>{if(u){p(!0),h(null);try{await oh.put(`${lh(e)}/outputs/${t.id}`,{json:u}),d(null),s(!1)}catch(e){h(e.message)}finally{p(!1)}}},v=(0,$.jsx)(Wg,{items:[{label:Q(o?`data.close`:`data.open`),icon:(0,$.jsx)(tp,{className:`size-4 shrink-0`}),onClick:()=>{s(e=>!e),d(null)}},{label:Q(`data.schema`),icon:(0,$.jsx)(Lf,{className:`size-4 shrink-0`}),onClick:()=>l(!0)}]});return(0,$.jsxs)($.Fragment,{children:[r(v),o?(0,$.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:[(0,$.jsx)(Ug,{shape:a,value:g,onChange:d}),u?(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-border-soft border-t px-3 py-2`,children:[m?(0,$.jsx)(`span`,{className:`mr-auto text-[0.8125rem] text-rose`,children:m}):null,(0,$.jsx)(yh,{variant:`ghost`,size:`sm`,onClick:()=>d(null),children:Q(`common.cancel`)}),(0,$.jsx)(yh,{size:`sm`,busy:f,onClick:()=>void _(),children:Q(`data.save`)})]}):null]}):i,(0,$.jsx)(Kg,{shape:a,title:t.title,open:c,onClose:()=>l(!1)})]})}var Yg=25,Xg=9e3;function Zg(e){return e.code===e.PERMISSION_DENIED?`denied`:e.code===e.TIMEOUT?`timeout`:`unavailable`}function Qg({value:e,runId:t,placeholder:n,onChange:r,onBusy:i}){let a=Su(e)?e:null,[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),u=(0,y.useRef)(null),d=(0,y.useRef)(!!a?.label),f=(0,y.useRef)(a);f.current=a;let p=a?.lat!==void 0&&a.lng!==void 0,m=typeof navigator<`u`&&`geolocation`in navigator,h=()=>{u.current!==null&&(navigator.geolocation.clearWatch(u.current),u.current=null),s(!1),i?.(!1)};(0,y.useEffect)(()=>()=>{u.current!==null&&navigator.geolocation.clearWatch(u.current)},[]);let g=async(e,n)=>{try{let{label:i}=await oh.post(`${lh(t)}/geocode`,{lat:e,lng:n,language:jd}),a=f.current;i&&!d.current&&a?.lat===e&&a.lng===n&&r({...a,label:i})}catch{}},_=()=>{l(null),s(!0),i?.(!0);let e=Date.now(),t=1/0;u.current=navigator.geolocation.watchPosition(n=>{let{latitude:i,longitude:a,accuracy:o}=n.coords;if(o<t){t=o;let e=Math.round(i*1e6)/1e6,n=Math.round(a*1e6)/1e6,s=d.current?f.current?.label:void 0,c={lat:e,lng:n,accuracy:Math.round(o),...s?{label:s}:{}};f.current=c,r(c)}if(t<=Yg||Date.now()-e>Xg){h();let e=f.current;e?.lat!==void 0&&e.lng!==void 0&&g(e.lat,e.lng)}},e=>{h(),t===1/0&&l(Zg(e))},{enableHighAccuracy:!0,timeout:15e3,maximumAge:1e4})},v=e=>{d.current=e.trim().length>0;let t={...p?a:{},label:e};r(p||e.trim()?t:void 0)};return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[p?(0,$.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,$.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-moss-tint text-moss`,children:(0,$.jsx)(Yp,{className:`size-5`})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`truncate font-medium text-[0.9375rem] tabular-nums`,children:[a.lat?.toFixed(5),`, `,a.lng?.toFixed(5)]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 text-[0.8125rem] text-ink-3`,children:[(0,$.jsx)(`span`,{children:o?Q(`location.refining`):a.accuracy?Q(`location.accuracy`,{m:a.accuracy}):null}),(0,$.jsxs)(`a`,{href:`https://www.openstreetmap.org/?mlat=${a.lat}&mlon=${a.lng}#map=17/${a.lat}/${a.lng}`,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 underline-offset-2 hover:text-ink hover:underline coarse:-my-3 coarse:min-h-11 coarse:min-w-11`,children:[Q(`location.map`),` `,(0,$.jsx)(lp,{className:`size-3`})]})]})]}),(0,$.jsx)(bh,{label:Q(`location.remove`),onClick:()=>{h(),d.current=!1,r(void 0)},children:(0,$.jsx)($m,{className:`size-4`})})]}):m?(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(yh,{variant:`secondary`,size:`lg`,busy:o,onClick:_,className:`w-full sm:w-auto`,children:[o?null:(0,$.jsx)(Gp,{className:`size-4`}),Q(o?`location.locating`:`location.use`)]}),c?(0,$.jsx)(`p`,{className:`mt-2 rounded-lg bg-amber-tint px-3 py-2 text-[0.8125rem] text-ink-2 leading-relaxed`,children:Q(`location.${c}`)}):(0,$.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-ink-3 leading-relaxed`,children:Q(`location.why`)})]}):null,(0,$.jsx)(Ch,{value:a?.label??``,placeholder:n??Q(p?`location.label`:`location.manual`),autoComplete:`street-address`,enterKeyHint:`done`,"aria-label":Q(`location.manual`),onChange:e=>v(e.target.value)})]})}var $g,e_,t_,n_,r_,i_=o((()=>{$g=`modulepreload`,e_=function(e,t){return new URL(e,t).href},t_={},n_=function(e){return e.pathname.endsWith(`.css`)},r_=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=e_(t,n);let r=s(t);if(r.href in t_)return;t_[r.href]=!0;let i=n_(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:$g,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})}})),a_=c({createWorker:()=>o_}),o_,s_=o((()=>{o_=()=>new Worker(URL.createObjectURL(new Blob([`class x{constructor(a,b){this.width=b;this.height=a.length/b;this.data=a}static createEmpty(a,b){return new x(new Uint8ClampedArray(a*b),a)}get(a,b){return 0>a||a>=this.width||0>b||b>=this.height?!1:!!this.data[b*this.width+a]}set(a,b,c){this.data[b*this.width+a]=c?1:0}setRegion(a,b,c,d,e){for(let f=b;f<b+d;f++)for(let g=a;g<a+c;g++)this.set(g,f,!!e)}}
69
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}r.count>1&&e.reused===`ref`&&a(n)}e.external&&(e.sharedDefsExtractedFor=e.external)}function Xa(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;Xa(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var Za=new Set([`type`,`properties`,`required`,`additionalProperties`]),Qa=[`oneOf`,`anyOf`];function $a(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function eo(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!Za.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??$a(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}j(n,r,e.length===1?e[0]:eo(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=$a(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function to(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of Za)if(t in e)return;let n=t.filter(e=>Qa.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=eo(t);else{let e=n[0],i=Qa.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>eo([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,Wa(e,r))}function no(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Wa(i,s),Wa(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())Xa(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])to(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Wa(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,j(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:ao(t,`input`,e.processors),output:ao(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function ro(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return ro(r.element,n);if(r.type===`set`)return ro(r.valueType,n);if(r.type===`lazy`)return ro(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return ro(r.innerType,n);if(r.type===`intersection`)return ro(r.left,n)||ro(r.right,n);if(r.type===`record`||r.type===`map`)return ro(r.keyType,n)||ro(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:ro(r.in,n)||ro(r.out,n);if(r.type===`object`){for(let e in r.shape)if(ro(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(ro(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(ro(e,n))return!0;return!!(r.rest&&ro(r.rest,n))}return!1}var io=(e,t={})=>n=>{let r=Ga({...n,processors:t});return qa(e,r),Ya(r,e),no(r,e)},ao=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Ga({...i??{},target:a,io:t,processors:n});return qa(e,o),Ya(o,e),no(o,e)},oo=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},so=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},co=(e,t)=>{oo(e,`minimum`,t),so(e,`maximum`,t)},lo=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},uo=(e,t)=>{e.patterns??=new Set,e.patterns.add(t)},fo=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},po=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},mo=(e,t)=>oo(e,`minimum`,t.minimum),ho=(e,t)=>so(e,`maximum`,t.maximum),go=e=>(t,n)=>{po(t,n.format);let[r,i]=e[n.format];oo(t,`minimum`,r),so(t,`maximum`,i)},_o={greater_than:(e,t)=>oo(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>so(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>lo(e,t.value),number_format:go(ue),bigint_format:go(de),min_length:mo,max_length:ho,length_equals:(e,t)=>co(e,t.length),min_size:mo,max_size:ho,size_equals:(e,t)=>co(e,t.size),string_format:(e,t)=>{po(e,t.format),t.pattern&&uo(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>fo(e,t.mime)};function vo(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)_o[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&oo(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&oo(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&so(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&so(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&lo(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&fo(t,i.mime);for(let e of i.patterns??[])uo(t,e);return t}var yo={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},bo=new Map([[dr,Ut],[pr,Wt]]),xo=e=>bo.get(e)??e,So=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=vo(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=yo[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(xo);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Co=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=vo(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):Ka(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},wo=(e,t,n,r)=>{n.type=`boolean`},To=(e,t,n,r)=>{Ka(e,t,n,r,`BigInt cannot be represented in JSON Schema`)},Eo=(e,t,n,r)=>{Ka(e,t,n,r,`Symbols cannot be represented in JSON Schema`)},Do=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Oo=(e,t,n,r)=>{Ka(e,t,n,r,`Undefined cannot be represented in JSON Schema`)},ko=(e,t,n,r)=>{Ka(e,t,n,r,`Void cannot be represented in JSON Schema`)},Ao=(e,t,n,r)=>{n.not={}},jo=(e,t,n,r)=>{},Mo=(e,t,n,r)=>{},No=(e,t,n,r)=>{Ka(e,t,n,r,`Date cannot be represented in JSON Schema`)},Po=(e,t,n,r)=>{let i=e._zod.def,a=x(i.entries);if(a.length===0){n.not={};return}a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Fo=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(Ka(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(Ka(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},Io=(e,t,n,r)=>{Ka(e,t,n,r,`NaN cannot be represented in JSON Schema`)},Lo=(e,t,n,r)=>{let i=n,a=e._zod.pattern;if(!a)throw Error(`Pattern not found in template literal`);i.type=`string`,i.pattern=a.source},Ro=(e,t,n,r)=>{let i=n;i.type=`string`,i.format=`binary`,i.contentEncoding=`binary`;let{minimum:a,maximum:o,mime:s}=vo(e);a!==void 0&&(i.minLength=a),o!==void 0&&(i.maxLength=o),s&&(s.length===0?i.not={}:s.length===1?i.contentMediaType=s[0]:i.anyOf=s.map(e=>({contentMediaType:e})))},zo=(e,t,n,r)=>{n.type=`boolean`},Bo=(e,t,n,r)=>{Ka(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},Vo=(e,t,n,r)=>{Ka(e,t,n,r,`Function types cannot be represented in JSON Schema`)},Ho=(e,t,n,r)=>{Ka(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},Uo=(e,t,n,r)=>{Ka(e,t,n,r,`Map cannot be represented in JSON Schema`)},Wo=(e,t,n,r)=>{Ka(e,t,n,r,`Set cannot be represented in JSON Schema`)},Go=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=vo(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=qa(a.element,t,{...r,path:[...r.path,`items`]})};function Ko(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?Ko(t.out):t.type===`catch`?Ko(t.innerType):e._zod.optin}var qo=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&Ka(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)j(i.properties,e,qa(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?Ko(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=qa(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Jo=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>qa(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Yo=(e,t,n,r)=>{let i=e._zod.def,a=qa(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=qa(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},Xo=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>qa(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?qa(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null,u=a.items.length;for(;u>0;){let e=a.items[u-1];if(!(t.io===`input`?Ko(e)!==void 0:e._zod.optout===`optional`))break;u--}let d=a.items.length,f=!a.rest;t.target===`draft-2020-12`?(i.prefixItems=c,f?i.items=!1:l&&(i.items=l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):(i.items=c,f?i.additionalItems=!1:l&&(i.additionalItems=l),u>0&&(i.minItems=u),f&&(i.maxItems=d));let{minimum:p,maximum:m}=vo(e);typeof p==`number`&&(i.minItems=p),typeof m==`number`&&(i.maxItems=m)};function Zo(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=Zo(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>Zo(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i?(p.type=`string`,a||(p.pattern=(r.includes(`number`)?nn:tn).source),p):p}var Qo=new WeakMap;function $o(e){let t=new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=new Map;for(let r of Qo.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=Zo(t,a,new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}var es=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=vo(o).patterns;if(a.mode===`loose`&&s&&s.size>0){let e=qa(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)j(i.patternProperties,xo(t).source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=qa(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=Qo.get(t);n||(n=[],Qo.set(t,n),t.deferred.push(()=>$o(t))),n.push(e)}i.additionalProperties=qa(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&Ko(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},ts=(e,t,n,r)=>{let i=e._zod.def,a=qa(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},ns=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},rs=Symbol();function is(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(Ka(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),rs):JSON.parse(o)}var as=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=is(i.defaultValue,e,t,n,r);o!==rs&&(n.default=o)},os=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=is(i.defaultValue,e,t,n,r);o!==rs&&(n._prefault=o)},ss=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{Ka(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},cs=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;qa(o,t,r);let s=t.seen.get(e);s.ref=o},ls=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},us=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ds=(e,t,n,r)=>{let i=e._zod.def;qa(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},fs=(e,t,n,r)=>{let i=e._zod.innerType;qa(i,t,r);let a=t.seen.get(e);a.ref=i},ps={string:So,number:Co,boolean:wo,bigint:To,symbol:Eo,null:Do,undefined:Oo,void:ko,never:Ao,any:jo,unknown:Mo,date:No,enum:Po,literal:Fo,nan:Io,template_literal:Lo,file:Ro,success:zo,custom:Bo,function:Vo,transform:Ho,map:Uo,set:Wo,array:Go,object:qo,union:Jo,intersection:Yo,tuple:Xo,record:es,nullable:ts,nonoptional:ns,default:as,prefault:os,catch:ss,pipe:cs,readonly:ls,promise:us,optional:ds,lazy:fs};function ms(e,t){if(`_idmap`in e){let n=e,r=Ga({...t,processors:ps}),i={};for(let e of n._idmap.entries()){let[t,n]=e;qa(n,r)}let a={};r.external={registry:n,uri:t?.uri,defs:i};for(let e of n._idmap.entries()){let[t,n]=e;Ya(r,n),j(a,t,no(r,n))}return Object.keys(i).length>0&&(a.__shared={[r.target===`draft-2020-12`?`$defs`:`definitions`]:i}),{schemas:a}}let n=Ga({...t,processors:ps});return qa(e,n),Ya(n,e),no(n,e)}var hs=new WeakSet([Object.prototype,Error.prototype]);function gs(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var _s=K(`ZodError`,(e,t)=>{rt.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);hs.has(n)||(hs.add(n),gs(n,`format`,e=>t=>ot(e,t)),gs(n,`flatten`,e=>t=>at(e,t)),gs(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,C,2)}),gs(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,C,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),vs=ct(_s),ys=lt(_s),bs=ut(_s),xs=ft(_s),Ss=vt(_s),Cs=yt(_s),ws=bt(_s),Ts=xt(_s),Es=St(_s),Ds=Ct(_s),Os=wt(_s),ks=Tt(_s);function As(){Ye.localeError||Xe(Mi())}function js(){Ye.memoizer||Xe({memoizer:ki()})}var Ms=K(`ZodType`,(e,t)=>(As(),kn.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(L(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ce(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(cl(e,t))},superRefine(e,t){return this.check(ll(e,t))},overwrite(e){return this.check(Pa(e))},optional(){return zc(this)},exactOptional(){return Vc(this)},nullable(){return Uc(this)},nullish(){return zc(Uc(this))},nonoptional(e){return Yc(this,e)},array(){return Y(this)},or(e){return Ec([this,e])},and(e){return Ac(this,e)},transform(e){return $c(this,Lc(e))},default(e){return Gc(this,e)},prefault(e){return qc(this,e)},catch(e){return Zc(this,e)},pipe(e){return $c(this,e)},readonly(){return nl(this)},describe(e){let t=this.clone();return Ii.add(t,{description:e}),t},meta(...e){if(e.length===0)return Ii.get(this);let t=this.clone();return Ii.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return je(this,`~standard`,{...Mn(this),jsonSchema:{input:ao(this,`input`),output:ao(this,`output`)}})},set"~standard"(e){Ae(this,`~standard`,e)},parse:function e(t,n){return vs(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await ys(this,t,n,{callee:e})},safeParse(e,t){return bs(this,e,t)},async safeParseAsync(e,t){return xs(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){Ae(this,`spa`,e)},validate(e,t){return ht(this,e,t)},validateAsync(e,t){return _t(this,e,t)},encode:function e(t,n){return Ss(this,t,n,{callee:e})},decode:function e(t,n){return Cs(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await ws(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await Ts(this,t,n,{callee:e})},safeEncode(e,t){return Es(this,e,t)},safeDecode(e,t){return Ds(this,e,t)},async safeEncodeAsync(e,t){return Os(this,e,t)},async safeDecodeAsync(e,t){return ks(this,e,t)},toJSONSchema(e){return io(this,{})(e)},get description(){return Ii.get(this)?.description},get _def(){return this._zod.def}}),Ns=K(`_ZodString`,(e,t)=>{Nn.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>So(e,t,n,r)},Me({format:e=>vo(e).format??null,minLength:e=>vo(e).minimum??null,maxLength:e=>vo(e).maximum??null},{regex(...e){return this.check(Oa(...e))},includes(...e){return this.check(ja(...e))},startsWith(...e){return this.check(Ma(...e))},endsWith(...e){return this.check(Na(...e))},min(...e){return this.check(Ea(...e))},max(...e){return this.check(Ta(...e))},length(...e){return this.check(Da(...e))},nonempty(...e){return this.check(Ea(1,...e))},lowercase(e){return this.check(ka(e))},uppercase(e){return this.check(Aa(e))},trim(){return this.check(Ia())},normalize(...e){return this.check(Fa(...e))},toLowerCase(){return this.check(La())},toUpperCase(){return this.check(Ra())},slugify(){return this.check(za())}})),Ps=K(`ZodString`,(e,t)=>{Nn.init(e,t),Ns.init(e,t)},{email(e){return this.check(zi(Bs,e))},url(e){return this.check(Gi(Ws,e))},jwt(e){return this.check(oa(oc,e))},emoji(e){return this.check(Ki(Ks,e))},guid(e){return this.check(Bi(Hs,e))},uuid(e){return this.check(Vi(Us,e))},uuidv4(e){return this.check(Hi(Us,e))},uuidv6(e){return this.check(Ui(Us,e))},uuidv7(e){return this.check(Wi(Us,e))},nanoid(e){return this.check(qi(qs,e))},cuid(e){return this.check(Ji(Js,e))},cuid2(e){return this.check(Yi(Ys,e))},ulid(e){return this.check(Xi(Xs,e))},base64(e){return this.check(ra(rc,e))},base64url(e){return this.check(ia(ic,e))},xid(e){return this.check(Zi(Zs,e))},ksuid(e){return this.check(Qi(Qs,e))},ipv4(e){return this.check($i($s,e))},ipv6(e){return this.check(ea(ec,e))},cidrv4(e){return this.check(ta(tc,e))},cidrv6(e){return this.check(na(nc,e))},e164(e){return this.check(aa(ac,e))},datetime(e){return this.check(sa(Is,e))},date(e){return this.check(ca(Ls,e))},time(e){return this.check(la(Rs,e))},duration(e){return this.check(ua(zs,e))}});function q(e){return Ri(Ps,e)}var Fs=K(`ZodStringFormat`,(e,t)=>{Pn.init(e,t),Ns.init(e,t)}),Is=K(`ZodISODateTime`,(e,t)=>{$n.init(e,t),Fs.init(e,t)}),Ls=K(`ZodISODate`,(e,t)=>{er.init(e,t),Fs.init(e,t)}),Rs=K(`ZodISOTime`,(e,t)=>{tr.init(e,t),Fs.init(e,t)}),zs=K(`ZodISODuration`,(e,t)=>{nr.init(e,t),Fs.init(e,t)}),Bs=K(`ZodEmail`,(e,t)=>{Ln.init(e,t),Fs.init(e,t)});function Vs(e){return zi(Bs,e)}var Hs=K(`ZodGUID`,(e,t)=>{Fn.init(e,t),Fs.init(e,t)}),Us=K(`ZodUUID`,(e,t)=>{In.init(e,t),Fs.init(e,t)}),Ws=K(`ZodURL`,(e,t)=>{Gn.init(e,t),Fs.init(e,t)});function Gs(e){return Gi(Ws,e)}var Ks=K(`ZodEmoji`,(e,t)=>{Kn.init(e,t),Fs.init(e,t)}),qs=K(`ZodNanoID`,(e,t)=>{qn.init(e,t),Fs.init(e,t)}),Js=K(`ZodCUID`,(e,t)=>{Jn.init(e,t),Fs.init(e,t)}),Ys=K(`ZodCUID2`,(e,t)=>{Yn.init(e,t),Fs.init(e,t)}),Xs=K(`ZodULID`,(e,t)=>{Xn.init(e,t),Fs.init(e,t)}),Zs=K(`ZodXID`,(e,t)=>{Zn.init(e,t),Fs.init(e,t)}),Qs=K(`ZodKSUID`,(e,t)=>{Qn.init(e,t),Fs.init(e,t)}),$s=K(`ZodIPv4`,(e,t)=>{rr.init(e,t),Fs.init(e,t)}),ec=K(`ZodIPv6`,(e,t)=>{or.init(e,t),Fs.init(e,t)}),tc=K(`ZodCIDRv4`,(e,t)=>{sr.init(e,t),Fs.init(e,t)}),nc=K(`ZodCIDRv6`,(e,t)=>{lr.init(e,t),Fs.init(e,t)}),rc=K(`ZodBase64`,(e,t)=>{fr.init(e,t),Fs.init(e,t)}),ic=K(`ZodBase64URL`,(e,t)=>{hr.init(e,t),Fs.init(e,t)}),ac=K(`ZodE164`,(e,t)=>{gr.init(e,t),Fs.init(e,t)}),oc=K(`ZodJWT`,(e,t)=>{vr.init(e,t),Fs.init(e,t)}),sc=K(`ZodNumber`,(e,t)=>{yr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Co(e,t,n,r),e.isFinite=!0},Me({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=vo(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=vo(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=vo(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>vo(e).format??null},{gt(e,t){return this.check(Sa(e,t))},gte(e,t){return this.check(Ca(e,t))},min(e,t){return this.check(Ca(e,t))},lt(e,t){return this.check(ba(e,t))},lte(e,t){return this.check(xa(e,t))},max(e,t){return this.check(xa(e,t))},int(e){return this.check(lc(e))},safe(e){return this.check(lc(e))},positive(e){return this.check(Sa(0,e))},nonnegative(e){return this.check(Ca(0,e))},negative(e){return this.check(ba(0,e))},nonpositive(e){return this.check(xa(0,e))},multipleOf(e,t){return this.check(wa(e,t))},step(e,t){return this.check(wa(e,t))},finite(){return this}}));function J(e){return da(sc,e)}var cc=K(`ZodNumberFormat`,(e,t)=>{br.init(e,t),sc.init(e,t)});function lc(e){return pa(cc,e)}var uc=K(`ZodBoolean`,(e,t)=>{xr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wo(e,t,n,r)});function dc(e){return ma(uc,e)}var fc=K(`ZodUndefined`,(e,t)=>{Sr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Oo(e,t,n,r)});function pc(e){return ha(fc,e)}var mc=K(`ZodNull`,(e,t)=>{Cr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Do(e,t,n,r)});function hc(e){return ga(mc,e)}var gc=K(`ZodAny`,(e,t)=>{wr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function _c(){return _a(gc)}var vc=K(`ZodUnknown`,(e,t)=>{Tr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function yc(){return va(vc)}var bc=K(`ZodNever`,(e,t)=>{Er.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ao(e,t,n,r)});function xc(e){return ya(bc,e)}var Sc=K(`ZodArray`,(e,t)=>{js(),Or.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Go(e,t,n,r),e.element=t.element},{min(e,t){return this.check(Ea(e,t))},nonempty(e){return this.check(Ea(1,e))},max(e,t){return this.check(Ta(e,t))},length(e,t){return this.check(Da(e,t))},unwrap(){return this.element}});function Y(e,t){return Ba(Sc,e,t)}var Cc=K(`ZodObject`,(e,t)=>{js(),Pr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qo(e,t,n,r),ze(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return Pc(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(L(this._zod.def,{catchall:e}))},passthrough(){return this.clone(L(this._zod.def,{catchall:yc()}))},loose(){return this.clone(L(this._zod.def,{catchall:yc()}))},strict(){return this.clone(L(this._zod.def,{catchall:xc()}))},strip(){return this.clone(L(this._zod.def,{catchall:void 0}))},extend(e){return he(this,e)},safeExtend(e){return ge(this,e)},merge(e){return W(this,e)},pick(e){return fe(this,e)},omit(e){return me(this,e)},partial(...e){return G(Rc,this,e[0])},exactPartial(...e){return G(Bc,this,e[0],`exactPartial`)},required(...e){return _e(Jc,this,e[0])}});function X(e,t){return new Cc({type:`object`,shape:e??{},...V(t)})}function wc(e,t){return new Cc({type:`object`,shape:e,catchall:yc(),...V(t)})}var Tc=K(`ZodUnion`,(e,t)=>{Ir.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jo(e,t,n,r),e.options=t.options});function Ec(e,t){return new Tc({type:`union`,options:e,...V(t)})}var Dc=K(`ZodDiscriminatedUnion`,(e,t)=>{Tc.init(e,t),Rr.init(e,t)});function Oc(e,t,n){return new Dc({type:`union`,options:t,discriminator:e,...V(n)})}var kc=K(`ZodIntersection`,(e,t)=>{zr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yo(e,t,n,r)});function Ac(e,t){return new kc({type:`intersection`,left:e,right:t})}var jc=K(`ZodRecord`,(e,t)=>{js(),Hr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>es(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Mc(e,t,n){return!t||!t._zod?new jc({type:`record`,keyType:q(),valueType:e,...V(t)}):new jc({type:`record`,keyType:e,valueType:t,...V(n)})}var Nc=K(`ZodEnum`,(e,t)=>{Ur.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Po(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Nc({...t,checks:[],...V(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Nc({...t,checks:[],...V(r),entries:i})}});function Pc(e,t){return new Nc({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...V(t)})}var Fc=K(`ZodLiteral`,(e,t)=>{Wr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fo(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Z(e,t){return new Fc({type:`literal`,values:Array.isArray(e)?e:[e],...V(t)})}var Ic=K(`ZodTransform`,(e,t)=>{js(),Gr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ho(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Je(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Oe(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(Oe(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Lc(e){return new Ic({type:`transform`,transform:e})}var Rc=K(`ZodOptional`,(e,t)=>{qr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function zc(e){return new Rc({type:`optional`,innerType:e})}var Bc=K(`ZodExactOptional`,(e,t)=>{Jr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Vc(e){return new Bc({type:`optional`,innerType:e})}var Hc=K(`ZodNullable`,(e,t)=>{Yr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ts(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Uc(e){return new Hc({type:`nullable`,innerType:e})}var Wc=K(`ZodDefault`,(e,t)=>{Xr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>as(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Gc(e,t){return new Wc({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():ie(t)}})}var Kc=K(`ZodPrefault`,(e,t)=>{Qr.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>os(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function qc(e,t){return new Kc({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():ie(t)}})}var Jc=K(`ZodNonOptional`,(e,t)=>{$r.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ns(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Yc(e,t){return new Jc({type:`nonoptional`,innerType:e,...V(t)})}var Xc=K(`ZodCatch`,(e,t)=>{ni.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ss(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Zc(e,t){return new Xc({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:Ve(t)})}var Qc=K(`ZodPipe`,(e,t)=>{ri.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cs(e,t,n,r),e.in=t.in,e.out=t.out});function $c(e,t){return new Qc({type:`pipe`,in:e,out:t})}var el=K(`ZodPreprocess`,(e,t)=>{Qc.init(e,t),ai.init(e,t)}),tl=K(`ZodReadonly`,(e,t)=>{oi.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ls(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function nl(e){return new tl({type:`readonly`,innerType:e})}var rl=K(`ZodTemplateLiteral`,(e,t)=>{ui.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Lo(e,t,n,r)});function il(e,t){return new rl({type:`template_literal`,parts:e,...V(t)})}var al=K(`ZodLazy`,(e,t)=>{di.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fs(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function ol(e){return new al({type:`lazy`,getter:e})}var sl=K(`ZodCustom`,(e,t)=>{fi.init(e,t),Ms.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bo(e,t,n,r)});function cl(e,t={}){return Va(sl,e,t)}function ll(e,t){return Ha(e,t)}function ul(e,t){return new el({type:`pipe`,in:Lc(e),out:t})}var dl={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`},fl;fl||={};function pl(e){return sa(Is,e)}function ml(e){return ca(Ls,e)}function hl(e){return fa(sc,e)}var gl=X({description:q().max(1024).optional(),edit:Pc([`inline`,`popout`]).optional(),id:q().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/,`column id must be a lowercase slug (a-z, 0-9, _)`),name:q().min(1).max(128),required:dc().optional()}),_l=Pc([`integer`,`decimal`,`percent`,`currency`]),vl=X({currency:q().regex(/^[A-Z]{3}$/,`currency must be an ISO 4217 code`).optional(),fractionDigits:J().int().min(0).max(8).optional(),grouping:dc().optional(),style:_l}).superRefine((e,t)=>{e.style===`currency`&&!e.currency&&t.addIssue({code:`custom`,message:`currency style needs an ISO 4217 code`,path:[`currency`]}),e.style!==`currency`&&e.currency&&t.addIssue({code:`custom`,message:`currency is only valid on currency columns`,path:[`currency`]})}),yl=Pc([`date`,`datetime`,`time`]),bl=Pc([`short`,`medium`,`long`,`iso`]),xl=Pc([`hours`,`minutes`,`seconds`]),Sl=X({dateStyle:bl.optional(),kind:yl,timePrecision:xl.optional()}),Cl=Pc([`milliseconds`,`seconds`,`minutes`,`hours`,`days`]),wl=Pc([`hms`,`hours`,`minutes`,`decimal-hours`,`iso`]),Tl=X({display:wl,inputUnit:Cl}),El=X({id:q().min(1).max(64),label:q().min(1).max(128)}),Dl=X({allowCustom:dc(),multiple:dc().optional(),options:Y(El).max(200)}),Ol=X({style:Pc([`single`,`multiline`,`markdown`]).default(`single`)}),kl=Y(Oc(`type`,[gl.extend({format:Ol.optional(),type:Z(`text`)}),gl.extend({format:vl,type:Z(`number`)}),gl.extend({format:Sl,type:Z(`date`)}),gl.extend({format:Tl,type:Z(`duration`)}),gl.extend({format:Dl,type:Z(`select`)}),gl.extend({type:Z(`boolean`)})])).min(1).max(64).superRefine((e,t)=>{let n=new Set;for(let r=0;r<e.length;r++){let i=e[r]?.id;i&&(n.has(i)&&t.addIssue({code:`custom`,message:`duplicate column id "${i}"`,path:[r,`id`]}),n.add(i))}});X({description:q().optional(),edit:Pc([`inline`,`popout`]).optional(),format:X({allowCustom:dc().optional(),currency:q().optional(),dateStyle:Pc([`short`,`medium`,`long`,`iso`]).optional(),display:wl.optional(),fractionDigits:J().int().optional(),grouping:dc().optional(),inputUnit:Cl.optional(),kind:yl.optional(),multiple:dc().optional(),options:Y(El).optional(),style:Pc([`single`,`multiline`,`markdown`,`integer`,`decimal`,`percent`,`currency`]).optional(),timePrecision:xl.optional()}).optional(),id:q(),name:q(),required:dc().optional(),type:Pc([`text`,`number`,`date`,`duration`,`select`,`boolean`])}),X({table_id:q().uuid()});var Al=36e5,jl=6e4,Ml=1e3;function Nl(e){return e.fractionDigits===void 0?e.style===`integer`?0:2:e.fractionDigits}function Pl(e,t,n=`en`){if(typeof e!=`number`||!Number.isFinite(e))return``;let r=Nl(t),i=t.grouping!==!1;return t.style===`percent`?new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,style:`percent`,useGrouping:i}).format(e):t.style===`currency`&&t.currency?new Intl.NumberFormat(n,{currency:t.currency,maximumFractionDigits:r,minimumFractionDigits:r,style:`currency`,useGrouping:i}).format(e):new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,useGrouping:i}).format(e)}function Fl(e,t,n=`en`){if(typeof e!=`string`||e.length===0)return``;if(t.kind===`time`)return Il(e,t.timePrecision??`minutes`);if(t.dateStyle===`iso`)return t.kind===`date`?e.slice(0,10):e;let r=t.kind===`date`?new Date(`${e}T00:00:00`):new Date(e);if(Number.isNaN(r.getTime()))return e;let i=t.dateStyle??`medium`;if(t.kind===`date`)return new Intl.DateTimeFormat(n,{dateStyle:i}).format(r);let a=t.timePrecision??`minutes`;return new Intl.DateTimeFormat(n,{dateStyle:i,timeStyle:a===`hours`?`short`:`medium`}).format(r)}function Il(e,t){let[n=`0`,r=`00`,i=`00`]=e.split(`:`);return t===`hours`?`${n.padStart(2,`0`)}:00`:t===`minutes`?`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}`:`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}:${i.padStart(2,`0`)}`}function Ll(e,t){if(typeof e!=`number`||!Number.isFinite(e))return``;let n=Math.max(0,Math.round(e));if(t.display===`iso`)return Rl(n);if(t.display===`minutes`)return`${Math.round(n/jl)} min`;if(t.display===`hours`)return`${(n/Al).toFixed(2)} h`;if(t.display===`decimal-hours`)return(n/Al).toFixed(2);let r=Math.floor(n/Al),i=Math.floor(n%Al/jl),a=Math.floor(n%jl/Ml);return`${r}:${String(i).padStart(2,`0`)}:${String(a).padStart(2,`0`)}`}function Rl(e){let t=Math.floor(e/Al),n=Math.floor(e%Al/jl),r=Math.floor(e%jl/Ml);return`${t>=24?`P${Math.floor(t/24)}D`:`P`}T${t%24}H${n}M${r}S`}function zl(e,t,n=`en`){if(t==null)return``;switch(e.type){case`number`:return Pl(t,e.format,n);case`date`:return Fl(t,e.format,n);case`duration`:return Ll(t,e.format);case`boolean`:return t===!0?`true`:t===!1?`false`:``;case`select`:return Bl(e,t);default:return String(t)}}function Bl(e,t){let n=Array.isArray(t)?t:[t],r=e.format.options.reduce((e,t)=>(e[t.id]=t.label,e),{});return n.filter(e=>typeof e==`string`&&e.length>0).map(e=>r[e]??e).join(`, `)}function Vl(e,t={}){if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e!=`string`)return null;let n=t.units?e.replace(/[^\d,.-]/g,``):e.trim();if(!/^-?(\d+([.,]\d*)?|[.,]\d+)$/.test(n))return null;let r=Number(n.replace(`,`,`.`));return Number.isFinite(r)?r:null}function Hl(e){return e>0?e<999500?`${Math.max(1,Math.round(e/1e3))} KB`:e<99995e4?`${(e/1e6).toFixed(1)} MB`:`${(e/1e9).toFixed(1)} GB`:`0 KB`}function Ul(e,t,n){try{return new Intl.NumberFormat(n,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}var Wl=q().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,40}$/,`keys are letters, digits and _ and start with a letter`),Gl={label:q().min(1).optional(),description:q().optional()},Kl=[X({kind:Z(`text`),...Gl,long:dc().optional()}),X({kind:Z(`number`),...Gl,unit:q().optional()}),X({kind:Z(`yesno`),...Gl,yes:q().optional(),no:q().optional()}),X({kind:Z(`choice`),...Gl,options:Y(q().min(1)).min(2).max(40)}),X({kind:Z(`ref`),...Gl,to:Wl})],ql=`text, number, yesno, choice, ref`;function Jl(e){let t=e<4?Jl(e+1):void 0,n=t?Oc(`kind`,[...Kl,t],{error:`A list holds ${ql} or object.`}):Oc(`kind`,[...Kl],{error:`A list this deep holds ${ql}: objects nest at most 4 deep.`}),r=X({kind:Z(`list`),...Gl,of:n}),i=Oc(`kind`,[...Kl,r],{error:`"kind" is one of ${ql}, list.`});return X({kind:Z(`object`),...Gl,fields:Mc(Wl,i).refine(e=>Object.keys(e).length>0,{message:`An object has fields.`})})}function Yl(e,t=[]){let n=[{shape:e,at:t}];for(let[r,i]of Object.entries(e.fields))i.kind===`list`&&i.of.kind===`object`&&n.push(...Yl(i.of,[...t,`fields`,r,`of`]));return n}function Xl(e,t){let n=e.fields[t];return n?.kind!==`list`||n.of.kind!==`object`?`"ref" to "${t}": that is no list of objects at the top of the schema.`:n.of.fields.id?.kind===`text`?null:`"ref" to "${t}": its entries need an "id" text field to be pointed at.`}var Zl=Jl(1).superRefine((e,t)=>{let n=Yl(e),r=n.reduce((e,t)=>e+Object.keys(t.shape.fields).length,0);r>100&&t.addIssue({code:`custom`,message:`A schema has at most 100 keys in all; this one has ${r}.`});for(let r of n)for(let[n,i]of Object.entries(r.shape.fields)){let a=i.kind===`ref`?i:i.kind===`list`&&i.of.kind===`ref`?i.of:null,o=a?Xl(e,a.to):null;o&&t.addIssue({code:`custom`,message:o,path:[...r.at,`fields`,n]})}});function Ql(e){let t=e=>{let t=e.description?{description:e.description}:{};switch(e.kind){case`number`:return{kind:`number`,...t};case`list`:return{kind:`list`,...t,of:{kind:`text`}};case`yesno`:return{kind:`yesno`,...t};case`choice`:return{kind:`choice`,...t,options:e.options??[]};case`score`:return{kind:`score`,...t,options:e.options??[]};case`table`:return{kind:`table`,...t,...e.columns?.length?{columns:e.columns}:{}};default:return{kind:`text`,...t}}};return{kind:`object`,fields:Object.fromEntries(e.map(e=>[e.id,t(e)]))}}function $l(e){return Object.entries(e.fields).find(([e,t])=>e!==`id`&&t.kind===`text`&&!t.long)?.[0]}function eu(e,t){return t.label??e}function tu(e,t){let n=t.description??(t.label?``:e),r=t.kind===`number`&&t.unit?`in ${t.unit}`:t.kind===`score`?`lowest to highest`:t.kind===`ref`?`the id of an entry of "${t.to}"`:``;return(n&&r?`${n} (${r})`:n||r)||void 0}var nu=Ec([q(),J(),hc()]);function ru(e,t=`data`){let n=tu(t,e),r={...e.label?{title:e.label}:{},...n?{description:n}:{}};switch(e.kind){case`text`:case`ref`:return q().meta(r);case`number`:return J().meta(r);case`yesno`:return dc().meta(r);case`choice`:case`score`:return Pc(e.options).meta(r);case`list`:return Y(ru(e.of,t)).meta(r);case`object`:return X(Object.fromEntries(Object.entries(e.fields).map(([e,t])=>[e,ru(t,e)]))).meta(r);case`table`:return(e.columns?.length?Y(X(Object.fromEntries(e.columns.map(e=>[e,nu])))):X({columns:Y(q()),rows:Y(Y(nu))})).meta(r)}}function iu(e,t){let n=ms(ru(e),{target:`draft-2020-12`});return t&&!e.label?{...n,title:t}:n}var au=[`mail`];function ou(e,t){if(t.trim()===``)return null;switch(e.type){case`number`:case`duration`:return Vl(t)??t;case`boolean`:return t===`true`;case`date`:{if(e.format.kind!==`datetime`)return t;let n=new Date(t);return Number.isNaN(n.getTime())?t:n.toISOString()}default:return t}}var su=Y(wc({id:q().regex(/^[a-zA-Z][a-zA-Z0-9_-]{0,40}$/,`ids are letters, digits, _ and -`),component:Pc([`Column`,`Text`,`List`,`Row`,`DetailGrid`,`Badge`,`Grid`,`Metric`,`Table`,`Image`,`BarChart`,`LineChart`,`DonutChart`,`Actions`,`Button`,`Tabs`,`Card`,`Fold`,`Group`,`Chips`,`Checklist`,`Steps`,`Link`,`Callout`]),children:Ec([Y(q()),X({path:q(),componentId:q()})]).optional()})).min(1).max(200),cu=e=>!(!e||typeof e!=`object`||Array.isArray(e)||typeof e.path!=`string`);function lu(e,t){let n=e;for(let e of t.split(`/`).slice(1)){if(typeof n!=`object`||!n)return;n=n[e.replace(/~1/g,`/`).replace(/~0/g,`~`)]}return n}function uu(e,t,n){return cu(e)?du(e.path.startsWith(`/`)?lu(t,e.path):n===void 0?void 0:lu(n,`/${e.path.replace(/\./g,`/`)}`),e):e}function du(e,t){let n=e,r=t.map;if(r&&typeof r==`object`&&!Array.isArray(r)){let e=String(n);Object.hasOwn(r,e)&&(n=r[e])}return typeof t.format==`string`&&n!=null&&n!==``&&(n=t.format.replace(`{}`,Array.isArray(n)?n.join(`, `):String(n))),n}var fu=[`round`,`drop`,`dome`,`flame`,`oval`,`bean`,`pebble`,`sprout`,`tower`,`wedge`],pu=[`en`,`de`],mu={en:`en-GB`,de:`de-DE`};function hu(e){return typeof e==`string`&&pu.includes(e)}function gu(e){let t=e?.trim().toLowerCase().split(/[-_]/)[0];return hu(t)?t:null}var _u={AT:`de`,BE:`nl`,BG:`bg`,CH:`de`,CY:`el`,CZ:`cs`,DE:`de`,DK:`da`,EE:`et`,ES:`es`,FI:`fi`,FR:`fr`,GB:`en`,GR:`el`,HR:`hr`,HU:`hu`,IE:`en`,IS:`is`,IT:`it`,LI:`de`,LT:`lt`,LU:`fr`,LV:`lv`,MC:`fr`,MT:`en`,NL:`nl`,NO:`nb`,PL:`pl`,PT:`pt`,RO:`ro`,RS:`sr`,SE:`sv`,SI:`sl`,SK:`sk`,SM:`it`,UA:`uk`,VA:`it`};[...new Set([`en`,`de`,...Object.values(_u)])];var vu={"Europe/Amsterdam":`NL`,"Europe/Athens":`GR`,"Europe/Belgrade":`RS`,"Europe/Berlin":`DE`,"Europe/Bratislava":`SK`,"Europe/Brussels":`BE`,"Europe/Bucharest":`RO`,"Europe/Budapest":`HU`,"Europe/Busingen":`DE`,"Europe/Copenhagen":`DK`,"Europe/Dublin":`IE`,"Europe/Helsinki":`FI`,"Europe/Kiev":`UA`,"Europe/Kyiv":`UA`,"Europe/Lisbon":`PT`,"Europe/Ljubljana":`SI`,"Europe/London":`GB`,"Europe/Luxembourg":`LU`,"Europe/Madrid":`ES`,"Europe/Malta":`MT`,"Europe/Monaco":`MC`,"Europe/Oslo":`NO`,"Europe/Paris":`FR`,"Europe/Prague":`CZ`,"Europe/Riga":`LV`,"Europe/Rome":`IT`,"Europe/San_Marino":`SM`,"Europe/Sofia":`BG`,"Europe/Stockholm":`SE`,"Europe/Tallinn":`EE`,"Europe/Vaduz":`LI`,"Europe/Vatican":`VA`,"Europe/Vienna":`AT`,"Europe/Vilnius":`LT`,"Europe/Warsaw":`PL`,"Europe/Zagreb":`HR`,"Europe/Zurich":`CH`,"Atlantic/Canary":`ES`,"Atlantic/Madeira":`PT`,"Atlantic/Reykjavik":`IS`,"Asia/Nicosia":`CY`};function yu(e,t){for(let t of e){let e=gu(t);if(e&&e!==`en`)return e}let n=t?vu[t]:void 0,r=n?gu(_u[n]):null;return r===`en`?null:r}function bu(e){return hu(e)?mu[e]:e}var xu=[`text`,`textarea`,`number`,`select`,`multiselect`,`date`,`email`,`url`,`toggle`,`color`,`image`,`file`,`items`,`connection`,`list`,`location`,`audio`,`signature`,`slot`];function Su(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let{lat:t,lng:n,label:r}=e;return typeof t==`number`&&typeof n==`number`||typeof r==`string`&&r.trim().length>0}function Cu(e){return!!(e&&typeof e==`object`&&typeof e.asset==`string`&&e.asset)}var wu=[`web_search`,`web_fetch`,`browser`,`sandbox`,`image`,`http`,`pages`],Tu=/^[a-z][a-z0-9-]{0,39}$/,Eu=/^[a-z][a-z0-9_]{0,39}$/,Du=[`classifier`,`standard`,`high`,`highest`];[...Du];var Ou=[`low`,`medium`,`high`],ku=[`image`,`video`,`voice`,`document`,`dashboard`],Au=[`png`,`mp4`,`mp3`,`pdf`,`docx`,`html`,`md`,`txt`,`csv`,`xlsx`,`json`,`zip`],ju=[`1:1`,`16:9`,`9:16`,`4:5`,`3:2`,`2:3`],Mu=[`720p`,`480p`],Nu=q().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,40}$/,`ids are letters, digits and _ and start with a letter`),Pu=X({id:Nu,label:q().min(1),kind:Pc([`text`,`number`,`money`])}),Fu=X({field:q(),op:Pc([`equals`,`notEquals`,`in`,`notEmpty`,`empty`,`gt`,`lt`,`contains`]),value:Ec([q(),J(),dc(),Y(q())]).optional()}),Iu=Ec([Fu,Y(Fu).min(1)]),Lu=X({label:q().min(1),value:q().optional(),image:q().optional(),subtitle:q().optional(),meta:q().optional(),link:q().optional()}),Ru=X({id:Nu,label:q().min(1),kind:Pc(xu),required:dc().optional(),placeholder:q().optional(),help:q().optional(),options:Y(q()).optional(),default:Ec([q(),J(),dc(),Y(q())]).optional(),columns:Y(Pu).optional(),vat:X({rate:J().optional(),field:q().optional()}).optional(),currency:q().optional(),multiple:dc().optional(),min:J().int().min(1).max(30).optional(),max:J().int().min(1).max(30).optional(),camera:dc().optional(),video:dc().optional(),listen:dc().optional(),scan:dc().optional(),connection:q().optional(),list:q().optional(),prefill:q().optional(),when:Iu.optional(),optionsFrom:q().optional(),cards:Lu.optional(),ask:q().min(1).optional(),group:q().optional()}),zu=X({id:Nu,instructions:q().min(1),optional:dc().optional()}),Bu=X({when:Iu.optional(),ask:q().min(1).optional(),goto:q(),max:J().int().min(1).max(50).optional()}).refine(e=>e.when===void 0||e.ask===void 0,{message:`A branch has "when" or "ask", not both.`}),Vu={id:Nu,title:q().min(1),description:q().optional(),next:Y(Bu).optional()},Hu=X({id:Nu,kind:Pc([`text`,`number`,`list`,`table`,`yesno`,`choice`,`score`]),description:q().optional(),columns:Y(q().min(1)).optional(),options:Y(q().min(1)).min(2).max(40).optional()}).refine(e=>e.kind!==`choice`&&e.kind!==`score`||!!e.options?.length,{message:`A choice or score field lists its options.`,path:[`options`]}).refine(e=>e.kind!==`score`||(e.options?.length??0)<=10,{message:`A score has at most ten levels.`,path:[`options`]}),Uu=X({...Vu,type:Z(`page`),fields:Y(Ru).min(1),groups:Y(zu).max(6).optional(),cta:q().optional()}),Wu=il([q().regex(Tu),`.`,q().regex(Eu)]),Gu=X({...Vu,type:Z(`agent`),instructions:q().default(``),call:X({tool:Wu,input:Mc(q(),yc()).default({})}).optional(),tools:Y(Ec([Pc(wu),Wu])).default([]),mcp:Y(q()).optional(),connections:Y(q()).optional(),output:X({format:Pc([`text`,`markdown`,`json`]),fields:Y(Hu).optional(),schema:Zl.optional(),surface:Ec([dc(),su]).optional()}).default({format:`markdown`}),model:Pc(Du).optional(),effort:Pc(Ou).optional(),each:q().optional(),working:q().optional()}),Ku=X({...Vu,type:Z(`generate`),asset:Pc(ku),prompt:q().min(1),options:X({aspectRatio:Pc(ju).optional(),duration:J().optional(),resolution:Pc(Mu).optional(),style:q().optional(),template:Pc([`invoice`,`offer`,`briefing`,`letter`,`report`,`free`]).optional()}).optional(),referenceImage:q().optional(),each:q().optional(),model:Pc(Du).optional(),effort:Pc(Ou).optional(),working:q().optional()}),qu=X({...Vu,type:Z(`widget`),entry:q().min(1),data:Mc(q(),q()).default({}),sample:q().optional(),layout:Pc([`fixed`,`page`]).optional(),size:X({width:J().int().min(200).max(3840),height:J().int().min(200).max(3840)}).optional(),video:dc().optional(),working:q().optional()}),Ju=[`16:9`,`9:16`,`1:1`],Yu=X({...Vu,type:Z(`film`),brief:q().min(1),skills:Y(q().min(1)).max(12).default([`hyperframes`]),kit:q().optional(),inputs:Mc(q(),q()).default({}),format:Pc(Ju).default(`16:9`),seconds:J().int().min(3).max(600).optional(),model:Pc(Du).optional(),effort:Pc(Ou).optional(),working:q().optional()}),Xu=X({id:Nu,description:q().min(1),components:su,group:q().optional(),required:dc().optional()}),Zu=X({...Vu,type:Z(`surface`),components:su.optional(),candidates:Y(Xu).max(16).optional(),groups:Y(zu).max(6).optional(),data:Mc(q(),q()).default({}),working:q().optional()}).refine(e=>!!e.components!=!!e.candidates,{message:`A surface step has either "components" or "candidates".`}),Qu=X({...Vu,type:Z(`review`),show:Y(q()).min(1),edit:dc().optional(),regenerate:dc().optional()}),$u=X({from:q(),label:q().optional(),formats:Y(Pc(Au)).min(1)}),ed=Oc(`type`,[Uu,Gu,Ku,qu,Zu,Yu,Qu,X({...Vu,type:Z(`result`),message:q().optional(),deliverables:Y($u)})]);function td(e){return e.output.schema?e.output.schema:e.output.fields?.length?Ql(e.output.fields):void 0}function nd(e){return td(e)??{kind:`object`,fields:{data:{kind:`table`,description:`The result as a table`}}}}var rd=X({id:Nu,title:q().min(1),description:q().optional(),columns:kl,key:q().optional(),check:X({file:q().optional(),status:q().optional()}).optional(),shared:dc().optional()}),id=X({id:Nu,kind:Pc(au).optional(),connector:q().optional(),actions:Y(q()).max(200).optional(),policy:Mc(q(),Pc([`allow`,`ask`])).optional(),title:q().optional(),description:q().optional()});X({version:Z(1).default(1),title:q().min(1),description:q().default(``),avatar:Pc(fu).default(`round`),intro:q().optional(),lang:q().regex(/^[a-z]{2}$/).optional(),lists:Y(rd).max(12).optional(),connections:Y(id).max(12).optional(),steps:Y(ed).min(1)});function ad(e){return e.when===void 0&&e.ask===void 0}function od(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function sd(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function cd(e,t){let n=t[e.field];switch(e.op){case`empty`:return od(n);case`notEmpty`:return!od(n);case`equals`:return String(n)===String(e.value);case`notEquals`:return String(n)!==String(e.value);case`in`:return Array.isArray(e.value)&&e.value.map(String).includes(String(n));case`gt`:case`lt`:{let t=Vl(n),r=Vl(e.value);return t!==null&&r!==null&&(e.op===`gt`?t>r:t<r)}case`contains`:return Array.isArray(n)?n.map(String).includes(String(e.value)):typeof n==`string`&&e.value!==void 0&&n.toLowerCase().includes(String(e.value).toLowerCase())}}function ld(e,t){return sd(e).every(e=>cd(e,t))}function ud(e){return!!(e.ask||e.group)}function dd(e,t,n){let r={...t,...n},i=[];for(let t of e)ld(t.when,r)?i.push(t):delete r[t.id];return i}var fd=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2})(?:\.\d+)?)?(Z|[+-]\d{2}:\d{2})$/;function pd(e){let t=fd.exec(e.trim());if(!t)return null;let[,n,r,i,a,o]=t.map(Number),s=new Date(Date.UTC(n,r-1,i,a,o));return s.getUTCMonth()!==r-1||s.getUTCDate()!==i||a>23||o>59||!Number.isFinite(Date.parse(e))?null:{day:`${t[1]}-${t[2]}-${t[3]}`,time:`${t[4]}:${t[5]}`,wall:s}}function md(e,t=`en`){let n=pd(e);if(!n)return e;let r=bu(t);return`${n.wall.toLocaleDateString(r,{weekday:`long`,timeZone:`UTC`})}, ${n.wall.toLocaleDateString(r,{day:`numeric`,month:`long`,timeZone:`UTC`})}`}function hd(e,t=`en`){let n=pd(e);if(!n)return e;let r=bu(t);return`${n.wall.toLocaleDateString(r,{weekday:`short`,timeZone:`UTC`}).replace(/\.$/,``)} ${n.wall.toLocaleDateString(r,{day:`2-digit`,month:`2-digit`,year:`numeric`,timeZone:`UTC`})}, ${n.time}`}function gd(e,t,n){let r=Array.isArray(t)?t:[],i=(e.columns??[]).filter(e=>e.kind!==`text`),a=r.map(e=>{let t=i.length?i.reduce((t,n)=>t*_d(e[n.id]),1):0;return{...e,amount:vd(t)}}),o=vd(a.reduce((e,t)=>e+t.amount,0)),s=e.vat?.rate??0;if(e.vat?.field){let t=n[e.vat.field],r=Vl(t,{units:!0});r!==null&&(s=r)}let c=vd(o*s/100);return{rows:a,net:o,vatRate:s,vat:c,gross:vd(o+c),currency:e.currency??`EUR`}}function _d(e){return Vl(e)??0}function vd(e){return Math.round(e*100)/100}var yd=new Map;function bd(e){let t=yd.get(e);return t||(t=new Intl.PluralRules(bu(e)),yd.set(e,t)),t}function xd(e,t,n){return typeof e==`string`?e:typeof n==`number`?e[bd(t).select(n)]??e.other:e.other}function Sd(e,t){return typeof e==`number`?e.toLocaleString(bu(t)):Array.isArray(e)?e.map(e=>Sd(e,t)).join(`, `):e}function Cd(e,t,n){return e.replace(/\{(\w+)\}/g,(e,r)=>{let i=n?.[r];return i===void 0?e:Sd(i,t)})}function wd(e,t,n,r){let i=e[n][t]??e.en[t];return i===void 0?t:Cd(xd(i,n,r?.count??r?.n),n,r)}function Td(e,t,n){return Cd(xd(e,t,n?.count??n?.n),t,n)}var Ed={entry:`Entry {n} of {total}`,deciding:`Deciding what to do next…`,choosingFields:`Choosing the right questions…`,batchDone:`{done} of {total} done`,editing:`Editing {n} of {total}`,filming:`Filming {n} of {total}`,clipsRendering:{one:`Rendering {count} clip – this takes a few minutes.`,other:`Rendering {count} clips – this takes a few minutes.`},videoRendering:`Rendering the video – this usually takes 1–3 minutes.`,photo:`Looking at photo {n} of {total}`,found:`{label}: {name}`,listen:`Listening to “{label}”…`,listenFailed:`“{label}” couldn’t be transcribed.`,filmCutting:`Cutting the film – this takes about a minute.`,filmProgress:`{pct} % cut`,filmError:`The film reports: {detail}`,widgetError:`The widget reports an error: {detail}`,mcpConnected:`Connected to {names}`,mcpUnreachable:`MCP server unreachable: {detail}`,reads:`Reading {name}`,readsMany:{one:`Reading {count} document`,other:`Reading {count} documents`},opens:`Opening {name}`,clicks:`Clicking in the browser`,clicksOn:`Clicking “{name}”`,types:`Typing in the browser`,typesText:`Typing “{text}”`,selects:`Choosing “{option}”`,scrolls:`Scrolling`,presses:`Pressing {key}`,goesBack:`Going back a page`,waitsForPage:`Waiting for the page`,fastLoop:`Doing in the browser: {goal}`,personDrives:`You’re driving the browser – the wizard waits`,agentDrives:`The wizard carries on in the browser`,looksAtPage:`Looking at the page`,waitsForSignIn:`Waiting for you to sign in to {name}`,downloads:`Downloading {name}`,runs:`Running: {command}`,python:`Running Python`,drawing:`Drawing an image`,writesPage:`Writing the page “{title}”`,searchesDocuments:`Searching the documents: {query}`,searchesKnowledge:`Searching knowledge: {query} – {relevant} of {candidates} fit`,listsKnowledge:`Listing knowledge`,searchesMail:`Searching {label}`,savesReceipts:{one:`Saving {count} receipt from {label}`,other:`Saving {count} receipts from {label}`},remembers:`Remembering {title}`,files:{one:`Filing {count} file`,other:`Filing {count} files`},filmSetup:`Setting up the folder for the film`,filmClient:`{client} is working on the film – this usually takes 10–40 minutes.`,filmTask:`On the film: {task}`,filmLooks:`Looking at frames of the film`,filmFix:`The film didn’t render – Claude Code is fixing it`,filmResume:`Picking the film up where it stopped`,wizardUnavailable:`This wizard isn’t available right now.`,translationFailed:`This wizard can’t be translated right now. It’s shown as it was written.`,translationOff:`This wizard is only offered as it was written.`,translationPlaceholder:`The translation of “{text}” needs every placeholder in curly brackets the original has.`,wizardLimit:`This wizard has reached its limit for today. Try again tomorrow.`,confirmHuman:`Confirm that you’re a person.`,tooManyRuns:`You’ve started a lot of runs just now. Try again in an hour.`,runOver:`The run is over.`,runBusy:`The wizard is working right now.`,pageOutdated:`This page is out of date.`,noStepBefore:`There is no step before this one.`,checkFields:`Check the marked fields.`,talkOff:`Live conversations aren’t turned on for this wizard.`,talkKeyRefused:`The conversation couldn’t start: the OpenAI API key was refused.`,talkFailed:`The conversation couldn’t start ({status}).`,talkNoSecret:`The conversation couldn’t start: no access key came back.`,tryLater:`Try again later.`,recordingTooLarge:`The recording can be 10 MB at most.`,fileTooLarge:`Choose a file of {mb} MB or less.`,askClosed:`This question is no longer open.`,noBrowser:`The wizard has no browser open right now.`,notWaiting:`The wizard isn’t waiting for you right now.`,pageActFailed:`That didn’t work on the page.`,linkGone:`This link has expired or was withdrawn.`,connected:`Connected. You can close this window.`,connectFailed:`Connecting didn’t work. Try again.`,connectCancelled:`Connecting was cancelled.`,appleOff:`Apple Intelligence is turned off on this Mac. Turn it on in System Settings → Apple Intelligence & Siri.`,appleLoading:`Apple is still loading the model for Apple Intelligence onto this Mac. Try again in a moment.`,appleMissing:`The helper for Apple Intelligence (wizards-apple) is missing from this install.`,appleOs:`Apple Intelligence needs macOS 26 or later.`,appleDevice:`Apple Intelligence only works on a Mac with Apple silicon.`,appleBusy:`Apple Intelligence isn’t taking more requests right now. Try again in a moment.`,appleTooLong:`The text is too long for Apple Intelligence on this Mac (4,096 tokens for question and answer). Choose another model for this class under Settings → Models.`,appleRefused:`Apple Intelligence turned the request down: Apple’s content rules don’t allow it.`,appleLanguage:`Apple Intelligence doesn’t understand the language of this request.`,appleFormat:`Apple Intelligence can’t answer in this format: {detail}`,appleFailed:`Apple Intelligence: {detail}`,appleNoFfmpeg:`Apple Intelligence can’t read {type}, and without ffmpeg the recording can’t be converted. Install ffmpeg or record as MP4 in the browser.`,appleNotConverted:`Apple Intelligence couldn’t convert the recording: {detail}`,connectorAlreadyExistsSpace:`The connector “{id}” already exists in this space.`,connectorNotExist:`This connector doesn’t exist.`,fieldMissing:`“{label}” is missing.`,mailServerNotExist:`The mail server{host} doesn’t exist. Enter the IMAP server. For Gmail and Google Workspace, it’s imap.gmail.com.`,mailServerNotResponding:`The mail server{host} isn’t responding. Check the IMAP server and port.`,connectingNotWork:`Connecting didn’t work{host}: {detail}`,connectEngentyAccountFirst:`Connect your engenty account first (Settings → Account). Then you can connect Google here.`,engentyAccountNotReached:`Your engenty account can’t be reached right now. Try again later.`,googleNoLongerAccepts:`Google no longer accepts this connection. Connect the account again.`,googleNotConnectedThrough:`Google can’t be connected through your engenty account right now.`,stepNeedsToolPlugin:`This step needs the tool “{id}”. The plugin “{plugin}” isn’t installed here.`,clientNotSignedIn:`{name} isn’t signed in on this computer. Sign in under Settings → Models.`,clientNotInstalled:`{name} isn’t installed on this computer. Install it under Settings → Models.`,clientNoCredit:`The account {name} is signed in with has no credit or quota left.`,anthropicAccountClaudeCode:`The Anthropic account Claude Code is signed in with has no credit. Sign Claude Code in with your subscription under Settings → Models.`,chatgptAccountCodexSigned:`The ChatGPT account Codex is signed in with has used up its quota. Try again later or choose another client.`,builtTerminalNotAvailable:`The built-in terminal isn’t available on this computer. Run the command in your own terminal.`,terminalNoLongerExists:`This terminal no longer exists.`,imageTypeNotReadable:`Images of type {mime} can’t be read (PNG, JPEG and WebP work).`,fileNotReadable:`“{name}” ({mime}) can’t be read.`,creditsNotSignedIn:`This is set to run on credits, but you’re not signed in to an account.`,accountNoLongerSigned:`The account is no longer signed in. Sign in again under Settings → Account.`,modelNotUsedYet:`The model “{ref}” can’t be used yet. Add an API key under Settings → Models, or sign in to an account.`,noModelForImages:`No model is set up for images.`,noModelForVideos:`No model is set up for videos.`,noModelForSpeech:`No model is set up for speech.`,noOpenaiApiKey:`No OpenAI API key is set for voice conversations (Settings → Models).`,modelNotAvailableAccount:`This model isn’t available with your account.`,accountNoModelSet:`Your account has no model set up for this.`,claudeCodeMakesFilms:`Claude Code makes films on this computer, using your subscription. Set it up as an AI subscription under Settings → Models.`,macNeedsFfmpegTranscribe:`This Mac needs ffmpeg to transcribe recordings from Chrome or Firefox (WebM, Ogg). Safari and the app don’t. Install ffmpeg, e.g. with “brew install ffmpeg”.`,fieldRequired:`Required`,chooseAtLeast:`Choose at least {min}`,chooseAtMost:`At most {max} – remove some`,enterNumber:`Enter a number`,invalidChoice:`Invalid choice`,timeNotOffered:`This time isn’t offered`,notValidEmailAddress:`Not a valid email address`,notValidUrl:`Not a valid URL`,wizardRunOutCredits:`This wizard has run out of credits for now. Try again later.`,providerCreditLow:`Your credit with the model provider isn’t enough for this (videos need a minimum balance there). Top up there and try again.`,aiServiceBusyRight:`The AI service is busy right now. Try again in a moment.`,stepTookTooLong:`The step took too long. Try again.`,aiServiceNotReached:`The AI service can’t be reached right now. Try again later.`,notAvailableNow:`That isn’t available here right now.`,fileNotFound:`File not found`,connectFirst:`Connect first`,noEntriesStepWork:`There are no entries for this step to work on.`,stepNotReturnResult:`The step didn’t return a result.`,documentNotCreated:`The document couldn’t be created.`,stepMissingSourcesImages:`This step is missing its sources (images or scenes).`,noTextReadAloud:`There is no text to read aloud.`,wizardStillErrors:`The wizard still has errors.`,noLanguageModelSet:`No language model is set up here.`,creditsUsedUp:`Your credits are used up.`,chooseFile:`Choose a file.`,pageNotReached:`The page can’t be reached.`,unknownEntry:`Unknown entry.`,chooseWizardFileMb:`Choose a wizard file ({PACKAGE_EXTENSION}) of 30 MB or less.`,recordingMbMost:`The recording can be 10 MB at most.`,onlyFinishedResultsShared:`Only finished results can be shared.`,gradientFailed:`Couldn’t make a gradient from that. Try describing it differently.`,onlyOneSpaceAllowed:`Only one space is allowed here.`,mostSpaces:{one:`You can have at most {count} space here.`,other:`You can have at most {count} spaces here.`},twoEntriesSameKey:`Two entries have the same key.`,notDeleteLastSpace:`You can’t delete the last space.`,notFound:`This doesn’t exist or was deleted.`,categoryNeedsName:`A category needs a name.`,unknownCategoryType:`Unknown type “{type}”.`,spaceMostCategories:{one:`A space can have at most {count} category.`,other:`A space can have at most {count} categories.`},categoryAlreadyExists:`The category “{name}” already exists.`,onlyChoiceCategoriesValues:`Only choice categories have values.`,onlyValuesOneCategory:`Only values of one category can be merged.`,templateNeedsNewerVersion:`This template needs a newer version of engenty wizards. Update engenty wizards first.`,chatNotExist:`This chat doesn’t exist.`,unknownRunner:`There’s no runner “{unknown}” here.`,leastOneRunnerStay:`At least one runner has to stay on.`,linkOpenRunnerTurned:`The link has to open a runner that’s turned on.`,jobNotExistAlready:`This job doesn’t exist or has already finished.`,accountAlreadySpace:`This account already has a space here.`,accountAlreadySpaces:{one:`This account already has {count} space here.`,other:`This account already has {count} spaces here.`},roomMostPublishedWizards:{one:`There’s room for at most {count} published wizard here.`,other:`There’s room for at most {count} published wizards here.`},spaceIdAlreadyExists:`A space with this ID already exists here and didn’t come from your computer.`,wizardIdAlreadyBelongs:`A wizard with this ID already belongs to another space here.`,idAlreadyUse:`This ID is already in use here.`,wizardNotSpace:`This wizard isn’t in the space.`,invalidColumns:`Invalid columns.`,spaceMostTables:{one:`A space can have at most {count} table.`,other:`A space can have at most {count} tables.`},tableBelongsOneWizard:`This table belongs to one of the wizard’s lists. Its columns come from the wizard.`,entryAlreadyExists:`This entry already exists.`,tableMostRows:{one:`A table can have at most {count} row.`,other:`A table can have at most {count} rows.`},spaceMostPages:{one:`A space can have at most {count} page.`,other:`A space can have at most {count} pages.`},pageNotSubpages:`This page can’t have subpages.`,pageNotOwnSubpage:`A page can’t be its own subpage.`,pageNeedsTitle:`A page needs a title.`,unknownSpace:`There’s no space “{space}”.`,noParentPage:`There’s no page with the key “{parent}” to put this page under.`,onlyTeamAdmins:`Only team admins can do that. As a member, you can edit the wizards that already exist.`,spaceEditedLocally:`You edit this space in engenty wizards on your computer, not here.`,wizardsRunOncePublished:`Wizards run here once you publish them in engenty wizards on your computer. You build and edit them there.`,logoImagePngSvg:`A logo is an image (PNG, SVG, JPEG, WebP).`,patternImageSvgPng:`A pattern is an image (SVG, PNG, JPEG, WebP).`,filesGoHere:`Images, videos, audio, PDFs, fonts, Lottie and 3D models go here. Texts to look things up in go under knowledge.`,addressNotReached:`The address can’t be reached.`,addressResponded:`The address responded with {status}.`,addressLeadsWebPage:`The address leads to a web page, not an image.`,addressFileTooLarge:`The file is too large.`,onlyDocumentsIndex:`Only documents are in the index.`,emptyTooLargeDocument:`“{name}” is empty or too large for a document.`,spaceMostDocuments:{one:`A space can have at most {count} document.`,other:`A space can have at most {count} documents.`},accountSignedOut:`The account is signed out. Sign in again.`,cloudNotReachedRight:`The cloud can’t be reached right now.`,publishWizardFirst:`Publish the wizard first.`,wizardJsonUnreadable:`This isn’t a wizard file: its wizard.json can’t be read.`,wizardFileComesNewer:`This wizard file comes from a newer version, or it’s damaged. Update engenty wizards or export the wizard again.`,fileOver5Mb:`{name} is larger than 5 MB.`,wizardFileTooLarge:`The wizard file is too large: a workspace holds at most 200 files and 25 MB.`,wizardFileNotOpened:`The wizard file can’t be opened. Export the wizard again and try once more.`,wizardJsonMissing:`This isn’t a wizard file: wizard.json is missing.`,notValidFilePath:`“{name}” isn’t a valid file path.`,workspaceWizardFileLarger:`The workspace in the wizard file is larger than 25 MB.`,unknownTemplate:`There’s no template “{starterId}”.`,wizardChangedMeantime:`The wizard was changed in the meantime.`,valueNotExist:`This value doesn’t exist.`,nothingFiledUnderValue:`Nothing is filed under this value yet.`,filmNotRenderedNeeds:`The film couldn’t be rendered. It needs ffmpeg and a timeline in the widget.`,signInRefused:`The sign-in was refused{host}. Are the address and (app) password right? Gmail and Google Workspace need an app password and IMAP turned on.{answer}`,serverSaid:` The server said: {answer}`,viaAccountFailed:`Connecting through your engenty account didn’t work ({code}).`,pluginInvalidInput:`“{id}” got invalid input: {path} – {problem}`,filmClientStopped:`{name} stopped working on the film: {detail}. The work is saved. A new try carries on from there.`,filmWorkSaved:`{problem} The work is saved. A new try carries on from there.`,filmRenderFailed:`The film couldn’t be rendered: {detail}`,commandNotStarted:`The command couldn’t start: {detail}`,providerKeyMissing:`{provider} is chosen for {makes}, but no API key is set.`,noModelFor:`No model is set up for {makes}.`,noApiKeyFor:`No API key is set for {provider}.`,freeTier:`Your AI Gateway key is on Vercel’s free tier, which doesn’t include {model}. Top up at Vercel ({url}) or choose another model under Settings → Models.`,thisModel:`this model`,quoted:`“{text}”`,viewErrors:`The view has errors: {detail}`,blockedSteps:`{steps}: {problem}`,joined:`{first} {second}`,stepFailed:`This step failed: {detail}`,answersMissing:`Answers are missing or don’t fit: {answers}`,fieldError:`{field} – {message}`,templateNeedsPlugins:{one:`This template needs the plugin {plugins}: included with Pro on engenty.ai.`,other:`This template needs the plugins {plugins}: included with Pro on engenty.ai.`},pageMostChars:{one:`A page can have at most {count} character.`,other:`A page can have at most {count} characters.`},chooseFileUpTo:`Choose a file of {mb} MB or less.`,roomMostFiles:{one:`There’s room for at most {count} file here.`,other:`There’s room for at most {count} files here.`},makesText:`text`,makesImages:`images`,makesVideos:`videos`,makesSpeech:`speech`,makesVoiceNotes:`voice notes`},Dd={en:Ed,de:{entry:`Eintrag {n} von {total}`,deciding:`Entscheidet, wie es weitergeht …`,choosingFields:`Wählt die passenden Fragen …`,batchDone:`{done} von {total} fertig`,editing:`Bearbeitet {n} von {total}`,filming:`Dreht {n} von {total}`,clipsRendering:{one:`{count} Clip wird gerendert – das dauert einige Minuten.`,other:`{count} Clips werden gerendert – das dauert einige Minuten.`},videoRendering:`Das Video wird gerendert – das dauert meist 1–3 Minuten.`,photo:`Sieht sich Foto {n} von {total} an`,found:`{label}: {name}`,listen:`Hört „{label}“ an …`,listenFailed:`„{label}“ konnte nicht verschriftlicht werden.`,filmCutting:`Der Film wird geschnitten – das dauert etwa eine Minute.`,filmProgress:`{pct} % geschnitten`,filmError:`Der Film meldet: {detail}`,widgetError:`Das Widget meldet einen Fehler: {detail}`,mcpConnected:`Verbunden mit {names}`,mcpUnreachable:`MCP-Server nicht erreichbar: {detail}`,reads:`Liest {name}`,readsMany:{one:`Liest {count} Dokument`,other:`Liest {count} Dokumente`},opens:`Öffnet {name}`,clicks:`Klickt im Browser`,clicksOn:`Klickt auf „{name}“`,types:`Tippt im Browser`,typesText:`Tippt „{text}“`,selects:`Wählt „{option}“`,scrolls:`Scrollt`,presses:`Drückt {key}`,goesBack:`Geht eine Seite zurück`,waitsForPage:`Wartet auf die Seite`,fastLoop:`Erledigt im Browser: {goal}`,personDrives:`Du steuerst den Browser – der Wizard wartet`,agentDrives:`Der Wizard macht im Browser weiter`,looksAtPage:`Sieht sich die Seite an`,waitsForSignIn:`Wartet auf deine Anmeldung bei {name}`,downloads:`Lädt {name} herunter`,runs:`Führt aus: {command}`,python:`Führt Python aus`,drawing:`Zeichnet ein Bild`,writesPage:`Schreibt die Seite „{title}“`,searchesDocuments:`Sucht in den Dokumenten: {query}`,searchesKnowledge:`Sucht in Wissen: {query} – {relevant} von {candidates} passen`,listsKnowledge:`Listet Wissen`,searchesMail:`Durchsucht {label}`,savesReceipts:{one:`Speichert {count} Beleg aus {label}`,other:`Speichert {count} Belege aus {label}`},remembers:`Merkt sich {title}`,files:{one:`Legt {count} Datei ab`,other:`Legt {count} Dateien ab`},filmSetup:`Richtet den Arbeitsordner für den Film ein`,filmClient:`{client} arbeitet am Film – das dauert meist 10–40 Minuten.`,filmTask:`Am Film: {task}`,filmLooks:`Sieht sich Bilder des Films an`,filmFix:`Der Film ließ sich nicht rendern – Claude Code bessert nach`,filmResume:`Macht dort weiter, wo der Film stehen geblieben ist`,wizardUnavailable:`Dieser Wizard ist gerade nicht verfügbar.`,translationFailed:`Dieser Wizard lässt sich gerade nicht übersetzen. Du siehst ihn so, wie er geschrieben wurde.`,translationOff:`Diesen Wizard gibt es nur so, wie er geschrieben wurde.`,translationPlaceholder:`Die Übersetzung von „{text}“ braucht jeden Platzhalter in geschweiften Klammern, den das Original hat.`,wizardLimit:`Für heute ist das Limit dieses Wizards erreicht. Versuch es morgen wieder.`,confirmHuman:`Bestätige kurz, dass du ein Mensch bist.`,tooManyRuns:`Du hast gerade viele Läufe gestartet. Versuch es in einer Stunde wieder.`,runOver:`Der Lauf ist beendet.`,runBusy:`Der Wizard arbeitet gerade.`,pageOutdated:`Diese Seite ist nicht mehr aktuell.`,noStepBefore:`Kein vorheriger Schritt.`,checkFields:`Prüf die markierten Felder.`,talkOff:`Live-Gespräche sind für diesen Wizard nicht eingeschaltet.`,talkKeyRefused:`Das Gespräch ließ sich nicht starten: Der OpenAI-API-Key wurde abgelehnt.`,talkFailed:`Das Gespräch ließ sich nicht starten ({status}).`,talkNoSecret:`Das Gespräch ließ sich nicht starten: Es kam kein Zugang zurück.`,tryLater:`Versuch es später noch einmal.`,recordingTooLarge:`Die Aufnahme darf höchstens 10 MB groß sein.`,fileTooLarge:`Wähl eine Datei bis {mb} MB.`,askClosed:`Diese Frage ist nicht mehr offen.`,noBrowser:`Der Wizard hat gerade keinen Browser offen.`,notWaiting:`Der Wizard wartet gerade nicht auf dich.`,pageActFailed:`Das hat auf der Seite nicht geklappt.`,linkGone:`Dieser Link ist abgelaufen oder wurde zurückgezogen.`,connected:`Verbunden. Du kannst dieses Fenster schließen.`,connectFailed:`Verbinden hat nicht geklappt. Versuch es noch einmal.`,connectCancelled:`Verbinden wurde abgebrochen.`,appleOff:`Apple Intelligence ist auf diesem Mac ausgeschaltet. Schalte es unter Systemeinstellungen → Apple Intelligence & Siri ein.`,appleLoading:`Apple lädt das Modell für Apple Intelligence noch auf diesen Mac. Versuch es gleich noch einmal.`,appleMissing:`Der Helfer für Apple Intelligence (wizards-apple) fehlt in dieser Installation.`,appleOs:`Apple Intelligence braucht macOS 26 oder neuer.`,appleDevice:`Apple Intelligence gibt es nur auf einem Mac mit Apple Silicon.`,appleBusy:`Apple Intelligence nimmt gerade keine weiteren Anfragen an. Versuch es gleich noch einmal.`,appleTooLong:`Der Text ist zu lang für Apple Intelligence auf diesem Mac (4.096 Tokens für Frage und Antwort). Wähle unter Einstellungen → Modelle ein anderes Modell für diese Klasse.`,appleRefused:`Apple Intelligence hat die Anfrage abgelehnt: Apples Inhaltsregeln lassen sie nicht zu.`,appleLanguage:`Apple Intelligence versteht die Sprache dieser Anfrage nicht.`,appleFormat:`Apple Intelligence kann dieses Antwortformat nicht liefern: {detail}`,appleFailed:`Apple Intelligence: {detail}`,appleNoFfmpeg:`Apple Intelligence liest {type} nicht, und ohne ffmpeg lässt sich die Aufnahme nicht umwandeln. Installiere ffmpeg oder nimm im Browser als MP4 auf.`,appleNotConverted:`Apple Intelligence konnte die Aufnahme nicht umwandeln: {detail}`,connectorAlreadyExistsSpace:`Den Connector „{id}“ gibt es in diesem Space schon.`,connectorNotExist:`Diesen Connector gibt es nicht.`,fieldMissing:`„{label}“ fehlt.`,mailServerNotExist:`Den Mail-Server{host} gibt es nicht. Trag den IMAP-Server ein, bei Gmail und Google Workspace imap.gmail.com.`,mailServerNotResponding:`Der Mail-Server{host} antwortet nicht. Prüf IMAP-Server und Port.`,connectingNotWork:`Verbinden hat nicht geklappt{host}: {detail}`,connectEngentyAccountFirst:`Verbinde zuerst dein engenty-Konto (Einstellungen → Konto). Dann kannst du Google hier verbinden.`,engentyAccountNotReached:`Dein engenty-Konto ist gerade nicht erreichbar. Versuch es später noch einmal.`,googleNoLongerAccepts:`Google nimmt diese Verbindung nicht mehr an. Verbinde das Konto neu.`,googleNotConnectedThrough:`Google lässt sich über dein engenty-Konto gerade nicht verbinden.`,stepNeedsToolPlugin:`Dieser Schritt braucht das Werkzeug „{id}“. Das Plugin „{plugin}“ ist hier nicht installiert.`,clientNotSignedIn:`{name} ist auf diesem Computer nicht angemeldet. Melde dich unter Einstellungen → Modelle an.`,clientNotInstalled:`{name} ist auf diesem Computer nicht installiert. Installiere es unter Einstellungen → Modelle.`,clientNoCredit:`Das Konto, mit dem {name} angemeldet ist, hat kein Guthaben oder Kontingent mehr.`,anthropicAccountClaudeCode:`Das Anthropic-Konto, mit dem Claude Code angemeldet ist, hat kein Guthaben. Melde Claude Code unter Einstellungen → Modelle mit deinem Abo an.`,chatgptAccountCodexSigned:`Das Kontingent des ChatGPT-Kontos, mit dem Codex angemeldet ist, ist aufgebraucht. Versuch es später noch einmal oder wähle einen anderen Client.`,builtTerminalNotAvailable:`Das eingebaute Terminal ist auf diesem Computer nicht verfügbar. Führe den Befehl in deinem eigenen Terminal aus.`,terminalNoLongerExists:`Dieses Terminal gibt es nicht mehr.`,imageTypeNotReadable:`Bilder vom Typ {mime} lassen sich nicht lesen (PNG, JPEG und WebP gehen).`,fileNotReadable:`„{name}“ ({mime}) lässt sich nicht lesen.`,creditsNotSignedIn:`Dafür sind Credits gewählt, aber du bist mit keinem Konto angemeldet.`,accountNoLongerSigned:`Das Konto ist nicht mehr angemeldet. Melde dich unter Einstellungen → Konto neu an.`,modelNotUsedYet:`Das Modell „{ref}“ lässt sich noch nicht nutzen. Hinterleg unter Einstellungen → Modelle einen API-Key oder melde dich mit einem Konto an.`,noModelForImages:`Für Bilder ist kein Modell eingerichtet.`,noModelForVideos:`Für Videos ist kein Modell eingerichtet.`,noModelForSpeech:`Für Sprachausgabe ist kein Modell eingerichtet.`,noOpenaiApiKey:`Für Sprachgespräche ist kein OpenAI-API-Key hinterlegt (Einstellungen → Modelle).`,modelNotAvailableAccount:`Dieses Modell gibt es mit deinem Konto nicht.`,accountNoModelSet:`Dafür ist bei deinem Konto kein Modell eingerichtet.`,claudeCodeMakesFilms:`Filme macht Claude Code auf diesem Computer mit deinem Abo. Richte es unter Einstellungen → Modelle als KI-Abo ein.`,macNeedsFfmpegTranscribe:`Aufnahmen aus Chrome oder Firefox (WebM, Ogg) schreibt dieser Mac erst mit ffmpeg auf. Safari und die App brauchen es nicht. Installiere ffmpeg, z. B. mit „brew install ffmpeg“.`,fieldRequired:`Pflichtfeld`,chooseAtLeast:`Wähl mindestens {min} aus`,chooseAtMost:`Höchstens {max} – entferne einige`,enterNumber:`Gib eine Zahl ein`,invalidChoice:`Ungültige Auswahl`,timeNotOffered:`Dieser Termin wird nicht angeboten`,notValidEmailAddress:`Keine gültige E-Mail-Adresse`,notValidUrl:`Keine gültige URL`,wizardRunOutCredits:`Dieser Wizard hat gerade kein Guthaben mehr. Versuch es später noch einmal.`,providerCreditLow:`Das Guthaben beim Modellanbieter reicht dafür nicht aus (Videos brauchen dort ein Mindestguthaben). Lade dort auf und versuch es noch einmal.`,aiServiceBusyRight:`Der KI-Dienst ist gerade ausgelastet. Versuch es gleich noch einmal.`,stepTookTooLong:`Der Schritt hat zu lange gedauert. Versuch es noch einmal.`,aiServiceNotReached:`Der KI-Dienst ist gerade nicht erreichbar. Versuch es später noch einmal.`,notAvailableNow:`Das ist hier gerade nicht verfügbar.`,fileNotFound:`Datei nicht gefunden`,connectFirst:`Verbinde zuerst`,noEntriesStepWork:`Es gibt keine Einträge, für die dieser Schritt arbeiten könnte.`,stepNotReturnResult:`Der Schritt hat kein Ergebnis geliefert.`,documentNotCreated:`Das Dokument konnte nicht erstellt werden.`,stepMissingSourcesImages:`Für diesen Schritt fehlen die Vorlagen (Bilder oder Szenen).`,noTextReadAloud:`Es gibt keinen Text zum Vorlesen.`,wizardStillErrors:`Der Wizard hat noch Fehler.`,noLanguageModelSet:`Hier ist kein Sprachmodell eingerichtet.`,creditsUsedUp:`Dein Guthaben ist aufgebraucht.`,chooseFile:`Wähl eine Datei.`,pageNotReached:`Die Seite ist nicht erreichbar.`,unknownEntry:`Unbekannter Eintrag.`,chooseWizardFileMb:`Wähl eine Wizard-Datei ({PACKAGE_EXTENSION}) bis 30 MB.`,recordingMbMost:`Die Aufnahme darf höchstens 10 MB groß sein.`,onlyFinishedResultsShared:`Nur fertige Ergebnisse lassen sich teilen.`,gradientFailed:`Daraus ließ sich kein Verlauf machen. Beschreib ihn anders.`,onlyOneSpaceAllowed:`Hier ist nur ein Space möglich.`,mostSpaces:{one:`Hier ist höchstens {count} Space möglich.`,other:`Hier sind höchstens {count} Spaces möglich.`},twoEntriesSameKey:`Zwei Einträge haben denselben Schlüssel.`,notDeleteLastSpace:`Der letzte Space lässt sich nicht löschen.`,notFound:`Das gibt es nicht oder nicht mehr.`,categoryNeedsName:`Eine Kategorie braucht einen Namen.`,unknownCategoryType:`Unbekannter Typ „{type}“.`,spaceMostCategories:{one:`Ein Space hat höchstens {count} Kategorie.`,other:`Ein Space hat höchstens {count} Kategorien.`},categoryAlreadyExists:`Die Kategorie „{name}“ gibt es schon.`,onlyChoiceCategoriesValues:`Werte gibt es nur bei Kategorien vom Typ Auswahl.`,onlyValuesOneCategory:`Nur Werte einer Kategorie lassen sich zusammenführen.`,templateNeedsNewerVersion:`Diese Vorlage braucht eine neuere Version von engenty wizards. Aktualisiere zuerst engenty wizards.`,chatNotExist:`Diesen Chat gibt es nicht.`,unknownRunner:`Einen Runner „{unknown}“ gibt es hier nicht.`,leastOneRunnerStay:`Mindestens ein Runner muss eingeschaltet bleiben.`,linkOpenRunnerTurned:`Der Link muss einen eingeschalteten Runner öffnen.`,jobNotExistAlready:`Diesen Vorgang gibt es nicht, oder er ist schon beendet.`,accountAlreadySpace:`Dieses Konto hat hier schon einen Space.`,accountAlreadySpaces:{one:`Dieses Konto hat hier schon {count} Space.`,other:`Dieses Konto hat hier schon {count} Spaces.`},roomMostPublishedWizards:{one:`Hier hat höchstens {count} veröffentlichter Wizard Platz.`,other:`Hier haben höchstens {count} veröffentlichte Wizards Platz.`},spaceIdAlreadyExists:`Einen Space mit dieser Kennung gibt es hier schon, und er kommt nicht von deinem Computer.`,wizardIdAlreadyBelongs:`Ein Wizard mit dieser Kennung gehört hier schon zu einem anderen Space.`,idAlreadyUse:`Diese Kennung ist hier schon vergeben.`,wizardNotSpace:`Diesen Wizard gibt es im Space nicht.`,invalidColumns:`Ungültige Spalten.`,spaceMostTables:{one:`Ein Space hat höchstens {count} Tabelle.`,other:`Ein Space hat höchstens {count} Tabellen.`},tableBelongsOneWizard:`Diese Tabelle gehört zu einer Liste des Wizards. Die Spalten kommen aus dem Wizard.`,entryAlreadyExists:`Diesen Eintrag gibt es schon.`,tableMostRows:{one:`Eine Tabelle hat höchstens {count} Zeile.`,other:`Eine Tabelle hat höchstens {count} Zeilen.`},spaceMostPages:{one:`Ein Space hat höchstens {count} Seite.`,other:`Ein Space hat höchstens {count} Seiten.`},pageNotSubpages:`Diese Seite kann keine Unterseiten haben.`,pageNotOwnSubpage:`Eine Seite kann nicht ihre eigene Unterseite sein.`,pageNeedsTitle:`Eine Seite braucht einen Titel.`,unknownSpace:`Den Space „{space}“ gibt es nicht.`,noParentPage:`Es gibt keine Seite mit dem Schlüssel „{parent}“, unter die diese Seite könnte.`,onlyTeamAdmins:`Das dürfen nur Admins des Teams. Als Mitglied bearbeitest du die Wizards, die es schon gibt.`,spaceEditedLocally:`Diesen Space bearbeitest du in engenty wizards auf deinem Computer, nicht hier.`,wizardsRunOncePublished:`Hier laufen die Wizards, die du in engenty wizards auf deinem Computer veröffentlichst. Gebaut und bearbeitet wird dort.`,logoImagePngSvg:`Ein Logo ist ein Bild (PNG, SVG, JPEG, WebP).`,patternImageSvgPng:`Ein Muster ist ein Bild (SVG, PNG, JPEG, WebP).`,filesGoHere:`Hierher gehören Bilder, Videos, Audio, PDFs, Schriften, Lottie und 3D-Modelle. Texte zum Nachschlagen gehören ins Wissen.`,addressNotReached:`Die Adresse ist nicht erreichbar.`,addressResponded:`Die Adresse antwortete mit {status}.`,addressLeadsWebPage:`Unter der Adresse steht eine Webseite, kein Bild.`,addressFileTooLarge:`Die Datei ist zu groß.`,onlyDocumentsIndex:`Nur Dokumente stehen im Index.`,emptyTooLargeDocument:`„{name}“ ist leer oder zu groß für ein Dokument.`,spaceMostDocuments:{one:`Ein Space hat höchstens {count} Dokument.`,other:`Ein Space hat höchstens {count} Dokumente.`},accountSignedOut:`Das Konto ist abgemeldet. Melde dich neu an.`,cloudNotReachedRight:`Die Cloud ist gerade nicht erreichbar.`,publishWizardFirst:`Veröffentliche den Wizard zuerst.`,wizardJsonUnreadable:`Das ist keine Wizard-Datei: Die wizard.json darin lässt sich nicht lesen.`,wizardFileComesNewer:`Diese Wizard-Datei stammt aus einer neueren Version oder ist beschädigt. Aktualisiere engenty wizards oder exportiere den Wizard neu.`,fileOver5Mb:`{name} ist größer als 5 MB.`,wizardFileTooLarge:`Die Wizard-Datei ist zu groß: Ein Arbeitsbereich fasst höchstens 200 Dateien und 25 MB.`,wizardFileNotOpened:`Die Wizard-Datei lässt sich nicht öffnen. Exportiere den Wizard neu und versuche es noch einmal.`,wizardJsonMissing:`Das ist keine Wizard-Datei: Die wizard.json fehlt.`,notValidFilePath:`„{name}“ ist kein gültiger Dateipfad.`,workspaceWizardFileLarger:`Der Arbeitsbereich in der Wizard-Datei ist größer als 25 MB.`,unknownTemplate:`Die Vorlage „{starterId}“ gibt es nicht.`,wizardChangedMeantime:`Der Wizard wurde inzwischen geändert.`,valueNotExist:`Diesen Wert gibt es nicht.`,nothingFiledUnderValue:`Unter diesem Wert steht noch nichts.`,filmNotRenderedNeeds:`Der Film ließ sich nicht rendern. Dafür braucht es ffmpeg und eine Zeitleiste im Widget.`,signInRefused:`Anmeldung abgelehnt{host}. Stimmen Adresse und (App-)Passwort? Gmail und Google Workspace brauchen ein App-Passwort und eingeschaltetes IMAP.{answer}`,serverSaid:` Antwort des Servers: {answer}`,viaAccountFailed:`Verbinden über dein engenty-Konto hat nicht geklappt ({code}).`,pluginInvalidInput:`„{id}“ bekam ungültige Angaben: {path} – {problem}`,filmClientStopped:`{name} hat beim Film aufgehört: {detail}. Die Arbeit ist gespeichert. Ein neuer Versuch macht dort weiter.`,filmWorkSaved:`{problem} Die Arbeit ist gespeichert. Ein neuer Versuch macht dort weiter.`,filmRenderFailed:`Der Film ließ sich nicht rendern: {detail}`,commandNotStarted:`Der Befehl konnte nicht starten: {detail}`,providerKeyMissing:`Für {makes} ist {provider} gewählt, aber kein API-Key hinterlegt.`,noModelFor:`Für {makes} ist kein Modell eingerichtet.`,noApiKeyFor:`Für {provider} ist kein API-Key hinterlegt.`,freeTier:`Dein AI-Gateway-Key nutzt bei Vercel die kostenlose Stufe, und die schließt {model} aus. Lade bei Vercel Guthaben auf ({url}) oder wähle unter Einstellungen → Modelle ein anderes Modell.`,thisModel:`dieses Modell`,quoted:`„{text}“`,viewErrors:`Die Ansicht hat Fehler: {detail}`,stepFailed:`Dieser Schritt hat nicht geklappt: {detail}`,answersMissing:`Antworten fehlen oder passen nicht: {answers}`,templateNeedsPlugins:{one:`Diese Vorlage braucht das Plugin {plugins}: bei Pro auf engenty.ai dabei.`,other:`Diese Vorlage braucht die Plugins {plugins}: bei Pro auf engenty.ai dabei.`},pageMostChars:`Eine Seite hat höchstens {count} Zeichen.`,chooseFileUpTo:`Wähl eine Datei bis {mb} MB.`,roomMostFiles:{one:`Hier hat höchstens {count} Datei Platz.`,other:`Hier haben höchstens {count} Dateien Platz.`},makesText:`Text`,makesImages:`Bilder`,makesVideos:`Videos`,makesSpeech:`Sprachausgabe`,makesVoiceNotes:`Sprachnotizen`}};function Od(e,t,n){return Array.isArray(e)?e.map(e=>Od(e,t,n)):typeof e==`object`&&e&&`code`in e?kd(e,t,n):e}function kd(e,t,n){if(!(e.code in Ed))return``;let r={};for(let[i,a]of Object.entries(e.params??{}))r[i]=a===void 0?void 0:Od(a,t,n);let i=n?.[e.code];return i===void 0?wd(Dd,e.code,hu(t)?t:`en`,r):Td(i,t,r)}var Ad={en:{"result.translate":`Translate`,"translation.working":`Translating…`,"translation.machine":`Machine-translated`,"translation.showOriginal":`Show original`,"translation.showTranslated":`Show translation`,"translation.failed":`This wizard can’t be translated right now.`,"share.copied":`Copied`,"surface.done":`{done} of {total}`,"surface.allDone":`All done`,"surface.close":`Close`,"data.view":`View`,"data.edit":`Edit`,"data.json":`JSON`,"data.modes":`Show the data as`,"data.add":`Add {what}`,"data.remove":`Remove`,"data.missing":`{id} is missing`,"data.yes":`Yes`,"data.no":`No`,"data.menu":`More`,"data.open":`View and edit the data`,"data.close":`Close the data`,"data.save":`Save`,"data.saved":`Saved`,"data.schema":`JSON Schema`,"data.copy":`Copy`,"data.download":`Download`,"run.closed":`Not available here right now. It needs {list}.`,"slot.later":`Show later times`,"slot.none":`No times are free right now.`,"cards.open":`Details`,"cards.picked":`Chosen ✓`,"cards.pick":`Choose`,"run.cls.text":`text`,"run.cls.image":`images`,"run.cls.video":`video`,"run.cls.speech":`speech output`,"run.cls.audio":`voice notes`,"run.cls.account":`an engenty account`,"run.next":`Continue`,"run.back":`Back`,"run.accept":`Looks good`,"run.edit":`Edit`,"run.pickItem":`No. {n}`,"run.pickedItem":`No. {n} again`,"run.regeneratePicked":`Only no. {n} will be redone.`,"run.regenerateAll":`Applies to all. Tap a number to redo just that one.`,"check.progress":`{done} of {total} checked`,"check.onlyOpen":`Open only`,"check.noFile":`There’s no file for this row.`,"check.noPreview":`This file has no preview – open it with the link above.`,"check.reopen":`Open again`,"run.feedbackPlaceholder":`Something not right? Write what should be different…`,"run.feedbackTarget":`What should change?`,"run.feedbackPick":`Choose above what should change.`,"ai.generated":`AI-generated`,"ai.modified":`AI-modified`,"ai.publish":`Made with AI: whoever publishes this has to label it as AI-generated (EU AI Act, Art. 50). The file already carries the marking in its metadata.`,"run.regenerateGo":`Recreate`,"run.retry":`Try again`,"run.again":`Start over`,"run.copy":`Copy text`,"run.failed":`Something went wrong.`,"run.notFound":`This wizard doesn’t exist or was deleted.`,"run.working":`One moment…`,"run.elapsed":`{s} s`,"run.cancelled":`Cancelled.`,"run.addRow":`Add row`,"run.upload":`Choose a file or drop it here`,"run.uploading":`Uploading…`,"run.net":`Net`,"run.vat":`VAT {r}%`,"run.total":`Total`,"run.uploadMore":`Another file`,"run.camera":`Camera`,"camera.title":`Take a picture`,"camera.hint":`Hold it flat and well lit.`,"camera.taken":`{n} taken`,"camera.shoot":`Capture`,"camera.done":`Done`,"camera.denied":`The camera isn’t allowed for this page. Allow it in your browser’s site settings (the lock icon in the address bar) – or take the photo with your camera app.`,"connect.go":`Connect`,"connect.connected":`Connected through {name}`,"connect.disconnect":`Disconnect`,"connect.none":`This server has no provider for connecting accounts yet.`,"connect.openLink":`Click here to open the sign-in in a new tab`,"list.empty":`No entries yet.`,"list.delete":`Delete row`,"ask.typeInto":`Type into the page…`,"ask.hide":`hidden`,"ask.up":`Scroll up`,"ask.down":`Scroll down`,"ask.pictureHint":`This is the page the wizard has open, live. You can also click and type right in it.`,"ask.remember":`Remember this sign-in for next time`,"ask.private":`What you enter goes straight into the page. The AI never sees it. Remembered sign-ins are stored encrypted.`,"ask.skip":`Skip`,"ask.done":`I’m signed in`,"ask.signIn":`Sign in`,"ask.wants":`The wizard wants to run this in {service}:`,"ask.allowRest":`Allow for the rest of this run`,"ask.allow":`Allow`,"ask.deny":`Don’t allow`,"store.open":`What this wizard remembers`,"store.title":`Kept for you`,"store.explain":`This wizard keeps lists, files and connected accounts for your next run. Only you see them.`,"store.empty":`Nothing kept yet.`,"store.rows":{one:`{n} entry`,other:`{n} entries`},"store.signIns":`Remembered sign-ins in the browser`,"store.files":{one:`{n} file · {size}`,other:`{n} files · {size}`},"store.delete":`Delete everything`,"store.confirmDelete":`Yes, delete everything`,"common.close":`Close`,"run.uploadTouch":`Choose a file`,"run.maxFiles":{one:`At most {n} fits here – the rest were left out.`,other:`At most {n} fit here – the rest were left out.`},"run.filesMin":`{n} of at least {min}`,"run.filesOf":`{n} of at most {max}`,"run.moveFile":`Move no. {n}`,"run.moveFileHint":`Drag to change the order`,"run.removeFile":`Remove`,"run.awake":`The screen stays on while the wizard works.`,"run.openFull":`Open full size`,"run.yes":`Yes`,"run.no":`No`,"run.share":`Share`,"run.shareNow":`Share now`,"run.shareFile":`Share as a file or open in an app`,"run.print":`Print`,"camera.asking":`Your browser is about to ask for the camera. The picture stays in this wizard.`,"camera.native":`Open the camera app`,"camera.pick":`Choose a photo`,"camera.torch":`Light`,"camera.flip":`Switch camera`,"camera.photo":`Photo`,"camera.video":`Video`,"camera.record":`Start recording`,"camera.stop":`Stop recording`,"camera.recording":`Recording – tap to stop.`,"camera.clipHint":`A short clip, {s} seconds at most.`,"camera.hintMany":`Capture page after page, then “Done”.`,"scan.button":`Scan`,"scan.title":`Scan a code`,"scan.asking":`Your browser is about to ask for the camera – it only reads the code.`,"scan.hint":`Hold the QR code or barcode inside the frame.`,"scan.hintQr":`Hold the QR code inside the frame. This device doesn’t read barcodes here.`,"scan.miss":`No code was found in the photo. Try closer and sharper.`,"scan.fromPhoto":`Choose a photo of the code`,"scan.typeInstead":`Type it instead`,"location.use":`Use my location`,"location.locating":`Finding your location…`,"location.refining":`getting more accurate…`,"location.accuracy":`accurate to about {m} m`,"location.map":`Map`,"location.remove":`Remove location`,"location.why":`Your browser asks for your location. It’s only used for this wizard. You can also just type the address.`,"location.denied":`Location isn’t allowed for this page. Allow it in your browser’s site settings (the lock icon in the address bar) – or type the address below.`,"location.manual":`Type an address or place`,"location.label":`Address or description of the place`,"voice.start":`Record a voice note`,"voice.stop":`Stop`,"voice.recording":`Recording…`,"voice.left":`{s} s left`,"voice.again":`Record again`,"voice.remove":`Delete`,"voice.pick":`Choose an audio file`,"voice.why":`Your browser asks for the microphone. The recording is turned into text afterwards.`,"voice.denied":`The microphone isn’t allowed for this page. Allow it in your browser’s site settings – or record the note with your voice memo app and choose the file.`,"voice.noRecorder":`This browser can’t record here. Record the note with your voice memo app and choose the file.`,"sign.open":`Sign here`,"sign.hint":`Sign with your finger`,"sign.pad":`Signature pad`,"sign.clear":`Clear`,"sign.accept":`Use it`,"sign.again":`Sign again`,"sign.remove":`Remove signature`,"notify.ask":`Tell me when it’s done`,"notify.on":`We’ll let you know`,"notify.why":`With a sound, a buzz or a notification. Your browser asks once for permission.`,"notify.onHint":`You can switch apps – a notification brings you back.`,"notify.quiet":`With a sound and a buzz while this page is open.`,"notify.blocked":`Notifications are blocked for this page – you get a sound and a buzz while it’s open. You can allow them in your browser’s site settings.`,"notify.done":`Your result is ready.`,"notify.next":`The next step is ready – have a look.`,"notify.needsYou":`The wizard needs you for a moment.`,"common.offline":`No connection. Check your network and try again.`,"common.retry":`Try again`,"common.cancel":`Cancel`,"run.start":`Let’s go`,"run.unavailable":`This wizard isn’t available right now.`,"run.resume":`Continue your last run`,"output.preview":`Preview`,"package.newer":`This wizard file comes from a newer version, or it’s damaged. Update engenty wizards or export the wizard again.`,"package.badJson":`This isn’t a wizard file: its wizard.json can’t be read.`,"package.unreadable":`The wizard file can’t be opened. Export the wizard again and try once more.`,"package.noManifest":`This isn’t a wizard file: wizard.json is missing.`,"browser.driving":`You’re in control of the browser – click and type in the page. The wizard waits.`,"browser.handBack":`Hand back`,"browser.takeOver":`Take over`,"chat.above":`Answer above in the chat`,"chat.badEmail":`That doesn’t look like an email address.`,"chat.badNumber":`Enter a number.`,"chat.badUrl":`That isn’t a valid address.`,"chat.change":`Change`,"chat.checked":`Checked`,"chat.connected":`Connected`,"chat.dictate":`Dictate (⌘⇧M)`,"chat.dictateStop":`Stop dictating`,"chat.file":`1 file`,"chat.files":{one:`{n} file`,other:`{n} files`},"chat.listening":`Listening…`,"chat.micDenied":`The microphone isn’t allowed for this page. Allow it in your browser’s site settings.`,"chat.placeholder":`Your answer…`,"chat.readAloud":`Read aloud`,"chat.readAloudOff":`Stop reading aloud`,"chat.required":`I need an answer for this one.`,"chat.rows":{one:`{n} row`,other:`{n} rows`},"chat.send":`Send`,"chat.skip":`Skip`,"chat.skipped":`Skipped`,"chat.transcribing":`Writing it down…`,"chat.voice":`Voice note`,"install.add":`Add to home screen`,"install.app":`Open in the app`,"install.bookmark":`Bookmark this wizard`,"install.bookmark.mac":`Press ⌘ D to keep this wizard in your bookmarks.`,"install.bookmark.pc":`Press Ctrl + D to keep this wizard in your bookmarks.`,"install.ios":`Tap “Share” below, then “Add to Home Screen”.`,"run.madeWith":`Made with engenty wizards`,"run.orAs":`Or: {label}`,"talk.camera":`Switch the camera on`,"talk.cameraDenied":`The camera isn’t allowed for this page. Allow it in your browser’s site settings.`,"talk.cameraOff":`Switch the camera off`,"talk.connecting":`Connecting…`,"talk.failed":`The conversation couldn’t start. Check your connection and try again.`,"talk.hint":`Talk to the wizard – the screen follows along.`,"talk.joinHint":`Your browser asks for the microphone when you start, and for the camera only when you switch it on. The chat beside it follows along and handles what voice can’t.`,"talk.listening":`Listening`,"talk.live":`In conversation`,"talk.speaking":`Speaking`,"talk.start":`Start talking`,"talk.stop":`End the conversation`,"video.cameraOff":`Camera off`,"video.ended":`Call ended`,"video.flip":`Switch camera`,"video.hint":`Your browser asks for the microphone and camera when you join. The chat beside it follows along and handles what voice can’t.`,"video.join":`Join`,"video.leave":`Leave`,"video.mute":`Mute`,"video.rejoin":`Rejoin`,"video.unmute":`Unmute`,"video.you":`You`,"nav.language":`Language`},de:{"result.translate":`Übersetzen`,"translation.working":`Wird übersetzt …`,"translation.machine":`Maschinell übersetzt`,"translation.showOriginal":`Original zeigen`,"translation.showTranslated":`Übersetzung zeigen`,"translation.failed":`Dieser Wizard lässt sich gerade nicht übersetzen.`,"share.copied":`Kopiert`,"surface.done":`{done} von {total}`,"surface.allDone":`Alles erledigt`,"surface.close":`Schließen`,"data.view":`Ansicht`,"data.edit":`Bearbeiten`,"data.json":`JSON`,"data.modes":`Daten zeigen als`,"data.add":`{what} hinzufügen`,"data.remove":`Entfernen`,"data.missing":`{id} fehlt`,"data.yes":`Ja`,"data.no":`Nein`,"data.menu":`Mehr`,"data.open":`Daten ansehen und bearbeiten`,"data.close":`Daten schließen`,"data.save":`Speichern`,"data.saved":`Gespeichert`,"data.schema":`JSON Schema`,"data.copy":`Kopieren`,"data.download":`Herunterladen`,"run.closed":`Hier gerade nicht verfügbar, dafür fehlt: {list}`,"slot.later":`Spätere Termine zeigen`,"slot.none":`Gerade sind keine Termine frei.`,"cards.open":`Details`,"cards.picked":`Ausgewählt ✓`,"cards.pick":`Auswählen`,"run.cls.text":`Text`,"run.cls.image":`Bilder`,"run.cls.video":`Videos`,"run.cls.speech":`Sprachausgabe`,"run.cls.audio":`Sprachnotizen`,"run.cls.account":`ein engenty-Konto`,"run.next":`Weiter`,"run.back":`Zurück`,"run.accept":`Passt so`,"run.edit":`Bearbeiten`,"run.pickItem":`Nr. {n}`,"run.pickedItem":`Nr. {n} neu`,"run.regeneratePicked":`Nur Nr. {n} wird neu erstellt.`,"run.regenerateAll":`Alle werden neu erstellt. Tippe oben auf eine Nummer, um nur einzelne zu erneuern.`,"check.progress":`{done} von {total} geprüft`,"check.onlyOpen":`Nur offene`,"check.noFile":`Zu dieser Zeile gibt es keine Datei.`,"check.noPreview":`Für diese Datei gibt es keine Vorschau – öffne sie mit dem Link oben.`,"check.reopen":`Wieder öffnen`,"run.feedbackPlaceholder":`Passt etwas nicht? Schreib, was anders sein soll …`,"run.feedbackTarget":`Was soll sich ändern?`,"run.feedbackPick":`Wähle oben, was sich ändern soll.`,"ai.generated":`KI-generiert`,"ai.modified":`Mit KI verändert`,"ai.publish":`Mit KI erstellt: Wer das veröffentlicht, muss es als KI-generiert kennzeichnen (EU AI Act, Art. 50). Die Datei trägt die Kennzeichnung bereits in ihren Metadaten.`,"run.regenerateGo":`Neu erstellen`,"run.retry":`Erneut versuchen`,"run.again":`Nochmal`,"run.copy":`Text kopieren`,"run.failed":`Da hat etwas nicht geklappt.`,"run.notFound":`Diesen Wizard gibt es nicht, oder er wurde gelöscht.`,"run.working":`Einen Moment …`,"run.elapsed":`{s} s`,"run.cancelled":`Abgebrochen.`,"run.addRow":`Zeile hinzufügen`,"run.upload":`Datei wählen oder hierher ziehen`,"run.uploading":`Lädt hoch …`,"run.net":`Netto`,"run.vat":`USt. {r} %`,"run.total":`Gesamt`,"run.uploadMore":`Weitere Datei`,"run.camera":`Kamera`,"camera.title":`Mit der Kamera aufnehmen`,"camera.hint":`Gerade und gut beleuchtet ins Bild halten.`,"camera.taken":`{n} aufgenommen`,"camera.shoot":`Aufnehmen`,"camera.done":`Fertig`,"camera.denied":`Die Kamera ist für diese Seite nicht freigegeben. Erlaube sie in den Website-Einstellungen deines Browsers (Schloss-Symbol in der Adresszeile) – oder nimm das Foto mit der Kamera-App auf.`,"connect.go":`Verbinden`,"connect.connected":`Verbunden über {name}`,"connect.disconnect":`Trennen`,"connect.none":`Auf diesem Server ist noch kein Anbieter zum Verbinden eingerichtet.`,"connect.openLink":`Anmeldung in neuem Tab öffnen`,"list.empty":`Noch keine Einträge.`,"list.delete":`Zeile löschen`,"ask.typeInto":`Text in die Seite tippen …`,"ask.hide":`verdeckt`,"ask.up":`Nach oben`,"ask.down":`Nach unten`,"ask.pictureHint":`Hier siehst du live die Seite, die der Wizard geöffnet hat. Du kannst auch direkt hineinklicken und tippen.`,"ask.remember":`Anmeldung für nächstes Mal merken`,"ask.private":`Was du eingibst, geht direkt in die Seite. Die KI bekommt es nicht zu sehen. Gemerkte Anmeldungen werden verschlüsselt gespeichert.`,"ask.skip":`Überspringen`,"ask.done":`Ich bin angemeldet`,"ask.signIn":`Anmelden`,"ask.wants":`Der Wizard möchte in {service} Folgendes ausführen:`,"ask.allowRest":`Für den Rest dieses Laufs erlauben`,"ask.allow":`Erlauben`,"ask.deny":`Nicht erlauben`,"store.open":`Was dieser Wizard sich merkt`,"store.title":`Für dich gemerkt`,"store.explain":`Dieser Wizard merkt sich Listen, Dateien und verbundene Konten für deinen nächsten Lauf. Nur du siehst sie.`,"store.empty":`Noch nichts gespeichert.`,"store.rows":{one:`{n} Eintrag`,other:`{n} Einträge`},"store.signIns":`Gemerkte Anmeldungen im Browser`,"store.files":{one:`{n} Datei · {size}`,other:`{n} Dateien · {size}`},"store.delete":`Alles löschen`,"store.confirmDelete":`Ja, alles löschen`,"common.close":`Schließen`,"run.uploadTouch":`Datei wählen`,"run.maxFiles":{one:`Hier geht höchstens {n} Datei – die übrigen sind weggelassen.`,other:`Hier gehen höchstens {n} Dateien – die übrigen sind weggelassen.`},"run.filesMin":`{n} von mindestens {min}`,"run.filesOf":`{n} von höchstens {max}`,"run.moveFile":`Nr. {n} verschieben`,"run.moveFileHint":`Ziehen, um die Reihenfolge zu ändern`,"run.removeFile":`Entfernen`,"run.awake":`Der Bildschirm bleibt an, solange der Wizard arbeitet.`,"run.openFull":`Groß öffnen`,"run.yes":`Ja`,"run.no":`Nein`,"run.share":`Teilen`,"run.shareNow":`Jetzt teilen`,"run.shareFile":`Als Datei teilen oder in einer App öffnen`,"run.print":`Drucken`,"camera.asking":`Dein Browser fragt gleich nach der Kamera. Das Bild bleibt in diesem Wizard.`,"camera.native":`Kamera-App öffnen`,"camera.pick":`Foto auswählen`,"camera.torch":`Licht`,"camera.flip":`Kamera wechseln`,"camera.photo":`Foto`,"camera.video":`Video`,"camera.record":`Aufnahme starten`,"camera.stop":`Aufnahme beenden`,"camera.recording":`Nimmt auf – tippe zum Beenden.`,"camera.clipHint":`Ein kurzer Clip, höchstens {s} Sekunden.`,"camera.hintMany":`Seite für Seite aufnehmen, dann „Fertig“.`,"scan.button":`Scannen`,"scan.title":`Code scannen`,"scan.asking":`Dein Browser fragt gleich nach der Kamera – sie liest nur den Code.`,"scan.hint":`Halte den QR- oder Barcode in den Rahmen.`,"scan.hintQr":`Halte den QR-Code in den Rahmen. Barcodes kann dieses Gerät hier nicht lesen.`,"scan.miss":`Auf dem Foto war kein Code zu erkennen. Versuch es näher und schärfer.`,"scan.fromPhoto":`Foto mit dem Code wählen`,"scan.typeInstead":`Lieber eintippen`,"location.use":`Meinen Standort verwenden`,"location.locating":`Standort wird bestimmt …`,"location.refining":`wird noch genauer …`,"location.accuracy":`auf etwa {m} m genau`,"location.map":`Karte`,"location.remove":`Standort entfernen`,"location.why":`Dein Browser fragt nach deinem Standort. Er wird nur für diesen Wizard verwendet. Du kannst auch einfach die Adresse eintippen.`,"location.denied":`Der Standort ist für diese Seite nicht freigegeben. Erlaube ihn in den Website-Einstellungen deines Browsers (Schloss-Symbol in der Adresszeile) – oder tippe die Adresse unten ein.`,"location.manual":`Adresse oder Ort eintippen`,"location.label":`Adresse oder Beschreibung des Orts`,"voice.start":`Sprachnotiz aufnehmen`,"voice.stop":`Stopp`,"voice.recording":`Aufnahme läuft …`,"voice.left":`noch {s} s`,"voice.again":`Neu aufnehmen`,"voice.remove":`Löschen`,"voice.pick":`Audiodatei wählen`,"voice.why":`Dein Browser fragt nach dem Mikrofon. Die Aufnahme wird danach in Text umgewandelt.`,"voice.denied":`Das Mikrofon ist für diese Seite nicht freigegeben. Erlaube es in den Website-Einstellungen deines Browsers – oder nimm die Notiz mit der Diktier-App auf und wähle die Datei.`,"voice.noRecorder":`Dieser Browser kann hier nicht aufnehmen. Nimm die Notiz mit der Diktier-App auf und wähle die Datei.`,"sign.open":`Hier unterschreiben`,"sign.hint":`Mit dem Finger unterschreiben`,"sign.pad":`Unterschriftsfeld`,"sign.clear":`Löschen`,"sign.accept":`Übernehmen`,"sign.again":`Neu unterschreiben`,"sign.remove":`Unterschrift entfernen`,"notify.ask":`Bescheid geben, wenn es fertig ist`,"notify.on":`Du bekommst Bescheid`,"notify.why":`Mit Ton, Vibration oder einer Mitteilung. Dein Browser fragt dafür einmal um Erlaubnis.`,"notify.onHint":`Du kannst die App wechseln – eine Mitteilung holt dich zurück.`,"notify.quiet":`Mit Ton und Vibration, solange diese Seite offen ist.`,"notify.blocked":`Mitteilungen sind für diese Seite blockiert – es gibt Ton und Vibration, solange sie offen ist. Erlauben kannst du sie in den Website-Einstellungen deines Browsers.`,"notify.done":`Dein Ergebnis ist fertig.`,"notify.next":`Es geht weiter – wirf einen Blick darauf.`,"notify.needsYou":`Der Wizard braucht dich kurz.`,"common.offline":`Keine Verbindung. Prüf dein Netz und versuch es noch einmal.`,"common.retry":`Erneut versuchen`,"common.cancel":`Abbrechen`,"run.start":`Los geht’s`,"run.unavailable":`Dieser Wizard ist gerade nicht verfügbar.`,"run.resume":`Letzten Lauf fortsetzen`,"output.preview":`Vorschau`,"package.newer":`Diese Wizard-Datei stammt aus einer neueren Version oder ist beschädigt. Aktualisiere engenty wizards oder exportiere den Wizard neu.`,"package.badJson":`Das ist keine Wizard-Datei: Die wizard.json darin lässt sich nicht lesen.`,"package.unreadable":`Die Wizard-Datei lässt sich nicht öffnen. Exportiere den Wizard neu und versuche es noch einmal.`,"package.noManifest":`Das ist keine Wizard-Datei: Die wizard.json fehlt.`,"browser.driving":`Du steuerst den Browser – klick und tipp in die Seite. Der Wizard wartet.`,"browser.handBack":`Zurückgeben`,"browser.takeOver":`Übernehmen`,"chat.above":`Antworte oben im Chat`,"chat.badEmail":`Das sieht nicht nach einer E-Mail-Adresse aus.`,"chat.badNumber":`Das sieht nicht nach einer Zahl aus.`,"chat.badUrl":`Das sieht nicht nach einer Webadresse aus.`,"chat.change":`Ändern`,"chat.checked":`Geprüft`,"chat.connected":`Verbunden`,"chat.dictate":`Diktieren (⌘⇧M)`,"chat.dictateStop":`Diktat beenden`,"chat.file":`1 Datei`,"chat.files":{one:`{n} Datei`,other:`{n} Dateien`},"chat.listening":`Ich höre zu …`,"chat.micDenied":`Das Mikrofon ist für diese Seite nicht freigegeben. Erlaube es in den Website-Einstellungen deines Browsers.`,"chat.placeholder":`Deine Antwort …`,"chat.readAloud":`Vorlesen`,"chat.readAloudOff":`Vorlesen beenden`,"chat.required":`Dafür brauche ich eine Antwort.`,"chat.rows":{one:`{n} Zeile`,other:`{n} Zeilen`},"chat.send":`Senden`,"chat.skip":`Überspringen`,"chat.skipped":`Übersprungen`,"chat.transcribing":`Wird in Text umgewandelt …`,"chat.voice":`Sprachnotiz`,"install.add":`Zum Startbildschirm hinzufügen`,"install.app":`In der App öffnen`,"install.bookmark":`Als Lesezeichen speichern`,"install.bookmark.mac":`Drücke ⌘ D, dann liegt dieser Wizard in deinen Lesezeichen.`,"install.bookmark.pc":`Drücke Strg + D, dann liegt dieser Wizard in deinen Lesezeichen.`,"install.ios":`Tippe unten auf „Teilen“ und dann auf „Zum Home-Bildschirm“.`,"run.madeWith":`Erstellt mit engenty wizards`,"run.orAs":`Oder: {label}`,"talk.camera":`Kamera einschalten`,"talk.cameraDenied":`Die Kamera ist für diese Seite nicht freigegeben. Erlaube sie in den Website-Einstellungen deines Browsers.`,"talk.cameraOff":`Kamera ausschalten`,"talk.connecting":`Verbindet …`,"talk.failed":`Das Gespräch ließ sich nicht starten.`,"talk.hint":`Sprich mit dem Wizard. Auf dem Bildschirm kannst du mitlesen.`,"talk.joinHint":`Beim Start fragt dein Browser nach dem Mikrofon, nach der Kamera erst, wenn du sie einschaltest. Im Chat daneben kannst du mitlesen und eingeben, was sich schlecht sagen lässt.`,"talk.listening":`Hört zu`,"talk.live":`Im Gespräch`,"talk.speaking":`Spricht`,"talk.start":`Gespräch beginnen`,"talk.stop":`Gespräch beenden`,"video.cameraOff":`Kamera aus`,"video.ended":`Anruf beendet`,"video.flip":`Kamera wechseln`,"video.hint":`Beim Beitreten fragt dein Browser nach Mikrofon und Kamera. Im Chat daneben kannst du mitlesen und eingeben, was sich schlecht sagen lässt.`,"video.join":`Beitreten`,"video.leave":`Verlassen`,"video.mute":`Stummschalten`,"video.rejoin":`Wieder beitreten`,"video.unmute":`Stummschaltung aufheben`,"video.you":`Du`,"nav.language":`Sprache`}},jd=`en`,Md=null,Nd=0,Pd=new Set;function Fd(){Nd+=1;for(let e of Pd)e()}function Id(e){e!==jd&&(jd=e,Fd())}function Ld(){return Md}function Rd(){return Md?.lang??jd}function zd(e){return e.note&&kd(e.note,Rd(),Md?.notes)||e.message}var Bd={};function Vd(e){Bd=e??{}}function Hd(e){return Bd[e]??e}function Q(e,t){return Md?.runner[e],wd(Ad,e,jd,t)}var Ud={...Ad.de,"brand.tagline":`Wünsch dir was. Hol dir deinen Wizard.`,"brand.sub":`Er führt dich Schritt für Schritt. Die KI erledigt die Arbeit.`,"auth.dev":`Dev-Login (lokal)`,"auth.legal":`Kein Passwort, keine Registrierung – du meldest dich mit einem bestehenden Konto an.`,"auth.signIn":`Anmelden oder Konto erstellen`,"auth.failed":`Die Anmeldung hat nicht geklappt. Versuch es noch einmal.`,"auth.localTitle":`Dieser Browser ist nicht angemeldet`,"auth.localWhy":`Das Studio läuft auf deinem Computer und lässt nur Browser herein, die seinen Link geöffnet haben. Hier fehlt die Anmeldung – vielleicht wurden die Cookies gelöscht.`,"auth.localLink":`Starte eine neue Sitzung:`,"auth.localStartLink":`Oder gib nur den Link aus, ohne einen Browser zu öffnen. Er gilt einmal, eine Minute lang:`,"auth.wrongHost":`Das Studio läuft unter einer anderen Adresse`,"auth.wrongHostWhy":`Die App auf diesem Computer antwortet nur unter ihrer eigenen Adresse – das schützt sie vor fremden Webseiten. Öffne das Studio dort:`,"auth.unreachable":`Die App antwortet gerade nicht`,"auth.unreachableWhy":`Unter {address} läuft das Studio, aber die App dahinter gibt keine Antwort – sie startet vielleicht gerade neu oder ist beendet. Die Seite versucht es weiter.`,"nav.account":`Konto & Guthaben`,"setup.keysInAccount":`API-Keys für Skripte gehören zu deinem Konto. Du legst sie dort an und ziehst sie dort zurück.`,"setup.openAccount":`Konto öffnen`,"class.label":`Modellklasse`,"class.classifier":`Classifier`,"class.standard":`Standard`,"class.high":`High`,"class.highest":`Highest`,"class.image":`Bild`,"class.video":`Video`,"class.audio":`Audio`,"class.speech":`Sprachausgabe`,"class.classifier.hint":`Zuordnen, Ja/Nein, wenige Werte aus Text ziehen. Am günstigsten.`,"class.standard.hint":`Kurze Texte, eine API aufrufen, umformatieren.`,"class.high.hint":`Recherche mit Werkzeugen, lange Dokumente, Abwägen vieler Quellen.`,"class.highest.hint":`Schweres Abwägen oder Code. Kostet ein Vielfaches von High.`,"class.effort":`Denkaufwand`,"class.effortAuto":`Automatisch`,"class.effort.low":`Niedrig`,"class.effort.medium":`Mittel`,"class.effort.high":`Hoch`,"estimate.step":`≈ {n} Credits, selten mehr als {high}`,"estimate.measured":`gemessen aus den letzten Läufen`,"estimate.formula":`geschätzt, wird nach fünf Läufen genauer`,"estimate.share":`Ein Lauf kostet etwa {run} Credits. Beim Tageslimit sind es höchstens {day} Credits am Tag.`,"local.title":`Modelle`,"local.accountWaiting":`Wartet auf die Anmeldung im Browser …`,"local.accountFailed":`Der Kontodienst ist gerade nicht erreichbar.`,"local.accountExpired":`Die Anmeldung ist abgelaufen. Melde dich neu an.`,"local.sourceNeedsAccount":`Dafür brauchst du ein Konto.`,"local.toAccount":`Zu Einstellungen → Konto`,"local.sourceOwn":`Eigene API-Keys`,"local.keys":`API-Keys`,"local.keysHint":`Ein API-Key reicht. Die Keys liegen im Schlüsselbund dieses Geräts, nie in der Datenbank.`,"local.keySet":`hinterlegt`,"local.keyEmpty":`nicht hinterlegt`,"local.keyRemove":`Entfernen`,"local.classes":`Modell je Klasse`,"local.classesHint":`Ein Schritt nennt nur die Klasse. Hier steht, welches Modell sie bedient, z. B. anthropic/claude-haiku-4.5, openai:gpt-5.4-mini oder ollama:qwen3.`,"local.save":`Speichern`,"local.saved":`Gespeichert`,"local.chat":`Der Chat im Studio antwortet über`,"local.chatModels":`Modellklasse Highest`,"local.chatClaude":`Claude-Abo (Claude Code)`,"local.subscription":`Mit dem Abo baut Claude Code auf diesem Computer den Wizard – angemeldet mit deinem Konto dort. Läufe nutzen weiter API-Keys oder Guthaben.`,"harness.hint":`Texte schreibt {name} auf diesem Computer, mit deinem {sub}. Kein API-Key nötig. Bilder, Videos und Audio brauchen weiter einen API-Key.`,"harness.hintImages":`Texte und Bilder erzeugt {name} auf diesem Computer, mit deinem {sub}. Kein API-Key nötig. Videos und Audio brauchen weiter einen API-Key.`,"harness.found":`{name} {version} gefunden`,"harness.missing":`{name} ist auf diesem Computer nicht installiert.`,"harness.install":`Oder in deinem eigenen Terminal:`,"harness.installButton":`{name} installieren`,"harness.installing":`{name} wird im Terminal unten installiert – das dauert etwa eine Minute. Danach meldest du es an.`,"harness.installEnded":`Die Installation ist fertig, aber {name} ist nicht da. Warum, steht oben.`,"harness.appHere":`Die {app}-App ist auf diesem Computer: {name} meldet sich mit demselben {sub} an.`,"harness.notInstalled":`nicht installiert`,"harness.authSubscription":`Angemeldet mit deinem {sub}.`,"harness.authKey":`Angemeldet mit einem API-Key aus deiner Shell, nicht mit dem Abo. Melde dich hier an, damit es über dein {sub} läuft.`,"harness.authNone":`Noch nicht angemeldet.`,"harness.signIn":`Hier anmelden`,"harness.signingIn":`Die Anmeldung läuft im Terminal unten – dein Browser öffnet sich dafür. Das Terminal schließt sich, sobald die Anmeldung da ist.`,"harness.signInInteractive":`Unten startet {name}. Wähle dort die Anmeldung mit deinem {sub} und melde dich im Browser an. Das Terminal schließt sich, sobald die Anmeldung da ist.`,"harness.loginEnded":`Die Anmeldung wurde beendet, ohne dass {name} angemeldet ist.`,"harness.sub.claude":`Claude-Abo`,"harness.sub.codex":`ChatGPT-Abo`,"harness.sub.gemini":`Google-Konto`,"harness.sub.cursor":`Cursor-Abo`,"harness.desc.claude":`Mit deinem Claude-Abo – kein API-Key nötig.`,"harness.desc.codex":`Mit deinem ChatGPT-Abo – kein API-Key nötig.`,"harness.desc.gemini":`Mit deinem Google-Konto – kein API-Key nötig.`,"harness.desc.cursor":`Mit deinem Cursor-Abo – kein API-Key nötig.`,"harness.ready":`angemeldet`,"local.recheck":`Erneut prüfen`,"local.test":`Testen`,"local.testHint":`Ein kurzer Aufruf prüft, ob das Modell erreichbar ist.`,"local.testOk":`Antwort in {s} s über {ref}: „{reply}“`,"local.testFailed":`Der Test hat nicht geklappt: {error}`,"models.groupCaps":`Fähigkeiten`,"models.groupAccess":`Zugänge`,"models.groupMore":`Weitere Anbieter`,"models.cap.text":`Text & Denken`,"models.cap.text.hint":`Schreibt, fasst zusammen, recherchiert und entscheidet – in fast jedem Schritt.`,"models.cap.image":`Bilder`,"models.cap.image.hint":`Erzeugt Bilder: Logos, Produktfotos, Illustrationen.`,"models.cap.video":`Videos`,"models.cap.video.hint":`Erzeugt kurze Clips aus Text oder aus einem Bild.`,"models.cap.speech":`Sprachausgabe`,"models.cap.speech.hint":`Liest Texte vor: Voice-over, Hörfassungen, Ansagen.`,"models.cap.listening":`Sprachnotizen`,"models.cap.listening.hint":`Versteht Gesprochenes und macht aus Sprachnotizen Text.`,"models.way.local":`Lokales Modell`,"models.way.credits":`Guthaben`,"models.way.creditsTeam":`Guthaben des Teams`,"models.way.none":`nicht eingerichtet`,"models.who":`Wer macht das?`,"models.optSubscription":`Dein Abo`,"models.optKey":`Eigener API-Key`,"models.optLocal":`Lokales Modell`,"models.optLocalNote":`Ollama auf diesem Computer`,"models.optApple":`Apple Intelligence`,"models.optAppleNote":`auf diesem Mac, ohne Internet`,"models.appleOff":`ausgeschaltet – Systemeinstellungen → Apple Intelligence & Siri`,"models.appleLoading":`Apple lädt das Modell noch`,"models.appleDevice":`nicht auf diesem Mac`,"models.appleHint":`Kurze Texte und Entscheidungen (Classifier, Standard) übernimmt Apple Intelligence auf diesem Mac. Nichts verlässt ihn. Recherche, lange Dokumente und Code (High, Highest): {way}.`,"models.appleListenHint":`Sprachnotizen schreibt dieser Mac selbst auf – nichts verlässt ihn. Beim ersten Mal lädt Apple die Sprache nach.`,"models.noteIncluded":`im Abo enthalten`,"models.noteSignedOut":`nicht angemeldet`,"models.noteMissing":`nicht installiert`,"models.noteKey":`API-Key hinterlegt`,"models.noteKeyShort":`Key`,"models.noteSignedIn":`angemeldet`,"models.noteShellKey":`API-Key aus der Shell`,"models.optOther":`Andere`,"models.optCreditsGroup":`engenty`,"models.noteNoKey":`API-Key fehlt`,"models.noteNeedsAccount":`Konto nötig`,"models.notePerImage":`≈ {n} Credits je Bild`,"models.notePerSecond":`≈ {n} Credits je Sekunde`,"models.notePer1k":`≈ {n} Credits je 1000 Zeichen`,"models.notePerMinute":`≈ {n} Credits je Minute`,"models.creditsAuto":`engenty wählt: {model}`,"models.creditsAutoNone":`engenty wählt das Modell`,"models.creditsPickHint":`Abgerechnet in Credits – ohne eigenen API-Key.`,"models.viaCredits":`{name} über engenty-Guthaben`,"models.viaCreditsHint":`Ohne eigenen API-Key, abgerechnet in Credits.`,"models.viaCreditsNeedsAccount":`Mit einem engenty-Konto, abgerechnet in Credits.`,"models.noteUsage":`Credits nach Verbrauch`,"models.model":`Modell`,"models.modelCustom":`Eigenes Modell …`,"models.textSimple":`Einfache Schritte`,"models.textDemanding":`Anspruchsvolle Schritte`,"models.perClass":`Je Klasse anpassen`,"models.manageKey":`API-Key von {name}`,"models.key":`API-Key`,"models.keyFor":`API-Key von {name}`,"models.keyGet":`Key bei {name} holen`,"models.keySave":`Prüfen und speichern`,"models.keyStored":`API-Key hinterlegt`,"models.keyNone":`Kein API-Key`,"models.keyCheck":`Prüfen`,"models.keyReplace":`Ersetzen`,"models.keyRemove":`Entfernen`,"models.keyOk":`Der Key funktioniert.`,"models.keyBad":`Der Key wurde nicht angenommen.`,"models.keyWhereLocal":`Der Key bleibt auf diesem Computer, nie in der Datenbank.`,"models.keyWhereCloud":`Der Key liegt verschlüsselt beim Team. Niemand sieht ihn wieder.`,"models.keyFallback":`Bis der Key da ist, springt das Guthaben ein.`,"models.uses":`Wofür`,"models.useFor":`Verwenden`,"models.inUse":`wird genutzt`,"models.try":`Ausprobieren`,"models.try.text":`Testen`,"models.try.image":`Probebild erzeugen`,"models.try.video":`Probeclip erzeugen`,"models.try.speech":`Probe anhören`,"models.try.listening":`Zuhören testen`,"models.tryCost":`Kostet wie ein echter Aufruf.`,"models.tryCostVideo":`Ein Clip von 4 Sekunden – kostet wie ein echter.`,"models.tryWait":`Wird erzeugt …`,"models.tryWaitVideo":`Ein Clip dauert ein bis zwei Minuten …`,"models.tryOk":`In {s} s mit {model}`,"models.tryHeard":`Gehört: „{text}“`,"models.tryHeardNothing":`Nichts gehört – aber das Modell ist erreichbar.`,"models.tryFailed":`Das hat nicht geklappt: {error}`,"models.creditsName":`engenty-Guthaben`,"models.creditsTeam":`Guthaben des Teams`,"models.creditsLocalLead":`Springt ein, wo kein Abo und kein eigener API-Key eingerichtet ist.`,"models.creditsCloudHint":`Alles ohne eigenen API-Key läuft über das Guthaben. Eigene Keys gehen vor und kosten keine Credits.`,"models.creditsConnectTitle":`Mit einem Konto`,"models.creditsLocalHint":`Mit einem engenty-Konto springt das Guthaben ein, wo nichts Eigenes eingerichtet ist – etwa für Videos ohne eigenen API-Key.`,"models.creditsConnect":`Konto verbinden`,"models.creditsFallback":`Guthaben springt ein`,"models.creditsFallbackOn":`Was kein Abo und keinen eigenen API-Key hat, läuft über das Guthaben.`,"models.creditsFallbackOff":`Aus: Was kein Abo und keinen eigenen API-Key hat, läuft nicht.`,"models.creditsOn":`Läuft über das Guthaben`,"models.creditsNone":`Gerade läuft nichts über das Guthaben.`,"models.creditsTopUp":`Aufladen`,"models.creditsPicks":`engenty wählt das Modell und rechnet in Credits ab.`,"models.creditsModel":`Gerade: {model}.`,"models.clientSignIn":`Anmeldung`,"models.clientImages":`{name} erzeugt Bilder mit deinem {sub} – ohne eigenen API-Key.`,"models.clientNotChosen":`Text läuft gerade nicht über {name}.`,"models.ollamaHint":`Adresse von Ollama und das Modell, das dort läuft.`,"models.readOnly":`Nur Admins des Teams ändern die Modelle.`,"models.viewAs":`Vorschau als`,"models.view.auto":`aktuell`,"models.view.local":`Computer`,"models.view.linked":`Computer + Konto`,"models.view.cloud":`Cloud`,"setup.title":`Setup`,"setup.sub":`engenty kann deine vorhandenen Konten auf deinem Computer nutzen.`,"setup.source":`Womit soll engenty denken?`,"setup.local":`Läuft auf diesem Computer.`,"setup.thisComputer":`Dieser Computer: Space {space} von {team}`,"setup.account":`Dein engenty-Konto`,"setup.accountText":`Dein Team, sein Space und deine Wizards liegen in deinem Konto. Dieser Computer tritt dem Space bei.`,"setup.accountLinked":`Angemeldet als {name}`,"setup.accountCredits":`{credits} Credits`,"setup.creditsChoice":`engenty-Guthaben`,"setup.creditsDesc":`Läuft über das Guthaben deines Kontos, wie in der Cloud. Nichts zu installieren.`,"onboard.kicker1":`Willkommen, {name} · Wer du bist`,"onboard.kicker1Anon":`Willkommen · Wer du bist`,"onboard.team":`Wie heißt dein Team?`,"onboard.teamSub":`Deine Firma, dein Verein oder einfach dein Name. Das Team ist dein Konto: Dort liegen dein Guthaben und deine Wizards. Umbenennen kannst du es jederzeit.`,"onboard.teamPlaceholder":`Platzer Fenster & Türen`,"onboard.kind":`Wofür nutzt du engenty?`,"onboard.kindSub":`Damit wir dir die passenden Vorlagen und Tipps zeigen.`,"onboard.guess":`Aus {domain} geraten: {kind}. Stimmt das nicht, wähl einfach anders.`,"onboard.kindPersonal":`Für mich`,"onboard.kindPersonalSub":`Privat, Hobby, Ausprobieren`,"onboard.kindClub":`Verein`,"onboard.kindClubSub":`Verein, Initiative, Ehrenamt`,"onboard.kindSmall":`Kleines Unternehmen`,"onboard.kindSmallSub":`Selbstständig bis 49 Leute`,"onboard.kindCorp":`Unternehmen`,"onboard.kindCorpSub":`Ab 50 Leuten`,"onboard.personalTitle":`Was wünschst du dir von engenty?`,"onboard.personalPlaceholder":`z. B. Bewerbungen schreiben, Fotos für Kleinanzeigen, Reisen planen`,"onboard.clubTitle":`Erzähl uns von deinem Verein`,"onboard.businessTitle":`Erzähl uns von deinem Unternehmen`,"onboard.clubKind":`Art des Vereins`,"onboard.members":`Mitglieder`,"onboard.yourRole":`Deine Rolle`,"onboard.people":`Wie viele seid ihr?`,"onboard.justMe":`Nur ich`,"onboard.sector":`Branche`,"onboard.sectorPlaceholder":`z. B. Tischlerei, Physiotherapie, Online-Shop`,"onboard.need":`Was brauchst du?`,"onboard.needPlaceholder":`z. B. Angebote schneller schreiben, Anfragen von der Website beantworten`,"onboard.optional":`optional`,"onboard.legalName":`Offizieller Firmenname`,"onboard.legalNamePlaceholder":`z. B. Muster Handels GmbH`,"onboard.phone":`Telefon`,"onboard.phoneWhy":`für Rückfragen zu Vertrag und Rechnung`,"onboard.club.sport":`Sport`,"onboard.club.culture":`Kultur & Musik`,"onboard.club.social":`Soziales`,"onboard.club.education":`Bildung`,"onboard.club.environment":`Umwelt`,"onboard.club.rescue":`Feuerwehr & Rettung`,"onboard.club.other":`Anderes`,"onboard.role.chair":`Vorsitz`,"onboard.role.board":`Vorstand`,"onboard.role.treasurer":`Kasse`,"onboard.role.secretary":`Schriftführung`,"onboard.role.member":`Mitglied`,"onboard.role.management":`Geschäftsführung`,"onboard.role.it":`IT`,"onboard.role.marketing":`Marketing`,"onboard.role.sales":`Vertrieb`,"onboard.role.operations":`Betrieb & Prozesse`,"onboard.role.other":`Anderes`,"onboard.siteNameHint":`Keine Adresse? Ein Name genügt, wir merken ihn uns.`,"onboard.back":`Zurück`,"onboard.kicker2":`Über dich & deine Marke`,"onboard.site":`Wo können die Wizards über dich lesen?`,"onboard.siteSub":`Nenn deine Website, und engenty holt sich Namen, Tätigkeit, Logo und Farben von dort. Jeder Wizard klingt dann wie du und sieht aus wie du. Keine Website? Schreib stattdessen eine Zeile über dich.`,"onboard.sitePlaceholder":`platzer-fenster.at`,"onboard.read":`Einlesen`,"onboard.reading":`Liest …`,"onboard.readDone":`Gelesen: {name}{details}.`,"onboard.readAbout":`, was du tust`,"onboard.readColors":`, {n} Farben`,"onboard.readLogo":`, das Logo`,"onboard.readFailed":`Die Seite ließ sich nicht lesen. Prüf die Adresse, oder schreib eine Zeile über dich.`,"onboard.line":`Lieber eine Zeile schreiben`,"onboard.linePlaceholder":`Wir fertigen und montieren Fenster und Türen in Oberösterreich, für Privathäuser und Bauträger. Freundlich, auf den Punkt.`,"onboard.save":`Speichern`,"onboard.skip":`Später`,"onboard.kicker3":`Wissen`,"onboard.know":`Was sollen die Wizards wissen?`,"onboard.knowSub":`Dokumente, in denen die Wizards nachschlagen dürfen: Preislisten, Broschüren, deine AGB, ein FAQ. PDF, Word, Excel. Ein Wizard antwortet daraus, statt zu raten. Mehr geht jederzeit unter Space → Wissen.`,"onboard.drop":`Dateien hier ablegen oder auswählen`,"onboard.uploading":`liest …`,"onboard.uploaded":`gelesen`,"onboard.uploadFailed":`nicht gelesen`,"onboard.kicker4":`Dein Space`,"onboard.space":`All das liegt in deinem Space.`,"onboard.spaceSub":`Der erste Space deines Teams heißt {space}. Hier liegt alles, was deine Wizards gemeinsam nutzen und erzeugen. Jeder KI-Schritt kennt den Space, darum fragt ein Wizard nie nach deinem Namen oder deinen Preisen. Umbenennen kannst du ihn jederzeit, das Haus in der App-Leiste öffnet ihn.`,"onboard.partInfo":`Info & Marke`,"onboard.partInfoText":`Wer du bist und wie du aussiehst: Titel, Über uns, Logo, Farben, Fakten.`,"onboard.partKnow":`Wissen`,"onboard.partKnowText":`Worin jeder KI-Schritt nachschlägt: deine Dokumente und Seiten.`,"onboard.partData":`Daten`,"onboard.partDataText":`Tabellen und Seiten, die deine Wizards führen: Anfragen, Buchungen, Listen. Füllt sich, während deine Wizards laufen.`,"onboard.partResults":`Ergebnisse`,"onboard.partResultsText":`Alle abgeschlossenen Läufe, nach Wizard sortiert. PDF, Word, Bilder, Video.`,"onboard.build":`Deinen ersten Wizard bauen`,"onboard.continue":`Weiter`,"onboard.step":`Schritt {n} von 4`,"setup.stage.connect":`Verbinden`,"setup.stage.test":`Testen`,"setup.stage.done":`Fertig`,"setup.h.install":`{name} installieren`,"setup.h.signIn":`{name} anmelden`,"setup.h.keys":`API-Key eintragen`,"setup.h.test":`Ein kurzer Test`,"setup.h.done":`Verbunden`,"setup.ready":`Alles bereit.`,"setup.noHarness":`Noch kein KI-Client installiert. Wähle einen aus – er wird dann hier installiert. Oder trage eigene API-Keys ein.`,"setup.ownDesc":`AI Gateway, OpenAI, Anthropic oder Ollama.`,"setup.appleDesc":`Das Modell auf diesem Mac – ohne Konto, ohne Internet.`,"setup.appleHint":`Kurze Texte und Entscheidungen übernimmt Apple Intelligence auf diesem Mac. Nichts verlässt ihn. Für Recherche, lange Dokumente und Code richtest du später unter Einstellungen → Modelle einen weiteren Zugang ein.`,"setup.appleHintKeeps":`Kurze Texte und Entscheidungen übernimmt Apple Intelligence auf diesem Mac. Nichts verlässt ihn. Recherche, lange Dokumente und Code (High, Highest) bleiben, wie sie waren: {way}.`,"setup.recommended":`Empfohlen`,"setup.done":`Zum Studio`,"setup.untilWorks":`Das Studio öffnet sich, sobald der Test klappt.`,"cloud.notSent":`Diese Version ist noch nicht in der Cloud.`,"cloud.send":`Jetzt senden`,"cloud.resend":`Erneut senden`,"cloud.again":`Um {when} versuchen wir es noch einmal.`,"cloud.sent":`Version {v} · in der Cloud angekommen am {when}`,"cloud.notRunnable":`Version {v} läuft in der Cloud nicht.`,"cloud.keepsRunning":`Dort läuft weiter Version {v}.`,"cloud.nothingRuns":`Dort läuft deshalb noch nichts.`,"cloud.notes":`Was in der Cloud anders läuft:`,"cloud.check":`Was dem jetzigen Stand in der Cloud fehlen würde:`,"cloud.checkBlocking":`So, wie der Wizard jetzt ist, würde er in der Cloud nicht laufen:`,"cloud.documents":`Die Dokumente des Space bleiben auf diesem Computer. In der Cloud arbeiten die Schritte ohne sie.`,"cloud.stepName":`„{title}“`,"cloud.problem.sandbox":`In der Cloud kann kein Code ausgeführt werden. Der Schritt läuft dort ohne.`,"cloud.problem.mcp":`Die MCP-Server des Space gibt es in der Cloud nicht: {detail}.`,"cloud.problem.model":`Dafür gibt es in der Cloud kein Modell.`,"cloud.problem.connector":`Dem Space fehlt in der Cloud ein Connector.`,"cloud.problem.invalid":`So nimmt die Cloud den Wizard nicht an.`,"cloud.spaceLimit":`In der Cloud deines Kontos liegt schon der Space eines anderen Computers:`,"cloud.replace":`Bisherigen Space ersetzen`,"cloud.replaceConfirm":`Den bisherigen Space aus der Cloud entfernen? Seine Wizards und ihre Links verschwinden dort. Danach kommt in der Cloud an, was hier veröffentlicht ist.`,"cloud.noticeError":`Hier veröffentlicht. In der Cloud ist diese Version nicht angekommen – mehr dazu unten.`,"cloud.noticeNotRunnable":`Hier veröffentlicht. In der Cloud läuft diese Version nicht – mehr dazu unten.`,"readonly.wizard":`Diesen Wizard bearbeitest du in engenty wizards auf deinem Computer. Veröffentlichst du ihn dort, läuft die neue Version hier.`,"readonly.project":`Diesen Space bearbeitest du in engenty wizards auf deinem Computer. Änderungen erscheinen hier, sobald du dort wieder einen Wizard veröffentlichst.`,"readonly.server":`Hier laufen die Wizards, die du in engenty wizards auf deinem Computer veröffentlichst. Gebaut und bearbeitet wird dort.`,"nav.wizards":`Wizards`,"nav.spaceMenu":`Space-Menü`,"nav.renameSpace":`Space-Namen bearbeiten`,"nav.wizardsInSpace":`Wizards im Space`,"nav.addWizard":`Wizard hinzufügen`,"nav.spaceLocal":`Auf diesem Computer`,"nav.spaceCloud":`In der Cloud`,"nav.settings":`Einstellungen`,"nav.project":`Space`,"nav.switchSpace":`Space wechseln`,"nav.addSpace":`Space hinzufügen`,"nav.wizardCount":{one:`{n} Wizard`,other:`{n} Wizards`},"appbar.position":`Position`,"appbar.left":`Links`,"appbar.top":`Oben`,"appbar.right":`Rechts`,"appbar.bottom":`Unten`,"appbar.theme":`Farbschema`,"appbar.light":`Hell`,"appbar.dark":`Dunkel`,"appbar.system":`Systemstandard`,"account.title":`Konto`,"account.hint":`Wie dich die App nennt und wie man dich erreicht.`,"account.initials":`Dein Kürzel im Menü oben rechts: die Anfangsbuchstaben deines Namens.`,"account.name":`Name`,"account.nameHint":`Anfangs steht hier der Benutzername dieses Computers.`,"account.fromAccount":`Name und E-Mail kommen aus deinem Konto.`,"account.about":`Über dich`,"account.aboutHint":`Wer du bist und was du machst.`,"account.email":`E-Mail`,"account.phone":`Telefon`,"account.connection":`engenty.ai`,"account.connectionHint":`Anmeldung, Guthaben und die Cloud, in der deine Wizards für alle laufen.`,"account.profile":`Profil`,"account.local":`Auf deinem Computer`,"account.localText":`Diese App läuft auf deinem Computer und ist mit keinem Konto verbunden. Wizards, Space und Dateien bleiben hier.`,"account.linked":`Verbunden`,"account.with":`Mit einem Konto`,"account.withCredits":`Guthaben für die Modelle, wo kein KI-Client installiert ist. Kein API-Key nötig.`,"account.withCloud":`Was du veröffentlichst, läuft auch auf engenty.ai, über einen öffentlichen Link – auch wenn dein Computer aus ist.`,"account.signIn":`Anmelden`,"account.signInAgain":`Neu anmelden`,"account.new":`Noch kein Konto?`,"account.newHint":`Ein neues Konto braucht einen Einladungscode. Trag ihn hier ein, dann steht er bei der Registrierung schon im Formular.`,"account.code":`Einladungscode`,"account.create":`Konto erstellen`,"account.credits":`Guthaben`,"account.topUp":`Aufladen`,"account.expires":{one:`{n} Credit gültig bis {date}`,other:`{n} Credits gültig bis {date}`},"account.kind.start":`Startguthaben`,"account.kind.monthly":`Monatsguthaben`,"account.kind.gift":`Geschenkt`,"account.cloud":`Was du hier veröffentlichst, läuft auch auf {host}.`,"account.look":`Darstellung`,"account.lookHint":`Sprache und Design der App in diesem Browser.`,"nav.logout":`Abmelden`,"nav.connected":`Verbunden mit {host}`,"nav.expired":`Anmeldung abgelaufen`,"nav.onlyHere":`Nur auf diesem Computer`,"nav.local":`lokal`,"nav.theme":`Design`,"nav.credits":{one:`{n} Credit`,other:`{n} Credits`},"about.version":`Version {v}`,"about.title":`Über engenty wizards`,"about.kind.script":`Auf deinem Computer`,"about.kind.checkout":`Entwicklungs-Checkout`,"about.kind.npm":`Mit npm installiert`,"about.kind.cloud":`In der Cloud`,"about.update.check":`Nach Updates suchen`,"about.update.checking":`Sucht nach Updates …`,"about.update.upToDate":`Du bist auf dem neuesten Stand.`,"about.update.checkedAt":`zuletzt geprüft {when}`,"about.update.unknown":`Die Prüfung hat nicht geklappt. Keine Verbindung zu GitHub?`,"about.update.off":`Die Suche nach Updates ist abgeschaltet.`,"about.update.manual":`Diese Installation aktualisiert sich nicht selbst: Hol dir die neue Version dort, wo du sie installiert hast.`,"about.tab.new":`Was ist neu`,"about.tab.earlier":`Versionen`,"about.changes":{one:`{n} Änderung`,other:`{n} Änderungen`},"about.change":`1 Änderung`,"about.update.available":`Version {v} von engenty wizards ist da.`,"about.update.install":`Aktualisieren`,"about.update.installing":`Version {v} wird installiert …`,"about.update.restarting":`Startet neu mit Version {v} …`,"about.update.done":`Installiert. Starte engenty wizards neu, um {v} zu nutzen.`,"about.update.failed":`Das Update hat nicht geklappt. Details stehen in logs/update.log.`,"about.update.notes":`Was ist neu`,"about.update.updated":`Aktualisiert auf Version {v}.`,"about.update.ready":`Version {v} ist heruntergeladen und läuft ab dem nächsten Start.`,"about.changelog":`Changelog`,"about.changelogHint":`Was sich von Version zu Version geändert hat.`,"about.changelogEmpty":`Noch keine Einträge.`,"about.unreleased":`Noch nicht veröffentlicht`,"about.breaking":`inkompatibel`,"about.credits":`Open Source`,"about.creditsHint":`engenty wizards und die Open-Source-Software, auf der es aufbaut.`,"about.creditsProduct":`engenty`,"about.creditsBuiltWith":`Gebaut mit`,"about.creditsDeps":`Direkte Abhängigkeiten`,"about.creditsDepsHint":`Was die Teile dieser App selbst einbinden, mit Version und Lizenz – ohne deren eigene Abhängigkeiten.`,"about.creditsShared":`Von mehreren Teilen genutzt`,"about.search":`Suchen …`,"about.noMatches":`Nichts gefunden.`,"theme.dark":`Dunkles Design`,"theme.light":`Helles Design`,"home.title":`Wizards in {space}`,"home.search":`Wizards suchen …`,"home.noMatch":`Keiner deiner Wizards heißt so.`,"home.newFromSearch":`Neuen Wizard bauen: „{q}“`,"home.new":`Neuer Wizard`,"home.import":`Importieren`,"import.failed":`Der Import hat nicht geklappt.`,"home.empty":`Noch keine Wizards in diesem Space.`,"home.live":`Live`,"home.draft":`Entwurf`,"where.here":`Lokal`,"where.hereVersion":`Lokal · Version {v}`,"where.hereHint":`Läuft nur auf diesem Computer, solange die App läuft.`,"where.liveHint":`Läuft auf {host} – für alle mit dem Link.`,"where.liveAt":`Live auf {host} · Version {v}`,"where.note":`1 Hinweis`,"where.notes":{one:`{n} Hinweis`,other:`{n} Hinweise`},"where.sending":`Unterwegs in die Cloud …`,"where.missing":`Nicht in der Cloud`,"home.steps":{one:`{n} Schritt`,other:`{n} Schritte`},"home.all":`Alle`,"home.newProject":`Neuer Space`,"home.projectName":`Name des Space`,"home.projectLimit":{one:`Höchstens {n} Space`,other:`Höchstens {n} Spaces`},"team.title":`Team`,"team.hint":`Wer im Team ist und auf welchem Paket es läuft. Einladen und verwalten kannst du im Konto.`,"team.plan":`Paket`,"team.planFree":`Free`,"team.seats":`{taken} von {limit} Plätzen`,"team.seatsUnlimited":`Plätze ohne Limit`,"team.members":`Mitglieder`,"team.invited":`eingeladen`,"team.you":`du`,"team.manage":`Mitglieder verwalten`,"team.changePlan":`Paket ansehen`,"team.roles":`Inhaber:innen und Admins legen Wizards und Spaces an und löschen sie. Mitglieder bearbeiten die vorhandenen Wizards.`,"team.memberNote":`Du bist Mitglied: Du bearbeitest Wizards. Admins legen neue an und löschen sie.`,"team.failed":`Das Team ließ sich nicht laden.`,"team.role.owner":`Inhaber:in`,"team.role.admin":`Admin`,"team.role.member":`Mitglied`,"models.ownKeysPlan":`Eigene API-Keys gibt es ab dem Pro-Paket. Hier wird mit den Credits des Teams bezahlt.`,"home.fromLocal":`Wird auf deinem Computer bearbeitet.`,"home.syncedAt":`Zuletzt angekommen: {when}.`,"home.local.title":`Hier laufen die Wizards von deinem Computer`,"home.local.text":`Du baust auf deinem eigenen Computer. Was du dort veröffentlichst, läuft hier, für alle mit dem Link.`,"home.local.install":`Installiere engenty wizards auf deinem Computer:`,"home.local.signIn":`Melde dich dort unter Einstellungen → Konto mit diesem Konto an.`,"home.local.publish":`Veröffentliche einen Wizard. Er erscheint dann hier.`,"new.title":`Was soll dein Wizard können?`,"new.placeholder":`z. B. Kund:innen geben ihr Produkt und ihre Zielgruppe ein, der Wizard recherchiert die Konkurrenz und erstellt daraus ein Positionierungs-Briefing als PDF.`,"new.build":`Wizard bauen`,"new.orStarter":`Oder beginne mit einer Vorlage`,"new.import":`Wizard-Datei importieren`,"new.hint":`Du kannst danach alles im Chat ändern.`,"guest.signIn":`Anmelden`,"guest.hint":`Danach meldest du dich an. Dein Wunsch bleibt dabei stehen.`,"onboard.wish":`Dein Wunsch`,"onboard.wishNext":`Gleich danach baut das Studio deinen Wizard.`,"legal.imprint":`Impressum`,"legal.privacy":`Datenschutz`,"legal.terms":`Nutzungsbedingungen`,"new.runsAs":`Läuft als`,"new.where":`Wie soll er laufen?`,"new.web":`Im Browser`,"new.phone":`Am Telefon`,"new.messages":`Per Nachricht`,"new.off":`aus`,"new.ch.steps":`Wizard in Schritten`,"new.ch.chat":`Chat`,"new.ch.talk":`Sprachgespräch`,"new.ch.video":`Videoanruf`,"new.ch.call":`Anruf`,"new.ch.sms":`SMS`,"new.ch.whatsapp":`WhatsApp`,"new.callHandoff":`Was am Telefon nicht geht, kommt per SMS.`,"new.similar":`Ähnliches gibt es schon`,"new.yours":`Deiner`,"new.template":`Vorlage`,"new.open":`Öffnen`,"new.take":`Übernehmen`,"new.more":`{n} weitere …`,"new.dropHint":`Zum Anhängen loslassen`,"editor.resize":`Breite ändern – Doppelklick setzt zurück`,"editor.resizeSheet":`Höhe ändern – Tippen klappt ein und aus`,"editor.export":`Als Wizard-Datei exportieren (.wizard)`,"wizardMenu.label":`Mehr`,"wizardMenu.duplicate":`Duplizieren`,"wizardMenu.delete":`Löschen`,"wizardMenu.deleteTitle":`„{title}“ löschen?`,"wizardMenu.deleteDraft":`Der Wizard und sein Verlauf werden gelöscht. Das lässt sich nicht rückgängig machen.`,"wizardMenu.deletePublished":`Der Wizard wird gelöscht. Sein Link geht dann nicht mehr, und die veröffentlichte Version verschwindet – auch aus der Cloud, wenn ein Konto verbunden ist. Das lässt sich nicht rückgängig machen.`,"addStep.title":`Was soll hier passieren?`,"addStep.placeholder":`Zum Beispiel: eine Karte mit allen gefundenen Objekten, der Preis als Farbe`,"addStep.kind":`Art des Schritts`,"addStep.auto":`KI wählt`,"addStep.empty":`Beschreibe zuerst, was der Schritt tun soll.`,"addStep.busy":`Der Assistent arbeitet noch an der letzten Nachricht. Versuch es gleich noch einmal.`,"addStep.emptyStep":`Leer einfügen`,"addStep.cancel":`Abbrechen`,"addStep.create":`Erstellen`,"addStep.building":`Neuer Schritt wird gebaut …`,"addStep.showChat":`Im Chat ansehen`,"addStep.add":`Schritt hinzufügen`,"surface.preview":`Vorschau`,"surface.code":`Code`,"surface.sampleNote":`Mit Beispieldaten – ein Lauf zeigt seine eigenen.`,"surface.sampleText":`Beispieltext`,"surface.sampleBrand":`Deine Firma`,"addStep.when":`Wann?`,"addStep.always":`Immer`,"addStep.onlyIf":`Nur wenn …`,"addStep.aiDecides":`KI entscheidet …`,"addStep.ifPlaceholder":`Zum Beispiel: Umsatz unter 100`,"addStep.askPlaceholder":`Zum Beispiel: Die Person will ihr Geld zurück`,"addStep.whenEmpty":`Sag, wann der Schritt kommen soll.`,"addStep.messageIf":`Nur wenn: {text} – sonst geht es nach „{from}“ weiter wie bisher.`,"addStep.messageAsk":`KI entscheidet: {text} – sonst geht es nach „{from}“ weiter wie bisher.`,"addStep.here":`Hier einen Schritt einfügen`,"addStep.between":`Zwischen „{before}“ und „{after}“`,"addStep.after":`Nach „{title}“`,"addStep.first":`Als erster Schritt, vor „{title}“`,"addStep.message":`Neuer Schritt · {place}`,"addStep.messageAs":`Neuer Schritt ({kind}) · {place}`,"widget.missing":`Das Widget ist noch nicht gebaut.`,"widget.what":`Was soll das Widget zeigen? (optional)`,"widget.build":`Vom Assistenten bauen lassen`,"widget.upload":`Eigenes HTML hochladen`,"widget.buildMessage":`Bitte baue das Widget „{title}“. {what}`,"editor.chat":`Assistent`,"editor.flow":`Ablauf`,"editor.dropToAttach":`Loslassen, um es der Nachricht anzuhängen`,"editor.memory":`Gedächtnis`,"memory.explain":`Was der Wizard über alle Läufe hinweg weiß. Dazu gehören Notizen, die KI-Schritte mit dem Werkzeug „Seiten“ lesen und fortschreiben, und die Tabellen seiner geteilten Listen. Dieselben Daten findest du auch unter Daten.`,"memory.unused":`Noch nutzt kein Schritt das Gedächtnis. Bitte den Assistenten, dass sich ein KI-Schritt etwas merken soll.`,"memory.none":`Noch nichts gemerkt.`,"memory.add":`Notiz`,"memory.newNote":`Notiz`,"memory.back":`Gedächtnis`,"memory.testCopy":`Testläufe lesen das Gedächtnis, schreiben aber in eine eigene Kopie, die mit dem Lauf verschwindet.`,"editor.step":`Schritte`,"editor.runs":`Läufe`,"editor.reviewEditable":`bearbeitbar`,"editor.reviewRedo":`kann neu erstellt werden`,"editor.otherwise":`sonst`,"editor.next.title":`Nächster Schritt`,"editor.next.ways":{one:`Nächster Schritt · {count} Weg`,other:`Nächster Schritt · {count} Wege`},"editor.next.open":`Schritt öffnen`,"editor.next.then":`Danach`,"editor.next.fold":`Zuklappen`,"editor.next.unfold":`Aufklappen`,"editor.branch.ai":`KI`,"editor.branch.addWhen":`Bedingung`,"editor.branch.when":`Weiter, wenn`,"editor.branch.pick":`Wählen …`,"editor.branch.and":`und`,"editor.branch.statement":`Aussage`,"editor.branch.none":`Keine trifft klar zu`,"editor.branch.how":`Das entscheidet ein Entscheidungsmodell (Jev), wenn es eines dafür gibt. Sonst entscheidet das Sprachmodell der Klasse Classifier. Liegen die zwei wahrscheinlichsten Antworten weniger als 10 Punkte auseinander, gilt „keine“.`,"editor.branch.lastRun":`Im letzten Testlauf entschieden von {source}.`,"editor.branch.bySystemOne":`einem Entscheidungsmodell`,"editor.branch.byLlm":`dem Sprachmodell`,"editor.branch.notYet":`Ein Testlauf zeigt hier, wie die KI entschieden hat.`,"editor.branch.end":`Ende`,"editor.branch.max":`Höchstens so oft (sonst 10)`,"editor.branch.remove":`Verzweigung entfernen`,"editor.branch.addAsk":`KI entscheidet`,"editor.branch.newAsk":`Die Person möchte …`,"editor.whenFilled":`{field} ausgefüllt`,"editor.whenEmpty":`{field} leer`,"editor.whenContains":`{field} enthält {value}`,"editor.whenAsk":`entscheidet: {text}`,"editor.surfaceJson":`Ansicht (JSON)`,"editor.fieldAsk":`Oder: zeigen, wenn die KI das für zutreffend hält …`,"editor.atMost":`höchstens {count}×`,"editor.shownWhen":`Nur zeigen, wenn`,"editor.shownAlways":`Immer zeigen`,"editor.conditionValue":`Wert`,"editor.optionsFrom":`Auswahl aus früheren Daten`,"editor.optionsFixed":`Feste Auswahl`,"editor.op.equals":`ist`,"editor.op.notEquals":`ist nicht`,"editor.op.in":`ist eins von`,"editor.op.notEmpty":`ist ausgefüllt`,"editor.op.empty":`ist leer`,"editor.op.gt":`größer als`,"editor.op.lt":`kleiner als`,"editor.op.contains":`enthält`,"editor.conditionsMore":{one:`und {count} weitere Bedingung`,other:`und {count} weitere Bedingungen`},"tool.web_search":`Websuche`,"tool.web_fetch":`Webseiten lesen`,"tool.browser":`Browser`,"tool.sandbox":`Code & Shell`,"tool.image":`Bilder`,"tool.http":`API`,"tool.pages":`Seiten`,"editor.test":`Testen`,"editor.share":`Teilen`,"editor.published":`Live · Version {v}`,"editor.notPublished":`Noch nicht veröffentlicht`,"editor.composer":`Beschreibe, was sich ändern soll …`,"editor.attach":`Dateien anhängen`,"editor.detach":`Entfernen`,"editor.attached":`Angehängt`,"editor.thread":`Verlauf`,"editor.voice":`Diktieren`,"editor.voiceStop":`Diktat beenden`,"editor.listening":`Ich höre zu …`,"editor.transcribing":`Wird in Text umgewandelt …`,"editor.micDenied":`Das Mikrofon ist für diese Seite nicht freigegeben. Erlaube es in den Website-Einstellungen deines Browsers.`,"editor.building":`Baut den Ablauf …`,"editor.files":`Dateien`,"files.explain":`Diese Dateien nutzt dein Wizard bei jedem Lauf, etwa Widget-Code, Bibliotheken oder Preislisten. Der Assistent legt sie im Chat an. Du kannst auch eigene hochladen.`,"files.upload":`Hochladen`,"files.drop":`Zum Hochladen loslassen`,"files.count":{one:`{n} Datei · {size}`,other:`{n} Dateien · {size}`},"files.empty":`Noch keine Dateien. Zieh Dateien hierher oder bitte den Assistenten, ein Widget zu bauen.`,"files.download":`Herunterladen`,"files.delete":`Löschen`,"files.confirmDelete":`„{path}“ löschen?`,"files.none":`Dieser Wizard hat keine Dateien.`,"editor.thinking":`Denkt nach …`,"editor.chatBroken":`Die Verbindung ist abgebrochen. Was schon gebaut war, ist gespeichert. Schick die Nachricht noch einmal.`,"editor.issues":`Bevor du testest oder teilst, braucht der Wizard noch Korrekturen:`,"editor.fixWithChat":`Vom Assistenten beheben lassen`,"editor.models.blocking":`So kann der Wizard nicht starten. Es fehlen Modelle:`,"editor.models.optional":`Diese Schritte laufen so nicht. Wähle beim Testen einen Weg ohne sie oder richte die Modelle ein:`,"editor.models.settings":`Modelle einrichten`,"editor.prevStep":`Vorheriger Schritt`,"editor.nextStep":`Nächster Schritt`,"editor.deleteStep":`Schritt löschen`,"editor.holdToDelete":`Zum Löschen gedrückt halten`,"editor.deleting":`Wird gelöscht …`,"editor.moveUp":`Nach oben`,"editor.moveDown":`Nach unten`,"editor.noRuns":`Noch keine Läufe.`,"editor.restart":`Neu starten`,"editor.close":`Schließen`,"runDrawer.expand":`Ganzes Fenster`,"runDrawer.shrink":`Zurück an den Rand`,"editor.chatHello":`Beschreibe mir, was dein Wizard tun soll. Ich baue den Ablauf und du siehst ihn links als Diagramm.`,"shareRun.button":`Teilen`,"shareRun.title":`Ergebnis teilen`,"shareRun.email":`E-Mail`,"shareRun.more":`Mehr …`,"shareRun.until":`Der Link ist bis {date} gültig.`,"shareRun.kept":`Der Link gilt, bis du ihn zurückziehst.`,"shareRun.withdraw":`Link zurückziehen`,"sharePage.gone":`Dieser Link ist abgelaufen oder wurde zurückgezogen.`,"sharePage.own":`Selbst ausprobieren`,"sharePage.until":`Geteilt · verfügbar bis {date}`,"sharePage.shared":`Geteilt am {date}`,"share.publishing":`Wird veröffentlicht …`,"share.firstTitle":`Beim Teilen veröffentlicht`,"share.firstText":`Version {v} ist live. Hinein kommt nur, wer den Link bekommt.`,"share.notReady":`Noch nicht bereit zum Teilen`,"share.notReadyHint":`Beim ersten Teilen wird er veröffentlicht – vorher muss das stimmen:`,"share.stillBuilding":`Der Assistent baut ihn noch. Sobald er fertig ist, wird er beim Teilen veröffentlicht.`,"live.open":`Änderungen veröffentlichen`,"live.openShort":`Veröffentlichen`,"live.title":`Änderungen veröffentlichen`,"live.intro":`Andere sehen Version {v}. Veröffentlichst du, wird daraus Version {next}. Der Link bleibt gleich.`,"live.changed":`Was sich geändert hat`,"live.nothing":`Nichts, was Schritte oder Dateien ändert.`,"live.stepAdded":`Neuer Schritt „{name}“`,"live.stepRemoved":`Schritt „{name}“ entfernt`,"live.stepChanged":`„{name}“: {parts}`,"live.wizardChanged":`Der Wizard selbst: {parts}`,"live.order":`Reihenfolge der Schritte`,"live.fileAdded":`Datei „{name}“ neu`,"live.fileRemoved":`Datei „{name}“ entfernt`,"live.fileChanged":`Datei „{name}“ ersetzt`,"live.and":`und`,"live.part.title":`Titel`,"live.part.description":`Beschreibung`,"live.part.fields":`Felder`,"live.part.cta":`Knopf`,"live.part.instructions":`Anweisung`,"live.part.tools":`Werkzeuge`,"live.part.connections":`Verbindungen`,"live.part.output":`Ergebnis`,"live.part.model":`Modell`,"live.part.next":`was danach kommt`,"live.part.each":`Wiederholung`,"live.part.intro":`Begrüßung`,"live.part.avatar":`engenty`,"live.part.lists":`Listen`,"live.part.other":`Einstellungen`,"live.fixFirst":`Erst beheben, dann veröffentlichen`,"live.tested":`Getestet {when} – mit diesen Änderungen`,"live.testedFailed":`Der Test {when} mit diesen Änderungen hat nicht geklappt.`,"live.justNow":`gerade eben`,"live.seeRun":`Lauf ansehen`,"live.untested":`Noch nicht mit diesen Änderungen getestet.`,"live.test":`Jetzt testen`,"live.keepRunning":`Wer gerade mittendrin ist, macht mit Version {v} weiter.`,"live.cost":`Ein Lauf kostet jetzt etwa {after} statt {before} Credits.`,"live.cloud":`Version {v} kommt auch in der Cloud deines Kontos an.`,"live.cancel":`Abbrechen`,"live.go":`Veröffentlichen`,"live.going":`Wird veröffentlicht …`,"live.done":`Version {v} ist live`,"live.doneHint":`Neue Läufe starten mit Version {v}. Wer mittendrin war, macht mit Version {was} weiter.`,"live.doneCloud":`Neue Läufe starten mit Version {v}, hier und in der Cloud. Wer mittendrin war, macht mit Version {was} weiter.`,"live.close":`Fertig`,"share.titleOf":`„{title}“ teilen`,"share.access":`Zugriff`,"share.anyone":`Jeder mit dem Link`,"share.anyoneMenu":`kann ihn öffnen und ausfüllen`,"share.anyoneHint":`kann ihn öffnen und ausfüllen · bis zu {n} Läufe am Tag`,"share.onlyYou":`Nur du`,"share.onlyYouHint":`Der Link ist aus. Du testest ihn im Studio.`,"share.thisComputer":`Nur auf diesem Computer`,"share.thisComputerHint":`Andere erreichen ihn erst über die Cloud.`,"share.ways":`So erreichen ihn andere`,"share.change":`Ändern`,"share.copyLink":`Link`,"share.copyNumber":`Nummer`,"share.copyLinkFor":`Link für {name} kopieren`,"share.copyNumberFor":`Nummer für {name} kopieren`,"share.keywordTo":`„{keyword}“ an {number}`,"share.unset":`Noch nicht eingerichtet`,"share.setUp":`Einrichten`,"share.waiting":`Wartet`,"share.notInPlan":`Nicht in deinem Paket`,"share.seePlan":`{plan} ansehen`,"share.seePlans":`Pakete ansehen`,"share.offNote":`Solange nur du Zugriff hast, sehen alle anderen nur einen Hinweis.`,"share.opensSteps":`in Schritten`,"share.opensAs":`als {name}`,"share.linkNote":`Der kopierte Link öffnet ihn {how} und bietet die anderen Wege gleich mit an.`,"share.copyMain":`Link kopieren`,"share.notPublished":`Noch nicht veröffentlicht`,"share.changes":`Andere sehen Version {v}. Deine Änderungen sind noch nicht live.`,"share.localHint":`Hier läuft er nur auf diesem Computer. Mit einem Konto läuft er auch in der Cloud – dort öffnen ihn alle.`,"share.back":`Zurück`,"share.close":`Schließen`,"share.done":`Fertig`,"share.qrOpens":`Öffnet`,"share.qrMessage":`Mit der Handykamera scannen: {name} öffnet sich, das Stichwort steht schon da.`,"share.print":`Drucken`,"share.download":`Herunterladen`,"share.onWebsite":`Auf deiner Website`,"share.webShows":`Was zeigt die Website?`,"share.webWhere":`Wo auf der Seite?`,"share.webCode":`Code für deine Seite`,"share.copyCode":`Code kopieren`,"share.webNeedsLink":`Der Code für deine Seite braucht einen Link, den alle erreichen: veröffentlicht, für jeden mit dem Link.`,"share.wpLine":`WordPress? Mit unserem Plugin geht es ohne Code.`,"share.wpPackageLink":`Ohne Konto: als Wizard-Datei`,"share.place.inline":`In der Seite`,"share.place.inlineHint":`Er steht mitten auf deiner Seite, wo du den Code einfügst.`,"share.place.button":`Hinter einem Knopf`,"share.place.buttonHint":`Ein Knopf auf deiner Seite öffnet ihn in einem Fenster.`,"share.place.bubble":`Als schwebender Knopf`,"share.place.bubbleHint":`Er sitzt unten rechts auf jeder Seite, ein Klick öffnet ihn. Füg den Code am besten in die Fußzeile ein.`,"share.place.popout":`Als Chat-Knopf`,"share.place.popoutHint":`Er sitzt unten rechts auf jeder Seite, ein Klick öffnet den Chat. Füg den Code am besten in die Fußzeile ein.`,"share.runs":`Läufe`,"share.newLink":`Neuer Link`,"share.rotated":`Neuer Link erzeugt`,"share.link":`Link`,"share.copy":`Kopieren`,"share.limit":`Höchstens am Tag`,"translate.offer":`Übersetzung anbieten`,"translate.offerHint":`Wer eine andere Sprache spricht, kann den Wizard in seiner Sprache lesen. Die erste Übersetzung in eine Sprache ist ein kurzer KI-Aufruf, danach wird sie nur noch gelesen.`,"translate.byYou":`Von dir bearbeitet`,"translate.byMachine":`Maschinell übersetzt`,"translate.edit":`Übersetzung bearbeiten`,"translate.delete":`Übersetzung löschen`,"translate.none":`Noch keine Übersetzung. Sie entsteht, sobald jemand den Wizard in einer anderen Sprache öffnet.`,"translate.save":`Speichern`,"translate.editHint":`Was du hier änderst, bleibt auch nach dem nächsten Veröffentlichen, solange der Originaltext gleich bleibt. Platzhalter in geschweiften Klammern bleiben, wie sie sind.`,"share.rotate":`Neuen Link erzeugen`,"share.rotateHint":`Der alte Link und der QR-Code gehen danach nicht mehr.`,"share.website":`Website`,"share.openHere":`Auf diesem Computer testen`,"share.settings":`Einstellungen`,"share.rotateCloud":`Der alte Link und der QR-Code gehen danach nicht mehr – auch in der Cloud.`,"share.others":`Mit anderen teilen`,"share.details":`Details`,"teaser.link":`Dieser Link geht nur auf diesem Computer, solange die App läuft. Mit einem Konto läuft der Wizard auch auf engenty.ai – mit einem Link für alle.`,"teaser.models":`Ohne eigenen API-Key: Mit einem Konto laufen Text, Bilder und Videos über das Guthaben.`,"teaser.connect":`Konto verbinden`,"teaser.modelsLinked":`Oder über das Guthaben deines Kontos: Wähle unter Modelle „engenty-Guthaben“.`,"share.open":`Öffnen`,"share.qr":`QR-Code`,"share.qrHint":`Mit der Handykamera scannen: Der Wizard öffnet sich – in der App engenty wizards, wenn sie installiert ist.`,"share.code":`ID für die App:`,"share.readOnly":`Ob der Link aktiv ist und wie viele Läufe er am Tag zulässt, stellst du auf deinem Computer ein.`,"share.fit.no":`Nicht möglich: {steps}`,"chat.view":`Ansicht`,"chat.steps":`Schritte`,"chat.chat":`Chat`,"video.chat":`Chat`,"type.page":`Seite`,"type.agent":`KI-Schritt`,"type.generate":`Erzeugen`,"type.surface":`Ansicht`,"type.widget":`Widget`,"type.film":`Film`,"type.review":`Prüfen`,"type.result":`Ergebnis`,"run.regenerate":`Neue Variante`,"run.regenerateNote":`Was soll anders werden?`,"market.search":`Vorlage suchen …`,"market.hits":`Aus dem Marktplatz`,"market.all":`Alle`,"market.industry":`Branche`,"market.format":`Ergebnis`,"market.capability":`Fähigkeit`,"market.unavailable":`nicht eingerichtet`,"market.without":`Geht auch ohne: {list}`,"market.optional":`nicht eingerichtet, geht auch ohne`,"market.optionalHint":`Läuft hier ohne {list}: Antworten, die das bräuchten, sind im Wizard gesperrt. Einrichten kannst du es unter Modelle.`,"market.missing":`Hier nicht eingerichtet: {list}`,"market.plan":`Paket`,"market.pro":`Pro`,"market.proHint":`Braucht Plugins, die mit Pro auf engenty.ai dabei sind.`,"market.needsPro":`Mit Pro: braucht {list}`,"market.needsProHint":`Diese Vorlage braucht {list}. Die Plugins sind mit Pro und Team auf engenty.ai dabei.`,"market.missingHint":`Dafür fehlt hier ein Modell: {list}. Richte es unter Modelle ein.`,"market.none":`Keine Vorlage passt zu dieser Auswahl.`,"market.notFound":`Diese Vorlage gibt es nicht, oder sie wurde entfernt.`,"market.star":`Merken`,"market.starred":`Gemerkt`,"market.starHint":`Gemerkte Vorlagen liegen auf diesem Computer bereit, auch ohne Verbindung.`,"market.fromPlugin":`Kommt mit dem Plugin „{name}“`,"market.noneStarred":`Du hast noch keine Vorlage gemerkt.`,"market.offline":`Keine Verbindung zum Marktplatz: Du siehst die Vorlagen, die hier bereitliegen.`,"market.more":`Mehr anzeigen`,"market.reset":`Auswahl zurücksetzen`,"market.count":{one:`{n} Vorlage`,other:`{n} Vorlagen`},"market.countOf":`{n} von {all} Vorlagen`,"market.countOfShort":`{n} von {all}`,"market.resetShort":`Zurücksetzen`,"market.minutes":`≈ {n} Min.`,"market.credits":`≈ {n} Credits pro Lauf`,"market.needsUpdate":`Braucht eine neuere App`,"market.needsUpdateHint":`Diese Vorlage nutzt Funktionen, die deine App noch nicht kennt. Aktualisiere die App, dann kannst du sie verwenden.`,"market.use":`Mit dieser Vorlage starten`,"market.steps":`So läuft der Wizard ab`,"market.duration":`Dauer`,"market.durationHint":`vom Start bis zum Ergebnis, mit {n} Angaben von dir`,"market.result":`Ergebnis`,"market.creditsRange":`≈ {n} Credits`,"market.creditsHint":`pro Lauf geschätzt, selten mehr als das Doppelte`,"market.needs":`Braucht`,"market.cost":`Kosten`,"new.forWebsite":`Kleine Helfer für deine Website`,"run.download":`Herunterladen`,"run.required":`Pflichtfeld`,"settings.title":`Einstellungen`,"settings.name":`Name`,"settings.mcp":`Verbundene Systeme`,"settings.mcpHint":`KI-Schritte können in diese Systeme schreiben oder daraus lesen – nur, wenn du sie im Schritt freigibst.`,"settings.addServer":`System verbinden`,"settings.serverName":`Name`,"settings.serverUrl":`MCP-URL`,"settings.serverHeader":`Authorization-Header (optional)`,"settings.save":`Speichern`,"settings.saved":`Gespeichert`,"settings.delete":`Space löschen`,"settings.noProject":`Hier erscheint dein Space, sobald du auf deinem Computer den ersten Wizard veröffentlichst.`,"settings.copy":`Kopieren`,"settings.copied":`Kopiert`,"settings.lastUsed":`zuletzt {when}`,"settings.neverUsed":`noch nie benutzt`,"settings.revoke":`API-Key löschen`,"mcp.appsDisconnect":`Austragen`,"plugins.title":`Plugins`,"plugins.hint":`Plugins erweitern diese App um Seiten, Einstellungen und Werkzeuge für Schritte. Sie laufen mit allen Rechten der App: Installiere nur, was du kennst.`,"plugins.hintManaged":`Diese Plugins sind für dein Konto freigeschaltet.`,"plugins.reload":`Neu laden`,"plugins.rescan":`Neu suchen`,"plugins.tools":`Werkzeuge für Schritte`,"plugins.serverFailed":`Der Server-Teil ließ sich nicht laden: {error}`,"plugins.studioFailed":`Der Studio-Teil ließ sich nicht laden: {error}`,"plugins.problems":`Fehlerhafte Plugins`,"plugins.crashed":`Dieser Teil eines Plugins ist abgestürzt.`,"plugins.none":`Keine eigenen Plugins installiert.`,"pro.title":`Pro-Module`,"pro.hint":`Diese Module gehören zu deinem Paket (Pro, Team) und laufen auf deinem Computer. Sie kommen von deinem engenty-Konto und sind von engenty signiert. Sie bleiben aktiv, solange dein Paket sie enthält – ohne Internet bis zu einer Woche.`,"pro.check":`Paket prüfen`,"pro.notLinked":`Verbinde dein engenty-Konto (Einstellungen → Konto), um die Module deines Pakets hier zu nutzen.`,"pro.plan":`Paket: {plan}`,"pro.confirmedUntil":`bestätigt bis {date}`,"pro.plans":`Pakete`,"pro.on":`Aktiv`,"pro.notInPlan":`Nicht in deinem Paket`,"pro.install":`Installieren`,"pro.update":`Aktualisieren`,"pro.remove":`Entfernen`,"pro.none":`Für diese Version ({runtime}) gibt es noch keine Pro-Module.`,"pro.held.plan":`Nicht in deinem Paket`,"pro.held.release":`Wird für diese Version neu geladen`,"pro.held.unconfirmed":`Paket nicht bestätigt – online prüfen`,"integrate.nav":`Einbinden`,"integrate.title":`Deine Wizards in deinen KI-Apps`,"integrate.intro":`Starte Wizards direkt im Chat von Claude, ChatGPT, Cursor und Co. Dort füllst du die Schritte aus und bekommst das Ergebnis. Die KI läuft über das Abo, das du schon hast.`,"integrate.introManaged":`Starte deine Wizards direkt im Chat von claude.ai, ChatGPT, Claude Desktop und Co. Dort füllst du die Schritte aus und bekommst das Ergebnis.`,"integrate.groupHere":`Auf diesem Computer`,"integrate.groupCloud":`Über engenty.ai`,"integrate.groupBrowser":`Im Browser`,"integrate.groupDesktop":`Auf deinem Computer`,"integrate.groupMore":`Weitere Apps`,"integrate.groupShare":`Teilen`,"integrate.shareLink":`Per Link teilen`,"integrate.shareSite":`Auf einer Website`,"integrate.wpIntro":`Das Plugin „engenty wizards“ bringt deine veröffentlichten Wizards auf eine WordPress-Seite: als Block, Shortcode, Elementor-Widget oder schwebenden Knopf unten rechts. Ergebnisse, Kontakte und Termine stehen dann auch im WordPress-Admin.`,"integrate.wpInstall":`1 · Plugin installieren`,"integrate.wpInstallHint":`In WordPress unter Plugins → Installieren → Plugin hochladen die ZIP-Datei wählen und aktivieren.`,"integrate.wpDownload":`engenty-wizards.zip laden`,"integrate.wpConnect":`2 · Verbinden`,"integrate.wpConnectHint":`Klick im WordPress-Admin unter „engenty“ auf „Eigene KI erstellen“ (neues Konto) oder „Anmelden“. Danach liest engenty die Website ein: Name, Logo, Farben, Kontaktdaten und ihre Seiten als Wissen.`,"integrate.wpConnectLocal":`Das Plugin verbindet sich mit einem Konto auf engenty.ai, nicht mit diesem Computer. Verknüpfe hier dein Konto und veröffentliche deine Wizards dorthin. Dann wählst du sie in WordPress aus.`,"integrate.wpPlace":`3 · Auf die Seite bringen`,"integrate.wpPlaceHint":`Block „engenty Wizard“, das gleichnamige Elementor-Widget, der schwebende Knopf aus den Einstellungen des Plugins oder dieser Shortcode mit der ID des Wizards:`,"integrate.wpSampleLabel":`Anfrage starten`,"share.wpPlugin":`Plugin laden`,"share.wpLocal":`Ohne Konto, auf der Website selbst`,"share.wpLocalHint":`Importierst du ihn als Wizard-Datei in ein WordPress 7, nutzt der Wizard den KI-Anbieter der Website und braucht kein Konto. Was er dort braucht, laut Galerie:`,"share.wpPackage":`Wizard-Datei herunterladen`,"share.wpPackageDraft":`Entwurf als Wizard-Datei`,"share.wpKnowledge":`Wissen mitnehmen`,"share.wpKnowledgeHint":`Die Seiten dieses Space, in denen der Wizard sonst nachliest, kommen als Dateien mit (bis 2 MB).`,"share.wpFull":`Läuft dort vollständig`,"share.wpLess":`Läuft mit weniger`,"share.wpNo":`Braucht ein Konto`,"share.wpNeedsAccount":`Mit Konto: braucht {list}`,"share.wpHelp":`Im Plugin: engenty → Wizards → Importieren. Ohne Konto bleiben die Ergebnisse in WordPress. Kontakte, Termine und Dateien gibt es nur über das Konto.`,"need.full":`läuft`,"need.missing":`nicht eingerichtet`,"need.optional":`geht auch ohne`,"need.lists":`Listen, die der Wizard zwischen Läufen behält`,"need.memory":`Das Gedächtnis des Wizards`,"need.each":`Ein Lauf je Eintrag (hier nacheinander)`,"need.field:slot":`Terminwahl aus freien Zeiten`,"need.asset:document":`Dokumente erzeugen (PDF, Word)`,"need.asset:dashboard":`Dashboards erzeugen`,"need.tool:pages":`Die Seiten des Space lesen`,"need.format":`Ergebnis als {format}`,"integrate.wpLocal":`Ohne Konto`,"integrate.wpLocalHint":`Ein WordPress 7 mit eigenem KI-Anbieter (Einstellungen → Connectors) lässt Wizards auch ohne Konto laufen. Das geht mit mitgelieferten Vorlagen oder mit einer Wizard-Datei aus dem Teilen-Dialog eines Wizards. Dort steht je Wizard, ob er ganz, mit weniger oder nur mit Konto läuft.`,"integrate.wpPro":`Mit Pro`,"integrate.wpProHint":`Kontakte und Termine aus deinen Wizards stehen im WordPress-Admin. Wizards aus Vorlagen legst du direkt in WordPress an.`,"integrate.soon":`bald`,"integrate.found":`Auf diesem Computer gefunden`,"integrate.stateWorks":`Funktioniert`,"integrate.stateAdded":`Eingetragen, noch nicht getestet`,"integrate.stateNone":`Noch nicht eingerichtet`,"integrate.outRun":`Wizards im Chat starten`,"integrate.outWidget":`Wizard erscheint im Chat`,"integrate.outText":`Wizards als Text im Chat`,"integrate.outSignIn":`Ohne API-Key – du meldest dich an`,"integrate.view":`Ansehen`,"integrate.testIt":`Testen`,"integrate.connectShort":`Verbinden`,"integrate.cloudTitle":`claude.ai und ChatGPT`,"integrate.cloudText":`Laufen im Browser und erreichen deinen Computer nicht. Mit deinem engenty-Konto kommen deine Wizards trotzdem dorthin.`,"integrate.cloudButton":`Über engenty.ai verbinden`,"integrate.steps":`So geht’s`,"integrate.connect":`In {app} eintragen`,"integrate.connectHint":`Trägt engenty wizards in die Einstellungen von {app} ein.`,"integrate.connected":`In {app} eingetragen`,"integrate.notInstalled":`{app} ist auf diesem Computer nicht zu finden. Eintragen geht trotzdem – es wirkt, sobald {app} da ist.`,"integrate.details":`Details`,"integrate.restart":`{app} neu starten`,"integrate.restartHint":`Ganz beenden und wieder öffnen. Wir merken es von selbst – du musst hier nichts klicken.`,"integrate.reload":`Lade die Server in {app} neu oder starte {app} neu. Wir merken es von selbst.`,"integrate.waiting":`Wartet auf {app}`,"integrate.try":`Im Chat ausprobieren`,"integrate.tryHint":`Schreib in einem neuen Chat:`,"integrate.askTool":`Welche Wizards habe ich in engenty?`,"integrate.elsewhere":`{app} auf einem anderen Computer?`,"integrate.byAddress":`Mit Adresse und API-Key verbinden`,"integrate.backHere":`Doch auf diesem Computer verbinden`,"integrate.keyCreate":`API-Key für {app} erstellen`,"integrate.keyHint":`Damit meldet sich {app} an. Er wird nur einmal angezeigt und steht dann gleich im Befehl.`,"integrate.keyReady":`API-Key erstellt – er steht schon im Befehl.`,"integrate.add":`Server eintragen`,"integrate.addressLocal":`Nur auf diesem Computer erreichbar, und nur solange engenty wizards läuft.`,"integrate.works":`Funktioniert`,"integrate.next":`Probier als Nächstes`,"integrate.nextHint":`Kopier einen Satz in einen neuen Chat in {app}.`,"integrate.labelAsk":`Fragen`,"integrate.labelRun":`Ausführen`,"integrate.labelBuild":`Bauen`,"integrate.labelExplain":`Erklären`,"integrate.askRun":`Starte meinen Wizard „{title}“`,"integrate.askBuild":`Bau mir einen Wizard für Newsletter-Entwürfe`,"integrate.askExplain":`Was macht der Wizard „{title}“?`,"integrate.textOnly":`{app} zeigt Wizards als Text: Seiten und Fragen kommen als Nachrichten. Den Wizard selbst als Fenster im Chat zeigen Claude Desktop, Cursor und VS Code.`,"integrate.addedIn":`Eingetragen in {app}`,"integrate.remoteWhy":`{app} läuft auf den Servern seines Herstellers und erreicht deinen Computer nicht. Deine Wizards auf engenty.ai erreicht es schon.`,"integrate.viaAccount":`Über dein engenty-Konto verbinden`,"integrate.tileHere":`Dieser Computer`,"integrate.tileHereText":`Hier baust du weiter wie bisher.`,"integrate.tileCloudText":`Hier laufen deine veröffentlichten Wizards.`,"integrate.tileAppText":`Verbindet sich mit engenty.ai und startet sie im Chat.`,"integrate.linkAccount":`Mit engenty.ai verbinden`,"integrate.linkHint":`Danach zeigen wir dir die Schritte in {app}.`,"integrate.noAccount":`Lieber ohne Konto?`,"integrate.useDesktop":`Claude Desktop geht direkt hier – ein Klick`,"integrate.linked":`Über dein Konto {email}: {app} sieht die Wizards, die du hier veröffentlichst.`,"integrate.openConnectors":`„Konnektoren“ in claude.ai öffnen`,"integrate.open":`{app} öffnen`,"integrate.claudeAiWhere":`Dort: „Eigenen Konnektor hinzufügen“`,"integrate.desktopWhere":`In Claude Desktop: Einstellungen → „Konnektoren“ → „Eigenen Konnektor hinzufügen“`,"integrate.chatgptWhere":`In ChatGPT: Einstellungen → Apps & Connectors → Erweitert → Entwicklermodus, dann „Erstellen“`,"integrate.nameAddress":`Name und Adresse eintragen`,"integrate.name":`Name`,"integrate.address":`Adresse`,"integrate.allow":`Auf „Verbinden“ klicken, anmelden, erlauben`,"integrate.allowHint":`Ein Fenster von engenty öffnet sich. Du meldest dich an und klickst „Erlauben“. So sieht es aus:`,"integrate.allowFirst":`Beim ersten Aufruf anmelden und erlauben`,"integrate.allowFirstHint":`{app} öffnet ein Fenster von engenty. Du meldest dich an und klickst „Erlauben“.`,"integrate.consentPreview":`{app} möchte auf deine Wizards zugreifen`,"integrate.checkSeen":`Verbunden`,"integrate.checkTool":`Werkzeug benutzt`,"integrate.checkWidget":`Wizard im Chat gezeigt`,"integrate.revoke":`Trennen geht jederzeit in deinem Konto – der Zugriff endet sofort.`,"integrate.revokeLink":`Verbundene Programme`,"integrate.needsPublic":`{app} verbindet sich von den Servern seines Herstellers aus. Das geht nur, wenn dieser Server öffentlich über HTTPS erreichbar ist.`,"integrate.file":`In {file} eintragen:`,"integrate.vscode":`In VS Code: „MCP: Open User Configuration“, dann eintragen:`,"integrate.chatgpt":`In ChatGPT: Einstellungen → Apps & Connectors → Erweitert → Entwicklermodus, dann „Erstellen“ mit dieser Adresse:`,"integrate.generic":`In den MCP-Einstellungen der App einen Server mit dieser Adresse anlegen (Streamable HTTP):`,"mcp.terminal":`Im Terminal ausführen:`,"mcp.ccPlugin":`Optional das Plugin – es bringt den Befehl /wizard mit:`,"mcp.codexKey":`Im Terminal ausführen – Codex liest den API-Key aus einer Umgebungsvariable:`,"mcp.claudeAi":`In claude.ai: Einstellungen → „Konnektoren“ → „Eigenen Konnektor hinzufügen“, dann diese Adresse eintragen:`,"mcp.oauth":`Kein API-Key nötig: Beim ersten Aufruf meldet sich deine App im Browser an.`,"mcp.keys":`API-Keys`,"mcp.keysHint":`Jeder API-Key meldet eine App an und hat alle Rechte – behandle ihn wie ein Passwort. Löschst du ihn, ist die App abgemeldet.`,"editor.viaClient":`Über {client}`,"editor.changedVia":`Geändert über {client}`,"editor.flowChanged":`Ablauf aktualisiert`,"editor.merged":`Mit Änderungen von außen zusammengeführt`,"common.remove":`Entfernen`,"common.back":`Zurück`,"editor.fixIssuesAsk":`Bitte behebe diese Probleme im Wizard:`,"runs.status.waiting_input":`wartet`,"runs.status.running":`läuft`,"runs.status.done":`fertig`,"runs.status.failed":`fehlgeschlagen`,"runs.status.cancelled":`abgebrochen`,"step.new.page":`Neue Seite`,"step.new.question":`Neue Frage`,"step.new.agent":`KI-Schritt`,"step.new.agentTask":`Beschreibe die Aufgabe …`,"step.new.image":`Bild erzeugen`,"step.new.imagePrompt":`Beschreibe das Bild …`,"inspector.kind.text":`Kurzer Text`,"inspector.kind.textarea":`Langer Text`,"inspector.kind.number":`Zahl`,"inspector.kind.select":`Auswahl`,"inspector.kind.multiselect":`Mehrfachauswahl`,"inspector.kind.date":`Datum`,"inspector.kind.email":`E-Mail`,"inspector.kind.url":`Link`,"inspector.kind.toggle":`Ja/Nein`,"inspector.kind.color":`Farbe`,"inspector.kind.image":`Bild-Upload`,"inspector.kind.file":`Datei-Upload`,"inspector.kind.items":`Positionen (Tabelle)`,"inspector.kind.connection":`Konto verbinden`,"inspector.kind.list":`Gespeicherte Liste`,"inspector.kind.location":`Standort`,"inspector.kind.audio":`Sprachnotiz`,"inspector.kind.signature":`Unterschrift`,"inspector.kind.slot":`Termin`,"inspector.whichAccount":`Welches Konto?`,"inspector.whichList":`Welche Liste?`,"inspector.multipleFiles":`Mehrere Dateien`,"inspector.howMany":`Wie viele?`,"inspector.atLeast":`Mindestens`,"inspector.atMost":`Höchstens`,"inspector.camera":`Auch mit der Kamera aufnehmen`,"inspector.cameraVideo":`Kamera nimmt auch kurze Videos auf`,"inspector.scan":`QR- oder Barcode scannen`,"inspector.placeholder":`Platzhalter`,"inspector.help":`Hilfetext`,"inspector.widgetPreview":`Vorschau mit Beispieldaten`,"inspector.htmlFile":`HTML-Datei`,"inspector.sample":`Beispieldaten`,"inspector.none":`keine`,"inspector.size":`Größe`,"inspector.widgetData":`Daten für das Widget`,"inspector.value":`Wert`,"inspector.questions":`Fragen`,"inspector.addQuestion":`Frage hinzufügen`,"inspector.task":`Auftrag`,"inspector.insertAnswers":`Antworten einsetzen mit`,"inspector.insertField":`feld`,"inspector.insertResults":`, frühere Ergebnisse mit`,"inspector.tools":`Werkzeuge`,"inspector.personAccounts":`Konten der Person`,"inspector.personAccountsHint":`Konten, die die Person im Lauf verbindet. Lesen darf der Schritt frei, Änderungen erst nach ihrem Ja.`,"inspector.systems":`Verbundene Systeme`,"inspector.systemsHint":`Nur freigegebene Systeme sind in diesem Schritt erreichbar.`,"inspector.output":`Ergebnis`,"inspector.working":`Text während der Arbeit, z. B. „Recherchiert …“`,"inspector.whatMade":`Was wird erzeugt?`,"inspector.options":`Optionen`,"inspector.style":`Stil, z. B. „helle Fotografie, minimalistisch“`,"inspector.duration":`Länge (Sekunden)`,"inspector.resolution":`Auflösung`,"inspector.template":`Vorlage`,"inspector.whatShown":`Was wird gezeigt?`,"inspector.editable":`Text direkt bearbeitbar`,"inspector.redo":`Neue Variante anfordern`,"inspector.ending":`Abschluss`,"inspector.endMessage":`Nachricht am Ende`,"inspector.title":`Titel`,"inspector.description":`Beschreibung`,"inspector.intro":`Begrüßung`,"inspector.introHint":`Steht über der ersten Seite.`,"inspector.lang":`Sprache`,"inspector.langHint":`In dieser Sprache spricht der Wizard: seine Meldungen, Zahlen und Datumsangaben.`,"inspector.langAuto":`Automatisch, aus den Texten`,"inspector.remembers":`Merkt sich für jede Person`,"inspector.remembersHint":`Bleibt zwischen den Läufen erhalten – getrennt für jede Person, die den Wizard nutzt. Ändern kannst du das im Chat.`,"inspector.account":`Konto`,"inspector.list":`Liste`,"inspector.stepDescription":`Erklärung unter dem Titel (optional)`,"composer.send":`Senden`,"composer.stop":`Anhalten`,"composer.sendBusy":`Senden: vor dem nächsten Schritt (Enter) – {keys}: erst, wenn die Antwort fertig ist`,"dictation.settings":`Mikrofon und Aufnahme`,"dictation.microphone":`Mikrofon`,"dictation.default":`Systemstandard`,"dictation.mic":`Mikrofon {n}`,"dictation.showMics":`Namen der Mikrofone zeigen …`,"dictation.hold":`Zum Aufnehmen gedrückt halten`,"dictation.holdToTalk":`Zum Sprechen gedrückt halten`,"dictation.speak":`Sprechen`,"dictation.stop":`Stopp`,"dictation.writing":`Schreibt …`,"date.pick":`Datum wählen`,"time.pick":`Uhrzeit wählen`,"time.hour":`Stunde`,"time.minute":`Minute`,"date.pickRange":`Tag oder Zeitraum wählen`,"date.pickStart":`Ersten Tag wählen`,"date.pickEnd":`Letzten Tag wählen – oder denselben für einen Tag`,"date.today":`Heute`,"date.clear":`Leeren`,"date.prev":`Voriger Monat`,"date.next":`Nächster Monat`,"connectors.title":`Connectors`,"connectors.hint":`Dienste, in denen ein Wizard für die Person arbeiten kann. Sie verbindet beim Lauf ihr eigenes Konto. Die wichtigsten sind eingebaut. Jeden weiteren findest du im Verzeichnis integrations.sh und importierst ihn aus seiner OpenAPI-Beschreibung oder seinem MCP-Server.`,"connectors.imported":`Aus dem Verzeichnis`,"connectors.noneImported":`Hier ist kein Connector aus dem Verzeichnis importiert.`,"connectors.notSetUp":`nicht eingerichtet`,"connectors.setup":`Es fehlen noch diese Einstellungen:`,"connectors.search":`Dienst suchen, z. B. Notion, Stripe, GitHub`,"connectors.find":`Suchen`,"connectors.none":`Nichts gefunden.`,"connectors.import":`Importieren`,"connectors.exists":`Schon importiert.`,"connectors.ownClient":`Eigener OAuth-Client`,"connectors.refresh":`Aktionen neu laden`,"connectors.remove":`Entfernen`,"connectors.actions":`{n} Aktionen, {r} lesend`,"connectors.pending":`Aktionen erscheinen, sobald ein Konto verbunden ist`,"connectors.needsClient":`Dieser Dienst braucht einen OAuth-Client (ID und Secret). Entfernen und mit „Eigener OAuth-Client“ neu importieren.`,"connectors.authNone":`ohne Anmeldung`,"connectors.authOauth":`Anmeldung per OAuth`,"connectors.authKey":`API-Key`,"connectors.group.read":`liest`,"connectors.group.write":`ändert`,"connectors.group.destructive":`löscht`,"camera.missing":`An diesem Gerät wurde keine Kamera gefunden. Lade stattdessen ein Foto hoch.`,"camera.busy":`Die Kamera wird gerade von einer anderen App verwendet. Schließ sie und versuch es noch einmal.`,"location.unavailable":`Dein Gerät konnte den Standort gerade nicht bestimmen. Versuch es im Freien noch einmal oder tipp die Adresse ein.`,"location.timeout":`Das hat zu lange gedauert. Versuch es noch einmal oder tipp die Adresse ein.`,"install.app.offer":`Installiere das Studio als App: eigenes Fenster, eigenes Symbol im Dock oder in der Taskleiste.`,"install.app.browser":`In Chrome oder Edge lässt sich das Studio als App installieren: eigenes Fenster, eigenes Symbol.`,"install.app.action":`Als App installieren`,"install.app.close":`Schließen`,"install.app.how.ios":`Tippe in Safari auf „Teilen“ und dann auf „Zum Home-Bildschirm“. Das Studio liegt dann wie eine App auf deinem Home-Bildschirm.`,"install.app.how.mac":`Wähle in Safari Ablage → Zum Dock hinzufügen. Das Studio bekommt ein eigenes Fenster und ein Symbol im Dock.`,"install.app.how.android":`Tippe in Chrome auf das Menü ⋮ und dann auf „App installieren“ oder „Zum Startbildschirm hinzufügen“.`,"install.app.how.chromium":`Klicke in der Adressleiste auf das Installieren-Symbol oder wähle im Menü „App installieren“. Das Studio bekommt ein eigenes Fenster und ein Symbol.`,"common.loading":`Lädt …`,"common.error":`Fehler`,"data.hint":`Tabellen und Seiten, die der Space und seine Wizards behalten.`,"data.all":`Alle Daten`,"data.own":`Allgemein`,"data.table":`Tabelle`,"data.page":`Seite`,"data.newTable":`Neue Tabelle`,"data.newPage":`Neue Seite`,"data.title":`Titel`,"data.owner":`Gehört zu`,"data.create":`Anlegen`,"data.empty":`Noch keine Tabellen und Seiten. Leg eine an – bald schreiben auch deine Wizards hier.`,"data.rows":{one:`{n} Zeile`,other:`{n} Zeilen`},"data.addRow":`Zeile`,"data.noRows":`Noch keine Zeilen.`,"data.deleteRow":`Zeile löschen`,"data.deleteTable":`Tabelle löschen`,"data.deletePage":`Seite löschen`,"data.confirmDelete":`„{title}“ löschen?`,"data.newColumn":`Neue Spalte`,"data.columnName":`Name`,"data.columnType":`Typ`,"data.required":`Pflichtfeld`,"data.deleteColumn":`Spalte löschen`,"data.removeOption":`Entfernen`,"data.fromList":`Eine Liste des Wizards: Jeder Lauf schreibt hier hinein. Die Spalten kommen aus dem Wizard.`,"data.badCell":`Dieser Wert passt nicht in „{column}“ und ist nicht gespeichert.`,"data.type.text":`Text`,"data.type.number":`Zahl`,"data.type.date":`Datum`,"data.type.duration":`Dauer`,"data.type.select":`Auswahl`,"data.type.boolean":`Ja / Nein`,"data.text.single":`Eine Zeile`,"data.text.multiline":`Mehrere Zeilen`,"data.number.integer":`Ganze Zahl`,"data.number.decimal":`Dezimalzahl`,"data.number.percent":`Prozent`,"data.number.currency":`Betrag`,"data.currency":`Währung (z. B. EUR)`,"data.date.date":`Datum`,"data.date.datetime":`Datum und Uhrzeit`,"data.date.time":`Uhrzeit`,"data.unit":`Eingabe in`,"data.unit.milliseconds":`ms`,"data.unit.seconds":`Sekunden`,"data.unit.minutes":`Minuten`,"data.unit.hours":`Stunden`,"data.unit.days":`Tage`,"data.options":`Auswahlmöglichkeiten, eine je Zeile`,"data.multiple":`Mehrere wählbar`,"data.write":`Schreiben`,"data.preview":`Vorschau`,"data.pageEmpty":`Diese Seite ist noch leer.`,"data.markdownHint":`Markdown: # Überschrift, **fett**, - Liste`,"space.holds.intro":`Ein Space bündelt, was zusammengehört – eine Firma, eine Marke oder ein Vorhaben. Jeder Wizard gehört zu genau einem Space.`,"space.holds.wizards":`Seine eigene Liste – die Startseite und die Suche zeigen nur sie.`,"space.holds.info":`Name, Logos, Farben und Fakten, die seine Wizards kennen.`,"space.holds.knowledge":`Dokumente, Tabellen und Seiten, die sich seine Wizards teilen.`,"space.holds.connectors":`Die Connectors, die seine Wizards nutzen.`,"space.holds.results":`Die Läufe seiner Wizards.`,"space.holds.shared":`Konto, Modelle und Plugins gelten für alle Spaces.`,"space.info":`Info & Marke`,"space.knowledge":`Wissen`,"space.data":`Daten`,"space.results":`Ergebnisse`,"space.resultsAll":`Alle Ergebnisse`,"space.resultsHint":`Abgeschlossene Läufe deiner Wizards, die neuesten zuerst.`,"space.resultsEmpty":`Noch keine Ergebnisse. Ein Lauf steht hier, sobald er fertig ist.`,"space.resultCredits":{one:`{n} Credit`,other:`{n} Credits`},"space.resultsSearch":`Suchen: Wizard, Eingaben, Ergebnis …`,"space.resultsModeAll":`Live & Test`,"space.resultsAnyTime":`Jederzeit`,"space.resultsDay":`Letzte 24 Stunden`,"space.resultsDays":`Letzte {n} Tage`,"space.resultsNone":`Nichts gefunden.`,"space.resultFiles":{one:`{n} Datei`,other:`{n} Dateien`},"project.rename":`Space umbenennen`,"project.saving":`Speichert …`,"project.base":`Grundlagen`,"project.baseHint":`Wer hinter den Wizards steht. Jeder KI-Schritt kennt das.`,"project.title":`Titel`,"project.titleHint":`Firma, Marke oder Vorhaben – so sehen es auch alle, die deine Wizards nutzen.`,"project.about":`Über`,"project.aboutHint":`Was du machst, für wen und in welchem Ton du schreibst.`,"project.logos":`Logos`,"project.logosHint":`Das erste Logo sehen alle, die deine Wizards nutzen. Eine Beschreibung sagt, wofür eine Variante gedacht ist.`,"project.logoAdd":`Logo`,"project.logoMain":`Hauptlogo`,"project.logoMakeMain":`Als Hauptlogo setzen`,"project.logoSectionAdd":`Logo-Abschnitt`,"project.logoSectionTitle":`Titel, z. B. Logomark`,"project.logoSectionUse":`Wann diese Logos passen, z. B. kleine Flächen und App-Icons`,"project.sectionUntitled":`Abschnitt ohne Titel`,"project.sectionRemove":`Abschnitt entfernen`,"project.logoSectionRemoveConfirm":`„{name}“ entfernen? Seine Logos kommen zu den Standardlogos.`,"project.sectionMove":`Verschieben`,"project.sectionStandard":`Standard`,"project.rules":`Regeln`,"project.ruleNew":`Neue Regel`,"project.logoRulePlaceholder":`z. B. Logo nicht strecken oder verzerren`,"project.rulesHint":`Nur was deine Marke vorgibt. Ein Klick auf das Zeichen davor ändert es.`,"project.markBullet":`Punkt`,"project.markDo":`So ja`,"project.markDont":`So nicht`,"project.markQuestion":`Zu klären`,"project.markImportant":`Wichtig`,"project.markNumber":`Nummeriert`,"project.logoUpload":`Logo hochladen`,"project.logoFromUrl":`Logo von URL`,"project.logoUrl":`Adresse`,"project.logoUrlHint":`Die Adresse eines Bildes – oder einer Webseite: Dann zeigt engenty die Logos darauf zur Auswahl.`,"project.logoFound":`Logos auf der Seite`,"project.logoFoundHint":`Wähle eines oder mehrere. Am besten SVG oder ein großes PNG.`,"project.logoNoneFound":`Auf dieser Seite ist kein Logo zu finden.`,"project.addMany":`{n} hinzufügen`,"project.colors":`Farben`,"project.colorsHint":`Die erste Farbe ist der Akzent in Dokumenten, Dashboards und auf öffentlichen Seiten.`,"project.colorNew":`Neue Farbe`,"project.colorsFromUrl":`Farben von URL`,"project.colorsUrlHint":`Die Adresse einer Webseite – engenty liest die Farben aus ihrem Stylesheet.`,"project.colorsFound":`Farben der Seite`,"project.colorsFoundHint":`Wähle die Farben deiner Marke. Wofür sie da sind, trägst du danach ein.`,"project.colorsNoneFound":`Auf dieser Seite sind keine Farben zu finden.`,"project.colorsEmpty":`Noch keine Farben.`,"project.colorSectionAdd":`Farbabschnitt`,"project.colorSectionTitle":`Titel, z. B. Illustration`,"project.kindColors":`Farben`,"project.kindGradients":`Verläufe`,"project.kindPatterns":`Muster`,"project.colorAdd":`Farbe`,"project.fillUseLabel":`Wofür`,"project.gradientUse":`Wofür, z. B. Header und Titelfolien`,"project.patternUse":`Wofür, z. B. Hintergrund von Social-Posts`,"project.gradientSectionAdd":`Verläufe`,"project.gradientSectionTitle":`Verläufe`,"project.gradientSectionTitlePlaceholder":`Titel, z. B. Verläufe`,"project.patternSectionAdd":`Muster`,"project.patternSectionTitle":`Muster`,"project.patternSectionTitlePlaceholder":`Titel, z. B. Hintergründe`,"project.fillSectionRemoveConfirm":`„{name}“ mit allem darin entfernen?`,"project.gradientAdd":`Verlauf`,"project.gradientEdit":`Verlauf bearbeiten`,"project.gradientName":`Name`,"project.gradientNamePlaceholder":`z. B. Horizontal warm`,"project.gradientType":`Art`,"project.gradientLinear":`Linear`,"project.gradientRadial":`Radial`,"project.gradientConic":`Konisch`,"project.gradientAngle":`Winkel`,"project.gradientStops":`Farbpunkte`,"project.gradientAt":`Position`,"project.gradientStopAdd":`Farbpunkt`,"project.gradientFromBrand":`Aus den Markenfarben:`,"project.gradientCssHint":`Oder CSS einfügen: linear-, radial- oder conic-gradient mit Hex-Farben.`,"project.gradientCssError":`Das ist kein Verlauf mit Hex-Farben, den engenty lesen kann.`,"project.gradientCopy":`CSS kopieren`,"project.gradientCopied":`Kopiert`,"project.patternAdd":`Muster`,"project.patternName":`Name`,"project.patternTile":`Als Kachel wiederholen`,"project.patternFill":`Fläche füllen`,"project.patternNew":`Neues Muster`,"project.patternEdit":`Muster bearbeiten`,"project.patternPick":`Bild hierher ziehen oder auswählen`,"project.patternReplace":`Bild ersetzen`,"project.patternNamePlaceholder":`z. B. Bohnen`,"project.patternShow":`Darstellung`,"project.gradientNew":`Neuer Verlauf`,"project.gradientDescribe":`Verlauf beschreiben`,"project.gradientDescribeNew":`Beschreibe den Verlauf, z. B. „von Primär zu Text, diagonal“`,"project.gradientDescribeChange":`Was soll anders sein? z. B. „weicher, mehr Orange“`,"project.gradientDescribeMake":`Erstellen`,"project.gradientDescribeApply":`Ändern`,"project.gradientDescribeHint":`engenty setzt daraus Art, Winkel und Farbpunkte – danach kannst du alles von Hand ändern.`,"project.download":`Herunterladen`,"project.colorSectionRemoveConfirm":`„{name}“ entfernen? Seine Farben kommen zu den Standardfarben.`,"project.colorRulePlaceholder":`z. B. Akzent nie als Fläche hinter Fließtext`,"project.colorName":`z. B. Primär – Knöpfe und Überschriften`,"project.colorUse":`Beschreibe, wie engenty diese Farbe einsetzen soll.`,"project.add":`Hinzufügen`,"project.colorAccent":`Akzent`,"project.colorFirst":`Als Akzent setzen`,"project.typography":`Typografie`,"project.typographyHint":`Schriften, ihre Schnitte und wie Text gesetzt wird. KI-Schritte setzen Dokumente darin.`,"project.fontFamily":`Schriftfamilie, z. B. Inter`,"project.fontRole":`Wofür, z. B. Fließtext`,"project.fontLicense":`Lizenz`,"project.fontLicensePlaceholder":`Lizenz, z. B. SIL Open Font License`,"project.fontUses":`Erlaubt für`,"project.fontUseWeb":`Web`,"project.fontUseDocuments":`Dokumente`,"project.fontUsePrint":`Druck`,"project.fontUseImages":`Bilder & Social`,"project.fontUseVideo":`Video`,"project.fontRoleFirst":`Wofür, z. B. Überschriften und Fließtext`,"project.fontNew":`Neue Schrift`,"project.fontsFromUrl":`Schriften von URL`,"project.fontsUrlHint":`Die Adresse einer Webseite – engenty liest die Schriften aus ihrem CSS.`,"project.fontsFound":`Schriften der Seite`,"project.fontsFoundHint":`Wähle die Schriften deiner Marke.`,"project.fontsNoneFound":`Auf dieser Seite ist keine eigene Schrift zu finden.`,"project.fontWeightsUnknown":`Schnitte unbekannt`,"project.fontsEmpty":`Noch keine Schriften.`,"project.styles":`Textstile`,"project.stylesHint":`Die Typo-Skala: Größe, Schnitt, Zeilenhöhe und Laufweite je Stil.`,"project.styleNew":`Textstil`,"project.styleName":`Name, z. B. Headline XL`,"project.styleFont":`Schrift`,"project.styleWeight":`Schnitt`,"project.styleSize":`Größe`,"project.styleLine":`% Zeile`,"project.styleLineLabel":`Zeilenhöhe in %`,"project.styleTracking":`% Laufweite`,"project.styleTrackingLabel":`Laufweite in %`,"project.styleUpper":`Großbuchstaben`,"project.typeRulePlaceholder":`z. B. Überschriften nie in Großbuchstaben`,"project.typeSample":`Gute Schrift macht Inhalte leicht.`,"project.assets":`Markenmaterial`,"project.assetsGeneral":`Allgemein`,"project.assetUpload":`Asset hochladen`,"project.assetFromUrl":`Asset von URL`,"project.assetUrlHint":`Die Adresse einer Datei – oder einer Webseite: Dann zeigt engenty die Bilder darauf zur Auswahl.`,"project.assetFound":`Bilder auf der Seite`,"project.assetFoundHint":`Wähle eines oder mehrere.`,"project.assetNoneFound":`Auf dieser Seite sind keine Bilder zu finden.`,"project.assetSectionAdd":`Asset-Abschnitt`,"project.assetSectionTitle":`Titel, z. B. Icons`,"project.assetSectionName":`Name`,"project.assetSectionRename":`Abschnitt bearbeiten`,"project.assetSectionRemoveConfirm":`„{name}“ entfernen? Seine Assets kommen zu „Allgemein“.`,"project.assetsHint":`Bilder, Videos, Audio, PDFs, Schriften, Lottie und 3D. KI-Schritte setzen Bilder in Dokumente und wählen sie nach ihrer Beschreibung aus.`,"project.assetAdd":`Dateien`,"project.assetSearch":`Assets filtern …`,"know.all":`Alles`,"know.title":`Wissen`,"know.hint":`Was die Schritte deiner Wizards nachschlagen. Dokumente werden beim Hochladen zu Seiten und Tabellen. Kategorien halten die Einträge auseinander.`,"know.empty":`Noch nichts da. Lad Dokumente hoch oder leg eine Seite an.`,"know.drop":`Dokumente hierher ziehen oder`,"know.pick":`auswählen`,"know.page":`Seite`,"know.table":`Tabelle`,"know.faq":`FAQ`,"know.file":`Datei`,"know.category":`Kategorie`,"know.categories":`Kategorien`,"know.newPage":`Neue Seite`,"know.newTable":`Neue Tabelle`,"know.asFaq":`Als FAQ: Frage und Antwort je Zeile`,"know.newCategory":`Neue Kategorie`,"know.search":`Suche testen …`,"know.searchNone":`Nichts gefunden.`,"know.searchStats":`{candidates} Kandidaten geprüft, {hits} relevant`,"know.searchUnchecked":`{hits} Treffer, ungeprüft`,"know.unchecked":`Das Classifier-Modell prüft die Treffer. Mit einem API-Key für AI Gateway oder TypeSafe oder mit einem Konto übernimmt das ein Entscheidungsmodell.`,"know.keywordsOnly":`Ohne Embedding-Modell findet die Suche nach Wörtern, nicht nach Bedeutung.`,"know.clear":`Zurücksetzen`,"know.sub":{one:`{n} Unterseite`,other:`{n} Unterseiten`},"know.rows":{one:`{n} Zeile`,other:`{n} Zeilen`},"know.review":`Prüfen`,"know.reviewed":`Geprüft`,"know.from":`Aus {label}`,"know.kept":`Von Hand geändert – {label} überschreibt das nicht mehr.`,"know.original":`Original`,"know.reading":`Wird gelesen …`,"know.subPages":`Unterseiten`,"know.addSub":`Unterseite`,"know.type.choice":`Auswahl`,"know.type.date":`Datum`,"know.type.number":`Zahl`,"know.type.text":`Text`,"know.type.boolean":`Ja / Nein`,"know.name":`Name`,"know.type":`Typ`,"know.unit":`Einheit`,"know.unitHint":`z. B. h, €, kg`,"know.multiple":`Mehrere Werte je Eintrag`,"know.ordered":`Die Werte sind gestuft (niedrig → hoch)`,"know.values":`Werte`,"know.valuesHint":`Einer je Zeile. Weitere kommen mit den Einträgen dazu.`,"know.hintField":`Woher die Werte kommen`,"know.hintFieldHint":`Kurz, z. B. Kopfzeile, Dateiname, Filter der Website.`,"know.create":`Anlegen`,"know.proposed":`Vorgeschlagen`,"know.proposedHint":`Sie wird gefüllt, sobald du sie übernimmst.`,"know.accept":`Übernehmen`,"know.dismiss":`Verwerfen`,"know.alike":`„{a}“ und „{b}“ meinen wohl dasselbe.`,"know.merge":`Zusammenführen`,"know.items":{one:`{n} Eintrag`,other:`{n} Einträge`},"know.item":`1 Eintrag`,"know.row":`1 Zeile`,"know.oneSub":`1 Unterseite`,"know.addValue":`Wert hinzufügen`,"know.range":`{min} bis {max}`,"know.summary":`Übersicht`,"know.summaryHint":`Ein Modell fasst die Einträge dieses Werts zusammen. Die Suche findet die Übersicht wie eine Seite.`,"know.summaryWrite":`Übersicht schreiben`,"know.summaryAgain":`Neu schreiben`,"know.summaryEmpty":`Noch keine Übersicht.`,"know.toc":`Inhaltsverzeichnis`,"know.tocRows":{one:`{n} Zeile in {table}`,other:`{n} Zeilen in {table}`},"know.deleteCategory":`Kategorie löschen`,"know.confirmCategory":`„{name}“ löschen? Die Einträge bleiben, nur die Kategorie geht.`,"know.deleteValue":`Wert löschen`,"know.yes":`Ja`,"know.no":`Nein`,"know.minimum":`ab`,"know.maximum":`bis`,"know.contains":`enthält`,"know.by.person":`von Hand gesetzt`,"know.by.origin":`aus der Quelle`,"know.by.model":`von einem Modell gelesen`,"know.remove":`Entfernen`,"know.unset":`Nicht gesetzt`,"know.deleteFile":`Datei löschen`,"project.documents":`Dokumente`,"project.documentsHint":`PDFs, Listen, Excel, Word, Text. Sie werden gelesen und kommen in einen Index, den jeder KI-Schritt durchsucht.`,"project.documentAdd":`Dokumente`,"project.drop":`Hierher ziehen oder`,"project.staysLocal":`Bleibt auf deinem Computer und kommt nicht hierher.`,"project.description":`Beschreibung hinzufügen …`,"project.describing":`Bild wird beschrieben …`,"project.reading":`Wird gelesen …`,"project.indexed":`Im Index`,"project.indexedKeywords":`Im Index (Stichwörter)`,"project.notIndexed":`Kein Text gefunden`,"project.reindex":`Neu einlesen`,"project.pages":{one:`{n} Seite`,other:`{n} Seiten`},"project.keywordsOnly":`Der Index sucht gerade nach Stichwörtern. Mit einem API-Key für AI Gateway oder OpenAI kommt die Suche nach Bedeutung dazu.`,"project.preview":`Vorschau`,"project.viewList":`Als Liste zeigen`,"project.viewCards":`Als Karten zeigen`,"project.original":`Original`,"project.readText":`Gelesener Text`,"project.openOriginal":`Original öffnen`,"project.noText":`Noch kein Text: Das Dokument wird gerade gelesen oder ließ sich nicht lesen.`,"project.textCut":`Die Vorschau zeigt den Anfang ({shown} von {total} Zeichen).`,"project.searchTest":`Im Index suchen …`,"project.searchNone":`Nichts gefunden.`,"project.remove":`Entfernen`,"project.removeConfirm":`„{name}“ entfernen?`,"project.facts":`Fakten`,"project.factsHint":`Was Wizards wissen sollen: Adresse, USt-IdNr., Öffnungszeiten – alles, was passt.`,"project.factLabel":`Bezeichnung`,"project.factValue":`Wert`,"project.factAdd":`Eintrag`,"credit.engenty-wizards":`KI-Wizards aus einer Beschreibung, mit einem Link geteilt.`,"credit.engenty":`Connectors, Datentabellen, Suche und die Engenties stammen aus dem engenty-Framework.`,"credit.mastra":`Agent-Framework hinter den KI-Schritten.`,"credit.ai-sdk":`Modell-Aufrufe für Text, Bild, Video und Sprache.`,"credit.model-context-protocol":`MCP-Server zum Bauen von Wizards, MCP-Client für Werkzeuge der Schritte.`,"credit.hono":`HTTP-API der Runtime.`,"credit.drizzle-orm":`Schema und Migrationen der Datenbanken.`,"credit.libsql":`Eine Datenbank je Mandant, lokal als Datei oder bei Turso.`,"credit.playwright":`Browser-Schritte sowie PDF- und PNG-Export.`,"credit.react":`UI-Bibliothek der Web-App.`,"credit.vite":`Build-Werkzeug der Web-App.`,"credit.tailwind-css":`Styling der Oberfläche.`,"credit.react-flow":`Das Diagramm der Schritte im Editor.`,"credit.tanstack-query":`Server-Daten in der Web-App.`,"credit.xterm-js":`Das Terminal auf der Seite, in dem sich KI-Clients anmelden.`,"credit.lucide":`Icons.`,"credit.geist-geist-mono":`Schrift der Oberfläche.`,"credit.space-grotesk":`Schrift der Überschriften.`,"credit.git-cliff":`Erzeugt den Changelog aus den Commits.`,"fact.adresse":`Adresse`,"fact.plz":`PLZ`,"fact.ort":`Ort`,"fact.uid":`USt-IdNr.`,"fact.telefon":`Telefon`,"fact.e_mail":`E-Mail`,"fact.website":`Website`,"fact.iban":`IBAN`,"project.factType":`Typ`,"project.factAuto":`Automatisch`,"project.type.text":`Text`,"project.type.longtext":`Langer Text`,"project.type.number":`Zahl`,"project.type.date":`Datum`,"project.type.url":`Link`,"project.type.email":`E-Mail`,"project.type.phone":`Telefon`,"project.type.boolean":`Ja / Nein`,"project.yes":`Ja`,"project.no":`Nein`,"assistant.name":`Goose`,"assistant.ask":`Frag Goose`,"assistant.open":`Goose öffnen`,"assistant.sees":`Sieht: {page}`,"assistant.menu":`Chat-Menü`,"assistant.newChat":`Neuer Chat`,"assistant.earlier":`Frühere Chats`,"assistant.noEarlier":`Noch keine früheren Chats.`,"assistant.untitled":`Ohne Titel`,"assistant.summarising":`Fasst den Chat zusammen …`,"assistant.readOnly":`Ein früherer Chat, nur zum Lesen. Goose kennt seine Zusammenfassung.`,"assistant.back":`Zurück`,"assistant.layoutBottom":`Unten andocken`,"assistant.layoutSidebar":`Als Seitenleiste`,"assistant.close":`Schließen`,"assistant.helloTitle":`Wie kann ich helfen?`,"assistant.hello":`Ich kenne engenty wizards und sehe, was du gerade siehst. Frag mich, wie etwas geht – ich zeige es dir auch.`,"assistant.composer":`Frag etwas oder sag, was du brauchst …`,"assistant.filesNeedSpace":`Dateien kommen in einen Space – hier lässt sich keiner ändern.`,"assistant.talk":`Sprechen`,"assistant.live":`Live-Chat`,"assistant.liveListening":`Hört zu`,"assistant.liveThinking":`Denkt nach`,"assistant.liveSpeaking":`Spricht`,"assistant.liveMuted":`Stumm`,"assistant.mute":`Mikrofon aus`,"assistant.unmute":`Mikrofon an`,"assistant.end":`Beenden`,"assistant.naturalVoice":`Natürliche Stimme (Sprachmodell)`,"assistant.gotIt":`Verstanden`,"assistant.move":`Ziehen, um Goose zu verschieben – nah am unteren oder rechten Rand rastet er ein`,"assistant.flap":`Verlauf: ziehen für die Höhe, klicken zum Ein- und Ausklappen`,"assistant.busyComposer":`Dazwischen schreiben – Enter: vor dem nächsten Schritt, {keys}: danach`,"assistant.pending":`Wartet auf Goose`,"assistant.pendingSignal":`nächster Schritt`,"assistant.pendingSignalHint":`Goose liest es vor seinem nächsten Schritt`,"assistant.pendingQueue":`danach`,"assistant.pendingQueueHint":`Geht raus, wenn Goose fertig ist`,"assistant.sendNow":`Jetzt senden`,"assistant.sendNowHint":`Goose anhalten und das jetzt senden`,"assistant.edit":`Bearbeiten`,"assistant.remove":`Entfernen`,"assistant.signalled":`Während der Antwort geschrieben`,"assistant.dev":`Entwicklermodus`,"assistant.devOn":`Entwicklermodus an: Schritte, Werkzeuge, Prompt und Runden. Klick schaltet ihn aus.`,"assistant.devOff":`Entwicklermodus aus. Klick schaltet ihn ein.`,"assistant.step":`Schritt {n}`,"assistant.tokens":`{input} ein · {output} aus · {total} Token`,"assistant.stepTools":`Werkzeuge`,"assistant.args":`Argumente`,"assistant.result":`Ergebnis`,"assistant.usage":`Kontextfenster und Verbrauch`,"assistant.window":`Kontextfenster`,"assistant.lastTurn":`Letzte Frage`,"assistant.wholeChat":`Ganzer Chat`,"assistant.promptTokens":`Prompt`,"assistant.answerTokens":`Antwort`,"assistant.duration":`Dauer`,"assistant.cost":`Kosten`,"assistant.steps":`Schritte`,"assistant.inspect":`Runden ansehen`,"assistant.copyThread":`Verlauf mit Events als JSON kopieren`,"assistant.copied":`Kopiert`,"assistant.turns":`Runden`,"assistant.turnsTimeline":`Verlauf`,"assistant.turnsPrompt":`Prompt`,"assistant.turnsEvents":`Events`,"assistant.noTurns":`Noch keine Runden. Sie werden aufgezeichnet, solange der Entwicklermodus an ist.`,"assistant.download":`Als JSONL herunterladen`,"assistant.system":`Anweisung`,"assistant.context":`Seite, Space und Nachricht`,"assistant.history":{one:`Chat ({n} Nachricht)`,other:`Chat ({n} Nachrichten)`},"assistant.tools":`Werkzeuge ({n})`,"assistant.estimate":`≈ {tokens} Token (4 Zeichen je Token)`,"assistant.tool.navigate":`Geöffnet: {where}`,"assistant.tool.highlight":`Markiert: {what}`,"assistant.tool.look":`Seite angesehen`,"assistant.tool.read":`Gelesen: {what}`,"assistant.tool.fill":`Eingetragen: {what}`,"assistant.tool.docs":`In der Anleitung gelesen`,"assistant.tool.gallery":`In der Galerie gesucht`,"assistant.tool.account":`Konto nachgesehen`,"assistant.tool.chats":`Frühere Chats durchsucht`,"assistant.tool.space":`Wizards und Läufe nachgesehen`,"assistant.tool.models":`Modelle nachgesehen`,"assistant.suggest.what":`Was kann ich mit engenty wizards machen?`,"assistant.suggest.models":`Zeig mir, wo ich die Modelle einstelle`,"assistant.suggest.credits":`Wie viele Credits habe ich noch?`,"assistant.suggest.modelsNow":`Welches Modell arbeitet hier gerade, und was fehlt?`,"assistant.suggest.modelsMissing":`Warum kann hier kein Video entstehen?`,"assistant.suggest.modelsCost":`Was kostet mich welcher Zugang?`,"assistant.suggest.accountWhy":`Wozu brauche ich ein Konto?`,"assistant.suggest.plans":`Welche Pakete gibt es, und was kosten sie?`,"assistant.suggest.integrateWhat":`Was kann ich aus Claude oder Cursor heraus machen?`,"assistant.suggest.integrateClaude":`Wie binde ich Claude Desktop ein?`,"assistant.suggest.connectorsWhat":`Wofür sind Connectors gut?`,"assistant.suggest.connectorsAdd":`Verbinde diesen Dienst: `,"assistant.suggest.readSite":`Lies unsere Website `,"assistant.suggest.missing":`Was fehlt dem Space noch?`,"assistant.suggest.facts":`Wofür brauchen die Wizards die Fakten?`,"assistant.suggest.knowledgeHow":`Wie kommt Wissen in den Space?`,"assistant.suggest.knowledgeSite":`Lies diese Website ins Wissen: `,"assistant.suggest.knowledgeCategories":`Wofür sind Kategorien gut?`,"assistant.suggest.dataWhat":`Was steht in diesen Daten?`,"assistant.suggest.dataWho":`Welcher Wizard füllt welche Tabelle?`,"assistant.suggest.dataEdit":`Wie ändere ich eine Spalte?`,"assistant.suggest.resultsFailed":`Welche Läufe haben zuletzt nicht geklappt?`,"assistant.suggest.resultsCost":`Was hat diesen Monat am meisten Credits gekostet?`,"assistant.suggest.resultsShare":`Wie teile ich ein Ergebnis?`,"project.assistantTitle":`Erzähl mir von dir und deiner Firma`,"project.assistantHello":`Nenn mir deine Website oder gib mir Dateien. Ich trage ein, was ich finde: Titel, Beschreibung, Logo, Farben und Fakten.`,"project.assistantComposer":`z. B. „Lies unsere Website example.at“ …`,"project.assistantTitleKnowledge":`Was sollen deine Wizards wissen?`,"project.assistantHelloKnowledge":`Gib mir Dokumente oder sag mir, wo das Wissen steht. Ich lese es ein – auf dieser Seite siehst du, was hineinkommt.`,"project.assistantComposerKnowledge":`Dokumente anhängen oder sagen, wo das Wissen steht …`,"project.assistantChanged":`Space aktualisiert`,"flowApp.loading":`Der Wizard kommt …`,"flowApp.broken":`Das lässt sich hier nicht zeigen.`,"flowApp.draft":`Entwurf`,"flowApp.published":`Veröffentlicht`,"flowApp.issues":{one:`{n} Fehler im Entwurf`,other:`{n} Fehler im Entwurf`},"flowApp.flow":`Ablauf`,"flowApp.notPublished":`Veröffentliche ihn im Studio, dann läuft er hier.`,"flowApp.runPage":`Im Browser weiter`,"flowApp.inBrowser":`Nur im Browser: {fields}`,"flowApp.done":`Fertig`,"flowApp.credits":{one:`{n} Credit`,other:`{n} Credits`},"flowApp.ask":`Der Wizard fragt`,"flowApp.allow":`Erlauben`,"flowApp.skip":`Überspringen`,"flowApp.signIn":`Eine Anmeldung bei {site} – das geht nur im Browser.`,"flowApp.fullscreen":`Größer`,"flowApp.inline":`Kleiner`,"flowApp.failed":`Das hat nicht geklappt: {error}`,"inspector.aspectRatio":`Format`,"inspector.downloads":`Downloads`,"inspector.avatar":`Avatar`,"editor.zoomOut":`Verkleinern`,"editor.zoomFit":`Alles zeigen`,"editor.zoomIn":`Vergrößern`,"nav.breadcrumb":`Du bist hier`,"run.testChip":`Testlauf`,"common.delete":`Löschen`,"settings.deleteTitle":`„{name}“ löschen?`,"settings.deleteBody":`Der Space wird mit seinen Wizards, seinem Wissen und seinen Daten gelöscht. Die Links der Wizards gehen danach nicht mehr. Das lässt sich nicht rückgängig machen.`,"connectors.removeConfirm":`„{name}“ entfernen? Schritte, die ihn nutzen, gehen erst wieder, wenn du ihn neu importierst.`,"connectors.clientId":`OAuth-Client-ID`,"connectors.clientSecret":`OAuth-Client-Secret`},Wd={en:{...Ad.en,"brand.tagline":`Make a wish. Get your wizard.`,"brand.sub":`It guides you step by step. Let AI do the work.`,"auth.dev":`Developer sign-in (local)`,"auth.legal":`No password, no sign-up form – you sign in with an account you already have.`,"auth.signIn":`Sign in or create an account`,"auth.failed":`Sign-in didn’t work. Try again.`,"auth.localTitle":`This browser isn’t signed in`,"auth.localWhy":`The studio runs on your computer and only lets in browsers that opened its link. This browser isn’t signed in – maybe the cookies were cleared.`,"auth.localLink":`Run this in a terminal – it opens the studio and signs this browser in:`,"auth.localStartLink":`Or print just the link, without opening a browser. It works once, for a minute:`,"auth.wrongHost":`The studio runs at another address`,"auth.wrongHostWhy":`engenty wizards only answers at its own address on this computer – that keeps other web pages out. Open the studio there:`,"auth.unreachable":`engenty wizards isn’t answering`,"auth.unreachableWhy":`The studio is at {address}, but engenty wizards isn’t answering – it may be restarting or stopped. This page keeps trying.`,"nav.account":`Account & credits`,"setup.keysInAccount":`API keys for scripts belong to your account. You create and revoke them there.`,"setup.openAccount":`Open account`,"class.label":`Model class`,"class.classifier":`Classifier`,"class.standard":`Standard`,"class.high":`High`,"class.highest":`Highest`,"class.image":`Image`,"class.video":`Video`,"class.audio":`Audio`,"class.speech":`Speech`,"class.classifier.hint":`Routing, yes/no, pulling a few values out of text. Cheapest.`,"class.standard.hint":`Short copy, calling an API, reformatting.`,"class.high.hint":`Research with tools, long documents, weighing many sources.`,"class.highest.hint":`Hard reasoning or code. Several times the cost of High.`,"class.effort":`Thinking effort`,"class.effortAuto":`Automatic`,"class.effort.low":`Low`,"class.effort.medium":`Medium`,"class.effort.high":`High`,"estimate.step":`≈ {n} credits, rarely more than {high}`,"estimate.measured":`measured from the latest runs`,"estimate.formula":`estimated – more accurate after five runs`,"estimate.share":`A run costs about {run} credits. At the daily limit, that’s at most {day} credits a day.`,"local.title":`Models`,"local.accountWaiting":`Waiting for the sign-in in your browser…`,"local.accountFailed":`The account service can’t be reached right now. Try again in a moment.`,"local.accountExpired":`Your sign-in has expired. Sign in again.`,"local.sourceNeedsAccount":`This needs an account.`,"local.toAccount":`Go to Settings → Account`,"local.sourceOwn":`Your own keys`,"local.keys":`Keys`,"local.keysHint":`One key is enough. Keys stay in this computer’s keychain, never in the database.`,"local.keySet":`stored`,"local.keyEmpty":`not stored`,"local.keyRemove":`Delete`,"local.classes":`Model per class`,"local.classesHint":`A step only names the class. Here you choose which model handles it, e.g. anthropic/claude-haiku-4.5, openai:gpt-5.4-mini or ollama:qwen3.`,"local.save":`Save`,"local.saved":`Saved`,"local.chat":`The studio chat uses`,"local.chatModels":`Model class Highest`,"local.chatClaude":`Claude subscription (Claude Code)`,"local.subscription":`With the subscription, Claude Code on this computer builds the wizard, using your sign-in there. Runs still use keys or credits.`,"harness.hint":`Text runs on {name} on this computer, using your {sub}. No key needed. Images, video and audio still need a key.`,"harness.hintImages":`Text and images run on {name} on this computer, using your {sub}. No key needed. Video and audio still need a key.`,"harness.found":`{name} {version} found`,"harness.missing":`{name} isn’t installed on this computer.`,"harness.install":`Or in your own terminal:`,"harness.installButton":`Install {name}`,"harness.installing":`{name} is installing in the terminal below – it takes about a minute. Then you sign in.`,"harness.installEnded":`The installation ended, but {name} isn’t there. The output above says why.`,"harness.appHere":`The {app} app is on this computer: {name} signs in with the same {sub}.`,"harness.notInstalled":`not installed`,"harness.authSubscription":`Signed in with your {sub}.`,"harness.authKey":`Signed in with an API key from your shell, not the subscription. Sign in here so it runs on your {sub}.`,"harness.authNone":`Not signed in yet.`,"harness.signIn":`Sign in here`,"harness.signingIn":`The sign-in runs in the terminal below – your browser opens for it. The terminal closes once you’re signed in.`,"harness.signInInteractive":`{name} starts below. Choose to sign in with your {sub} there, then finish in the browser. The terminal closes once you’re signed in.`,"harness.loginEnded":`The sign-in ended, but {name} isn’t signed in. Try again.`,"harness.sub.claude":`Claude subscription`,"harness.sub.codex":`ChatGPT subscription`,"harness.sub.gemini":`Google account`,"harness.sub.cursor":`Cursor subscription`,"harness.desc.claude":`On your Claude subscription – no key needed.`,"harness.desc.codex":`On your ChatGPT subscription – no key needed.`,"harness.desc.gemini":`On your Google account – no key needed.`,"harness.desc.cursor":`On your Cursor subscription – no key needed.`,"harness.ready":`signed in`,"local.recheck":`Check again`,"local.test":`Test`,"local.testHint":`One short call checks that the model can be reached.`,"local.testOk":`Answered in {s} s on {ref}: “{reply}”`,"local.testFailed":`The test didn’t work: {error}`,"models.groupCaps":`Capabilities`,"models.groupAccess":`Access`,"models.groupMore":`More providers`,"models.cap.text":`Text & reasoning`,"models.cap.text.hint":`Writes, summarises, researches and decides – in almost every step.`,"models.cap.image":`Images`,"models.cap.image.hint":`Makes images: logos, product shots, illustrations.`,"models.cap.video":`Videos`,"models.cap.video.hint":`Makes short clips from text or from an image.`,"models.cap.speech":`Voice`,"models.cap.speech.hint":`Reads text aloud: voice-overs, audio versions, announcements.`,"models.cap.listening":`Voice notes`,"models.cap.listening.hint":`Understands speech and turns voice notes into text.`,"models.way.local":`Local model`,"models.way.credits":`Credits`,"models.way.creditsTeam":`Team credits`,"models.way.none":`not set up`,"models.who":`Who does it?`,"models.optSubscription":`Your subscription`,"models.optKey":`Your own API key`,"models.optLocal":`Local model`,"models.optLocalNote":`Ollama on this computer`,"models.optApple":`Apple Intelligence`,"models.optAppleNote":`on this Mac, offline`,"models.appleOff":`switched off – System Settings → Apple Intelligence & Siri`,"models.appleLoading":`Apple is still loading the model`,"models.appleDevice":`not on this Mac`,"models.appleHint":`Short texts and decisions (Classifier, Standard) run on Apple Intelligence on this Mac; nothing leaves it. Research, long documents and code (High, Highest): {way}.`,"models.appleListenHint":`This Mac turns voice notes into text itself; nothing leaves it. The first time, Apple downloads the language.`,"models.noteIncluded":`included in the plan`,"models.noteSignedOut":`not signed in`,"models.noteMissing":`not installed`,"models.noteKey":`API key stored`,"models.noteKeyShort":`key`,"models.noteSignedIn":`signed in`,"models.noteShellKey":`API key from the shell`,"models.optOther":`Other`,"models.optCreditsGroup":`engenty`,"models.noteNoKey":`API key missing`,"models.noteNeedsAccount":`needs an account`,"models.notePerImage":`≈ {n} credits per image`,"models.notePerSecond":`≈ {n} credits per second`,"models.notePer1k":`≈ {n} credits per 1,000 characters`,"models.notePerMinute":`≈ {n} credits per minute`,"models.creditsAuto":`engenty chooses: {model}`,"models.creditsAutoNone":`engenty chooses the model`,"models.creditsPickHint":`Billed in credits – no API key of your own.`,"models.viaCredits":`{name} on engenty credits`,"models.viaCreditsHint":`No API key of your own, billed in credits.`,"models.viaCreditsNeedsAccount":`With an engenty account, billed in credits.`,"models.noteUsage":`credits by usage`,"models.model":`Model`,"models.modelCustom":`Another model…`,"models.textSimple":`Simple steps`,"models.textDemanding":`Demanding steps`,"models.perClass":`Adjust per class`,"models.manageKey":`{name} API key`,"models.key":`API key`,"models.keyFor":`{name} API key`,"models.keyGet":`Get a key from {name}`,"models.keySave":`Check and save`,"models.keyStored":`API key stored`,"models.keyNone":`No API key`,"models.keyCheck":`Check`,"models.keyReplace":`Replace`,"models.keyRemove":`Delete`,"models.keyOk":`The key works.`,"models.keyBad":`The key wasn’t accepted. Check it and try again.`,"models.keyWhereLocal":`The key stays on this computer, never in the database.`,"models.keyWhereCloud":`The key is kept encrypted for the team. Nobody sees it again.`,"models.keyFallback":`Until you add a key, credits step in.`,"models.uses":`Used for`,"models.useFor":`Use`,"models.inUse":`in use`,"models.try":`Try it`,"models.try.text":`Test`,"models.try.image":`Make a test image`,"models.try.video":`Make a test clip`,"models.try.speech":`Hear a sample`,"models.try.listening":`Test listening`,"models.tryCost":`Costs like a real call.`,"models.tryCostVideo":`A 4-second clip – costs like a real one.`,"models.tryWait":`Generating…`,"models.tryWaitVideo":`A clip takes a minute or two…`,"models.tryOk":`In {s} s with {model}`,"models.tryHeard":`Heard: “{text}”`,"models.tryHeardNothing":`Nothing heard – but the connection works.`,"models.tryFailed":`That didn’t work: {error}`,"models.creditsName":`engenty credits`,"models.creditsTeam":`Team credits`,"models.creditsLocalLead":`Credits step in where you have no subscription or API key of your own.`,"models.creditsCloudHint":`Anything without your own API key runs on credits. Your own keys come first and cost no credits.`,"models.creditsConnectTitle":`With an account`,"models.creditsLocalHint":`With an engenty account, credits step in where you have nothing of your own set up – for example, videos without your own API key.`,"models.creditsConnect":`Connect an account`,"models.creditsFallback":`Credits step in`,"models.creditsFallbackOn":`Anything without a subscription or your own API key runs on credits.`,"models.creditsFallbackOff":`Off: anything without a subscription or your own API key doesn’t run.`,"models.creditsOn":`Runs on credits`,"models.creditsNone":`Nothing runs on credits right now.`,"models.creditsTopUp":`Top up`,"models.creditsPicks":`engenty chooses the model and bills in credits.`,"models.creditsModel":`Right now: {model}.`,"models.clientSignIn":`Sign-in`,"models.clientImages":`{name} makes images with your {sub} – no API key of your own.`,"models.clientNotChosen":`Text doesn’t run on {name} right now.`,"models.ollamaHint":`Where Ollama runs and the model it serves.`,"models.readOnly":`Only the team’s admins can change its models.`,"models.viewAs":`Preview as`,"models.view.auto":`as it is`,"models.view.local":`this computer`,"models.view.linked":`this computer + account`,"models.view.cloud":`the cloud`,"setup.title":`Setup`,"setup.sub":`engenty wizards can use your existing accounts on your computer.`,"setup.source":`Choose how the AI runs`,"setup.local":`Runs on this computer.`,"setup.thisComputer":`This computer: space {space} of {team}`,"setup.account":`Your engenty account`,"setup.accountText":`Your team, its space and your wizards belong to the account. This computer joins the space.`,"setup.accountLinked":`Signed in as {name}`,"setup.accountCredits":`{credits} credits`,"setup.creditsChoice":`engenty credits`,"setup.creditsDesc":`Runs on your account’s credits, as in the cloud. Nothing to install.`,"onboard.kicker1":`Welcome, {name} · Who you are`,"onboard.kicker1Anon":`Welcome · Who you are`,"onboard.team":`What’s your team called?`,"onboard.teamSub":`Your company, your club or just your name. The team is your account: it holds your credits and your wizards. You can rename it any time.`,"onboard.teamPlaceholder":`Platzer Windows & Doors`,"onboard.kind":`What will you use engenty for?`,"onboard.kindSub":`So we can show you the templates and tips that fit.`,"onboard.guess":`Guessed from {domain}: {kind}. If that’s not right, just pick another.`,"onboard.kindPersonal":`Just me`,"onboard.kindPersonalSub":`Personal, hobby, trying it out`,"onboard.kindClub":`Club`,"onboard.kindClubSub":`Club, initiative, volunteering`,"onboard.kindSmall":`Small business`,"onboard.kindSmallSub":`Self-employed up to 49 people`,"onboard.kindCorp":`Company`,"onboard.kindCorpSub":`50 people or more`,"onboard.personalTitle":`What would you like engenty to do for you?`,"onboard.personalPlaceholder":`e.g. job applications, photos for listings, planning trips`,"onboard.clubTitle":`Tell us about your club`,"onboard.businessTitle":`Tell us about your business`,"onboard.clubKind":`Kind of club`,"onboard.members":`Members`,"onboard.yourRole":`Your role`,"onboard.people":`How many of you are there?`,"onboard.justMe":`Just me`,"onboard.sector":`Sector`,"onboard.sectorPlaceholder":`e.g. joinery, physiotherapy, online shop`,"onboard.need":`What do you need?`,"onboard.needPlaceholder":`e.g. quotes written faster, enquiries from the website answered`,"onboard.optional":`optional`,"onboard.legalName":`Official company name`,"onboard.legalNamePlaceholder":`e.g. Example Trading Ltd`,"onboard.phone":`Phone`,"onboard.phoneWhy":`for questions about contract and invoices`,"onboard.club.sport":`Sport`,"onboard.club.culture":`Culture & music`,"onboard.club.social":`Social`,"onboard.club.education":`Education`,"onboard.club.environment":`Environment`,"onboard.club.rescue":`Fire & rescue`,"onboard.club.other":`Other`,"onboard.role.chair":`Chair`,"onboard.role.board":`Board`,"onboard.role.treasurer":`Treasurer`,"onboard.role.secretary":`Secretary`,"onboard.role.member":`Member`,"onboard.role.management":`Management`,"onboard.role.it":`IT`,"onboard.role.marketing":`Marketing`,"onboard.role.sales":`Sales`,"onboard.role.operations":`Operations`,"onboard.role.other":`Other`,"onboard.siteNameHint":`No address? A name is enough, we keep it in mind.`,"onboard.back":`Back`,"onboard.kicker2":`About you & your brand`,"onboard.site":`Where can the wizards read about you?`,"onboard.siteSub":`Enter your website and engenty picks up your name, what you do, your logo and colours from it. Every wizard then sounds like you and looks like you. No website? Write a line about yourself instead.`,"onboard.sitePlaceholder":`platzer-fenster.at`,"onboard.read":`Read it`,"onboard.reading":`Reading…`,"onboard.readDone":`Got it: {name}{details}.`,"onboard.readAbout":`, what you do`,"onboard.readColors":`, {n} colours`,"onboard.readLogo":`, the logo`,"onboard.readFailed":`That page couldn’t be read. Check the address, or write a line about yourself instead.`,"onboard.line":`Write a line instead`,"onboard.linePlaceholder":`We make and fit windows and doors in Upper Austria, for private homes and builders. Friendly, to the point.`,"onboard.save":`Save`,"onboard.skip":`Skip for now`,"onboard.kicker3":`Knowledge`,"onboard.know":`What should the wizards know?`,"onboard.knowSub":`Documents the wizards may look things up in: price lists, brochures, your terms, an FAQ. PDF, Word, Excel. A wizard answers from them instead of guessing. You can add more any time under Space → Knowledge.`,"onboard.drop":`Drop files here, or choose them`,"onboard.uploading":`reading…`,"onboard.uploaded":`read`,"onboard.uploadFailed":`not read`,"onboard.kicker4":`Your space`,"onboard.space":`All of that lives in your space.`,"onboard.spaceSub":`Your team’s first space is called {space}. All your wizards share it and add to it: every AI step knows it, so a wizard never asks for your name or your prices. You can rename it any time – the house icon in the app bar opens it.`,"onboard.partInfo":`Info & brand`,"onboard.partInfoText":`Who you are and how you look: title, about, logo, colours, facts.`,"onboard.partKnow":`Knowledge`,"onboard.partKnowText":`What every AI step looks things up in: your documents and pages.`,"onboard.partData":`Data`,"onboard.partDataText":`Tables and pages your wizards keep: enquiries, bookings, lists. Fills as they run.`,"onboard.partResults":`Results`,"onboard.partResultsText":`Every run that reached its result, per wizard. PDF, Word, images, video.`,"onboard.build":`Build your first wizard`,"onboard.continue":`Continue`,"onboard.step":`Step {n} of 4`,"setup.stage.connect":`Connect`,"setup.stage.test":`Test`,"setup.stage.done":`Done`,"setup.h.install":`Install {name}`,"setup.h.signIn":`Sign in to {name}`,"setup.h.keys":`Enter a key`,"setup.h.test":`One short test`,"setup.h.done":`Connected.`,"setup.ready":`All set.`,"setup.noHarness":`No AI client is installed yet. Choose one and it installs right here, or enter your own keys.`,"setup.ownDesc":`AI Gateway, OpenAI, Anthropic or Ollama.`,"setup.appleDesc":`The model on this Mac – no account, no internet.`,"setup.appleHint":`Apple Intelligence handles short texts and decisions on this Mac; nothing leaves it. For research, long documents and code, add another option later under Settings → Models.`,"setup.appleHintKeeps":`Apple Intelligence handles short texts and decisions on this Mac; nothing leaves it. Research, long documents and code (High, Highest) stay as they were: {way}.`,"setup.recommended":`Recommended`,"setup.done":`Open the studio`,"setup.untilWorks":`The studio opens once the test works.`,"cloud.notSent":`This version hasn’t arrived in the cloud yet.`,"cloud.send":`Send now`,"cloud.resend":`Send again`,"cloud.again":`We’ll try again at {when}.`,"cloud.sent":`Version {v} · arrived {when}`,"cloud.notRunnable":`Version {v} doesn’t run in the cloud.`,"cloud.keepsRunning":`Version {v} keeps running there.`,"cloud.nothingRuns":`Nothing runs there yet.`,"cloud.notes":`What runs differently in the cloud:`,"cloud.check":`What the cloud would lack for the wizard as it is now:`,"cloud.checkBlocking":`As it is now, the wizard wouldn’t run in the cloud:`,"cloud.documents":`The space’s documents stay on this computer. In the cloud, the steps work without them.`,"cloud.stepName":`“{title}”`,"cloud.problem.sandbox":`The cloud can’t run code steps. There, the wizard runs without them.`,"cloud.problem.mcp":`The space’s connected systems aren’t available in the cloud: {detail}.`,"cloud.problem.model":`The cloud has no model for this.`,"cloud.problem.connector":`The space lacks a connector in the cloud.`,"cloud.problem.invalid":`The cloud doesn’t accept the wizard in this form.`,"cloud.spaceLimit":`Your account’s cloud already holds a space from another computer:`,"cloud.replace":`Replace that space`,"cloud.replaceConfirm":`Remove that space from the cloud? Its wizards and their links stop working there. Then everything you published here arrives in the cloud.`,"cloud.noticeError":`Published here. This version didn’t arrive in the cloud – see below.`,"cloud.noticeNotRunnable":`Published here. This version doesn’t run in the cloud – see below.`,"readonly.wizard":`You edit this wizard in engenty wizards on your computer. When you publish it there, the new version runs here.`,"readonly.project":`You edit this space in engenty wizards on your computer. Changes show up here the next time you publish a wizard.`,"readonly.server":`Wizards run here once you publish them in engenty wizards on your computer. You build and edit them there.`,"nav.wizards":`Wizards`,"nav.spaceMenu":`Space menu`,"nav.renameSpace":`Rename space`,"nav.wizardsInSpace":`Wizards in space`,"nav.addWizard":`Add wizard`,"nav.spaceLocal":`On this computer`,"nav.spaceCloud":`In the cloud`,"nav.settings":`Settings`,"nav.project":`Space`,"nav.switchSpace":`Switch space`,"nav.addSpace":`Add space`,"nav.wizardCount":{one:`{n} wizard`,other:`{n} wizards`},"appbar.position":`Position`,"appbar.left":`Left`,"appbar.top":`Top`,"appbar.right":`Right`,"appbar.bottom":`Bottom`,"appbar.theme":`Colour scheme`,"appbar.light":`Light`,"appbar.dark":`Dark`,"appbar.system":`Match system`,"account.title":`Account`,"account.hint":`What engenty wizards calls you and how to reach you.`,"account.initials":`Your initials in the menu at the top right: the first letters of your name.`,"account.name":`Name`,"account.nameHint":`It starts as this computer’s user name.`,"account.fromAccount":`Name and email come from your account.`,"account.about":`About you`,"account.aboutHint":`Who you are and what you do.`,"account.email":`Email`,"account.phone":`Phone`,"account.connection":`engenty account`,"account.connectionHint":`Sign-in, credits and the cloud that runs your wizards for everyone.`,"account.profile":`Profile`,"account.local":`On your computer`,"account.localText":`engenty wizards runs on your computer and isn’t connected to an account. Wizards, the space and files stay here.`,"account.linked":`Connected`,"account.with":`With an account`,"account.withCredits":`Credits for the models where no AI client is installed. No API key needed.`,"account.withCloud":`What you publish also runs on engenty.ai, behind a public link, even when this computer is off.`,"account.signIn":`Sign in`,"account.signInAgain":`Sign in again`,"account.new":`No account yet?`,"account.newHint":`A new account needs an invitation code. Enter it here and it’s filled in when you create the account.`,"account.code":`Invitation code`,"account.create":`Create account`,"account.credits":`Credits`,"account.topUp":`Top up`,"account.expires":{one:`{n} credit valid until {date}`,other:`{n} credits valid until {date}`},"account.kind.start":`Starting credits`,"account.kind.monthly":`Monthly credits`,"account.kind.gift":`Gift`,"account.cloud":`What you publish here also runs on {host}.`,"account.look":`Appearance`,"account.lookHint":`Language and theme of the studio in this browser.`,"nav.logout":`Sign out`,"nav.connected":`Connected to {host}`,"nav.expired":`Sign-in expired`,"nav.onlyHere":`Only on this computer`,"nav.local":`local`,"nav.theme":`Theme`,"nav.credits":{one:`{n} credit`,other:`{n} credits`},"about.version":`Version {v}`,"about.title":`About engenty wizards`,"about.kind.script":`On your computer`,"about.kind.checkout":`Development checkout`,"about.kind.npm":`Installed with npm`,"about.kind.cloud":`In the cloud`,"about.update.check":`Check for updates`,"about.update.checking":`Checking for updates…`,"about.update.upToDate":`You’re up to date.`,"about.update.checkedAt":`last checked {when}`,"about.update.unknown":`Couldn’t check for updates. Check your connection to GitHub and try again.`,"about.update.off":`Checking for updates is switched off.`,"about.update.manual":`This copy doesn’t update itself. Get the new version where you installed it.`,"about.tab.new":`What’s new`,"about.tab.earlier":`Versions`,"about.changes":{one:`{n} change`,other:`{n} changes`},"about.change":`1 change`,"about.update.available":`Version {v} of engenty wizards is out.`,"about.update.install":`Update`,"about.update.installing":`Installing version {v}…`,"about.update.restarting":`Restarting with version {v}…`,"about.update.done":`Installed. Restart engenty wizards to use {v}.`,"about.update.failed":`The update failed. Details are in logs/update.log.`,"about.update.notes":`What’s new`,"about.update.updated":`Updated to version {v}.`,"about.update.ready":`Version {v} is downloaded and runs from the next start.`,"about.changelog":`Changelog`,"about.changelogHint":`What changed from release to release.`,"about.changelogEmpty":`Nothing here yet.`,"about.unreleased":`Unreleased`,"about.breaking":`breaking`,"about.credits":`Credits`,"about.creditsHint":`engenty wizards and the open-source software it builds on.`,"about.creditsProduct":`engenty`,"about.creditsBuiltWith":`Built with`,"about.creditsDeps":`Direct dependencies`,"about.creditsDepsHint":`What each part of engenty wizards includes directly, with version and licence – not their own dependencies.`,"about.creditsShared":`Used by more than one part`,"about.search":`Search…`,"about.noMatches":`No matches.`,"theme.dark":`Dark theme`,"theme.light":`Light theme`,"home.title":`Wizards in {space}`,"home.search":`Search your wizards`,"home.noMatch":`No matches.`,"home.newFromSearch":`Build a new wizard: “{q}”`,"home.new":`New wizard`,"home.import":`Import`,"import.failed":`The import didn’t work. Check the file and try again.`,"home.empty":`No wizards in this space yet.`,"home.live":`Live`,"home.draft":`Draft`,"where.here":`Local`,"where.hereVersion":`Local · version {v}`,"where.hereHint":`Runs only on this computer, while engenty wizards is running.`,"where.liveHint":`Runs on {host}, for everyone with the link.`,"where.liveAt":`Live on {host} · version {v}`,"where.note":`1 note`,"where.notes":{one:`{n} note`,other:`{n} notes`},"where.sending":`On its way to the cloud`,"where.missing":`Not in the cloud`,"home.steps":{one:`{n} step`,other:`{n} steps`},"home.all":`All`,"home.newProject":`New space`,"home.projectName":`Space name`,"home.projectLimit":{one:`At most {n} space`,other:`At most {n} spaces`},"team.title":`Team`,"team.hint":`Who’s in the team and which plan it’s on. You invite and manage members in the account.`,"team.plan":`Plan`,"team.planFree":`Free`,"team.seats":`{taken} of {limit} seats`,"team.seatsUnlimited":`Unlimited seats`,"team.members":`Members`,"team.invited":`invited`,"team.you":`you`,"team.manage":`Manage members`,"team.changePlan":`See plans`,"team.roles":`Owners and admins create and delete wizards and spaces. Members edit existing wizards.`,"team.memberNote":`You’re a member: you can edit wizards. Admins create and delete them.`,"team.failed":`The team couldn’t be loaded. Try again.`,"team.role.owner":`Owner`,"team.role.admin":`Admin`,"team.role.member":`Member`,"models.ownKeysPlan":`Your own API keys come with the Pro plan. Here, runs use the team’s credits.`,"home.fromLocal":`Edited on your computer.`,"home.syncedAt":`Arrived in the cloud: {when}.`,"home.local.title":`Wizards you publish from your computer run here`,"home.local.text":`You build on your own computer. What you publish there runs here – for everyone, behind a link.`,"home.local.install":`Install engenty wizards on your computer:`,"home.local.signIn":`Sign in there with this account, under Settings → Account.`,"home.local.publish":`Publish a wizard. It then shows up here.`,"new.title":`What should your wizard do?`,"new.placeholder":`e.g. Customers enter their product and audience, the wizard researches competitors and writes a positioning briefing as a PDF.`,"new.build":`Build wizard`,"new.orStarter":`Or start from a template`,"new.import":`Import a wizard file`,"new.hint":`You can change everything afterwards in the chat.`,"guest.signIn":`Sign in`,"guest.hint":`Next you sign in. Your wish stays with you.`,"onboard.wish":`Your wish`,"onboard.wishNext":`Right after this, the studio builds your wizard.`,"legal.imprint":`Imprint`,"legal.privacy":`Privacy`,"legal.terms":`Terms`,"new.runsAs":`Runs as`,"new.where":`How should it run?`,"new.web":`In the browser`,"new.phone":`On the phone`,"new.messages":`By message`,"new.off":`off`,"new.ch.steps":`Step-by-step wizard`,"new.ch.chat":`Chat`,"new.ch.talk":`Live voice`,"new.ch.video":`Video call`,"new.ch.call":`Call`,"new.ch.sms":`SMS`,"new.ch.whatsapp":`WhatsApp`,"new.callHandoff":`Anything a call can’t do is sent by SMS.`,"new.similar":`Similar wizards`,"new.yours":`Yours`,"new.template":`Template`,"new.open":`Open`,"new.take":`Use`,"new.more":`{n} more…`,"new.dropHint":`Drop to attach`,"editor.resize":`Drag to resize, double-click to reset`,"editor.resizeSheet":`Drag to resize, tap to fold or unfold`,"editor.export":`Export as a wizard file (.wizard)`,"wizardMenu.label":`More`,"wizardMenu.duplicate":`Duplicate`,"wizardMenu.delete":`Delete`,"wizardMenu.deleteTitle":`Delete “{title}”?`,"wizardMenu.deleteDraft":`The wizard and its history are deleted. This can’t be undone.`,"wizardMenu.deletePublished":`The wizard is deleted. Its link stops working and the published version goes away – from the cloud too, if an account is connected. This can’t be undone.`,"addStep.title":`What should happen here?`,"addStep.placeholder":`e.g. a map of all properties found, coloured by price`,"addStep.kind":`Kind of step`,"addStep.auto":`AI chooses`,"addStep.empty":`Describe what the step should do first.`,"addStep.busy":`The assistant is still working on the last message. Try again in a moment.`,"addStep.emptyStep":`Insert empty`,"addStep.cancel":`Cancel`,"addStep.create":`Create`,"addStep.building":`Building the new step…`,"addStep.showChat":`See it in the chat`,"addStep.add":`Add step`,"surface.preview":`Preview`,"surface.code":`Code`,"surface.sampleNote":`With sample data – a run shows its own.`,"surface.sampleText":`Sample text`,"surface.sampleBrand":`Your company`,"addStep.when":`When?`,"addStep.always":`Always`,"addStep.onlyIf":`Only if…`,"addStep.aiDecides":`AI decides…`,"addStep.ifPlaceholder":`e.g. revenue below 100`,"addStep.askPlaceholder":`e.g. the person wants a refund`,"addStep.whenEmpty":`Say when this step should run.`,"addStep.messageIf":`Only if: {text} – otherwise the run continues after “{from}” as before.`,"addStep.messageAsk":`AI decides: {text} – otherwise the run continues after “{from}” as before.`,"addStep.here":`Add a step here`,"addStep.between":`Between “{before}” and “{after}”`,"addStep.after":`After “{title}”`,"addStep.first":`As the first step, before “{title}”`,"addStep.message":`New step · {place}`,"addStep.messageAs":`New step ({kind}) · {place}`,"widget.missing":`The widget isn’t built yet.`,"widget.what":`What should the widget show? (optional)`,"widget.build":`Let the assistant build it`,"widget.upload":`Upload your own HTML`,"widget.buildMessage":`Please build the widget “{title}”. {what}`,"editor.chat":`Assistant`,"editor.flow":`Flow`,"editor.dropToAttach":`Drop to attach to your message`,"editor.memory":`Memory`,"memory.explain":`What the wizard knows across all its runs. AI steps with the “Pages” tool read and add notes here, and its shared lists keep their tables here. The same data is under Data in your space.`,"memory.unused":`No step uses the memory yet. Ask the assistant to have an AI step remember something.`,"memory.none":`Nothing remembered yet.`,"memory.add":`Note`,"memory.newNote":`Note`,"memory.back":`Memory`,"memory.testCopy":`Test runs read the memory but write to a copy of their own, which belongs to the run.`,"editor.step":`Steps`,"editor.runs":`Runs`,"editor.reviewEditable":`editable`,"editor.reviewRedo":`can be redone`,"editor.otherwise":`otherwise`,"editor.next.title":`Next step`,"editor.next.ways":{one:`Next step · {count} path`,other:`Next step · {count} paths`},"editor.next.open":`Open step`,"editor.next.then":`Then`,"editor.next.fold":`Hide details`,"editor.next.unfold":`Show details`,"editor.branch.ai":`AI`,"editor.branch.addWhen":`Condition`,"editor.branch.when":`Continue when`,"editor.branch.pick":`Choose…`,"editor.branch.and":`and`,"editor.branch.statement":`Statement`,"editor.branch.none":`None clearly applies`,"editor.branch.how":`A decision model decides when one is available; otherwise the Classifier model does. If the top two answers are within 10 points, “none” applies.`,"editor.branch.lastRun":`In the last test run, {source} decided.`,"editor.branch.bySystemOne":`a decision model`,"editor.branch.byLlm":`the language model`,"editor.branch.notYet":`A test run shows here how the AI decided.`,"editor.branch.end":`End`,"editor.branch.max":`At most this often (default 10)`,"editor.branch.remove":`Remove branch`,"editor.branch.addAsk":`AI decides`,"editor.branch.newAsk":`The person wants…`,"editor.whenFilled":`{field} filled in`,"editor.whenEmpty":`{field} empty`,"editor.whenContains":`{field} contains {value}`,"editor.whenAsk":`decides: {text}`,"editor.surfaceJson":`View (JSON)`,"editor.fieldAsk":`Or: show when the AI finds this true…`,"editor.atMost":`at most {count}×`,"editor.shownWhen":`Show only when`,"editor.shownAlways":`Always show`,"editor.conditionValue":`Value`,"editor.optionsFrom":`Choices from earlier data`,"editor.optionsFixed":`Fixed choices`,"editor.op.equals":`is`,"editor.op.notEquals":`is not`,"editor.op.in":`is one of`,"editor.op.notEmpty":`is filled in`,"editor.op.empty":`is empty`,"editor.op.gt":`greater than`,"editor.op.lt":`less than`,"editor.op.contains":`contains`,"editor.conditionsMore":{one:`and {count} more condition`,other:`and {count} more conditions`},"tool.web_search":`Web search`,"tool.web_fetch":`Read web pages`,"tool.browser":`Browser`,"tool.sandbox":`Code & shell`,"tool.image":`Images`,"tool.http":`API`,"tool.pages":`Pages`,"editor.test":`Test`,"editor.share":`Share`,"editor.published":`Live · version {v}`,"editor.notPublished":`Not published yet`,"editor.composer":`Describe what should change…`,"editor.attach":`Attach files`,"editor.detach":`Remove`,"editor.attached":`Attached`,"editor.thread":`Chat history`,"editor.voice":`Dictate`,"editor.voiceStop":`Stop dictating`,"editor.listening":`Listening…`,"editor.transcribing":`Writing it down…`,"editor.micDenied":`The microphone isn’t allowed for this page. Allow it in your browser’s site settings.`,"editor.building":`Building the flow…`,"editor.files":`Files`,"files.explain":`Your wizard uses these files on every run, like widget code, libraries or price lists. The assistant creates them in the chat, or you can upload your own.`,"files.upload":`Upload`,"files.drop":`Drop to upload`,"files.count":{one:`{n} file · {size}`,other:`{n} files · {size}`},"files.empty":`No files yet. Drop files here or ask the assistant to build a widget.`,"files.download":`Download`,"files.delete":`Delete`,"files.confirmDelete":`Delete “{path}”?`,"files.none":`This wizard has no files.`,"editor.thinking":`Thinking…`,"editor.chatBroken":`The connection dropped. What was already built is saved. Send your message again.`,"editor.issues":`Before you test or share, the wizard needs a few fixes:`,"editor.fixWithChat":`Let the assistant fix it`,"editor.models.blocking":`The wizard can’t start like this. Models are missing:`,"editor.models.optional":`These steps won’t run like this. Choose a path without them when testing, or set up the models:`,"editor.models.settings":`Set up models`,"editor.prevStep":`Previous step`,"editor.nextStep":`Next step`,"editor.deleteStep":`Delete step`,"editor.holdToDelete":`Hold to delete`,"editor.deleting":`Delete`,"editor.moveUp":`Move up`,"editor.moveDown":`Move down`,"editor.noRuns":`No runs yet.`,"editor.restart":`Restart`,"editor.close":`Close`,"runDrawer.expand":`Fill the window`,"runDrawer.shrink":`Back to the side`,"editor.chatHello":`Tell me what your wizard should do. I’ll build the flow and you’ll see it as a diagram on the left.`,"shareRun.button":`Share`,"shareRun.title":`Share result`,"shareRun.email":`Email`,"shareRun.more":`More…`,"shareRun.until":`The link works until {date}.`,"shareRun.kept":`The link works until you withdraw it.`,"shareRun.withdraw":`Withdraw link`,"sharePage.gone":`This link has expired or was withdrawn.`,"sharePage.own":`Try it yourself`,"sharePage.until":`Shared · available until {date}`,"sharePage.shared":`Shared on {date}`,"share.publishing":`Publishing…`,"share.firstTitle":`Published when you shared it`,"share.firstText":`Version {v} is live. Only people with the link can open it.`,"share.notReady":`Not ready to share yet`,"share.notReadyHint":`Sharing it for the first time publishes it. Fix this first:`,"share.stillBuilding":`The assistant is still building it. Once it’s done, sharing publishes it.`,"live.open":`Publish changes`,"live.openShort":`Publish`,"live.title":`Publish changes`,"live.intro":`Others see version {v}. Publishing makes it version {next} – the link stays the same.`,"live.changed":`What changed`,"live.nothing":`Nothing that changes steps or files.`,"live.stepAdded":`New step “{name}”`,"live.stepRemoved":`Step “{name}” removed`,"live.stepChanged":`“{name}”: {parts}`,"live.wizardChanged":`The wizard itself: {parts}`,"live.order":`The order of the steps`,"live.fileAdded":`File “{name}” added`,"live.fileRemoved":`File “{name}” removed`,"live.fileChanged":`File “{name}” replaced`,"live.and":`and`,"live.part.title":`title`,"live.part.description":`description`,"live.part.fields":`fields`,"live.part.cta":`button`,"live.part.instructions":`instructions`,"live.part.tools":`tools`,"live.part.connections":`connections`,"live.part.output":`result`,"live.part.model":`model`,"live.part.next":`what comes next`,"live.part.each":`repetition`,"live.part.intro":`greeting`,"live.part.avatar":`engenty`,"live.part.lists":`lists`,"live.part.other":`settings`,"live.fixFirst":`Fix first, then publish`,"live.tested":`Tested {when} – with these changes`,"live.testedFailed":`The test {when} failed with these changes.`,"live.justNow":`just now`,"live.seeRun":`See the run`,"live.untested":`Not tested with these changes yet.`,"live.test":`Test now`,"live.keepRunning":`Anyone in the middle of a run carries on with version {v}.`,"live.cost":`A run now costs about {after} instead of {before} credits.`,"live.cloud":`Version {v} also arrives in your account’s cloud.`,"live.cancel":`Cancel`,"live.go":`Publish`,"live.going":`Publishing…`,"live.done":`Version {v} is live`,"live.doneHint":`New runs start on version {v}. Anyone mid-run carries on with version {was}.`,"live.doneCloud":`New runs start on version {v}, here and in the cloud. Anyone mid-run carries on with version {was}.`,"live.close":`Done`,"share.titleOf":`Share “{title}”`,"share.access":`Access`,"share.anyone":`Anyone with the link`,"share.anyoneMenu":`can open and fill it in`,"share.anyoneHint":`can open and fill it in · up to {n} runs a day`,"share.onlyYou":`Only you`,"share.onlyYouHint":`The link is off. You test it in the studio.`,"share.thisComputer":`Only on this computer`,"share.thisComputerHint":`Others reach it only through the cloud.`,"share.ways":`How others reach it`,"share.change":`Change`,"share.copyLink":`Link`,"share.copyNumber":`Number`,"share.copyLinkFor":`Copy the link for {name}`,"share.copyNumberFor":`Copy the number for {name}`,"share.keywordTo":`“{keyword}” to {number}`,"share.unset":`Not set up yet`,"share.setUp":`Set up`,"share.waiting":`Waiting`,"share.notInPlan":`Not in your plan`,"share.seePlan":`See {plan}`,"share.seePlans":`See the plans`,"share.offNote":`While only you have access, everyone else sees a notice.`,"share.opensSteps":`step by step`,"share.opensAs":`as {name}`,"share.linkNote":`“Copy link” opens it {how} and offers the other options right away.`,"share.copyMain":`Copy link`,"share.notPublished":`Not published yet`,"share.changes":`Others see version {v}. Your changes are not live yet.`,"share.localHint":`Here it runs on this computer only. With an account, it also runs in the cloud, and everyone opens it there.`,"share.back":`Back`,"share.close":`Close`,"share.done":`Done`,"share.qrOpens":`Opens`,"share.qrMessage":`Scan with the phone’s camera: {name} opens with the keyword already typed.`,"share.print":`Print`,"share.download":`Download`,"share.onWebsite":`On your website`,"share.webShows":`What does the website show?`,"share.webWhere":`Where on the page?`,"share.webCode":`Code for your page`,"share.copyCode":`Copy code`,"share.webNeedsLink":`The code only works once the wizard is published and open to anyone with the link.`,"share.wpLine":`WordPress? Our plugin does it without code.`,"share.wpPackageLink":`Without an account: as a package`,"share.place.inline":`In the page`,"share.place.inlineHint":`It sits in your page, where you paste the code.`,"share.place.button":`Behind a button`,"share.place.buttonHint":`A button on your page opens it in a window.`,"share.place.bubble":`As a bubble`,"share.place.bubbleHint":`Bottom right on every page – one click opens it. Ideally, put the code in the footer.`,"share.place.popout":`As a chat button`,"share.place.popoutHint":`Bottom right on every page – one click opens the chat. Ideally, put the code in the footer.`,"share.runs":`runs`,"share.newLink":`New link`,"share.rotated":`New link created`,"share.link":`Link`,"share.copy":`Copy`,"share.limit":`Limit per day`,"translate.offer":`Offer a translation`,"translate.offerHint":`People who speak another language can read the wizard in theirs. The first translation into a language is one short AI call. After that it is only read.`,"translate.byYou":`Edited by you`,"translate.byMachine":`Machine-translated`,"translate.edit":`Edit translation`,"translate.delete":`Delete translation`,"translate.none":`No translation yet. One is made when someone opens the wizard in another language.`,"translate.save":`Save`,"translate.editHint":`What you change here stays when you publish again, as long as the original text stays the same. Leave placeholders in curly brackets as they are.`,"share.rotate":`Create a new link`,"share.rotateHint":`The old link and the QR code stop working.`,"share.open":`Open`,"share.website":`Website`,"share.openHere":`Test on this computer`,"share.settings":`Settings`,"share.rotateCloud":`The old link and the QR code stop working, in the cloud too.`,"share.others":`Share with others`,"share.details":`Details`,"teaser.link":`This link only works on this computer, while engenty wizards is running. With an account, the wizard also runs on engenty.ai, with a link for everyone.`,"teaser.models":`No API key of your own? With an account, text, images and videos run on credits.`,"teaser.connect":`Connect an account`,"teaser.modelsLinked":`Or use your account’s credits: under Models, choose “engenty credits”.`,"share.qr":`QR code`,"share.qrHint":`Scan it with a phone’s camera: the wizard opens in the engenty wizards app if it’s installed.`,"share.code":`ID for the app:`,"share.readOnly":`You set whether the link is active and how many runs a day it allows on your computer.`,"share.fit.no":`Not possible: {steps}`,"chat.view":`View`,"chat.steps":`Steps`,"chat.chat":`Chat`,"video.chat":`Chat`,"type.page":`Page`,"type.agent":`AI step`,"type.generate":`Generate`,"type.surface":`View`,"type.widget":`Widget`,"type.film":`Film`,"type.review":`Review`,"type.result":`Result`,"run.regenerate":`New version`,"run.regenerateNote":`What should change?`,"market.search":`Search templates…`,"market.hits":`From the marketplace`,"market.all":`All`,"market.industry":`Industry`,"market.format":`Result`,"market.capability":`Capability`,"market.unavailable":`not set up`,"market.without":`Works without: {list}`,"market.optional":`not set up, works without`,"market.optionalHint":`Runs here without {list}: answers that would need it are locked in the wizard. Set it up under Models.`,"market.missing":`Not set up here: {list}`,"market.plan":`Plan`,"market.pro":`Pro`,"market.proHint":`Needs plugins that come with Pro on engenty.ai`,"market.needsPro":`With Pro: needs {list}`,"market.needsProHint":`This template needs {list}. The plugins come with Pro and Team on engenty.ai.`,"market.missingHint":`This needs a model that isn’t set up here: {list}. Set it up under Models.`,"market.none":`No matches.`,"market.notFound":`This template doesn’t exist or was removed.`,"market.star":`Star`,"market.starred":`Starred`,"market.starHint":`Starred templates are kept on this computer, ready without a connection.`,"market.fromPlugin":`Comes with the plugin “{name}”`,"market.noneStarred":`You haven’t starred a template yet.`,"market.offline":`No connection to the marketplace. You’re seeing the templates saved on this computer.`,"market.more":`Show more`,"market.reset":`Reset filters`,"market.count":{one:`{n} template`,other:`{n} templates`},"market.countOf":`{n} of {all} templates`,"market.countOfShort":`{n} of {all}`,"market.resetShort":`Reset`,"market.minutes":`≈ {n} min`,"market.credits":`≈ {n} credits per run`,"market.needsUpdate":`Needs a newer version`,"market.needsUpdateHint":`This template uses features your version doesn’t support yet. Update engenty wizards to use it.`,"market.use":`Start with this template`,"market.steps":`How the wizard runs`,"market.duration":`Duration`,"market.durationHint":`from start to result, with {n} inputs from you`,"market.result":`Result`,"market.creditsRange":`≈ {n} credits`,"market.creditsHint":`estimated per run, rarely more than twice that`,"market.needs":`Needs`,"market.cost":`Cost`,"new.forWebsite":`Small helpers for your website`,"run.download":`Download`,"run.required":`Required`,"settings.title":`Settings`,"settings.name":`Name`,"settings.mcp":`Connected systems`,"settings.mcpHint":`AI steps can read from and write to these systems – only when you allow it on the step.`,"settings.addServer":`Connect a system`,"settings.serverName":`Name`,"settings.serverUrl":`MCP URL`,"settings.serverHeader":`Authorization header (optional)`,"settings.save":`Save`,"settings.saved":`Saved`,"settings.delete":`Delete space`,"settings.noProject":`Your space shows up here once you publish your first wizard from your computer.`,"settings.copy":`Copy`,"settings.copied":`Copied`,"settings.lastUsed":`last used {when}`,"settings.neverUsed":`never used`,"settings.revoke":`Delete key`,"mcp.appsDisconnect":`Disconnect`,"plugins.title":`Plugins`,"plugins.hint":`Plugins add pages, settings and tools for steps to engenty wizards. They run with full rights, so only install plugins you trust.`,"plugins.hintManaged":`These plugins are switched on for your account.`,"plugins.reload":`Reload`,"plugins.rescan":`Look again`,"plugins.tools":`Tools for steps`,"plugins.serverFailed":`The server part didn’t load. Check the plugin and reload: {error}`,"plugins.studioFailed":`The studio part didn’t load. Check the plugin and reload: {error}`,"plugins.problems":`Not a plugin`,"plugins.crashed":`This part of a plugin crashed.`,"plugins.none":`No plugins of your own yet.`,"pro.title":`Pro modules`,"pro.hint":`Your plan (Pro, Team) includes these modules on your computer. They come from your engenty account and are signed by engenty. They stay on while your plan includes them, for up to a week offline.`,"pro.check":`Check plan`,"pro.notLinked":`Connect your engenty account (Settings → Account) to use your plan’s modules here.`,"pro.plan":`Plan: {plan}`,"pro.confirmedUntil":`confirmed until {date}`,"pro.plans":`Plans`,"pro.on":`On`,"pro.notInPlan":`Not in your plan`,"pro.install":`Install`,"pro.update":`Update`,"pro.remove":`Remove`,"pro.none":`There are no Pro modules for this version ({runtime}) yet.`,"pro.held.plan":`Not in your plan`,"pro.held.release":`Downloading again for this version`,"pro.held.unconfirmed":`Plan not confirmed – go online to check`,"integrate.nav":`Integrate`,"integrate.title":`Your wizards in your AI apps`,"integrate.intro":`Start wizards right in the chat of Claude, ChatGPT, Cursor and the like – answer the pages there and get the result. The AI runs on the subscription you already have.`,"integrate.introManaged":`Start your wizards right in the chat of claude.ai, ChatGPT, Claude Desktop and the like – answer the pages there and get the result.`,"integrate.groupHere":`On this computer`,"integrate.groupCloud":`Through engenty.ai`,"integrate.groupBrowser":`In the browser`,"integrate.groupDesktop":`On your computer`,"integrate.groupMore":`More apps`,"integrate.groupShare":`Share`,"integrate.shareLink":`Share by link`,"integrate.shareSite":`On a website`,"integrate.wpIntro":`The plugin “engenty wizards” puts your published wizards on a WordPress site: as a block, a shortcode, an Elementor widget or a bubble at the bottom right. Results, contacts and bookings also show up in the WordPress admin.`,"integrate.wpInstall":`1 · Install the plugin`,"integrate.wpInstallHint":`In WordPress under Plugins → Add New → Upload Plugin, choose the ZIP file and activate it.`,"integrate.wpDownload":`Download engenty-wizards.zip`,"integrate.wpConnect":`2 · Connect`,"integrate.wpConnectHint":`In the WordPress admin under “engenty”, choose “Create your own AI” (new account) or “Sign in”. The plugin then reads in the site: name, logo, colours, contact details and its pages as knowledge.`,"integrate.wpConnectLocal":`The plugin connects to an account on engenty.ai, not to this computer. Connect your account here and publish your wizards; then you choose them in WordPress.`,"integrate.wpPlace":`3 · Put it on a page`,"integrate.wpPlaceHint":`The “engenty Wizard” block, the Elementor widget of the same name, the bubble from the plugin’s settings, or this shortcode with the wizard’s ID:`,"integrate.wpSampleLabel":`Start a request`,"share.wpPlugin":`Get the plugin`,"share.wpLocal":`Without an account, on the site itself`,"share.wpLocalHint":`Imported as a package into WordPress 7, the wizard uses the site’s own AI provider and needs no account. What it needs:`,"share.wpPackage":`Download the package`,"share.wpPackageDraft":`Draft as a package`,"share.wpKnowledge":`Take the knowledge along`,"share.wpKnowledgeHint":`This space’s pages go into the package as files (up to 2 MB) – what the wizard would otherwise look up in the space.`,"share.wpFull":`Runs there as is`,"share.wpLess":`Runs with less`,"share.wpNo":`Needs an account`,"share.wpNeedsAccount":`With an account: needs {list}`,"share.wpHelp":`In the plugin: engenty → Wizards → Import. Without an account, the results stay in WordPress; contacts, bookings and files need an account.`,"need.full":`runs`,"need.missing":`not set up`,"need.optional":`works without`,"need.lists":`Lists the wizard keeps between runs`,"need.memory":`The wizard’s memory`,"need.each":`One run per entry (here, one after the other)`,"need.field:slot":`Choosing an appointment from free times`,"need.asset:document":`Making documents (PDF, Word)`,"need.asset:dashboard":`Making dashboards`,"need.tool:pages":`Reading the space’s pages`,"need.format":`Result as {format}`,"integrate.wpLocal":`Without an account`,"integrate.wpLocalHint":`WordPress 7 with its own AI provider (Settings → Connectors) runs wizards without an account: the templates that come with the plugin, or a package from a wizard’s share dialog. The share dialog shows for each wizard whether it runs there as is, with less or only with an account.`,"integrate.wpPro":`With Pro`,"integrate.wpProHint":`Contacts and bookings from your wizards in the WordPress admin; wizards made from templates right in WordPress.`,"integrate.soon":`soon`,"integrate.found":`Found on this computer`,"integrate.stateWorks":`Works`,"integrate.stateAdded":`Added, not tested yet`,"integrate.stateNone":`Not set up yet`,"integrate.outRun":`Start wizards in the chat`,"integrate.outWidget":`The wizard shows in the chat`,"integrate.outText":`Wizards as text in the chat`,"integrate.outSignIn":`No API key – you sign in`,"integrate.view":`View`,"integrate.testIt":`Test`,"integrate.connectShort":`Connect`,"integrate.cloudTitle":`claude.ai and ChatGPT`,"integrate.cloudText":`They run in the browser and can’t reach your computer. With your engenty account, your wizards get there anyway.`,"integrate.cloudButton":`Connect through engenty.ai`,"integrate.steps":`How it works`,"integrate.connect":`Add to {app}`,"integrate.connectHint":`Adds engenty wizards to the settings of {app}.`,"integrate.connected":`Added to {app}`,"integrate.notInstalled":`{app} isn’t on this computer. Adding works anyway – it takes effect once {app} is installed.`,"integrate.details":`Details`,"integrate.restart":`Restart {app}`,"integrate.restartHint":`Quit it completely and open it again. This page updates by itself – nothing to click here.`,"integrate.reload":`Reload the servers in {app}, or restart {app}. This page updates by itself.`,"integrate.waiting":`Waiting for {app}`,"integrate.try":`Try it in the chat`,"integrate.tryHint":`In a new chat, write:`,"integrate.askTool":`Which wizards do I have in engenty?`,"integrate.elsewhere":`{app} on another computer?`,"integrate.byAddress":`Connect with the address and an API key`,"integrate.backHere":`Connect on this computer after all`,"integrate.keyCreate":`Create an API key for {app}`,"integrate.keyHint":`{app} signs in with it. It’s shown once and goes straight into the command.`,"integrate.keyReady":`API key created – it’s already in the command.`,"integrate.add":`Add the server`,"integrate.addressLocal":`Reachable on this computer only, and only while engenty wizards is running.`,"integrate.works":`Works`,"integrate.next":`Try next`,"integrate.nextHint":`Copy a sentence into a new chat in {app}.`,"integrate.labelAsk":`Ask`,"integrate.labelRun":`Run`,"integrate.labelBuild":`Build`,"integrate.labelExplain":`Explain`,"integrate.askRun":`Start my wizard “{title}”`,"integrate.askBuild":`Build me a wizard for newsletter drafts`,"integrate.askExplain":`What does the wizard “{title}” do?`,"integrate.textOnly":`{app} shows wizards as text: pages and questions come as messages. Claude Desktop, Cursor and VS Code show the wizard itself as a window in the chat.`,"integrate.addedIn":`Added to {app}`,"integrate.remoteWhy":`{app} runs on its maker’s servers and can’t reach your computer. It can reach your wizards on engenty.ai.`,"integrate.viaAccount":`Connect through your engenty account`,"integrate.tileHere":`This computer`,"integrate.tileHereText":`You keep building here as before.`,"integrate.tileCloudText":`Runs your published wizards.`,"integrate.tileAppText":`Connects to engenty.ai and starts them in the chat.`,"integrate.linkAccount":`Connect to engenty.ai`,"integrate.linkHint":`Then we’ll show you the steps in {app}.`,"integrate.noAccount":`Prefer not to use an account?`,"integrate.useDesktop":`Claude Desktop works right here – one click`,"integrate.linked":`Through your account {email}: {app} sees the wizards you publish here.`,"integrate.openConnectors":`Open connectors in claude.ai`,"integrate.open":`Open {app}`,"integrate.claudeAiWhere":`There: Add custom connector`,"integrate.desktopWhere":`In Claude Desktop: Settings → Connectors → Add custom connector`,"integrate.chatgptWhere":`In ChatGPT: Settings → Apps & Connectors → Advanced → Developer mode, then “Create”`,"integrate.nameAddress":`Enter name and address`,"integrate.name":`Name`,"integrate.address":`Address`,"integrate.allow":`Click “Connect”, sign in, allow`,"integrate.allowHint":`An engenty window opens. You sign in and click “Allow”. It looks like this:`,"integrate.allowFirst":`Sign in and allow on first use`,"integrate.allowFirstHint":`{app} opens an engenty window. You sign in and click “Allow”.`,"integrate.consentPreview":`{app} wants to access your wizards`,"integrate.checkSeen":`Connected`,"integrate.checkTool":`Used a tool`,"integrate.checkWidget":`Showed a wizard in the chat`,"integrate.revoke":`Disconnect any time in your account – access ends at once.`,"integrate.revokeLink":`Connected apps`,"integrate.needsPublic":`{app} connects from its maker’s servers. That only works if this server can be reached publicly over HTTPS.`,"integrate.file":`Put this into {file}:`,"integrate.vscode":`In VS Code: “MCP: Open User Configuration”, then add:`,"integrate.chatgpt":`In ChatGPT: Settings → Apps & Connectors → Advanced → Developer mode, then “Create” with this address:`,"integrate.generic":`In the app’s MCP settings, add a server at this address (Streamable HTTP):`,"mcp.terminal":`Run in the terminal:`,"mcp.ccPlugin":`Optionally, the plugin – it adds the /wizard command:`,"mcp.codexKey":`Run in the terminal – Codex reads the API key from an environment variable:`,"mcp.claudeAi":`In claude.ai: Settings → Connectors → Add custom connector, and enter this address:`,"mcp.oauth":`No API key needed: the first time, your app signs in through the browser.`,"mcp.keys":`API keys`,"mcp.keysHint":`Each API key signs in one app and has full rights – treat it like a password. Delete it and that app is signed out.`,"editor.viaClient":`Via {client}`,"editor.changedVia":`Changed via {client}`,"editor.flowChanged":`Flow updated`,"editor.merged":`Merged with changes from elsewhere`,"common.remove":`Remove`,"common.back":`Back`,"editor.fixIssuesAsk":`Please fix these problems in the wizard:`,"runs.status.waiting_input":`waiting`,"runs.status.running":`running`,"runs.status.done":`done`,"runs.status.failed":`failed`,"runs.status.cancelled":`cancelled`,"step.new.page":`New page`,"step.new.question":`New question`,"step.new.agent":`AI step`,"step.new.agentTask":`Describe the task…`,"step.new.image":`Make an image`,"step.new.imagePrompt":`Describe the image…`,"inspector.kind.text":`Short text`,"inspector.kind.textarea":`Long text`,"inspector.kind.number":`Number`,"inspector.kind.select":`Choice`,"inspector.kind.multiselect":`Multiple choice`,"inspector.kind.date":`Date`,"inspector.kind.email":`Email`,"inspector.kind.url":`Link`,"inspector.kind.toggle":`Yes/no`,"inspector.kind.color":`Colour`,"inspector.kind.image":`Image upload`,"inspector.kind.file":`File upload`,"inspector.kind.items":`Line items (table)`,"inspector.kind.connection":`Connect an account`,"inspector.kind.list":`Saved list`,"inspector.kind.location":`Location`,"inspector.kind.audio":`Voice note`,"inspector.kind.signature":`Signature`,"inspector.kind.slot":`Appointment`,"inspector.whichAccount":`Which account?`,"inspector.whichList":`Which list?`,"inspector.multipleFiles":`Several files`,"inspector.howMany":`How many?`,"inspector.atLeast":`At least`,"inspector.atMost":`At most`,"inspector.camera":`Also record with the camera`,"inspector.cameraVideo":`Camera also records short videos`,"inspector.scan":`Scan a QR code or barcode`,"inspector.placeholder":`Placeholder`,"inspector.help":`Help text`,"inspector.widgetPreview":`Preview with sample data`,"inspector.htmlFile":`HTML file`,"inspector.sample":`Sample data`,"inspector.none":`none`,"inspector.size":`Size`,"inspector.widgetData":`Data for the widget`,"inspector.value":`Value`,"inspector.questions":`Questions`,"inspector.addQuestion":`Add question`,"inspector.task":`Instructions`,"inspector.insertAnswers":`Insert answers with`,"inspector.insertField":`field`,"inspector.insertResults":`, earlier results with`,"inspector.tools":`Tools`,"inspector.personAccounts":`The person’s accounts`,"inspector.personAccountsHint":`Accounts the person connects during the run. The step reads from them freely; anything it changes waits for the person’s yes.`,"inspector.systems":`Connected systems`,"inspector.systemsHint":`This step can only reach the systems allowed here.`,"inspector.output":`Result`,"inspector.working":`Status text while it works, e.g. “Researching…”`,"inspector.whatMade":`What does it make?`,"inspector.options":`Options`,"inspector.style":`Style, e.g. “bright photography, minimalist”`,"inspector.duration":`Length (seconds)`,"inspector.resolution":`Resolution`,"inspector.template":`Template`,"inspector.whatShown":`What does it show?`,"inspector.editable":`Text can be edited directly`,"inspector.redo":`Ask for a new variant`,"inspector.ending":`Ending`,"inspector.endMessage":`Message at the end`,"inspector.title":`Title`,"inspector.description":`Description`,"inspector.intro":`Greeting`,"inspector.introHint":`Shown above the first page.`,"inspector.lang":`Language`,"inspector.langHint":`The language the wizard speaks to people in: its messages, numbers and dates.`,"inspector.langAuto":`Automatic, from its texts`,"inspector.remembers":`Remembers for each person`,"inspector.remembersHint":`Kept between runs – separately for each person who uses the wizard. You can change this in the chat.`,"inspector.account":`Account`,"inspector.list":`List`,"inspector.stepDescription":`Explanation under the title (optional)`,"composer.send":`Send`,"composer.stop":`Stop`,"composer.sendBusy":`Send: before the next step (Enter) – {keys}: once the answer is done`,"dictation.settings":`Microphone and recording`,"dictation.microphone":`Microphone`,"dictation.default":`System default`,"dictation.mic":`Microphone {n}`,"dictation.showMics":`Show microphone names…`,"dictation.hold":`Hold to record`,"dictation.holdToTalk":`Hold to talk`,"dictation.speak":`Speak`,"dictation.stop":`Stop`,"dictation.writing":`Writing…`,"date.pick":`Choose a date`,"time.pick":`Choose a time`,"time.hour":`Hour`,"time.minute":`Minute`,"date.pickRange":`Choose a day or a period`,"date.pickStart":`Choose the first day`,"date.pickEnd":`Choose the last day – or the same one for one day`,"date.today":`Today`,"date.clear":`Clear`,"date.prev":`Previous month`,"date.next":`Next month`,"connectors.title":`Connectors`,"connectors.hint":`Services a wizard can work in for the person – they connect their own account during a run. The main ones are built in. You find others in the integrations.sh registry and import them from their OpenAPI spec or MCP server.`,"connectors.imported":`From the registry`,"connectors.noneImported":`No connectors imported from the registry yet.`,"connectors.notSetUp":`not set up`,"connectors.setup":`Still needs these settings:`,"connectors.search":`Find a service, e.g. Notion, Stripe, GitHub`,"connectors.find":`Search`,"connectors.none":`No matches.`,"connectors.import":`Import`,"connectors.exists":`Already imported.`,"connectors.ownClient":`Your own OAuth client`,"connectors.refresh":`Reload actions`,"connectors.remove":`Remove`,"connectors.actions":`{n} actions, {r} of them only read`,"connectors.pending":`Actions appear once an account is connected`,"connectors.needsClient":`This service needs an OAuth client (ID and secret). Remove it and import it again with “Your own OAuth client”.`,"connectors.authNone":`no sign-in`,"connectors.authOauth":`OAuth sign-in`,"connectors.authKey":`API key`,"connectors.group.read":`reads`,"connectors.group.write":`changes`,"connectors.group.destructive":`deletes`,"camera.missing":`No camera was found on this device. Upload a photo instead.`,"camera.busy":`Another app is using the camera. Close it and try again.`,"location.unavailable":`Your device couldn’t find its location right now. Try again outdoors or type the address.`,"location.timeout":`That took too long. Try again or type the address.`,"install.app.offer":`Install the studio as an app: its own window, its own icon in the Dock or taskbar.`,"install.app.browser":`In Chrome or Edge the studio installs as an app: its own window, its own icon.`,"install.app.action":`Install as app`,"install.app.close":`Close`,"install.app.how.ios":`In Safari, tap Share and then “Add to Home Screen”. The studio then sits on your home screen like an app.`,"install.app.how.mac":`In Safari, choose File → “Add to Dock”. The studio gets its own window and an icon in the Dock.`,"install.app.how.android":`In Chrome, tap the ⋮ menu and then “Install app” or “Add to Home screen”.`,"install.app.how.chromium":`Click the install icon in the address bar, or choose “Install app” in the menu. The studio gets its own window and an icon.`,"common.loading":`Loading…`,"common.error":`Error`,"data.hint":`Tables and pages the space and its wizards keep.`,"data.all":`All data`,"data.own":`General`,"data.table":`Table`,"data.page":`Page`,"data.newTable":`New table`,"data.newPage":`New page`,"data.title":`Title`,"data.owner":`Belongs to`,"data.create":`Create`,"data.empty":`No tables or pages yet. Create one – soon your wizards will write here too.`,"data.rows":{one:`{n} row`,other:`{n} rows`},"data.addRow":`Row`,"data.noRows":`No rows yet.`,"data.deleteRow":`Delete row`,"data.deleteTable":`Delete table`,"data.deletePage":`Delete page`,"data.confirmDelete":`Delete “{title}”?`,"data.newColumn":`New column`,"data.columnName":`Name`,"data.columnType":`Type`,"data.required":`Must be filled in`,"data.deleteColumn":`Delete column`,"data.removeOption":`Remove`,"data.fromList":`This list belongs to a wizard: every run writes to it. The columns come from the wizard.`,"data.badCell":`This value doesn’t fit “{column}” and isn’t saved.`,"data.type.text":`Text`,"data.type.number":`Number`,"data.type.date":`Date`,"data.type.duration":`Duration`,"data.type.select":`Choice`,"data.type.boolean":`Yes/no`,"data.text.single":`One line`,"data.text.multiline":`Several lines`,"data.number.integer":`Whole number`,"data.number.decimal":`Decimal`,"data.number.percent":`Percent`,"data.number.currency":`Amount`,"data.currency":`Currency (e.g. EUR)`,"data.date.date":`Date`,"data.date.datetime":`Date and time`,"data.date.time":`Time`,"data.unit":`Entered in`,"data.unit.milliseconds":`ms`,"data.unit.seconds":`seconds`,"data.unit.minutes":`minutes`,"data.unit.hours":`hours`,"data.unit.days":`days`,"data.options":`Choices, one per line`,"data.multiple":`Several can be chosen`,"data.write":`Write`,"data.preview":`Preview`,"data.pageEmpty":`This page is still empty.`,"data.markdownHint":`Markdown: # heading, **bold**, - list`,"space.holds.intro":`A space holds what belongs together – a company, a brand or an undertaking. Every wizard belongs to exactly one space.`,"space.holds.wizards":`Its own list of wizards – home and search show only these.`,"space.holds.info":`Name, logos, colours and facts its wizards know.`,"space.holds.knowledge":`Documents, tables and pages its wizards share.`,"space.holds.connectors":`The connections its wizards use.`,"space.holds.results":`The runs of its wizards.`,"space.holds.shared":`Account, models and plugins apply to every space.`,"space.info":`Info & brand`,"space.knowledge":`Knowledge`,"space.data":`Data`,"space.results":`Results`,"space.resultsAll":`All results`,"space.resultsHint":`Runs of your wizards that reached their result, newest first.`,"space.resultsEmpty":`No results yet. A run shows up here once it’s done.`,"space.resultCredits":{one:`{n} credit`,other:`{n} credits`},"space.resultsSearch":`Search: wizard, answers, result…`,"space.resultsModeAll":`Live & test`,"space.resultsAnyTime":`Any time`,"space.resultsDay":`Last 24 hours`,"space.resultsDays":`Last {n} days`,"space.resultsNone":`No matches.`,"space.resultFiles":{one:`{n} file`,other:`{n} files`},"project.rename":`Rename space`,"project.saving":`Saving…`,"project.base":`Basics`,"project.baseHint":`Who is behind the wizards. Every AI step knows this.`,"project.title":`Title`,"project.titleHint":`Company, brand or undertaking – people using your wizards see it too.`,"project.about":`About`,"project.aboutHint":`What you do, for whom and the tone you write in.`,"project.logos":`Logos`,"project.logosHint":`People using your wizards see the first logo. A description says what a variant is for.`,"project.logoAdd":`Logo`,"project.logoMain":`Main logo`,"project.logoMakeMain":`Make main logo`,"project.logoSectionAdd":`Logo section`,"project.logoSectionTitle":`Title, e.g. Logomark`,"project.logoSectionUse":`When these logos fit, e.g. small sizes and app icons`,"project.sectionUntitled":`Untitled section`,"project.sectionRemove":`Remove section`,"project.logoSectionRemoveConfirm":`Remove “{name}”? Its logos join the standard logos.`,"project.sectionMove":`Move`,"project.sectionStandard":`Standard`,"project.rules":`Rules`,"project.ruleNew":`New rule`,"project.logoRulePlaceholder":`e.g. Don’t stretch or distort the logo`,"project.rulesHint":`Only what your brand prescribes. Click the symbol before a rule to change its type.`,"project.markBullet":`Bullet`,"project.markDo":`Do`,"project.markDont":`Don’t`,"project.markQuestion":`To check`,"project.markImportant":`Important`,"project.markNumber":`Numbered`,"project.logoUpload":`Upload logo`,"project.logoFromUrl":`Logo from URL`,"project.logoUrl":`Address`,"project.logoUrlHint":`The address of an image, or of a web page – engenty then shows its logos for you to choose from.`,"project.logoFound":`Logos on the page`,"project.logoFoundHint":`Choose one or more. An SVG or a large PNG works best.`,"project.logoNoneFound":`No logos found on this page.`,"project.addMany":`Add {n}`,"project.colors":`Colours`,"project.colorsHint":`The first colour is the accent of documents, dashboards and public pages.`,"project.colorNew":`New colour`,"project.colorsFromUrl":`Colours from URL`,"project.colorsUrlHint":`The address of a web page – engenty reads the colours from its stylesheet.`,"project.colorsFound":`Colours of the page`,"project.colorsFoundHint":`Choose your brand’s colours. You can note what they’re for afterwards.`,"project.colorsNoneFound":`No colours found on this page.`,"project.colorsEmpty":`No colours yet.`,"project.colorSectionAdd":`Colour section`,"project.colorSectionTitle":`Title, e.g. Illustration`,"project.kindColors":`Colours`,"project.kindGradients":`Gradients`,"project.kindPatterns":`Patterns`,"project.colorAdd":`Colour`,"project.fillUseLabel":`What for`,"project.gradientUse":`What for, e.g. headers and title slides`,"project.patternUse":`What for, e.g. backgrounds of social posts`,"project.gradientSectionAdd":`Gradients`,"project.gradientSectionTitle":`Gradients`,"project.gradientSectionTitlePlaceholder":`Title, e.g. Gradients`,"project.patternSectionAdd":`Patterns`,"project.patternSectionTitle":`Patterns`,"project.patternSectionTitlePlaceholder":`Title, e.g. Backgrounds`,"project.fillSectionRemoveConfirm":`Remove “{name}” and delete everything in it?`,"project.gradientAdd":`Gradient`,"project.gradientEdit":`Edit gradient`,"project.gradientName":`Name`,"project.gradientNamePlaceholder":`e.g. Horizontal warm`,"project.gradientType":`Type`,"project.gradientLinear":`Linear`,"project.gradientRadial":`Radial`,"project.gradientConic":`Conic`,"project.gradientAngle":`Angle`,"project.gradientStops":`Colour stops`,"project.gradientAt":`Position`,"project.gradientStopAdd":`Colour stop`,"project.gradientFromBrand":`From the brand colours:`,"project.gradientCssHint":`Or paste CSS: linear-, radial- or conic-gradient with hex colours.`,"project.gradientCssError":`engenty can’t read that. Paste a CSS gradient with hex colours.`,"project.gradientCopy":`Copy CSS`,"project.gradientCopied":`Copied`,"project.patternAdd":`Pattern`,"project.patternName":`Name`,"project.patternTile":`Repeat as a tile`,"project.patternFill":`Fill the area`,"project.patternNew":`New pattern`,"project.patternEdit":`Edit pattern`,"project.patternPick":`Drop a picture here or choose one`,"project.patternReplace":`Replace picture`,"project.patternNamePlaceholder":`e.g. Beans`,"project.patternShow":`Shown as`,"project.gradientNew":`New gradient`,"project.gradientDescribe":`Describe the gradient`,"project.gradientDescribeNew":`Describe the gradient, e.g. “from primary to text, diagonal”`,"project.gradientDescribeChange":`What should change? e.g. “softer, more orange”`,"project.gradientDescribeMake":`Create`,"project.gradientDescribeApply":`Change`,"project.gradientDescribeHint":`engenty turns it into type, angle and colour stops – you can change everything by hand afterwards.`,"project.download":`Download`,"project.colorSectionRemoveConfirm":`Remove “{name}”? Its colours join the standard colours.`,"project.colorRulePlaceholder":`e.g. Never the accent as a fill behind body text`,"project.colorName":`e.g. Primary – buttons and headings`,"project.colorUse":`Describe how engenty should use this colour.`,"project.add":`Add`,"project.colorAccent":`Accent`,"project.colorFirst":`Make accent`,"project.typography":`Typography`,"project.typographyHint":`Fonts, their weights and how text is set. AI steps set documents in them.`,"project.fontFamily":`Font family, e.g. Inter`,"project.fontRole":`What for, e.g. body text`,"project.fontLicense":`Licence`,"project.fontLicensePlaceholder":`Licence, e.g. SIL Open Font License`,"project.fontUses":`Allowed for`,"project.fontUseWeb":`Web`,"project.fontUseDocuments":`Documents`,"project.fontUsePrint":`Print`,"project.fontUseImages":`Images & social`,"project.fontUseVideo":`Video`,"project.fontRoleFirst":`What for, e.g. headings and body text`,"project.fontNew":`New font`,"project.fontsFromUrl":`Fonts from URL`,"project.fontsUrlHint":`The address of a web page – engenty reads the fonts from its CSS.`,"project.fontsFound":`Fonts of the page`,"project.fontsFoundHint":`Choose your brand’s fonts.`,"project.fontsNoneFound":`This page uses no custom fonts.`,"project.fontWeightsUnknown":`Weights unknown`,"project.fontsEmpty":`No fonts yet.`,"project.styles":`Text styles`,"project.stylesHint":`The type scale: size, weight, line height and letter spacing per style.`,"project.styleNew":`Text style`,"project.styleName":`Name, e.g. Headline XL`,"project.styleFont":`Font`,"project.styleWeight":`Weight`,"project.styleSize":`Size`,"project.styleLine":`% line`,"project.styleLineLabel":`Line height in %`,"project.styleTracking":`% tracking`,"project.styleTrackingLabel":`Letter spacing in %`,"project.styleUpper":`Uppercase`,"project.typeRulePlaceholder":`e.g. Never set headings in capitals`,"project.typeSample":`Good type makes content easy.`,"project.assets":`Brand assets`,"project.assetsGeneral":`General`,"project.assetUpload":`Upload asset`,"project.assetFromUrl":`Asset from URL`,"project.assetUrlHint":`The address of a file, or of a web page – engenty then shows its pictures for you to choose from.`,"project.assetFound":`Pictures on the page`,"project.assetFoundHint":`Choose one or more.`,"project.assetNoneFound":`No pictures found on this page.`,"project.assetSectionAdd":`Asset section`,"project.assetSectionTitle":`Title, e.g. Icons`,"project.assetSectionName":`Name`,"project.assetSectionRename":`Edit section`,"project.assetSectionRemoveConfirm":`Remove “{name}”? Its assets join “General”.`,"project.assetsHint":`Images, videos, audio, PDFs, fonts, Lottie and 3D. AI steps place images in documents and choose them by their description.`,"project.assetAdd":`Files`,"project.assetSearch":`Filter assets…`,"know.all":`All`,"know.title":`Knowledge`,"know.hint":`What your wizards’ steps look things up in. Documents become pages and tables when they arrive; categories keep the items apart.`,"know.empty":`No knowledge yet. Upload documents or add a page.`,"know.drop":`Drop documents here or`,"know.pick":`choose`,"know.page":`Page`,"know.table":`Table`,"know.faq":`FAQ`,"know.file":`File`,"know.category":`Category`,"know.categories":`Categories`,"know.newPage":`New page`,"know.newTable":`New table`,"know.asFaq":`As an FAQ: a question and its answer per row`,"know.newCategory":`New category`,"know.search":`Try a search…`,"know.searchNone":`No matches.`,"know.searchStats":`{candidates} candidates checked, {hits} relevant`,"know.searchUnchecked":`{hits} hits, unchecked`,"know.unchecked":`The Classifier model checks hits. With an AI Gateway or TypeSafe key, or an account, a decision model does it instead.`,"know.keywordsOnly":`Without an embedding model the search finds words, not meaning.`,"know.clear":`Reset`,"know.sub":{one:`{n} sub-page`,other:`{n} sub-pages`},"know.rows":{one:`{n} row`,other:`{n} rows`},"know.review":`Check`,"know.reviewed":`Checked`,"know.from":`From {label}`,"know.kept":`Edited by hand – {label} no longer updates it.`,"know.original":`Original`,"know.reading":`Reading…`,"know.subPages":`Sub-pages`,"know.addSub":`Sub-page`,"know.type.choice":`Choice`,"know.type.date":`Date`,"know.type.number":`Number`,"know.type.text":`Text`,"know.type.boolean":`Yes/no`,"know.name":`Name`,"know.type":`Type`,"know.unit":`Unit`,"know.unitHint":`e.g. h, €, kg`,"know.multiple":`Several values per item`,"know.ordered":`The values are ranked (low → high)`,"know.values":`Values`,"know.valuesHint":`One per line. More are added as items come in.`,"know.hintField":`Where the values come from`,"know.hintFieldHint":`Keep it short, e.g. header, file name or the website’s filter.`,"know.create":`Create`,"know.proposed":`Proposed`,"know.proposedHint":`It gets filled once you accept it.`,"know.accept":`Accept`,"know.dismiss":`Dismiss`,"know.alike":`“{a}” and “{b}” look like one value.`,"know.merge":`Merge`,"know.items":{one:`{n} item`,other:`{n} items`},"know.item":`1 item`,"know.row":`1 row`,"know.oneSub":`1 sub-page`,"know.addValue":`Add a value`,"know.range":`{min} to {max}`,"know.summary":`Overview`,"know.summaryHint":`A model summarises the items with this value. Search finds the overview like a page.`,"know.summaryWrite":`Write the overview`,"know.summaryAgain":`Write again`,"know.summaryEmpty":`No overview yet.`,"know.toc":`Contents`,"know.tocRows":{one:`{n} row in {table}`,other:`{n} rows in {table}`},"know.deleteCategory":`Delete category`,"know.confirmCategory":`Delete “{name}”? The items stay – only the category is deleted.`,"know.deleteValue":`Delete value`,"know.yes":`Yes`,"know.no":`No`,"know.minimum":`from`,"know.maximum":`to`,"know.contains":`contains`,"know.by.person":`set by hand`,"know.by.origin":`from the source`,"know.by.model":`read by a model`,"know.remove":`Remove`,"know.unset":`Not set`,"know.deleteFile":`Delete file`,"project.documents":`Documents`,"project.documentsHint":`PDFs, lists, Excel, Word, text. They’re read and put into an index that every AI step searches.`,"project.documentAdd":`Documents`,"project.drop":`Drop here or`,"project.staysLocal":`Stays on your computer and isn’t sent here.`,"project.description":`Add a description…`,"project.describing":`Looking at it…`,"project.reading":`Reading…`,"project.indexed":`In the index`,"project.indexedKeywords":`In the index (keywords)`,"project.notIndexed":`No text found`,"project.reindex":`Read again`,"project.pages":{one:`{n} page`,other:`{n} pages`},"project.keywordsOnly":`The index searches by keywords right now. With an AI Gateway or OpenAI key it also searches by meaning.`,"project.preview":`Preview`,"project.viewList":`Show as a list`,"project.viewCards":`Show as cards`,"project.original":`Original`,"project.readText":`Text as read`,"project.openOriginal":`Open the original`,"project.noText":`No text yet: the document is still being read, or couldn’t be read.`,"project.textCut":`The preview shows the start ({shown} of {total} characters).`,"project.searchTest":`Search the index…`,"project.searchNone":`No matches.`,"project.remove":`Delete`,"project.removeConfirm":`Delete “{name}”?`,"project.facts":`Facts`,"project.factsHint":`What wizards should know: address, VAT ID, opening hours – anything that fits.`,"project.factLabel":`Label`,"project.factValue":`Value`,"project.factAdd":`Entry`,"credit.engenty-wizards":`AI wizards built from a description, shared with a link.`,"credit.engenty":`Connectors, data tables, search and the engenties come from the engenty framework.`,"credit.mastra":`Agent framework behind the AI steps.`,"credit.ai-sdk":`Model calls for text, image, video and speech.`,"credit.model-context-protocol":`MCP server for building wizards, MCP client for the steps’ tools.`,"credit.hono":`The HTTP API of engenty wizards.`,"credit.drizzle-orm":`Schema and migrations of the databases.`,"credit.libsql":`One database per tenant, a local file or at Turso.`,"credit.playwright":`Browser steps and the PDF and PNG export.`,"credit.react":`UI library of the web app.`,"credit.vite":`Build tool of the web app.`,"credit.tailwind-css":`Styling of the interface.`,"credit.react-flow":`The diagram of steps in the editor.`,"credit.tanstack-query":`Server data in the web app.`,"credit.xterm-js":`The terminal on the page where AI clients sign in.`,"credit.lucide":`Icons.`,"credit.geist-geist-mono":`Typeface of the interface.`,"credit.space-grotesk":`Typeface of the headings.`,"credit.git-cliff":`Generates the changelog from the commits.`,"fact.adresse":`Address`,"fact.plz":`Postcode`,"fact.ort":`City`,"fact.uid":`VAT ID`,"fact.telefon":`Phone`,"fact.e_mail":`Email`,"fact.website":`Website`,"fact.iban":`IBAN`,"project.factType":`Type`,"project.factAuto":`Automatic`,"project.type.text":`Text`,"project.type.longtext":`Long text`,"project.type.number":`Number`,"project.type.date":`Date`,"project.type.url":`Link`,"project.type.email":`Email`,"project.type.phone":`Phone`,"project.type.boolean":`Yes/no`,"project.yes":`Yes`,"project.no":`No`,"assistant.name":`Goose`,"assistant.ask":`Ask Goose`,"assistant.open":`Open Goose`,"assistant.sees":`Sees: {page}`,"assistant.menu":`Chat menu`,"assistant.newChat":`New chat`,"assistant.earlier":`Earlier chats`,"assistant.noEarlier":`No earlier chats yet.`,"assistant.untitled":`Untitled`,"assistant.summarising":`Summarising the chat…`,"assistant.readOnly":`An earlier chat – you can only read it. Goose knows its summary.`,"assistant.back":`Back`,"assistant.layoutBottom":`Dock at the bottom`,"assistant.layoutSidebar":`As a sidebar`,"assistant.close":`Close`,"assistant.helloTitle":`How can I help?`,"assistant.hello":`I know engenty wizards and see what you see. Ask me how something works – I’ll show you too.`,"assistant.composer":`Ask something or say what you need…`,"assistant.filesNeedSpace":`Files belong to a space. You can’t change any here.`,"assistant.talk":`Talk`,"assistant.live":`Live chat`,"assistant.liveListening":`Listening`,"assistant.liveThinking":`Thinking`,"assistant.liveSpeaking":`Speaking`,"assistant.liveMuted":`Muted`,"assistant.mute":`Microphone off`,"assistant.unmute":`Microphone on`,"assistant.end":`End`,"assistant.naturalVoice":`Natural voice (speech model)`,"assistant.gotIt":`Got it`,"assistant.move":`Drag to move Goose – near the bottom or the right edge it snaps into place`,"assistant.flap":`Chat history: drag to resize, click to fold it in or out`,"assistant.busyComposer":`Write in between – Enter: before the next step, {keys}: after`,"assistant.pending":`Waiting for Goose`,"assistant.pendingSignal":`next step`,"assistant.pendingSignalHint":`Goose reads it before its next step`,"assistant.pendingQueue":`after`,"assistant.pendingQueueHint":`Goes out once Goose is done`,"assistant.sendNow":`Send now`,"assistant.sendNowHint":`Stop Goose and send this now`,"assistant.edit":`Edit`,"assistant.remove":`Remove`,"assistant.signalled":`Written during the answer`,"assistant.dev":`Developer mode`,"assistant.devOn":`Developer mode on: steps, tools, prompt and turns. Click to switch it off.`,"assistant.devOff":`Developer mode off. Click to switch it on.`,"assistant.step":`Step {n}`,"assistant.tokens":`{input} in · {output} out · {total} tokens`,"assistant.stepTools":`Tools`,"assistant.args":`Arguments`,"assistant.result":`Result`,"assistant.usage":`Context window and usage`,"assistant.window":`Context window`,"assistant.lastTurn":`Last question`,"assistant.wholeChat":`Whole chat`,"assistant.promptTokens":`Prompt`,"assistant.answerTokens":`Answer`,"assistant.duration":`Duration`,"assistant.cost":`Cost`,"assistant.steps":`Steps`,"assistant.inspect":`View the turns`,"assistant.copyThread":`Copy the thread with its events as JSON`,"assistant.copied":`Copied`,"assistant.turns":`Turns`,"assistant.turnsTimeline":`Timeline`,"assistant.turnsPrompt":`Prompt`,"assistant.turnsEvents":`Events`,"assistant.noTurns":`No turns yet – they’re recorded while developer mode is on.`,"assistant.download":`Download as JSONL`,"assistant.system":`Instructions`,"assistant.context":`Page, space and message`,"assistant.history":{one:`Chat ({n} message)`,other:`Chat ({n} messages)`},"assistant.tools":`Tools ({n})`,"assistant.estimate":`≈ {tokens} tokens (4 characters a token)`,"assistant.tool.navigate":`Opened {where}`,"assistant.tool.highlight":`Marked: {what}`,"assistant.tool.look":`Looked at the page`,"assistant.tool.read":`Read: {what}`,"assistant.tool.fill":`Filled in: {what}`,"assistant.tool.docs":`Read the guide`,"assistant.tool.gallery":`Searched the templates`,"assistant.tool.account":`Checked the account`,"assistant.tool.chats":`Searched earlier chats`,"assistant.tool.space":`Checked wizards and runs`,"assistant.tool.models":`Checked the models`,"assistant.suggest.what":`What can I do with engenty wizards?`,"assistant.suggest.models":`Show me where to set up the models`,"assistant.suggest.credits":`How many credits do I have left?`,"assistant.suggest.modelsNow":`What runs here right now, and what’s missing?`,"assistant.suggest.modelsMissing":`Why can’t videos be made here?`,"assistant.suggest.modelsCost":`What does each option cost me?`,"assistant.suggest.accountWhy":`What do I need an account for?`,"assistant.suggest.plans":`Which plans are there, and what do they cost?`,"assistant.suggest.integrateWhat":`What can I do from Claude or Cursor?`,"assistant.suggest.integrateClaude":`How do I add Claude Desktop?`,"assistant.suggest.connectorsWhat":`What are connectors for?`,"assistant.suggest.connectorsAdd":`Connect this service: `,"assistant.suggest.readSite":`Read our website `,"assistant.suggest.missing":`What’s the space still missing?`,"assistant.suggest.facts":`What do the wizards need the facts for?`,"assistant.suggest.knowledgeHow":`How does knowledge get into the space?`,"assistant.suggest.knowledgeSite":`Read this website into the knowledge: `,"assistant.suggest.knowledgeCategories":`What are categories for?`,"assistant.suggest.dataWhat":`What’s in this data?`,"assistant.suggest.dataWho":`Which wizard fills which table?`,"assistant.suggest.dataEdit":`How do I change a column?`,"assistant.suggest.resultsFailed":`Which runs failed recently?`,"assistant.suggest.resultsCost":`What cost the most credits this month?`,"assistant.suggest.resultsShare":`How do I share a result?`,"project.assistantTitle":`Tell me about your business`,"project.assistantHello":`Give me your website or some files. I’ll fill in what I find: title, description, logo, colours and facts.`,"project.assistantComposer":`e.g. “Read our website example.com”…`,"project.assistantTitleKnowledge":`What should your wizards know?`,"project.assistantHelloKnowledge":`Give me documents or tell me where the knowledge is. I’ll read it in – this page shows what goes in.`,"project.assistantComposerKnowledge":`Attach documents or say where the knowledge is…`,"project.assistantChanged":`Space updated`,"flowApp.loading":`The wizard is on its way…`,"flowApp.broken":`This can’t be shown here.`,"flowApp.draft":`Draft`,"flowApp.published":`Published`,"flowApp.issues":{one:`{n} issue in the draft`,other:`{n} issues in the draft`},"flowApp.flow":`Flow`,"flowApp.notPublished":`Publish it in the studio to run it here.`,"flowApp.runPage":`Continue in the browser`,"flowApp.inBrowser":`Only in the browser: {fields}`,"flowApp.done":`Done`,"flowApp.credits":{one:`{n} credit`,other:`{n} credits`},"flowApp.ask":`The wizard asks`,"flowApp.allow":`Allow`,"flowApp.skip":`Skip`,"flowApp.signIn":`A sign-in at {site} – only in the browser.`,"flowApp.fullscreen":`Full screen`,"flowApp.inline":`Exit full screen`,"flowApp.failed":`That didn’t work: {error}`,"inspector.aspectRatio":`Aspect ratio`,"inspector.downloads":`Downloads`,"inspector.avatar":`Avatar`,"editor.zoomOut":`Zoom out`,"editor.zoomFit":`Fit to view`,"editor.zoomIn":`Zoom in`,"nav.breadcrumb":`You are here`,"run.testChip":`Test run`,"common.delete":`Delete`,"settings.deleteTitle":`Delete “{name}”?`,"settings.deleteBody":`The space is deleted with its wizards, knowledge and data. The wizards’ links stop working. This can’t be undone.`,"connectors.removeConfirm":`Remove “{name}”? Steps that use it stop working until you import it again.`,"connectors.clientId":`OAuth client ID`,"connectors.clientSecret":`OAuth client secret`},de:Ud},Gd=`wizards.lang`,Kd=`wizards.lang.local`,qd=`engenty_lang`;function Jd(){if(typeof document>`u`)return null;let e=document.cookie.split(`;`).map(e=>e.trim()).find(e=>e.startsWith(`${qd}=`))?.slice(13);return hu(e)?e:null}function Yd(e){if(typeof document>`u`)return;let t=window.location.hostname,n=t.split(`.`),r=n.length>1&&!/^\d+$/.test(n[n.length-1])?n.length>2?n.slice(1).join(`.`):t:``,i=window.location.protocol===`https:`?`; Secure`:``;document.cookie=`${qd}=${e}; Path=/; Max-Age=31536000; SameSite=Lax${r?`; Domain=${r}`:``}${i}`}function Xd(e){try{let t=localStorage.getItem(e);return hu(t)?t:null}catch{return null}}function Zd(){return Xd(Gd)}function Qd(){if(typeof navigator>`u`)return null;let e=null;try{e=Intl.DateTimeFormat().resolvedOptions().timeZone}catch{}return yu(navigator.languages??[navigator.language],e)}var $d=Zd()??Jd()??Qd()??`en`,ef=new Set,tf=0;function nf(e){if(Yd(e),e!==$d){$d=e,Id(e),document.documentElement.lang=e;try{localStorage.setItem(Gd,e),e!==`en`&&localStorage.setItem(Kd,e)}catch{}tf+=1;for(let e of ef)e()}}function rf(e){let t=Ld();return e.note&&kd(e.note,t?.lang??$d,t?.notes)||e.message}function af(e,t){let n=Ld(),r=n?.runner[e];return n&&r!==void 0?Td(r,n.lang,t):wd(Wd,e,$d,t)}typeof document<`u`&&(document.documentElement.lang=$d);var of=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function sf(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:of(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var cf=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},lf=e=>{let t=cf(e);return t.charAt(0).toUpperCase()+t.slice(1)},uf=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),df={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function ff(e){return e!=null}function pf(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??df.width,a=e.size??e.height??df.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?uf(...c):uf(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??df[`stroke-width`])*Number(e.size??e.width??df.width)/Number(t.size??t.width??df.width):t.strokeWidth??df[`stroke-width`];return[`svg`,{...Object.entries(df).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&ff(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&ff(t.width)&&{[r(`width`)]:t.width},...`height`in t&&ff(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function mf(e,t={}){return pf(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var hf=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},gf=(0,y.createContext)({}),_f=()=>(0,y.useContext)(gf),vf=(0,y.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:m=2,absoluteStrokeWidth:h=!1,nonScalingStroke:g=!1,color:_=`currentColor`,className:v=``}=_f()??{},b=!!c||hf(d),[x,S,C=[]]=mf(u,{color:e??_,width:n??t??p,height:r??t??p,strokeWidth:i??m,absoluteStrokeWidth:a??h,nonScalingStroke:o??g,className:uf(v,s),hasA11yProp:b,attributes:d});return(0,y.createElement)(x,{ref:f,...S},[...C.map(([e,t])=>(0,y.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function yf(e,t=[],n=[]){let r=typeof e==`string`?sf(e,t,n):e,i=(0,y.forwardRef)(({className:e,...t},n)=>(0,y.createElement)(vf,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=lf(r.name)),i}var bf={name:`app-window`,size:24,node:[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]};bf.node;var xf=yf(bf),Sf={name:`arrow-down`,size:24,node:[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]};Sf.node;var Cf=yf(Sf),wf={name:`arrow-left`,size:24,node:[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]};wf.node;var Tf=yf(wf),Ef={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};Ef.node;var Df=yf(Ef),Of={name:`arrow-up`,size:24,node:[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]};Of.node;var kf=yf(Of),Af={name:`bell-ring`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]};Af.node;var jf=yf(Af),Mf={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};Mf.node;var Nf=yf(Mf),Pf={name:`bot`,size:24,node:[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]};Pf.node;var Ff=yf(Pf),If={name:`braces`,size:24,node:[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]],aliases:[`curly-braces`]};If.node;var Lf=yf(If),Rf={name:`camera`,size:24,node:[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]};Rf.node;var zf=yf(Rf),Bf={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};Bf.node;var Vf=yf(Bf),Hf={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};Hf.node;var Uf=yf(Hf),Wf={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};Wf.node;var Gf=yf(Wf),Kf={name:`clapperboard`,size:24,node:[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]};Kf.node;var qf=yf(Kf),Jf={name:`clock`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]};Jf.node;var Yf=yf(Jf),Xf={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};Xf.node;var Zf=yf(Xf),Qf={name:`corner-down-left`,size:24,node:[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]};Qf.node;var $f=yf(Qf),ep={name:`database`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]};ep.node;var tp=yf(ep),np={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};np.node;var rp=yf(np),ip={name:`ellipsis-vertical`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]],aliases:[`more-vertical`]};ip.node;var ap=yf(ip),op={name:`eraser`,size:24,node:[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]};op.node;var sp=yf(op),cp={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};cp.node;var lp=yf(cp),up={name:`eye`,size:24,node:[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};up.node;var dp=yf(up),fp={name:`file-headphone`,size:24,node:[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]],aliases:[`file-audio`,`file-audio-2`]};fp.node;var pp=yf(fp),mp={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]};mp.node;var hp=yf(mp),gp={name:`film`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]};gp.node;var _p=yf(gp),vp={name:`flag`,size:24,node:[[`path`,{d:`M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528`,key:`1jaruq`}]]};vp.node;var yp=yf(vp),bp={name:`flashlight-off`,size:24,node:[[`path`,{d:`M11.652 6H18`,key:`voqkpr`}],[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V6`,key:`dzyf92`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M7.649 2H17a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8a4 4 0 0 0-.55 1.007`,key:`1hvcfn`}]]};bp.node;var xp=yf(bp),Sp={name:`flashlight`,size:24,node:[[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M17 2a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8A4 4 0 0 0 16 12v8a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V3a1 1 0 0 1 1-1z`,key:`17vh7j`}],[`path`,{d:`M6 6h12`,key:`n6hhss`}]]};Sp.node;var Cp=yf(Sp),wp={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};wp.node;var Tp=yf(wp),Ep={name:`image-plus`,size:24,node:[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Ep.node;var Dp=yf(Ep),Op={name:`image-up`,size:24,node:[[`path`,{d:`M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21`,key:`9csbqa`}],[`path`,{d:`m14 19.5 3-3 3 3`,key:`9vmjn0`}],[`path`,{d:`M17 22v-5.5`,key:`1aa6fl`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Op.node;var kp=yf(Op),Ap={name:`image`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]};Ap.node;var jp=yf(Ap),Mp={name:`languages`,size:24,node:[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]};Mp.node;var Np=yf(Mp),Pp={name:`layout-dashboard`,size:24,node:[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]};Pp.node;var Fp=yf(Pp),Ip={name:`layout-template`,size:24,node:[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]};Ip.node;var Lp=yf(Ip),Rp={name:`lightbulb`,size:24,node:[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,key:`1gvzjb`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]};Rp.node;var zp=yf(Rp),Bp={name:`link-2`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]};Bp.node;var Vp=yf(Bp),Hp={name:`list-checks`,size:24,node:[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`path`,{d:`m3 7 2 2 4-4`,key:`1obspn`}]]};Hp.node;var Up=yf(Hp),Wp={name:`locate-fixed`,size:24,node:[[`line`,{x1:`2`,x2:`5`,y1:`12`,y2:`12`,key:`bvdh0s`}],[`line`,{x1:`19`,x2:`22`,y1:`12`,y2:`12`,key:`1tbv5k`}],[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`5`,key:`11lu5j`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}],[`circle`,{cx:`12`,cy:`12`,r:`7`,key:`fim9np`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Wp.node;var Gp=yf(Wp),Kp={name:`lock-keyhole`,size:24,node:[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]};Kp.node;var qp=yf(Kp),Jp={name:`map-pin`,size:24,node:[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]};Jp.node;var Yp=yf(Jp),Xp={name:`maximize-2`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]};Xp.node;var Zp=yf(Xp),Qp={name:`mic`,size:24,node:[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]};Qp.node;var $p=yf(Qp),em={name:`minimize-2`,size:24,node:[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]};em.node;var tm=yf(em),nm={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};nm.node;var rm=yf(nm),im={name:`mouse-pointer-click`,size:24,node:[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]};im.node;var am=yf(im),om={name:`paperclip`,size:24,node:[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]};om.node;var sm=yf(om),cm={name:`pen-line`,size:24,node:[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]],aliases:[`edit-3`]};cm.node;var lm=yf(cm),um={name:`pencil-line`,size:24,node:[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]};um.node;var dm=yf(um),fm={name:`pencil`,size:24,node:[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]};fm.node;var pm=yf(fm),mm={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};mm.node;var hm=yf(mm),gm={name:`printer`,size:24,node:[[`path`,{d:`M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2`,key:`143wyd`}],[`path`,{d:`M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6`,key:`1itne7`}],[`rect`,{x:`6`,y:`14`,width:`12`,height:`8`,rx:`1`,key:`1ue0tg`}]]};gm.node;var _m=yf(gm),vm={name:`refresh-cw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]};vm.node;var ym=yf(vm),bm={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};bm.node;var xm=yf(bm),Sm={name:`scan-line`,size:24,node:[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`path`,{d:`M7 12h10`,key:`b7w52i`}]]};Sm.node;var Cm=yf(Sm),wm={name:`scan`,size:24,node:[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}]]};wm.node;var Tm=yf(wm),Em={name:`share-2`,size:24,node:[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]};Em.node;var Dm=yf(Em),Om={name:`share`,size:24,node:[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]};Om.node;var km=yf(Om),Am={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};Am.node;var jm=yf(Am),Mm={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};Mm.node;var Nm=yf(Mm),Pm={name:`square`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]};Pm.node;var Fm=yf(Pm),Im={name:`switch-camera`,size:24,node:[[`path`,{d:`M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5`,key:`mtk2lu`}],[`path`,{d:`M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5`,key:`120jsl`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`m18 22-3-3 3-3`,key:`kgdoj7`}],[`path`,{d:`m6 2 3 3-3 3`,key:`1fnbkv`}]]};Im.node;var Lm=yf(Im),Rm={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};Rm.node;var zm=yf(Rm),Bm={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};Bm.node;var Vm=yf(Bm),Hm={name:`undo-2`,size:24,node:[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]};Hm.node;var Um=yf(Hm),Wm={name:`unplug`,size:24,node:[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]};Wm.node;var Gm=yf(Wm),Km={name:`video`,size:24,node:[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]};Km.node;var qm=yf(Km),Jm={name:`wand-sparkles`,size:24,node:[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]],aliases:[`wand-2`]};Jm.node;var Ym=yf(Jm),Xm={name:`workflow`,size:24,node:[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]};Xm.node;var Zm=yf(Xm),Qm={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};Qm.node;var $m=yf(Qm),eh=class extends Error{status;body;constructor(e,t,n){super(e),this.status=t,this.body=n}};function th(e){try{return JSON.parse(e)}catch{return{error:e}}}function nh(e,t={},n){async function r(r,i,a){let o=await fetch(e(i),{method:r,credentials:`include`,headers:{"accept-language":jd,...t,...a!==void 0&&!(a instanceof FormData)?{"content-type":`application/json`}:{}},body:a===void 0?void 0:a instanceof FormData?a:JSON.stringify(a)}).catch(()=>{throw new eh(Q(`common.offline`),0,null)}),s=await o.text(),c=s?th(s):null;if(!o.ok)throw o.status>=500&&n?.(`${r} ${i} answered ${o.status}: ${c?.error??``}`),new eh(c?.error??c?.message??o.statusText,o.status,c);return c}return{get:e=>r(`GET`,e),post:(e,t)=>r(`POST`,e,t??{}),put:(e,t)=>r(`PUT`,e,t),patch:(e,t)=>r(`PATCH`,e,t),del:e=>r(`DELETE`,e),upload:(e,t)=>{let n=new FormData;return n.set(`file`,t),r(`POST`,e,n)}}}var rh={can:()=>!1,call:e=>Promise.reject(Error(`the app cannot ${e}`)),tell:()=>void 0,download:()=>!1},ih=null;function ah(){throw Error(`configureRunner() first`)}var oh=nh(e=>e),sh=e=>ah().withBase(e),ch=e=>ah().asset(e),lh=e=>ah().runBase(e),uh=e=>(ih?.app??rh).can(e),dh=(e,t)=>(ih?.app??rh).call(e,t),fh=(e,t)=>(ih?.app??rh).tell(e,t),ph=(e,t,n)=>(ih?.app??rh).download(e,t,n),mh=()=>ih?.standalone===!0,hh=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),gh=s(((e,t)=>{t.exports=hh()})),$=gh();function _h(...e){return e.filter(Boolean).join(` `)}var vh={primary:`bg-primary text-primary-foreground hover:brightness-[1.06] active:brightness-95 shadow-[0_1px_0_oklch(0%_0_0/0.08)]`,secondary:`bg-card text-ink border border-border hover:bg-paper-2`,ghost:`text-ink-2 hover:text-ink hover:bg-accent`,quiet:`bg-paper-2 text-ink hover:bg-paper-3`,danger:`text-rose hover:bg-rose-tint`},yh=(0,y.forwardRef)(function({variant:e=`primary`,size:t=`md`,busy:n,className:r,children:i,disabled:a,...o},s){return(0,$.jsxs)(`button`,{ref:s,type:`button`,disabled:a||n,className:_h(`inline-flex select-none items-center justify-center gap-2 whitespace-nowrap rounded-full font-medium transition-[background,filter,color,transform] duration-150 active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50`,t===`sm`&&`h-8 px-3 text-[0.8125rem] coarse:h-11 coarse:px-4`,t===`md`&&`h-10 px-4 text-sm coarse:h-11`,t===`lg`&&`h-12 px-6 text-[0.9375rem]`,vh[e],r),...o,children:[n?(0,$.jsx)(Mh,{className:`size-4`}):null,i]})});function bh({label:e,className:t,children:n,...r}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":e,title:e,className:_h(`inline-flex size-9 shrink-0 items-center justify-center rounded-full text-ink-3 transition hover:bg-accent hover:text-ink disabled:opacity-40 coarse:size-11`,t),...r,children:n})}var xh=`rounded-lg border border-input bg-card px-3.5 text-[0.9375rem] text-ink shadow-[inset_0_1px_0_oklch(0%_0_0/0.02)] outline-none transition placeholder:text-ink-4 focus:border-focus focus:ring-4 focus:ring-focus-glow disabled:opacity-60`;function Sh(e){return/(^|\s)w-/.test(e??``)?null:`w-full`}var Ch=(0,y.forwardRef)(function({className:e,...t},n){return(0,$.jsx)(`input`,{ref:n,className:_h(xh,Sh(e),`h-11`,e),...t})});function wh(e){return(0,$.jsx)(`input`,{type:`color`,className:`swatch size-11 shrink-0 cursor-pointer rounded-lg border border-input bg-card p-1`,...e})}var Th=(0,y.forwardRef)(function({className:e,minRows:t=3,maxRows:n=14,onChange:r,...i},a){let o=(0,y.useRef)(null),s=()=>{let e=o.current;if(!e)return;let r=Number.parseFloat(getComputedStyle(e).lineHeight)||22;e.style.height=`auto`;let i=r*n+20;e.style.height=`${Math.min(Math.max(e.scrollHeight,r*t+20),i)}px`,e.style.overflowY=e.scrollHeight>i?`auto`:`hidden`};return(0,y.useLayoutEffect)(s),(0,$.jsx)(`textarea`,{ref:e=>{o.current=e,typeof a==`function`?a(e):a&&(a.current=e)},className:_h(xh,Sh(e),`resize-none py-2.5 leading-[1.5]`,e),onChange:e=>{s(),r?.(e)},...i})});function Eh({value:e,onChange:t,options:n,className:r,placeholder:i}){return(0,$.jsxs)(`div`,{className:_h(`relative`,r),children:[(0,$.jsxs)(`select`,{value:e,onChange:e=>t(e.target.value),className:_h(xh,`h-11 w-full appearance-none pr-9`),children:[i===void 0?null:(0,$.jsx)(`option`,{value:``,children:i}),n.map(e=>(0,$.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}),(0,$.jsx)(`svg`,{className:`-translate-y-1/2 pointer-events-none absolute top-1/2 right-3 size-4 text-ink-3`,viewBox:`0 0 16 16`,fill:`none`,children:(0,$.jsx)(`path`,{d:`M4 6l4 4 4-4`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})]})}function Dh({value:e,onChange:t,options:n,multi:r,disabled:i,label:a}){let o=new Set(Array.isArray(e)?e:e?[e]:[]);return(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(e=>{let s=o.has(e);return(0,$.jsx)(`button`,{type:`button`,"aria-pressed":s,disabled:i?.includes(e),onClick:()=>{if(r){let r=new Set(o);s?r.delete(e):r.add(e),t(n.filter(e=>r.has(e)))}else t(e)},className:_h(`h-10 rounded-full border px-4 text-sm transition disabled:pointer-events-none disabled:opacity-60 disabled:line-through coarse:h-11`,s?`border-ember bg-ember-tint text-ink`:`border-input bg-card text-ink-2 hover:border-ink-4 hover:text-ink`),children:a?a(e):e},e)})})}var Oh=`cubic-bezier(0.3, 0.7, 0.2, 1)`;function kh({value:e,onChange:t,options:n,label:r}){let i=(0,y.useRef)(new Map),[a,o]=(0,y.useState)(null);return(0,y.useLayoutEffect)(()=>{let t=i.current.get(e);if(!t)return;let n=()=>o({x:t.offsetLeft,w:t.offsetWidth});n();let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[e]),(0,$.jsxs)(`div`,{role:`tablist`,"aria-label":r,className:`relative inline-flex items-center rounded-full bg-paper-2 p-0.5 ring-1 ring-border-soft`,children:[a?(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`absolute top-0.5 bottom-0.5 left-0 rounded-full bg-card shadow-sm motion-reduce:transition-none`,style:{width:a.w,transform:`translateX(${a.x}px)`,transition:`transform 300ms ${Oh}, width 300ms ${Oh}`}}):null,n.map(n=>{let r=n.id===e;return(0,$.jsx)(`button`,{ref:e=>{e?i.current.set(n.id,e):i.current.delete(n.id)},type:`button`,role:`tab`,"aria-selected":r,onClick:()=>t(n.id),className:_h(`relative h-8 whitespace-nowrap rounded-full px-4 font-medium text-[0.875rem] transition-colors motion-reduce:transition-none coarse:h-9`,r?`text-ink`:`text-ink-3 hover:text-ink-2`),children:n.label},n.id)})]})}function Ah({checked:e,onChange:t,label:n,disabled:r}){return(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,disabled:r,onClick:()=>t(!e),className:_h(`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition before:absolute before:-inset-x-1 before:-inset-y-2.5 before:content-[''] disabled:pointer-events-none disabled:opacity-60`,e?`bg-primary`:`bg-paper-3`),children:(0,$.jsx)(`span`,{className:_h(`inline-block size-5 rounded-full bg-white shadow-sm transition-transform`,e?`translate-x-[22px]`:`translate-x-[2px]`)})})}function jh({children:e,hint:t,required:n}){return(0,$.jsxs)(`div`,{className:`mb-2`,children:[(0,$.jsxs)(`div`,{className:`font-medium text-[0.875rem] text-ink`,children:[e,n?(0,$.jsx)(`span`,{className:`ml-1 text-ember`,children:`*`}):null]}),t?(0,$.jsx)(`div`,{className:`mt-0.5 text-[0.8125rem] text-ink-3`,children:t}):null]})}function Mh({className:e}){return(0,$.jsxs)(`svg`,{className:_h(`size-5 animate-spin`,e),viewBox:`0 0 24 24`,fill:`none`,children:[(0,$.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,stroke:`currentColor`,strokeOpacity:`0.2`,strokeWidth:`3`}),(0,$.jsx)(`path`,{d:`M21 12a9 9 0 0 0-9-9`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`})]})}function Nh({className:e,children:t,...n}){return(0,$.jsx)(`div`,{className:_h(`rounded-xl bg-card shadow-soft ring-1 ring-border-soft`,e),...n,children:t})}function Ph({children:e,tone:t=`neutral`,icon:n,title:r}){return(0,$.jsxs)(`span`,{title:r,className:_h(`inline-flex h-6 items-center gap-1.5 whitespace-nowrap rounded-full px-2.5 font-medium text-[0.75rem]`,t===`neutral`&&`bg-paper-2 text-ink-2`,t===`live`&&`bg-moss-tint text-moss`,t===`warn`&&`bg-amber-tint text-ink-2`,t===`ember`&&`bg-ember-tint text-ember-strong`),children:[n??(t===`live`?(0,$.jsx)(`span`,{className:`size-1.5 rounded-full bg-moss`}):null),e]})}function Fh({open:e,onClose:t,title:n,children:r,wide:i,bare:a,height:o=`auto`}){let s=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let t=s.current;t&&(e&&!t.open?(t.showModal(),t.querySelector(`[data-autofocus]`)?.focus()):!e&&t.open&&t.close())},[e]),(0,y.useEffect)(()=>{let t=s.current;if(!t||!e||a||o===`tall`)return;let n=0,r=()=>{n=Math.max(n,t.getBoundingClientRect().height),t.style.minHeight=`${Math.min(n,window.innerHeight-32)}px`},i=new ResizeObserver(r);return i.observe(t),window.addEventListener(`resize`,r),()=>{i.disconnect(),window.removeEventListener(`resize`,r),t.style.minHeight=``}},[e,a,o]),(0,$.jsx)(`dialog`,{ref:s,onClose:t,onClick:e=>{e.target===s.current&&t()},className:_h(`m-auto p-0 text-ink backdrop:bg-[oklch(20%_0.01_60/0.28)] backdrop:backdrop-blur-[2px]`,`max-sm:m-0 max-sm:h-dvh max-sm:max-h-none max-sm:w-full max-sm:max-w-none`,a?`w-[calc(100%-48px)] overflow-visible bg-transparent`:`max-h-[calc(100dvh-32px)] w-[calc(100%-32px)] overflow-y-auto overscroll-contain rounded-2xl bg-card shadow-overlay max-sm:rounded-none max-sm:pt-[env(safe-area-inset-top)] max-sm:pb-[env(safe-area-inset-bottom)]`,i===`page`?`sm:max-w-4xl`:i?`sm:max-w-2xl`:`sm:max-w-md`,!a&&o===`tall`&&`sm:h-[min(calc(100dvh-32px),56rem)]`),children:e&&a?r:e?(0,$.jsxs)(`div`,{className:`p-5 sm:p-7`,children:[n?(0,$.jsxs)(`div`,{className:`mb-5 flex items-start justify-between gap-3`,children:[(0,$.jsx)(`h2`,{className:`min-w-0 font-display font-semibold text-xl`,children:n}),(0,$.jsx)(bh,{label:Q(`common.close`),onClick:t,className:`-mt-1.5 -mr-2`,children:(0,$.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,className:`size-4`,"aria-hidden":`true`,children:(0,$.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})})]}):null,r]}):null})}function Ih({text:e}){return e.split(/(https?:\/\/[^\s)]+)/).map((e,t)=>t%2?(0,$.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`font-medium text-ink underline underline-offset-2`,children:new URL(e).host},e):e)}var Lh=250;function Rh({runId:e,driving:t,caption:n,action:r,hint:i,className:a,onBroken:o}){let s=(0,y.useRef)(null),c=(0,y.useRef)(null),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),h=async t=>{m(null);try{await oh.post(`${lh(e)}/browser/act`,t)}catch(e){m(e.message)}};return(0,y.useEffect)(()=>{t&&c.current?.scrollIntoView({block:`nearest`,behavior:`smooth`})},[t]),(0,y.useEffect)(()=>{let n=s.current;if(!(n&&t))return;let r=0,i=null,a=t=>{t.preventDefault(),r+=t.deltaY,i??=setTimeout(()=>{i=null;let t=Math.max(-2e3,Math.min(2e3,Math.round(r)));r=0,t&&oh.post(`${lh(e)}/browser/act`,{type:`scroll`,dy:t}).catch(()=>void 0)},Lh)};return n.addEventListener(`wheel`,a,{passive:!1}),()=>{n.removeEventListener(`wheel`,a),i&&clearTimeout(i)}},[t,e]),(0,$.jsxs)(`div`,{className:a,children:[(0,$.jsxs)(`div`,{className:_h(`relative aspect-[1280/900] w-full overflow-hidden rounded-xl bg-paper-2 ring-1`,t?`ring-2 ring-ember`:`ring-border-soft`),children:[(0,$.jsx)(`img`,{ref:s,src:sh(`${lh(e)}/browser/live`),alt:``,draggable:!1,onClick:e=>{if(!t)return;let n=e.currentTarget.getBoundingClientRect();h({type:`click`,fx:Math.min(1,Math.max(0,(e.clientX-n.left)/n.width)),fy:Math.min(1,Math.max(0,(e.clientY-n.top)/n.height))})},onError:o,className:_h(`size-full object-cover object-top`,t&&`cursor-pointer`)}),r?(0,$.jsx)(`div`,{className:`absolute top-2 right-2`,children:r}):null,n&&!t?(0,$.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-0 flex items-center gap-1.5 bg-gradient-to-t from-black/75 to-transparent px-3 pt-8 pb-2 text-[0.8125rem] text-white`,children:[(0,$.jsx)(am,{className:`size-3.5 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate`,children:n})]}):null]}),t?(0,$.jsxs)(`div`,{ref:c,className:`mt-1.5`,children:[i?(0,$.jsx)(`p`,{className:`mb-1.5 text-[0.8125rem] text-ink-3`,children:i}):null,(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 rounded-xl bg-card p-2 ring-1 ring-border-soft`,children:[(0,$.jsx)(Ch,{type:d?`password`:`text`,autoComplete:`off`,value:l,placeholder:Q(`ask.typeInto`),onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),h({type:`type`,text:l}).then(()=>u(``)))},autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:`send`,className:`h-9 min-w-[9rem] flex-1 basis-full text-[0.8125rem] sm:basis-0 coarse:h-11`}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>f(e=>!e),className:_h(`h-9 shrink-0 rounded-md px-2.5 text-[0.75rem] coarse:h-11 coarse:px-3.5`,d?`bg-ember-veil text-ink`:`text-ink-3 hover:bg-paper-2`),children:Q(`ask.hide`)}),(0,$.jsx)(zh,{label:`Enter`,onClick:()=>void h({type:`key`,key:`Enter`}),children:(0,$.jsx)($f,{className:`size-4`})}),(0,$.jsx)(zh,{label:Q(`ask.up`),onClick:()=>void h({type:`scroll`,dy:-500}),children:(0,$.jsx)(kf,{className:`size-4`})}),(0,$.jsx)(zh,{label:Q(`ask.down`),onClick:()=>void h({type:`scroll`,dy:500}),children:(0,$.jsx)(Cf,{className:`size-4`})})]}),p?(0,$.jsx)(`p`,{className:`mt-1.5 text-[0.8125rem] text-rose`,children:p}):null]}):null]})}function zh({label:e,onClick:t,children:n}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:t,className:`flex size-9 shrink-0 items-center justify-center rounded-md text-ink-3 hover:bg-paper-2 hover:text-ink coarse:size-11`,children:n})}function Bh({runId:e,ask:t}){return t.kind===`confirm`?(0,$.jsx)(Vh,{runId:e,ask:t}):(0,$.jsx)(Hh,{runId:e,ask:t})}function Vh({runId:e,ask:t}){let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),c=async n=>{a(!0),s(null);try{await oh.post(`${lh(e)}/ask/${t.id}`,n)}catch(e){s(e.message),a(!1)}},l=t.action.destructive?Vm:dm;return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,$.jsx)(`div`,{className:_h(`flex size-10 shrink-0 items-center justify-center rounded-full`,t.action.destructive?`bg-rose-tint text-rose`:`bg-ember-tint text-ember-strong`),children:(0,$.jsx)(l,{className:`size-5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:Q(`ask.wants`,{service:t.service})}),(0,$.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason})]})]}),(0,$.jsx)(`pre`,{className:`max-h-72 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-paper-2 p-4 text-[0.8125rem] leading-relaxed ring-1 ring-border-soft`,children:t.input}),(0,$.jsxs)(`div`,{className:`mt-5 flex items-center gap-4`,children:[(0,$.jsx)(Ah,{checked:n,onChange:r,label:Q(`ask.allowRest`)}),(0,$.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:Q(`ask.allowRest`)})]}),o?(0,$.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:o}):null,(0,$.jsxs)(`div`,{className:`action-bar mt-6 flex items-center justify-between gap-3`,children:[(0,$.jsx)(yh,{variant:`ghost`,disabled:i,onClick:()=>void c({type:`skip`}),children:Q(`ask.deny`)}),(0,$.jsx)(yh,{busy:i,onClick:()=>void c({type:`done`,remember:n}),children:Q(`ask.allow`)})]})]})}function Hh({runId:e,ask:t}){let[n,r]=(0,y.useState)({}),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),u=async n=>{s(!0),l(null);try{await oh.post(`${lh(e)}/ask/${t.id}`,n)}catch(e){l(e.message),s(!1)}},d=t.fields.some(e=>n[e.id]);return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,$.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-ember-tint text-ember-strong`,children:(0,$.jsx)(qp,{className:`size-5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason}),(0,$.jsxs)(`p`,{className:`mt-0.5 truncate text-[0.8125rem] text-ink-3`,children:[t.site.host,t.site.title?` · ${t.site.title}`:``]})]})]}),(0,$.jsx)(Rh,{runId:e,driving:!0}),(0,$.jsx)(`p`,{className:`mt-2 text-[0.75rem] text-ink-4`,children:Q(`ask.pictureHint`)}),t.fields.length?(0,$.jsxs)(`form`,{className:`mt-5 flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),u({type:`fill`,values:n,remember:i})},children:[t.fields.map((e,i)=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(jh,{children:e.label}),(0,$.jsx)(Ch,{autoFocus:i===0,type:e.secret?`password`:`text`,autoComplete:`off`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:i===t.fields.length-1?`go`:`next`,value:n[e.id]??``,onChange:t=>r(n=>({...n,[e.id]:t.target.value}))})]},e.id)),(0,$.jsx)(`button`,{type:`submit`,hidden:!0})]}):null,(0,$.jsxs)(`div`,{className:`mt-5 flex items-center justify-between gap-4`,children:[(0,$.jsx)(Ah,{checked:i,onChange:a,label:Q(`ask.remember`)}),(0,$.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:Q(`ask.remember`)})]}),(0,$.jsxs)(`p`,{className:`mt-3 flex items-start gap-2 text-[0.8125rem] text-ink-3`,children:[(0,$.jsx)(jm,{className:`mt-0.5 size-4 shrink-0 text-moss`}),` `,Q(`ask.private`)]}),c?(0,$.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:c}):null,(0,$.jsxs)(`div`,{className:`action-bar mt-6 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(yh,{variant:`ghost`,disabled:o,onClick:()=>void u({type:`skip`}),children:Q(`ask.skip`)}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.fields.length?(0,$.jsx)(yh,{variant:`secondary`,disabled:o,onClick:()=>void u({type:`done`,remember:i}),children:Q(`ask.done`)}):null,t.fields.length?(0,$.jsx)(yh,{busy:o,disabled:!d,onClick:()=>void u({type:`fill`,values:n,remember:i}),children:Q(`ask.signIn`)}):(0,$.jsx)(yh,{busy:o,onClick:()=>void u({type:`done`,remember:i}),children:Q(`ask.done`)})]})]})]})}var Uh=typeof window<`u`&&window.matchMedia?.(`(pointer: coarse)`).matches===!0,Wh=typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia;function Gh(){(0,y.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=document.documentElement,n=()=>{let e=document.activeElement;t.classList.contains(`keyboard-open`)&&e instanceof HTMLElement&&e!==document.body&&requestAnimationFrame(()=>e.scrollIntoView({block:`nearest`}))},r=()=>{let r=e.scale>1.01?0:window.innerHeight-e.height-e.offsetTop,i=r>80,a=i&&!t.classList.contains(`keyboard-open`);t.style.setProperty(`--kb`,i?`${Math.round(r)}px`:`0px`),t.classList.toggle(`keyboard-open`,i),a&&n()};return r(),e.addEventListener(`resize`,r),e.addEventListener(`scroll`,r),document.addEventListener(`focusin`,n),()=>{e.removeEventListener(`resize`,r),e.removeEventListener(`scroll`,r),document.removeEventListener(`focusin`,n),t.style.removeProperty(`--kb`),t.classList.remove(`keyboard-open`)}},[])}function Kh(e){let[t,n]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{if(e&&uh(`keepAwake`))return fh(`keepAwake`,!0),n(!0),()=>{fh(`keepAwake`,!1),n(!1)};if(!e||!(`wakeLock`in navigator))return;let t=null,r=!1,i=async()=>{if(!(r||t||document.visibilityState!==`visible`))try{let e=await navigator.wakeLock.request(`screen`);if(r){e.release().catch(()=>void 0);return}t=e,n(!0),e.addEventListener(`release`,()=>{t===e&&(t=null,n(!1))})}catch{}};return i(),document.addEventListener(`visibilitychange`,i),()=>{r=!0,document.removeEventListener(`visibilitychange`,i),t?.release().catch(()=>void 0),t=null,n(!1)}},[e]),t}var qh=`wz.notify`,Jh=new Set,Yh=null;function Xh(){try{return localStorage.getItem(qh)===`1`}catch{return!1}}function Zh(e){try{e?localStorage.setItem(qh,`1`):localStorage.removeItem(qh)}catch{}for(let e of Jh)e()}var Qh=typeof window<`u`&&`Notification`in window,$h=null;function eg(){return Xh()?uh(`notify`)?$h===!1?`quiet`:`on`:Qh&&Notification.permission===`granted`?`on`:`quiet`:`off`}function tg(){return(0,y.useSyncExternalStore)(e=>(Jh.add(e),()=>Jh.delete(e)),eg,()=>`off`)}function ng(){return uh(`notify`)?$h===!1:Qh&&Notification.permission===`denied`}async function rg(){if(Zh(!0),uh(`notify`)){$h=!uh(`notifyPermission`)||await dh(`notifyPermission`).catch(()=>!1);for(let e of Jh)e();return eg()}try{Yh??=new AudioContext,Yh.resume()}catch{Yh=null}if(Qh&&Notification.permission==="default")try{await Notification.requestPermission()}catch{}if(Qh&&Notification.permission===`granted`){let e=ah().serviceWorker;e&&await navigator.serviceWorker?.register(e).catch(()=>void 0)}for(let e of Jh)e();return eg()}function ig(){Zh(!1)}function ag(){let e=Yh;if(e?.state!==`running`)return;let t=e.currentTime;for(let[n,r]of[660,880].entries()){let i=e.createOscillator(),a=e.createGain();i.frequency.value=r,a.gain.setValueAtTime(0,t+n*.16),a.gain.linearRampToValueAtTime(.18,t+n*.16+.02),a.gain.exponentialRampToValueAtTime(.001,t+n*.16+.32),i.connect(a).connect(e.destination),i.start(t+n*.16),i.stop(t+n*.16+.34)}}async function og(e){if(!Xh())return;if(uh(`notify`)){fh(`notify`,e);return}if(document.visibilityState===`visible`){ag(),navigator.vibrate?.([120,60,120]);return}if(!Qh||Notification.permission!==`granted`)return;let t={body:e.body,tag:e.tag,icon:ch(`icons/icon-192.png`),badge:ch(`icons/icon-192.png`),data:{url:location.href}};try{let n=await navigator.serviceWorker?.getRegistration();if(n?.active){await n.showNotification(e.title,t);return}}catch{}try{new Notification(e.title,t)}catch{}}function sg(){if(typeof navigator>`u`||!navigator.canShare)return!1;try{return navigator.canShare({files:[new File([`x`],`x.pdf`,{type:`application/pdf`})]})}catch{return!1}}async function cg(e,t=2400){if(!/^image\/(jpeg|png|webp)$/.test(e.type)||e.size<12e5)return e;try{let n=await createImageBitmap(e),r=Math.min(1,t/Math.max(n.width,n.height)),i=document.createElement(`canvas`);i.width=Math.round(n.width*r),i.height=Math.round(n.height*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height);let a=await new Promise(e=>i.toBlob(e,`image/jpeg`,.86));return a&&a.size<e.size?new File([a],`${e.name.replace(/\.[^.]+$/,``)}.jpg`,{type:`image/jpeg`}):e}catch{return e}}function lg(){return new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`)}function ug(e){let t=e?.name;return t===`NotFoundError`||t===`OverconstrainedError`?`missing`:t===`NotReadableError`||t===`AbortError`?`busy`:`denied`}function dg(e){return!!e?.getCapabilities?.()?.torch}function fg(e,t,n=!1){let r=(0,y.useRef)(null),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(1),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{if(!e)return;let r=null,i=!1;s(null),a(null),d(!1),p(!1);let o={facingMode:{ideal:t},width:{ideal:2560},height:{ideal:1440}};return(async()=>{if(!navigator.mediaDevices?.getUserMedia)throw new DOMException(`no camera api`,`NotAllowedError`);try{r=await navigator.mediaDevices.getUserMedia({video:o,audio:n})}catch(e){if(!n)throw e;r=await navigator.mediaDevices.getUserMedia({video:o})}if(i){for(let e of r.getTracks())e.stop();return}a(r);let e=r.getVideoTracks()[0],t=()=>!i&&d(dg(e));t(),setTimeout(t,600);let s=await navigator.mediaDevices.enumerateDevices().catch(()=>[]);i||l(s.filter(e=>e.kind===`videoinput`).length)})().catch(e=>!i&&s(ug(e))),()=>{i=!0;for(let e of r?.getTracks()??[])e.stop()}},[e,t,n]),(0,y.useEffect)(()=>{r.current&&i&&(r.current.srcObject=i)},[i]),{video:r,stream:i,error:o,cameras:c,torchable:u,torch:f,setTorch:async e=>{let t=i?.getVideoTracks()[0];try{await t?.applyConstraints({advanced:[{torch:e}]}),p(e)}catch{d(!1)}},mirrored:i?.getVideoTracks()[0]?.getSettings().facingMode===`user`}}function pg({open:e,onClose:t,label:n,children:r}){let i=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let t=i.current;t&&(e&&!t.open?t.showModal():!e&&t.open&&t.close())},[e]),(0,$.jsx)(`dialog`,{ref:i,onClose:t,"aria-label":n,className:`media-sheet`,children:e?(0,$.jsx)(`div`,{className:`flex h-full flex-col`,children:r}):null})}function mg({label:e,onClick:t,active:n,children:r}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":e,title:e,"aria-pressed":n,onClick:t,className:_h(`flex size-11 shrink-0 items-center justify-center rounded-full transition`,n?`bg-white text-black`:`bg-white/12 text-white hover:bg-white/20`),children:r})}function hg({title:e,onClose:t,camera:n,onFlip:r}){return(0,$.jsx)(`div`,{className:`safe-top`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,$.jsx)(mg,{label:Q(`common.close`),onClick:t,children:(0,$.jsx)($m,{className:`size-5`})}),(0,$.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-center font-medium text-[0.9375rem]`,children:e}),n.torchable?(0,$.jsx)(mg,{label:Q(`camera.torch`),active:n.torch,onClick:()=>void n.setTorch(!n.torch),children:n.torch?(0,$.jsx)(Cp,{className:`size-5`}):(0,$.jsx)(xp,{className:`size-5`})}):null,n.stream&&(n.cameras>1||Uh)?(0,$.jsx)(mg,{label:Q(`camera.flip`),onClick:r,children:(0,$.jsx)(Lm,{className:`size-5`})}):(0,$.jsx)(`span`,{className:`size-11`})]})})}function gg({camera:e,asking:t,children:n,actions:r}){return(0,$.jsxs)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:[(0,$.jsx)(`video`,{ref:e.video,autoPlay:!0,playsInline:!0,muted:!0,className:_h(`absolute inset-0 size-full object-contain`,e.mirrored&&`-scale-x-100`)}),e.error?(0,$.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-5 bg-black px-8 text-center`,children:[(0,$.jsx)(`p`,{className:`max-w-sm text-[0.9375rem] text-white/85 leading-relaxed`,children:Q(`camera.${e.error}`)}),r]}):e.stream?n:(0,$.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-4 px-8 text-center text-white/75`,children:[(0,$.jsx)(Mh,{}),(0,$.jsx)(`p`,{className:`max-w-xs text-[0.875rem] leading-relaxed`,children:t})]})]})}var _g=30;function vg(){if(typeof MediaRecorder<`u`)return[`video/mp4;codecs=avc1.42E01E,mp4a.40.2`,`video/mp4`,`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`,`video/webm`].find(e=>MediaRecorder.isTypeSupported(e))}var yg=!!vg();function bg({open:e,multiple:t,video:n,onClose:r,onCapture:i,onNative:a}){let[o,s]=(0,y.useState)(`environment`),[c,l]=(0,y.useState)(`photo`),[u,d]=(0,y.useState)(0),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),g=(0,y.useRef)(null),_=fg(e,o,c===`video`);(0,y.useEffect)(()=>{e&&(d(0),l(`photo`),h(null))},[e]);let v=async e=>{p(!0);try{await i(e),d(e=>e+1),t||r()}finally{p(!1)}},b=async()=>{let e=_.video.current;if(!e?.videoWidth)return;let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight,t.getContext(`2d`)?.drawImage(e,0,0);let n=await new Promise(e=>t.toBlob(e,`image/jpeg`,.9));n&&await v(new File([n],`foto-${lg()}.jpg`,{type:`image/jpeg`}))},x=()=>{g.current?.state===`recording`&&g.current.stop()},S=()=>{let e=vg();if(!_.stream||!e)return;let t=[],n=new MediaRecorder(_.stream,{mimeType:e,videoBitsPerSecond:25e5,audioBitsPerSecond:96e3});n.ondataavailable=e=>e.data.size&&t.push(e.data),n.onstop=()=>{h(null),g.current=null;let n=e.split(`;`)[0];if(t.length){let e=n===`video/mp4`?`mp4`:`webm`;v(new File(t,`video-${lg()}.${e}`,{type:n}))}},g.current=n,n.start(1e3),h(0)};(0,y.useEffect)(()=>{if(m===null)return;if(m>=_g){g.current?.state===`recording`&&g.current.stop();return}let e=setTimeout(()=>h(e=>e===null?null:e+1),1e3);return()=>clearTimeout(e)},[m]),(0,y.useEffect)(()=>{!e&&g.current&&(g.current.onstop=null,g.current.stop(),g.current=null)},[e]);let C=e=>`0:${String(e).padStart(2,`0`)}`;return(0,$.jsxs)(pg,{open:e,onClose:r,label:Q(`camera.title`),children:[(0,$.jsx)(hg,{title:m===null?u?Q(`camera.taken`,{n:u}):Q(`camera.title`):`${C(m)} / ${C(_g)}`,onClose:r,camera:_,onFlip:()=>s(e=>e===`environment`?`user`:`environment`)}),(0,$.jsx)(gg,{camera:_,asking:Q(`camera.asking`),actions:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a?(0,$.jsxs)(xg,{onClick:()=>{r(),a()},children:[(0,$.jsx)(zf,{className:`size-4`}),` `,Q(Uh?`camera.native`:`camera.pick`)]}):null,(0,$.jsx)(xg,{quiet:!0,onClick:r,children:Q(`common.close`)})]})}),(0,$.jsxs)(`div`,{className:_h(`safe-bottom px-4 pt-3`,_.error&&`invisible`),children:[n&&yg&&m===null?(0,$.jsx)(`div`,{className:`mb-3 flex justify-center gap-1 text-[0.8125rem]`,children:[`photo`,`video`].map(e=>(0,$.jsx)(`button`,{type:`button`,"aria-pressed":c===e,onClick:()=>l(e),className:_h(`h-9 rounded-full px-4 font-medium transition`,c===e?`bg-white text-black`:`text-white/70 hover:text-white`),children:Q(e===`photo`?`camera.photo`:`camera.video`)},e))}):null,(0,$.jsxs)(`div`,{className:`grid grid-cols-[1fr_auto_1fr] items-center gap-3`,children:[(0,$.jsx)(`span`,{className:`text-[0.8125rem] text-white/70 leading-snug`,children:m===null?c===`video`?Q(`camera.clipHint`,{s:_g}):Q(t?`camera.hintMany`:`camera.hint`):Q(`camera.recording`)}),(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(c===`photo`?`camera.shoot`:m===null?`camera.record`:`camera.stop`),disabled:!_.stream||f,onClick:()=>c===`photo`?void b():m===null?S():x(),className:`flex size-[72px] items-center justify-center rounded-full border-4 border-white transition active:scale-95 disabled:opacity-40`,children:f?(0,$.jsx)(Mh,{className:`text-white`}):c===`photo`?(0,$.jsx)(`span`,{className:`size-[54px] rounded-full bg-white`}):m===null?(0,$.jsx)(`span`,{className:`flex size-[54px] items-center justify-center rounded-full bg-[#e5484d]`,children:(0,$.jsx)(qm,{className:`size-6 text-white`})}):(0,$.jsx)(`span`,{className:`size-7 rounded-md bg-[#e5484d]`})}),(0,$.jsx)(`div`,{className:`flex justify-end`,children:t&&u&&m===null?(0,$.jsxs)(xg,{onClick:r,children:[(0,$.jsx)(Vf,{className:`size-4`}),` `,Q(`camera.done`)]}):null})]})]})]})}function xg({onClick:e,quiet:t,children:n}){return(0,$.jsx)(`button`,{type:`button`,onClick:e,className:_h(`inline-flex h-11 items-center justify-center gap-2 rounded-full px-5 font-medium text-[0.875rem] transition`,t?`text-white/75 hover:text-white`:`bg-white text-black hover:bg-white/90`),children:n})}var Sg=`w-full min-w-0 rounded-md bg-transparent px-2 py-1.5 text-[0.875rem] outline-none transition placeholder:text-ink-4 hover:bg-accent focus:bg-paper focus:ring-1 focus:ring-ring`,Cg=`font-medium text-[0.6875rem] text-ink-3 uppercase tracking-[0.08em]`,wg=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function Tg(e,t,n){if(!t.length)return n;let[r,...i]=t;if(Array.isArray(e)){let t=[...e];return t[r]=Tg(t[r],i,n),t}let a=e??{};return{...a,[r]:Tg(a[r],i,n)}}function Eg(e,t){let n=e?.length?e:[...new Set(t.filter(wg).flatMap(e=>Object.keys(e)))];return{kind:`object`,fields:Object.fromEntries(n.map(e=>[e,{kind:`text`}]))}}var Dg=e=>e.kind!==`object`&&e.kind!==`table`&&(e.kind!==`list`||e.of.kind!==`object`)&&!(e.kind===`text`&&e.long),Og=e=>Object.values(e.fields).every(Dg),kg=e=>Object.values(e.fields).every(e=>e.kind!==`table`&&(e.kind!==`list`||e.of.kind!==`object`));function Ag(e,t){let n=$l(e);return n?String(t[n]??``):``}function jg({text:e}){return(0,$.jsx)(`span`,{className:`whitespace-pre-wrap`,children:e})}function Mg({shape:e,value:t,path:n,ctx:r,cell:i}){switch(e.kind){case`text`:return r.edit?e.long?(0,$.jsx)(`textarea`,{className:_h(Sg,`field-sizing-content max-h-60 resize-none`),value:String(t??``),onChange:e=>r.set(n,e.target.value)}):(0,$.jsx)(`input`,{className:Sg,value:String(t??``),onChange:e=>r.set(n,e.target.value)}):(0,$.jsx)(jg,{text:t==null?``:String(t)});case`number`:return r.edit?(0,$.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`input`,{type:`number`,className:_h(Sg,`text-right tabular-nums`,i&&`w-20`),value:t==null?``:Number(t),onChange:e=>r.set(n,e.target.value===``?null:Number(e.target.value))}),e.unit?(0,$.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3`,children:e.unit}):null]}):(0,$.jsx)(`span`,{className:`tabular-nums`,children:t==null?``:`${t}${e.unit?` ${e.unit}`:``}`});case`yesno`:{let i=t?e.yes??Q(`data.yes`):e.no??Q(`data.no`);return r.edit?(0,$.jsxs)(`label`,{className:`flex items-center gap-2 px-2 py-1.5 text-[0.8125rem] text-ink-2`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!!t,onChange:e=>r.set(n,e.target.checked),className:`size-4 accent-[var(--second)]`}),i]}):(0,$.jsx)(`span`,{className:_h(`inline-flex rounded-full px-2 py-0.5 text-[0.75rem]`,t?`bg-second-tint text-second`:`bg-paper-2 text-ink-3`),children:i})}case`choice`:case`score`:return r.edit?(0,$.jsx)(`select`,{className:Sg,value:String(t??``),onChange:e=>r.set(n,e.target.value),children:[...new Set([String(t??``),...e.options])].map(e=>(0,$.jsx)(`option`,{value:e,children:e},e))}):(0,$.jsx)(`span`,{children:String(t??``)});case`ref`:{let i=r.shape.fields[e.to],a=i?.kind===`list`&&i.of.kind===`object`?i.of:{kind:`object`,fields:{}},o=(Array.isArray(r.root[e.to])?r.root[e.to]:[]).filter(wg),s=o.find(e=>e.id===t);return r.edit?(0,$.jsxs)(`select`,{className:Sg,value:String(t??``),onChange:e=>r.set(n,e.target.value),children:[s?null:(0,$.jsx)(`option`,{value:String(t??``),children:String(t??``)}),o.map(e=>(0,$.jsx)(`option`,{value:String(e.id),children:Ag(a,e)||String(e.id)},String(e.id)))]}):s?(0,$.jsxs)(`button`,{type:`button`,onClick:()=>r.open(String(s.id)),className:`inline-flex items-center gap-1 text-left text-ember-strong hover:underline`,children:[(0,$.jsx)(Vp,{className:`size-3.5 shrink-0`}),Ag(a,s)||String(s.id)]}):(0,$.jsx)(`span`,{className:`text-rose`,children:Q(`data.missing`,{id:String(t??``)})})}case`table`:{let i=Array.isArray(t)?t:[];return(0,$.jsx)(Ig,{shape:Eg(e.columns,i),value:i,path:n,ctx:r})}case`list`:if(e.of.kind===`object`){let i=e.of,a=Og(i)?Ig:kg(i)?Lg:Rg;return(0,$.jsx)(a,{shape:i,value:t,path:n,ctx:r})}return(0,$.jsx)(Ng,{value:t,path:n,ctx:r});case`object`:return(0,$.jsx)(zg,{shape:e,value:t,path:n,ctx:r})}}function Ng({value:e,path:t,ctx:n}){let r=Array.isArray(e)?e.map(String):[],[i,a]=(0,y.useState)(``);return(0,$.jsxs)(`span`,{className:`flex flex-wrap items-center gap-1`,children:[r.map((e,i)=>(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-paper-2 px-2 py-0.5 text-[0.75rem]`,children:[e,n.edit?(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(`data.remove`),onClick:()=>n.set(t,r.filter((e,t)=>t!==i)),className:`text-ink-3 hover:text-ink`,children:(0,$.jsx)($m,{className:`size-3`})}):null]},`${e}-${i}`)),n.edit?(0,$.jsx)(`input`,{className:`w-20 rounded-full bg-transparent px-2 py-0.5 text-[0.75rem] outline-none ring-1 ring-border-soft focus:ring-ring`,placeholder:`+`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&i.trim()&&(e.preventDefault(),n.set(t,[...r,i.trim()]),a(``))}}):null]})}var Pg=e=>(Array.isArray(e)?e:[]).filter(wg),Fg=e=>e.fields.id?{id:`n${Date.now().toString(36)}`}:{};function Ig({shape:e,value:t,path:n,ctx:r}){let i=Pg(t),a=Object.entries(e.fields);return(0,$.jsxs)(`div`,{className:`overflow-x-auto rounded-lg ring-1 ring-border-soft`,children:[(0,$.jsxs)(`table`,{className:`w-full border-collapse text-[0.8125rem]`,children:[(0,$.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,$.jsxs)(`tr`,{children:[a.map(([e,t])=>(0,$.jsx)(`th`,{className:`whitespace-nowrap px-3 py-2 text-left font-medium`,children:eu(e,t)},e)),r.edit?(0,$.jsx)(`th`,{className:`w-8`}):null]})}),(0,$.jsx)(`tbody`,{children:i.map((e,t)=>(0,$.jsxs)(`tr`,{className:`group border-border-soft border-t`,children:[a.map(([i,a])=>(0,$.jsx)(`td`,{className:_h(`align-top`,r.edit?`p-0.5`:`px-3 py-2`),children:(0,$.jsx)(Mg,{shape:a,value:e[i],path:[...n,t,i],ctx:r,cell:!0})},i)),r.edit?(0,$.jsx)(`td`,{className:`p-0.5 align-middle`,children:(0,$.jsx)(Vg,{onClick:()=>r.set(n,i.filter((e,n)=>n!==t))})}):null]},t))})]}),r.edit?(0,$.jsx)(Hg,{what:e.label,onClick:()=>r.set(n,[...i,Fg(e)])}):null]})}function Lg({shape:e,value:t,path:n,ctx:r}){let i=Pg(t),a=Object.entries(e.fields),o=a.filter(([,e])=>e.kind===`text`&&e.long),s=a.filter(([,e])=>!(e.kind===`text`&&e.long));return(0,$.jsxs)(`div`,{className:`overflow-hidden rounded-lg ring-1 ring-border-soft`,children:[(0,$.jsx)(`ol`,{children:i.map((e,t)=>(0,$.jsxs)(`li`,{className:`grid grid-cols-[1.75rem_1fr_auto] items-start gap-2 border-border-soft border-t px-3 py-2 first:border-0`,children:[(0,$.jsx)(`span`,{className:`pt-1.5 font-display font-semibold text-ember-strong tabular-nums`,children:t+1}),(0,$.jsx)(`div`,{className:_h(`flex min-w-0 flex-col`,!r.edit&&`pt-1`),children:o.map(([i,a])=>(0,$.jsx)(Mg,{shape:a,value:e[i],path:[...n,t,i],ctx:r},i))}),(0,$.jsxs)(`div`,{className:_h(`flex items-center gap-2 text-[0.8125rem] text-ink-3`,!r.edit&&`pt-1`),children:[s.map(([i,a])=>(0,$.jsx)(Mg,{shape:a,value:e[i],path:[...n,t,i],ctx:r,cell:!0},i)),r.edit?(0,$.jsx)(Vg,{onClick:()=>r.set(n,i.filter((e,n)=>n!==t))}):null]})]},t))}),r.edit?(0,$.jsx)(Hg,{what:e.label,onClick:()=>r.set(n,[...i,Fg(e)])}):null]})}function Rg({shape:e,value:t,path:n,ctx:r}){let i=Pg(t),a=Object.entries(e.fields),o=$l(e),s=a.filter(([e,t])=>e!==o&&e!==`id`&&(t.kind===`text`&&!t.long||t.kind===`number`||t.kind===`choice`)),c=a.filter(([,e])=>e.kind===`list`&&e.of.kind===`object`);return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[i.map((t,a)=>{let o=typeof t.id==`string`?t.id:void 0;return(0,$.jsxs)(`details`,{id:o?`${r.scope}-${o}`:void 0,className:`group rounded-xl bg-card ring-1 ring-border-soft open:ring-ink-4/40`,children:[(0,$.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center gap-3 px-4 py-3 [&::-webkit-details-marker]:hidden`,children:[(0,$.jsx)(Uf,{className:`size-4 shrink-0 text-ink-3 transition-transform group-open:rotate-90`}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate font-medium text-[0.9375rem]`,children:Ag(e,t)||`${e.label??``} ${a+1}`.trim()}),(0,$.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-[0.75rem] text-ink-3`,children:[s.map(([e,n])=>t[e]===void 0||t[e]===``?null:(0,$.jsx)(`span`,{children:n.kind===`number`&&n.unit?`${t[e]} ${n.unit}`:String(t[e])},e)),c.map(([e,n])=>(0,$.jsxs)(`span`,{children:[Array.isArray(t[e])?t[e].length:0,` `,eu(e,n)]},e))]})]}),r.edit?(0,$.jsx)(Vg,{onClick:()=>r.set(n,i.filter((e,t)=>t!==a))}):null]}),(0,$.jsx)(`div`,{className:`border-border-soft border-t px-4 py-4`,children:(0,$.jsx)(zg,{shape:e,value:t,path:[...n,a],ctx:r})})]},a)}),r.edit?(0,$.jsx)(Hg,{what:e.label,onClick:()=>r.set(n,[...i,Fg(e)])}):null]})}function zg({shape:e,value:t,path:n,ctx:r}){let i=wg(t)?t:{},a=e=>e.kind===`list`||e.kind===`object`||e.kind===`table`||e.kind===`text`&&!!e.long;return(0,$.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] gap-x-4 gap-y-4`,children:Object.entries(e.fields).map(([e,t])=>(0,$.jsx)(Bg,{title:eu(e,t),wide:a(t),count:Array.isArray(i[e])?i[e].length:null,children:(0,$.jsx)(Mg,{shape:t,value:i[e],path:[...n,e],ctx:r})},e))})}function Bg({title:e,wide:t,count:n,children:r}){return(0,$.jsxs)(`div`,{className:_h(`flex min-w-0 flex-col gap-1.5 text-[0.875rem]`,t&&`col-span-full`),children:[(0,$.jsxs)(`span`,{className:Cg,children:[e,n===null?null:(0,$.jsx)(`span`,{className:`ml-1 text-ink-4`,children:n})]}),r]})}function Vg({onClick:e}){return(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(`data.remove`),onClick:t=>{t.preventDefault(),e()},className:`grid size-7 place-items-center rounded-md text-ink-3 hover:bg-accent hover:text-rose`,children:(0,$.jsx)(zm,{className:`size-3.5`})})}function Hg({what:e,onClick:t}){return(0,$.jsxs)(`button`,{type:`button`,onClick:t,className:`flex w-full items-center gap-1.5 border-border-soft border-t px-3 py-2 text-[0.8125rem] text-ink-3 hover:bg-accent hover:text-ink`,children:[(0,$.jsx)(hm,{className:`size-3.5`}),` `,Q(`data.add`,{what:e??``}).trim()]})}function Ug({shape:e,value:t,onChange:n,mode:r,onMode:i,modes:a=[`view`,`edit`,`json`],start:o}){let s=n?a:a.filter(e=>e!==`edit`),[c,l]=(0,y.useState)(o&&s.includes(o)?o:s[0]??`view`),u=r??c,d=i??l,f=(0,y.useId)().replace(/[^a-zA-Z0-9_-]/g,``),p={root:t,shape:e,edit:u===`edit`&&!!n,scope:f,set:(e,r)=>n?.(Tg(t,e,r)),open:e=>{let t=document.getElementById(`${f}-${e}`);t&&(t.open=!0,t.scrollIntoView({behavior:`smooth`,block:`center`}))}},m=Object.entries(e.fields);return(0,$.jsxs)(`div`,{className:`flex flex-col`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 border-border-soft border-b px-3 py-2`,children:[(0,$.jsx)(`div`,{className:`flex min-w-0 flex-wrap gap-1`,children:m.length>1?m.map(([e,n])=>(0,$.jsxs)(`a`,{href:`#${f}-part-${e}`,className:`rounded-full px-2.5 py-1 text-[0.8125rem] text-ink-2 hover:bg-accent`,children:[eu(e,n),Array.isArray(t[e])?(0,$.jsx)(`span`,{className:`ml-1 text-ink-4 tabular-nums`,children:t[e].length}):null]},e)):null}),s.length>1?(0,$.jsx)(kh,{value:u,onChange:d,label:Q(`data.modes`),options:s.map(e=>({id:e,label:Q(`data.${e}`)}))}):null]}),u===`json`?(0,$.jsx)(`pre`,{className:`max-h-[36rem] overflow-auto p-4 font-mono text-[0.75rem] text-ink-2 leading-relaxed`,children:JSON.stringify(t,null,2)}):(0,$.jsx)(`div`,{className:`flex flex-col gap-7 p-4 sm:p-5`,children:m.map(([e,n])=>(0,$.jsxs)(`section`,{id:`${f}-part-${e}`,className:`flex scroll-mt-4 flex-col gap-2`,children:[(0,$.jsxs)(`h3`,{className:`flex items-baseline gap-2 font-display font-semibold text-[1rem]`,children:[eu(e,n),Array.isArray(t[e])?(0,$.jsx)(`span`,{className:`font-normal font-sans text-[0.8125rem] text-ink-4 tabular-nums`,children:t[e].length}):null]}),(0,$.jsx)(`div`,{className:`text-[0.9375rem] leading-relaxed`,children:(0,$.jsx)(Mg,{shape:n,value:t[e],path:[e],ctx:p})})]},e))})]})}function Wg({items:e}){let[t,n]=(0,y.useState)(!1),r=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!t)return;let e=e=>{r.current?.contains(e.target)||n(!1)},i=e=>e.key===`Escape`&&n(!1);return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,i)}},[t]),(0,$.jsxs)(`div`,{ref:r,className:`relative`,children:[(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(`data.menu`),title:Q(`data.menu`),"aria-haspopup":`menu`,"aria-expanded":t,onClick:()=>n(e=>!e),className:_h(`grid size-8 place-items-center rounded-full text-ink-3 transition hover:bg-accent hover:text-ink coarse:size-11`,t&&`bg-accent text-ink`),children:(0,$.jsx)(ap,{className:`size-4`})}),t?(0,$.jsx)(`div`,{role:`menu`,className:`absolute top-full right-0 z-50 mt-1 w-60 animate-rise rounded-xl bg-card p-1.5 shadow-overlay ring-1 ring-border-soft`,children:e.map(e=>(0,$.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-[0.875rem] text-ink-2 transition hover:bg-accent hover:text-ink`,onClick:()=>{n(!1),e.onClick()},children:[e.icon,e.label]},e.label))}):null]})}function Gg(e){return e.toLowerCase().replace(/ä/g,`ae`).replace(/ö/g,`oe`).replace(/ü/g,`ue`).replace(/ß/g,`ss`).replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)||`output`}function Kg({shape:e,title:t,open:n,onClose:r}){let[i,a]=(0,y.useState)(!1),o=n?JSON.stringify(iu(e,t),null,2):``;return(0,$.jsx)(Fh,{open:n,onClose:r,title:`${Q(`data.schema`)} · ${t}`,wide:!0,height:`tall`,children:(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3`,children:[(0,$.jsx)(`pre`,{className:`min-h-0 flex-1 overflow-auto rounded-lg bg-paper-2 p-3 font-mono text-[0.75rem] text-ink-2 leading-relaxed`,children:o}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(o),a(!0),setTimeout(()=>a(!1),1500)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[i?(0,$.jsx)(Vf,{className:`size-3.5`}):(0,$.jsx)(Zf,{className:`size-3.5`}),Q(i?`share.copied`:`data.copy`)]}),(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{let e=URL.createObjectURL(new Blob([o],{type:`application/schema+json`})),n=document.createElement(`a`);n.href=e,n.download=`${Gg(t)}.schema.json`,n.click(),setTimeout(()=>URL.revokeObjectURL(e),1e3)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[(0,$.jsx)(rp,{className:`size-3.5`}),` `,Q(`data.download`)]})]})]})})}function qg(e){let t=e;return t.type===`agent`&&t.output.format===`json`&&!t.each&&!t.call}function Jg({runId:e,step:t,output:n,header:r,children:i}){let a=nd(t),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),g=u??(wg(n.json)?n.json:{}),_=async()=>{if(u){p(!0),h(null);try{await oh.put(`${lh(e)}/outputs/${t.id}`,{json:u}),d(null),s(!1)}catch(e){h(e.message)}finally{p(!1)}}},v=(0,$.jsx)(Wg,{items:[{label:Q(o?`data.close`:`data.open`),icon:(0,$.jsx)(tp,{className:`size-4 shrink-0`}),onClick:()=>{s(e=>!e),d(null)}},{label:Q(`data.schema`),icon:(0,$.jsx)(Lf,{className:`size-4 shrink-0`}),onClick:()=>l(!0)}]});return(0,$.jsxs)($.Fragment,{children:[r(v),o?(0,$.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:[(0,$.jsx)(Ug,{shape:a,value:g,onChange:d}),u?(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-border-soft border-t px-3 py-2`,children:[m?(0,$.jsx)(`span`,{className:`mr-auto text-[0.8125rem] text-rose`,children:m}):null,(0,$.jsx)(yh,{variant:`ghost`,size:`sm`,onClick:()=>d(null),children:Q(`common.cancel`)}),(0,$.jsx)(yh,{size:`sm`,busy:f,onClick:()=>void _(),children:Q(`data.save`)})]}):null]}):i,(0,$.jsx)(Kg,{shape:a,title:t.title,open:c,onClose:()=>l(!1)})]})}var Yg=25,Xg=9e3;function Zg(e){return e.code===e.PERMISSION_DENIED?`denied`:e.code===e.TIMEOUT?`timeout`:`unavailable`}function Qg({value:e,runId:t,placeholder:n,onChange:r,onBusy:i}){let a=Su(e)?e:null,[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),u=(0,y.useRef)(null),d=(0,y.useRef)(!!a?.label),f=(0,y.useRef)(a);f.current=a;let p=a?.lat!==void 0&&a.lng!==void 0,m=typeof navigator<`u`&&`geolocation`in navigator,h=()=>{u.current!==null&&(navigator.geolocation.clearWatch(u.current),u.current=null),s(!1),i?.(!1)};(0,y.useEffect)(()=>()=>{u.current!==null&&navigator.geolocation.clearWatch(u.current)},[]);let g=async(e,n)=>{try{let{label:i}=await oh.post(`${lh(t)}/geocode`,{lat:e,lng:n,language:jd}),a=f.current;i&&!d.current&&a?.lat===e&&a.lng===n&&r({...a,label:i})}catch{}},_=()=>{l(null),s(!0),i?.(!0);let e=Date.now(),t=1/0;u.current=navigator.geolocation.watchPosition(n=>{let{latitude:i,longitude:a,accuracy:o}=n.coords;if(o<t){t=o;let e=Math.round(i*1e6)/1e6,n=Math.round(a*1e6)/1e6,s=d.current?f.current?.label:void 0,c={lat:e,lng:n,accuracy:Math.round(o),...s?{label:s}:{}};f.current=c,r(c)}if(t<=Yg||Date.now()-e>Xg){h();let e=f.current;e?.lat!==void 0&&e.lng!==void 0&&g(e.lat,e.lng)}},e=>{h(),t===1/0&&l(Zg(e))},{enableHighAccuracy:!0,timeout:15e3,maximumAge:1e4})},v=e=>{d.current=e.trim().length>0;let t={...p?a:{},label:e};r(p||e.trim()?t:void 0)};return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[p?(0,$.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,$.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-moss-tint text-moss`,children:(0,$.jsx)(Yp,{className:`size-5`})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`truncate font-medium text-[0.9375rem] tabular-nums`,children:[a.lat?.toFixed(5),`, `,a.lng?.toFixed(5)]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 text-[0.8125rem] text-ink-3`,children:[(0,$.jsx)(`span`,{children:o?Q(`location.refining`):a.accuracy?Q(`location.accuracy`,{m:a.accuracy}):null}),(0,$.jsxs)(`a`,{href:`https://www.openstreetmap.org/?mlat=${a.lat}&mlon=${a.lng}#map=17/${a.lat}/${a.lng}`,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 underline-offset-2 hover:text-ink hover:underline coarse:-my-3 coarse:min-h-11 coarse:min-w-11`,children:[Q(`location.map`),` `,(0,$.jsx)(lp,{className:`size-3`})]})]})]}),(0,$.jsx)(bh,{label:Q(`location.remove`),onClick:()=>{h(),d.current=!1,r(void 0)},children:(0,$.jsx)($m,{className:`size-4`})})]}):m?(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(yh,{variant:`secondary`,size:`lg`,busy:o,onClick:_,className:`w-full sm:w-auto`,children:[o?null:(0,$.jsx)(Gp,{className:`size-4`}),Q(o?`location.locating`:`location.use`)]}),c?(0,$.jsx)(`p`,{className:`mt-2 rounded-lg bg-amber-tint px-3 py-2 text-[0.8125rem] text-ink-2 leading-relaxed`,children:Q(`location.${c}`)}):(0,$.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-ink-3 leading-relaxed`,children:Q(`location.why`)})]}):null,(0,$.jsx)(Ch,{value:a?.label??``,placeholder:n??Q(p?`location.label`:`location.manual`),autoComplete:`street-address`,enterKeyHint:`done`,"aria-label":Q(`location.manual`),onChange:e=>v(e.target.value)})]})}var $g,e_,t_,n_,r_,i_=o((()=>{$g=`modulepreload`,e_=function(e,t){return new URL(e,t).href},t_={},n_=function(e){return e.pathname.endsWith(`.css`)},r_=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=e_(t,n);let r=s(t);if(r.href in t_)return;t_[r.href]=!0;let i=n_(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:$g,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})}})),a_=c({createWorker:()=>o_}),o_,s_=o((()=>{o_=()=>new Worker(URL.createObjectURL(new Blob([`class x{constructor(a,b){this.width=b;this.height=a.length/b;this.data=a}static createEmpty(a,b){return new x(new Uint8ClampedArray(a*b),a)}get(a,b){return 0>a||a>=this.width||0>b||b>=this.height?!1:!!this.data[b*this.width+a]}set(a,b,c){this.data[b*this.width+a]=c?1:0}setRegion(a,b,c,d,e){for(let f=b;f<b+d;f++)for(let g=a;g<a+c;g++)this.set(g,f,!!e)}}
70
70
  class A{constructor(a,b,c){this.width=a;a*=b;if(c&&c.length!==a)throw Error("Wrong buffer size");this.data=c||new Uint8ClampedArray(a)}get(a,b){return this.data[b*this.width+a]}set(a,b,c){this.data[b*this.width+a]=c}}
71
71
  class ba{constructor(a){this.bitOffset=this.byteOffset=0;this.bytes=a}readBits(a){if(1>a||32<a||a>this.available())throw Error("Cannot read "+a.toString()+" bits");var b=0;if(0<this.bitOffset){b=8-this.bitOffset;var c=a<b?a:b;b-=c;b=(this.bytes[this.byteOffset]&255>>8-c<<b)>>b;a-=c;this.bitOffset+=c;8===this.bitOffset&&(this.bitOffset=0,this.byteOffset++)}if(0<a){for(;8<=a;)b=b<<8|this.bytes[this.byteOffset]&255,this.byteOffset++,a-=8;0<a&&(c=8-a,b=b<<a|(this.bytes[this.byteOffset]&255>>c<<c)>>c,
72
72
  this.bitOffset+=a)}return b}available(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset}}var B,C=B||(B={});C.Numeric="numeric";C.Alphanumeric="alphanumeric";C.Byte="byte";C.Kanji="kanji";C.ECI="eci";C.StructuredAppend="structuredappend";var D,E=D||(D={});E[E.Terminator=0]="Terminator";E[E.Numeric=1]="Numeric";E[E.Alphanumeric=2]="Alphanumeric";E[E.Byte=4]="Byte";E[E.Kanji=8]="Kanji";E[E.ECI=7]="ECI";E[E.StructuredAppend=3]="StructuredAppend";let F="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".split("");
@@ -462,7 +462,7 @@ Actual: `+e.attribValue);else{var i=e.tag,a=e.tags[e.tags.length-1]||e;i.ns===a.
462
462
  `});break;case`html`:n.push({...t,text:Bx(r.text)});break;default:`tokens`in r&&Array.isArray(r.tokens)?n.push(...Vx(r.tokens,t)):`text`in r&&typeof r.text==`string`&&n.push({...t,text:zx(r.text)})}return n}function Hx(e){let t=Gx(e);if(t.length===1&&typeof t[0]==`object`&&`style`in t[0]){let{style:e,...n}=t[0];return n}return t.length===1?t[0]:{stack:t}}function Ux(e,t){return{text:Vx(e.tokens),alignment:e.align??`left`,...t?{style:`th`}:{}}}var Wx={hLineWidth:()=>.5,vLineWidth:()=>0,hLineColor:()=>Ix,paddingTop:()=>4,paddingBottom:()=>4};function Gx(e){let t=[];for(let n of e)switch(n.type){case`space`:break;case`heading`:{let e=n.depth;t.push({text:Vx(n.tokens),style:e<=1?`h1`:e===2?`h2`:`h3`});break}case`paragraph`:t.push({text:Vx(n.tokens),style:`p`});break;case`text`:t.push({text:Vx([n]),style:`p`});break;case`list`:{let e=n,r=e.items.map(e=>Hx(e.tokens));t.push(e.ordered?{ol:r,style:`list`,start:Number(e.start)||1}:{ul:r,style:`list`});break}case`table`:{let e=n;if(!e.header.length)break;t.push({table:{headerRows:1,widths:e.header.map(()=>`*`),body:[e.header.map(e=>Ux(e,!0)),...e.rows.map(e=>e.map(e=>Ux(e,!1)))]},layout:Wx,style:`table`});break}case`code`:t.push({text:zx(n.text),style:`code`,preserveLeadingSpaces:!0});break;case`blockquote`:t.push({stack:Gx(n.tokens),style:`quote`});break;case`hr`:t.push({canvas:[{type:`line`,x1:0,y1:0,x2:Lx,y2:0,lineWidth:.5,lineColor:Ix}],margin:[0,6,0,12]});break;case`html`:{let e=Bx(n.text);e&&t.push({text:e,style:`p`});break}default:`tokens`in n&&Array.isArray(n.tokens)?t.push({text:Vx(n.tokens),style:`p`}):`text`in n&&typeof n.text==`string`&&t.push({text:zx(n.text),style:`p`})}return t}function Kx(e){return Gx(hx.lexer(e))}function qx(e,t=e=>e){if(!e||typeof e!=`object`)return[{text:JSON.stringify(e,null,2)??``,style:`code`}];let n=[];for(let[r,i]of Object.entries(e))if(n.push({text:t(r),style:`label`}),typeof i==`boolean`)n.push({text:Q(i?`run.yes`:`run.no`),style:`p`});else if(typeof i==`string`||typeof i==`number`)n.push({text:String(i),style:`p`});else if(Array.isArray(i)&&i.every(e=>typeof e!=`object`))n.push({ul:i.map(e=>String(e)),style:`list`});else if(Array.isArray(i)&&i.length&&typeof i[0]==`object`){let e=i,t=[...new Set(e.flatMap(e=>Object.keys(e)))];n.push({table:{headerRows:1,widths:t.map(()=>`*`),body:[t.map(e=>({text:e,style:`th`})),...e.map(e=>t.map(t=>({text:e[t]===null||e[t]===void 0?``:String(e[t])})))]},layout:Wx,style:`table`})}else n.push({text:JSON.stringify(i,null,2),style:`code`});return n}function Jx(e){let t=e.json!==void 0&&e.json!==null?qx(e.json,e.label):Kx(e.text??``),n=e.foot??``;return{info:{title:e.title},pageSize:`A4`,pageMargins:[56,60,56,64],defaultStyle:{font:`Roboto`,fontSize:10.5,lineHeight:1.3,color:Nx},styles:{title:{fontSize:20,bold:!0,lineHeight:1.15,margin:[0,0,0,16]},h1:{fontSize:15,bold:!0,margin:[0,14,0,6]},h2:{fontSize:13,bold:!0,margin:[0,12,0,5]},h3:{fontSize:11,bold:!0,margin:[0,10,0,4]},p:{margin:[0,0,0,7]},list:{margin:[0,0,0,7]},table:{margin:[0,2,0,10]},th:{bold:!0,fillColor:`#f3f1ee`},label:{fontSize:8,bold:!0,color:Px,characterSpacing:.6,margin:[0,8,0,2]},code:{fontSize:9,color:`#3d3b38`,margin:[0,0,0,8]},quote:{italics:!0,color:`#5d5b58`,margin:[14,0,0,8]}},content:[{text:e.title,style:`title`},...t],footer:(e,t)=>({columns:[{text:n,color:Px,fontSize:8.5},{text:`${e} / ${t}`,alignment:`right`,color:Px,fontSize:8.5}],margin:[56,26,56,0]})}}var Yx={Roboto:{normal:`Roboto-Regular.ttf`,bold:`Roboto-Medium.ttf`,italics:`Roboto-Italic.ttf`,bolditalics:`Roboto-MediumItalic.ttf`}},Xx=null;function Zx(){return Xx??=Promise.all([r_(()=>Promise.resolve().then(()=>u(jx(),1)),void 0,import.meta.url),r_(()=>Promise.resolve().then(()=>u(Mx(),1)),void 0,import.meta.url)]).then(([e,t])=>{let n=e.default;return n.addVirtualFileSystem(t.default),n.addFonts(Yx),n}).catch(e=>{throw Xx=null,e}),Xx}function Qx(e){return e.replace(/[\\/:*?"<>|]+|\p{Cc}+/gu,`-`).replace(/\s+/g,` `).trim()||`result`}async function $x(e){let t=await(await Zx()).createPdf(Jx(e)).getBlob();return new File([t],`${Qx(e.title)}.pdf`,{type:`application/pdf`})}var eS=e=>e==null?``:typeof e==`boolean`?Q(e?`run.yes`:`run.no`):typeof e==`object`?JSON.stringify(e):String(e),tS=e=>{let t=typeof e==`number`?e:Number(String(e??``).replace(`,`,`.`));return Number.isFinite(t)?t:0};function nS(e,t){let n=eS(e);return n?/^(https?:|data:|\/)/.test(n)?n:t(n):null}function rS(e,t,n,r){return uu(e[t],n.data,r)}function iS(e,t,n){let r=eS(t)||`label`,i=eS(n)||`value`;return Array.isArray(e)?e.map(e=>({label:eS(e?.[r]),value:tS(e?.[i])})):[]}function aS({c:e,ctx:t,row:n}){let r=e.children;if(!r)return null;if(Array.isArray(r))return(0,$.jsx)($.Fragment,{children:r.map(e=>(0,$.jsx)(xS,{id:e,ctx:t,row:n},e))});let i=uu({path:r.path},t.data,n);return(0,$.jsx)($.Fragment,{children:(Array.isArray(i)?i:[]).map((e,n)=>(0,$.jsx)(xS,{id:r.componentId,ctx:t,row:e},n))})}var oS={success:`bg-second-tint text-second`,warning:`bg-amber-tint text-ink-2`,accent:`bg-ember-tint text-ember-strong`,default:`bg-paper-2 text-ink-2`},sS=e=>Array.isArray(e)?e:[];function cS(e,t){return typeof e!=`object`||!e?t===``?e:void 0:e[t]}function lS(e,t){if(typeof e!=`object`||!e)return eS(e);let n=e;return eS(t?n[t]:n.label??n.name??n.title??n.text)}function uS(e,t,n){let r=new Map;for(let n of e){let e=eS(cS(n,t));r.set(e,[...r.get(e)??[],n])}let i=e=>{let t=n.indexOf(e);return t<0?n.length:t};return[...r.entries()].sort((e,t)=>i(e[0])-i(t[0]))}var dS=e=>e?`${eS(e)} ${jd===`de`?`Min`:`min`}`:``;function fS({items:e}){return e.length?(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map((e,t)=>(0,$.jsx)(`span`,{className:`rounded-full bg-paper-2 px-2 py-0.5 text-[0.75rem] text-ink-2`,children:e},t))}):null}function pS(e,t,n){let r=e.meta;return(Array.isArray(r)?r:[r]).map(e=>eS(uu(e,t.data,n))).filter(Boolean)}function mS({c:e,ctx:t,row:n}){let[r,i]=(0,y.useState)(`0`),a=sS(e.tabs),o=a.map((e,r)=>{let i=uu(e?.count,t.data,n),a=Array.isArray(i)?i.length:i,o=eS(uu(e?.label,t.data,n));return{id:String(r),label:a==null||a===``?o:`${o} (${eS(a)})`}}),s=a[Number(r)]?.child;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsx)(`div`,{className:`sticky top-2 z-10 max-w-full self-start overflow-x-auto rounded-full`,children:(0,$.jsx)(kh,{value:r,onChange:i,options:o})}),typeof s==`string`?(0,$.jsx)(xS,{id:s,ctx:t,row:n}):null]})}function hS({c:e,ctx:t,row:n}){let r=r=>rS(e,r,t,n),[i,a]=(0,y.useState)(!1),o=sS(r(`items`)),s=eS(r(`labelKey`)),c=eS(r(`detailKey`))||`amount`,l=eS(r(`noteKey`)),u=eS(r(`noteFormat`)),d=eS(r(`groupKey`)),f=sS(r(`groupOrder`)).map(eS),p=t.state[e.id]??{},m=(e,t)=>`${t}:${lS(e,s)}`,h=o.filter((e,t)=>p[m(e,t)]).length,g=o.map((e,t)=>({item:e,i:t})),_=d?uS(o,d,f).map(([e])=>[e,g.filter(({item:t})=>eS(cS(t,d))===e)]):[[``,g]],v=e=>eS(cS(e,c)),b=r(`noteMap`),x=e=>{let t=l?cS(e,l):void 0;if(typeof t==`boolean`)return eS((b&&typeof b==`object`?b[String(t)]:``)??``);let n=Array.isArray(t)?t.map(eS).join(`, `):eS(t);return n&&u?u.replace(`{}`,n):n};return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-paper-2`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-second transition-[width] duration-300`,style:{width:`${o.length?h/o.length*100:0}%`}})}),(0,$.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3 tabular-nums`,children:h===o.length&&o.length?Q(`surface.allDone`):Q(`surface.done`,{done:h,total:o.length})}),r(`share`)===!1?null:(0,$.jsxs)(`button`,{type:`button`,onClick:async()=>{let e=_.map(([e,t])=>{let n=t.filter(({item:e,i:t})=>!p[m(e,t)]).map(({item:e})=>`☐ ${lS(e,s)}${v(e)?` – ${v(e)}`:``}`);return n.length?[e,...n].filter(Boolean).join(`
463
463
  `):``}).filter(Boolean).join(`
464
464
 
465
- `);try{navigator.share?await navigator.share({text:e}):(await navigator.clipboard.writeText(e),a(!0),setTimeout(()=>a(!1),1600))}catch{}},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-10`,children:[i?(0,$.jsx)(Vf,{className:`size-3.5`}):(0,$.jsx)(Dm,{className:`size-3.5`}),Q(i?`share.copied`:`run.share`)]})]}),_.map(([n,r])=>(0,$.jsxs)(`section`,{className:`rounded-xl bg-card px-4 py-1 ring-1 ring-border-soft`,children:[n?(0,$.jsx)(`h4`,{className:`pt-3 pb-1 font-semibold text-[0.6875rem] text-second uppercase tracking-[0.14em]`,children:n}):null,r.map(({item:n,i:r})=>{let i=m(n,r),a=!!p[i],o=x(n);return(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 border-border-soft border-b border-dashed py-2.5 last:border-0`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:a,onChange:()=>t.setState(e.id,{...p,[i]:!a}),className:`mt-0.5 size-[1.125rem] shrink-0 accent-[var(--second)] coarse:size-6`}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`span`,{className:_h(`text-[0.9375rem]`,a&&`text-ink-3 line-through`),children:[lS(n,s),v(n)?(0,$.jsxs)(`span`,{className:`text-ink-3`,children:[` · `,v(n)]}):null]}),o?(0,$.jsx)(`span`,{className:`block text-[0.75rem] text-ink-3`,children:o}):null]})]},i)})]},n))]})}function gS({data:e}){let t=Math.max(1,...e.map(e=>e.value));return(0,$.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.map((e,n)=>(0,$.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,8rem)_1fr_auto] items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate text-[0.8125rem] text-ink-2`,children:e.label}),(0,$.jsx)(`span`,{className:`h-2.5 rounded-full bg-paper-2`,children:(0,$.jsx)(`span`,{className:`block h-full rounded-full bg-ember`,style:{width:`${e.value/t*100}%`}})}),(0,$.jsx)(`span`,{className:`text-[0.8125rem] tabular-nums`,children:e.value.toLocaleString(jd)})]},n))})}function _S({data:e}){if(e.length<2)return(0,$.jsx)(gS,{data:e});let t=Math.max(...e.map(e=>e.value)),n=Math.min(...e.map(e=>e.value)),r=t-n||1,i=e.map((t,i)=>[i/(e.length-1)*312+4,116-(t.value-n)/r*112]);return(0,$.jsxs)(`figure`,{children:[(0,$.jsxs)(`svg`,{viewBox:`0 0 320 120`,className:`w-full text-ember`,role:`img`,children:[(0,$.jsx)(`polyline`,{points:i.map(([e,t])=>`${e},${t}`).join(` `),fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinejoin:`round`}),i.map(([t,n],r)=>(0,$.jsx)(`circle`,{cx:t,cy:n,r:`3`,fill:`currentColor`,children:(0,$.jsx)(`title`,{children:`${e[r].label}: ${e[r].value}`})},r))]}),(0,$.jsxs)(`figcaption`,{className:`mt-1 flex justify-between text-[0.75rem] text-ink-3`,children:[(0,$.jsx)(`span`,{children:e[0].label}),(0,$.jsx)(`span`,{children:e.at(-1)?.label})]})]})}var vS=[`var(--color-ember)`,`var(--color-cobalt)`,`var(--color-moss)`,`var(--color-amber)`,`var(--color-ink-3)`];function yS({data:e}){let t=e.reduce((e,t)=>e+Math.max(0,t.value),0)||1,n=0,r=2*Math.PI*40;return(0,$.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,$.jsx)(`svg`,{viewBox:`0 0 100 100`,className:`size-28 shrink-0 -rotate-90`,role:`img`,children:e.map((e,i)=>{let a=Math.max(0,e.value)/t*r,o=(0,$.jsx)(`circle`,{cx:`50`,cy:`50`,r:40,fill:`none`,stroke:vS[i%vS.length],strokeWidth:`16`,strokeDasharray:`${a} ${r-a}`,strokeDashoffset:-n,children:(0,$.jsx)(`title`,{children:`${e.label}: ${e.value}`})},i);return n+=a,o})}),(0,$.jsx)(`ul`,{className:`flex flex-col gap-1 text-[0.8125rem]`,children:e.map((e,t)=>(0,$.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2.5 rounded-full`,style:{background:vS[t%vS.length]}}),(0,$.jsx)(`span`,{className:`text-ink-2`,children:e.label}),(0,$.jsx)(`span`,{className:`tabular-nums`,children:e.value.toLocaleString(jd)})]},t))})]})}function bS({title:e,children:t}){return(0,$.jsxs)(`div`,{className:`rounded-xl bg-card p-4 ring-1 ring-border-soft`,children:[e?(0,$.jsx)(`div`,{className:`mb-3 font-medium text-[0.875rem]`,children:e}):null,t]})}function xS({id:e,ctx:t,row:n}){let r=t.byId.get(e);if(!r)return null;let i=e=>rS(r,e,t,n);switch(r.component){case`Column`:return(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})});case`Text`:{let e=eS(i(`variant`))||`body`;return(0,$.jsx)(`p`,{className:_h(e===`h3`&&`font-display font-semibold text-[1.25rem] leading-tight`,e===`h4`&&`font-semibold text-[1rem]`,e===`lead`&&`font-display text-[1.0625rem] text-ink-2 leading-relaxed`,e===`body`&&`text-[0.9375rem] leading-relaxed`,e===`muted`&&`text-[0.8125rem] text-ink-3`),children:eS(i(`text`))})}case`List`:return(0,$.jsx)(`div`,{className:`flex flex-col divide-y divide-border-soft overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})});case`Row`:{let e=nS(i(`image`),t.assetUrl),n=eS(i(`badge`));return(0,$.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[e?(0,$.jsx)(`img`,{src:e,alt:``,className:`size-10 shrink-0 rounded-lg object-cover`}):null,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate text-[0.9375rem]`,children:eS(i(`title`))}),i(`subtitle`)?(0,$.jsx)(`div`,{className:`truncate text-[0.8125rem] text-ink-3`,children:eS(i(`subtitle`))}):null]}),i(`meta`)?(0,$.jsx)(`span`,{className:`shrink-0 text-[0.8125rem] text-ink-3 tabular-nums`,children:eS(i(`meta`))}):null,n?(0,$.jsx)(`span`,{className:_h(`shrink-0 rounded-full px-2 py-0.5 text-[0.75rem]`,oS[eS(i(`badgeTone`))]??oS.default),children:n}):null]})}case`DetailGrid`:{let e=i(`rows`);return(0,$.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 rounded-xl bg-card p-4 text-[0.875rem] ring-1 ring-border-soft`,children:(Array.isArray(e)?e:[]).map((e,r)=>(0,$.jsxs)(`div`,{className:`contents`,children:[(0,$.jsx)(`dt`,{className:`text-ink-3`,children:eS(uu(e?.label,t.data,n))}),(0,$.jsx)(`dd`,{className:`break-words`,children:eS(uu(e?.value,t.data,n))})]},r))})}case`Badge`:return(0,$.jsx)(`span`,{className:_h(`inline-flex w-fit rounded-full px-2.5 py-0.5 text-[0.75rem]`,oS[eS(i(`tone`))]??oS.default),children:eS(i(`label`))});case`Grid`:{let e=Math.min(4,Math.max(1,tS(i(`columns`))||2)),a=Math.min(24,Math.max(6,tS(i(`min`))||(e>2?9:12)));return(0,$.jsx)(`div`,{className:`grid gap-3`,style:{gridTemplateColumns:`repeat(auto-fit, minmax(min(100%, ${a}rem), 1fr))`},children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})})}case`Metric`:return(0,$.jsxs)(`div`,{className:`rounded-xl bg-card p-4 ring-1 ring-border-soft`,children:[(0,$.jsx)(`div`,{className:`text-[0.75rem] text-ink-3 uppercase tracking-[0.06em]`,children:eS(i(`label`))}),(0,$.jsx)(`div`,{className:`mt-1 font-display font-semibold text-[1.5rem] tabular-nums`,children:eS(i(`value`))}),i(`caption`)?(0,$.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:eS(i(`caption`))}):null]});case`Table`:{let e=i(`rows`),t=Array.isArray(e)?e:[],n=i(`columns`),r=Array.isArray(n)?n.map(e=>({key:eS(e?.key),label:eS(e?.label??e?.key)})):[...new Set(t.flatMap(e=>Object.keys(e??{})))].map(e=>({key:e,label:e}));return(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-xl ring-1 ring-border-soft`,children:(0,$.jsxs)(`table`,{className:`w-full text-[0.8125rem]`,children:[(0,$.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,$.jsx)(`tr`,{children:r.map(e=>(0,$.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:e.label},e.key))})}),(0,$.jsx)(`tbody`,{children:t.map((e,t)=>(0,$.jsx)(`tr`,{className:`border-border-soft border-t`,children:r.map(t=>(0,$.jsx)(`td`,{className:`px-3 py-2 tabular-nums`,children:eS(e?.[t.key])},t.key))},t))})]})})}case`Image`:{let e=nS(i(`src`),t.assetUrl);return e?(0,$.jsx)(`img`,{src:e,alt:eS(i(`alt`)),className:`w-full rounded-xl`}):null}case`BarChart`:return(0,$.jsx)(bS,{title:eS(i(`title`)),children:(0,$.jsx)(gS,{data:iS(i(`points`),i(`labelKey`),i(`valueKey`))})});case`LineChart`:return(0,$.jsx)(bS,{title:eS(i(`title`)),children:(0,$.jsx)(_S,{data:iS(i(`points`),i(`labelKey`),i(`valueKey`))})});case`DonutChart`:return(0,$.jsx)(bS,{title:eS(i(`title`)),children:(0,$.jsx)(yS,{data:iS(i(`slices`),i(`labelKey`),i(`valueKey`))})});case`Actions`:return(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})});case`Button`:{let e=eS(i(`action`));return!t.onAction&&e!==`open`?null:(0,$.jsx)(`button`,{type:`button`,onClick:()=>{let n=i(`target`);if(e===`open`){let e=nS(n,t.assetUrl);e&&window.open(e,`_blank`,`noopener`);return}t.onAction?.({action:e,target:n})},className:`inline-flex h-9 items-center rounded-full bg-paper-2 px-4 text-[0.875rem] text-ink-2 hover:text-ink coarse:h-11`,children:eS(i(`label`))})}case`Tabs`:return(0,$.jsx)(mS,{c:r,ctx:t,row:n});case`Card`:{let e=nS(i(`image`),t.assetUrl),a=eS(i(`eyebrow`)),o=eS(i(`subtitle`));return(0,$.jsxs)(`article`,{className:`overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:[e?(0,$.jsx)(`img`,{src:e,alt:``,className:`aspect-[16/9] w-full object-cover`}):null,(0,$.jsxs)(`div`,{className:_h(`flex flex-col gap-1.5 px-4 py-3.5`,r.children&&`bg-paper-2/60`),children:[a?(0,$.jsx)(`div`,{className:`font-medium text-[0.6875rem] text-ink-3 uppercase tracking-[0.14em]`,children:a}):null,(0,$.jsx)(`h3`,{className:`text-balance font-display font-semibold text-[1.1875rem] leading-snug`,children:eS(i(`title`))}),o?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-ink-3 leading-relaxed`,children:o}):null,(0,$.jsx)(fS,{items:pS(r,t,n)})]}),r.children?(0,$.jsx)(`div`,{className:`flex flex-col gap-3 border-border-soft border-t px-4 py-3.5 empty:hidden`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})}):null]})}case`Fold`:return(0,$.jsxs)(`details`,{open:!!i(`open`),className:`group border-border-soft border-t pt-3 first:border-0 first:pt-0`,children:[(0,$.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center justify-between gap-3 font-display font-semibold text-[1rem] [&::-webkit-details-marker]:hidden`,children:[eS(i(`title`)),(0,$.jsx)(Uf,{className:`size-4 text-ink-3 transition-transform group-open:rotate-90 motion-reduce:transition-none`})]}),(0,$.jsx)(`div`,{className:`flex flex-col gap-3 pt-3`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})})]});case`Group`:{let e=r.children;if(!e||Array.isArray(e))return null;let a=sS(uu({path:e.path},t.data,n));return(0,$.jsx)(`div`,{className:`flex flex-col gap-5`,children:uS(a,eS(i(`by`)),sS(i(`order`)).map(eS)).map(([n,r])=>(0,$.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[n?(0,$.jsx)(`h4`,{className:`font-semibold text-[0.6875rem] text-second uppercase tracking-[0.14em]`,children:n}):null,r.map((n,r)=>(0,$.jsx)(xS,{id:e.componentId,ctx:t,row:n},r))]},n))})}case`Chips`:{let e=eS(i(`labelKey`)),t=eS(i(`flagKey`)),n=eS(i(`flag`)),r=eS(i(`title`));return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r?(0,$.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:r}):null,(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:sS(i(`items`)).map((r,i)=>{let a=!!(t&&cS(r,t));return(0,$.jsxs)(`span`,{className:_h(`rounded-full px-2.5 py-1 text-[0.8125rem]`,a?`bg-amber-tint font-medium text-ink ring-1 ring-amber/60`:`bg-card text-ink-2 ring-1 ring-border-soft`),children:[lS(r,e),a&&n?` · ${n}`:``]},i)})})]})}case`Checklist`:return(0,$.jsx)(hS,{c:r,ctx:t,row:n});case`Steps`:{let e=eS(i(`textKey`))||`text`,t=eS(i(`minutesKey`))||`minutes`;return(0,$.jsx)(`ol`,{className:`flex flex-col gap-3`,children:sS(i(`items`)).map((n,r)=>{let i=eS(typeof n==`object`?cS(n,e):n),a=dS(cS(n,t));return(0,$.jsxs)(`li`,{className:`grid grid-cols-[1.5rem_1fr] gap-2`,children:[(0,$.jsx)(`span`,{className:`font-display font-semibold text-[1.125rem] text-ember leading-snug`,children:r+1}),(0,$.jsxs)(`span`,{className:`text-[0.9375rem] leading-relaxed`,children:[i,a?(0,$.jsxs)(`span`,{className:`ml-1.5 inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-paper-2 px-2 py-0.5 align-[1px] text-[0.75rem] text-ink-2`,children:[(0,$.jsx)(Yf,{className:`size-3`}),a]}):null]})]},r)})})}case`Link`:{let e=eS(i(`key`))||`id`,n=eS(i(`value`)),a=sS(i(`items`)).find(t=>eS(cS(t,e))===n),o=r.view;if(a===void 0)return null;let s=e=>uu(r[e],t.data,a),c=eS(i(`eyebrow`)),l=pS(r,t,a);return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>typeof o==`string`&&t.open(o,a),className:_h(`group flex w-full items-center gap-3 text-left`,eS(i(`look`))===`card`?`rounded-xl bg-card p-4 ring-1 ring-border-soft hover:ring-ink-4`:`-mx-2 w-[calc(100%+1rem)] rounded-lg px-2 py-2 hover:bg-paper-2/70 coarse:py-3`),children:[(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[c?(0,$.jsx)(`span`,{className:`block font-semibold text-[0.6875rem] text-second uppercase tracking-[0.14em]`,children:c}):null,(0,$.jsx)(`span`,{className:`block font-display font-semibold text-[1rem] leading-snug group-hover:text-ember`,children:eS(s(`title`))}),s(`subtitle`)?(0,$.jsx)(`span`,{className:`block text-[0.8125rem] text-ink-3`,children:eS(s(`subtitle`))}):null,l.length?(0,$.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[0.75rem] text-ink-3`,children:[(0,$.jsx)(Yf,{className:`size-3`}),l.join(` · `)]}):null]}),(0,$.jsx)(Uf,{className:`size-4 shrink-0 text-ink-3`})]})}case`Callout`:{let e=eS(i(`tone`))||`tip`,t=eS(i(`title`));return(0,$.jsxs)(`div`,{className:_h(`flex gap-2.5 rounded-xl px-4 py-3 text-[0.875rem] leading-relaxed`,e===`tip`&&`bg-second-tint`,e===`note`&&`bg-paper-2`,e===`warning`&&`bg-amber-tint`),children:[(0,$.jsx)(zp,{className:_h(`mt-0.5 size-4 shrink-0`,e===`tip`?`text-second`:`text-ink-3`)}),(0,$.jsxs)(`p`,{children:[t?(0,$.jsxs)(`b`,{className:`font-semibold`,children:[t,` `]}):null,eS(i(`text`))]})]})}}return null}function SS({surface:e,assetUrl:t,onAction:n,initial:r,onState:i}){let[a,o]=(0,y.useState)(r??{}),[s,c]=(0,y.useState)(null),l={byId:new Map(e.components.map(e=>[e.id,e])),data:e.data,assetUrl:t,onAction:n,state:a,setState:(e,t)=>{let n={...a,[e]:t};o(n),i?.(n)},open:(e,t)=>c({view:e,row:t})};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(xS,{id:`root`,ctx:l}),(0,$.jsx)(Fh,{open:s!==null,onClose:()=>c(null),height:`tall`,children:s?(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsx)(xS,{id:s.view,ctx:l,row:s.row}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>c(null),className:`h-10 self-center rounded-full bg-paper-2 px-5 text-[0.875rem] text-ink-2 hover:text-ink`,children:Q(`surface.close`)})]}):null})]})}function CS({text:e,className:t}){let n=(0,y.useMemo)(()=>wy.sanitize(hx.parse(e,{async:!1})),[e]);return(0,$.jsx)(`div`,{className:_h(`prose-zen`,t),dangerouslySetInnerHTML:{__html:n}})}function wS({src:e,page:t,height:n,fit:r,flow:i,state:a,onState:o}){let s=(0,y.useRef)(null),[c,l]=(0,y.useState)(n),[u]=(0,y.useState)(()=>a??{}),d=(0,y.useRef)(o);d.current=o,(0,y.useEffect)(()=>{let e=e=>{if(!s.current||e.source!==s.current.contentWindow)return;let t=e.data;if(t?.wizard===`height`&&typeof t.height==`number`)l(Math.min(2e4,Math.max(120,Math.ceil(t.height))));else if(t?.wizard===`state`&&t.state&&typeof t.state==`object`)d.current?.(t.state);else if(t?.wizard===`share`&&typeof t.text==`string`){let e=t.text.slice(0,1e4);navigator.share?navigator.share({text:e}).catch(()=>void 0):navigator.clipboard?.writeText(e).catch(()=>void 0)}};return window.addEventListener(`message`,e),()=>window.removeEventListener(`message`,e)},[]);let f=(0,y.useRef)(null),[p,m]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=f.current;if(!e)return;let t=new ResizeObserver(()=>m(e.clientWidth));return t.observe(e),m(e.clientWidth),()=>t.disconnect()},[]);let[h,g]=(0,y.useState)(null);(0,y.useEffect)(()=>{let t=!0;return fetch(e,{credentials:`include`}).then(e=>e.ok?e.text():``).then(n=>t&&g({src:e,text:n})),()=>{t=!1}},[e]);let _=i?p||360:t??Math.max(p,900),v=i?1:p?r?p/_:Math.min(1,p/_):1,b=i?c:n,x=i&&h?`<script>window.__WIZARD_STATE=${JSON.stringify(u).replace(/</g,`\\u003c`)}<\/script>${h.text}`:h?.text;return(0,$.jsxs)(`div`,{ref:f,className:_h(`relative overflow-hidden`,!i&&`rounded-lg bg-white ring-1 ring-border-soft`),style:{height:b*v},children:[h?.src===e?(0,$.jsx)(`iframe`,{ref:s,title:Q(`output.preview`),srcDoc:x,sandbox:`allow-scripts allow-popups allow-popups-to-escape-sandbox`,className:`absolute top-0 left-0 origin-top-left border-0`,style:{width:_,height:b,transform:`scale(${v})`}},e):(0,$.jsx)(`div`,{className:`absolute inset-0 animate-pulse bg-paper-2`}),i?null:(0,$.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`absolute top-3 right-3 inline-flex size-9 items-center justify-center rounded-full bg-card/90 text-ink-2 shadow-soft ring-1 ring-border-soft backdrop-blur hover:text-ink coarse:size-11`,"aria-label":Q(`run.openFull`),children:(0,$.jsx)(Zp,{className:`size-4`})})]})}var TS={disc:{file:`ai`,box:566.93,x:89.28,y:100.72,w:365.49,h:365.49},generated:{file:`ai-generated`,box:1789.84,x:207.3,y:144.36,w:1384.24,h:266.41},edited:{file:`ai-modified`,box:1700.79,x:231.11,y:144.36,w:1230.56,h:266.41}};function ES({icon:e,tone:t,size:n,className:r}){let i=TS[e],a=n/i.h;return(0,$.jsx)(`img`,{src:ch(`ai-labels/${i.file}-${t}.svg`),alt:``,draggable:!1,className:_h(`pointer-events-none absolute max-w-none select-none`,r),style:{width:i.box*a,height:566.93*a,left:-i.x*a,top:-i.y*a}})}function DS({ai:e,className:t}){let[n,r]=(0,y.useState)(!1);if(!e)return null;let i=TS[e],a=t===`static`,o=a?[[`black`,`dark:hidden`],[`white`,`hidden dark:block`]]:[[`white`,``]];return(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(e===`edited`?`ai.modified`:`ai.generated`),"aria-expanded":n,"data-open":n,onClick:()=>r(e=>!e),className:_h(`group block cursor-default overflow-hidden rounded-full backdrop-blur-md transition-[width] duration-200`,`w-[var(--ai-disc)] hover:w-[var(--ai-long)] focus-visible:w-[var(--ai-long)] data-[open=true]:w-[var(--ai-long)]`,a?`relative`:_h(`absolute shadow-[0_1px_3px_rgba(0,0,0,0.25)]`,t??`bottom-2 left-2`)),style:{height:18,"--ai-disc":`18px`,"--ai-long":`${i.w/i.h*18}px`},children:o.map(([t,r])=>(0,$.jsxs)(`span`,{className:r,children:[(0,$.jsx)(ES,{icon:`disc`,tone:t,size:18,className:_h(`transition-opacity duration-200`,n?`opacity-0`:`opacity-100 group-hover:opacity-0 group-focus-visible:opacity-0`)}),(0,$.jsx)(ES,{icon:e,tone:t,size:18,className:_h(`transition-opacity duration-200`,n?`opacity-100`:`opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`)})]},t))})}function OS(e,t){let n=e.type===`agent`?nd(e).fields[t]:void 0;return n?eu(t,n):t}function kS({text:e}){let[t,n]=(0,y.useState)(!1);return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[t?(0,$.jsx)(Vf,{className:`size-3.5`}):(0,$.jsx)(Zf,{className:`size-3.5`}),Q(t?`share.copied`:`run.copy`)]})}function AS({base:e,step:t,output:n,editable:r,draft:i,onDraft:a,picked:o,onPick:s,onSurfaceAction:c,onView:l}){if(!n)return null;let u=t=>sh(`${e}/assets/${t}`);if(n.surface)return(0,$.jsx)(SS,{surface:n.surface,assetUrl:u,onAction:c,initial:n.view,onState:l});if(t.type===`widget`||t.type===`film`){let e=n.assets?.find(e=>e.kind===`video`);if(e){let r=n.assets?.find(e=>e.kind===`poster`),i=t.type===`film`?t.format===`9:16`:(t.size?.height??0)>(t.size?.width??1);return(0,$.jsxs)(`div`,{className:_h(`relative mx-auto`,i?`w-fit`:`w-full`),children:[(0,$.jsx)(`video`,{src:u(e.id),poster:r?u(r.id):void 0,controls:!0,playsInline:!0,className:_h(`rounded-lg bg-black ring-1 ring-border-soft`,i?`max-h-[76vh]`:`w-full`)}),(0,$.jsx)(DS,{ai:e.ai,className:`top-2 right-2`})]})}if(t.type===`film`)return null;let r=n.assets?.find(e=>e.mime===`text/html`),i=t.size??{width:1280,height:720};return r?(0,$.jsx)(wS,{src:u(r.id),page:i.width,height:i.height,fit:!0,flow:t.layout===`page`,state:n.view,onState:l}):null}if(t.type===`generate`){let e=n.assets?.[0];if(!e)return null;if(t.asset===`voice`)return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(`audio`,{src:u(e.id),controls:!0,className:`w-full`}),(0,$.jsx)(DS,{ai:e.ai,className:`static`}),n.text?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-ink-2 leading-relaxed`,children:n.text}):null]});if((n.assets?.length??0)>1&&(t.asset===`image`||t.asset===`video`)){let e=t.options?.aspectRatio===`9:16`||t.options?.aspectRatio===`2:3`;return(0,$.jsx)(`div`,{className:_h(`grid gap-3`,e?`grid-cols-2 sm:grid-cols-3`:`sm:grid-cols-2`),children:n.assets?.map((e,n)=>{let r=o?.includes(n);return(0,$.jsxs)(`figure`,{className:_h(`relative overflow-hidden rounded-lg bg-paper-2 ring-1 ring-border-soft`,r&&`ring-2 ring-ember`),children:[t.asset===`image`?(0,$.jsx)(`img`,{src:u(e.id),alt:`${t.title} ${n+1}`,className:`w-full`}):(0,$.jsx)(`video`,{src:u(e.id),controls:!0,playsInline:!0,loop:!0,className:`w-full`}),s?(0,$.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>s(n),className:_h(`absolute top-2 left-2 inline-flex h-8 items-center gap-1.5 rounded-full px-3 font-medium text-[0.75rem] shadow-soft backdrop-blur coarse:h-11`,r?`bg-ember text-ember-on`:`bg-card/90 text-ink-2 hover:text-ink`),children:[r?(0,$.jsx)(Vf,{className:`size-3.5`}):null,Q(r?`run.pickedItem`:`run.pickItem`,{n:n+1})]}):(0,$.jsx)(`span`,{className:`absolute top-2 left-2 rounded-full bg-card/90 px-2.5 py-1 font-medium text-[0.75rem] text-ink-2`,children:n+1}),(0,$.jsx)(DS,{ai:e.ai,className:t.asset===`image`?`bottom-2 left-2`:`top-2 right-2`})]},e.id)})})}if(t.asset===`image`)return(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`img`,{src:u(e.id),alt:t.title,className:`w-full rounded-lg bg-paper-2 ring-1 ring-border-soft`}),(0,$.jsx)(DS,{ai:e.ai})]});if(t.asset===`video`){let n=t.options?.aspectRatio===`9:16`;return(0,$.jsxs)(`div`,{className:_h(`relative mx-auto`,n?`w-fit`:`w-full`),children:[(0,$.jsx)(`video`,{src:u(e.id),controls:!0,playsInline:!0,loop:!0,className:_h(`rounded-lg bg-black ring-1 ring-border-soft`,n?`max-h-[70vh]`:`w-full`)}),(0,$.jsx)(DS,{ai:e.ai,className:`top-2 left-2`})]})}return t.asset===`document`?(0,$.jsx)(wS,{src:u(e.id),page:820,height:1100}):(0,$.jsx)(wS,{src:u(e.id),page:null,height:760})}if(t.type===`agent`){let e=n.assets?.filter(e=>e.kind!==`file`&&e.mime.startsWith(`image/`))??[],o=n.assets?.filter(e=>e.kind===`file`)??[];return(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[t.output.format===`json`&&n.json!==void 0?(0,$.jsx)(Ax,{step:t,json:n.json}):r?(0,$.jsx)(Th,{value:i??n.text??``,onChange:e=>a?.(e.target.value),minRows:4,maxRows:24}):t.output.format===`markdown`?(0,$.jsx)(CS,{text:n.text??``}):(0,$.jsx)(`div`,{className:`whitespace-pre-wrap text-[1rem] leading-relaxed`,children:n.text}),e.map(e=>(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`img`,{src:u(e.id),alt:``,className:`w-full rounded-lg ring-1 ring-border-soft`}),(0,$.jsx)(DS,{ai:e.ai})]},e.id)),o.length?(0,$.jsx)(`ul`,{className:`overflow-hidden rounded-lg ring-1 ring-border-soft`,children:o.map(e=>(0,$.jsx)(`li`,{className:`border-border-soft border-b last:border-0`,children:(0,$.jsxs)(`a`,{href:u(e.id),download:e.name,onClick:t=>ph(t,u(e.id),e.name),className:`flex items-center gap-2 px-3 py-2 text-[0.8125rem] hover:bg-paper-2 coarse:min-h-11`,children:[(0,$.jsx)(hp,{className:`size-3.5 shrink-0 text-ink-3`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})]})},e.id))}):null,t.output.format!==`json`&&!r&&n.text?(0,$.jsx)(`div`,{children:(0,$.jsx)(kS,{text:n.text})}):null]})}return null}var jS={png:`PNG`,mp4:`MP4`,mp3:`MP3`,pdf:`PDF`,docx:`Word`,html:`HTML`,md:`Markdown`,txt:`Text`,csv:`CSV`,xlsx:`Excel`,json:`JSON`,zip:`ZIP`};function MS(e,t){return(e.headers.get(`content-disposition`)??``).match(/filename="([^"]+)"/)?.[1]??t}function NS(e){let t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=e.name,n.rel=`noopener`,document.body.append(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(t),6e4)}function PS({url:e,format:t,title:n,make:r}){let[i,a]=(0,y.useState)(`idle`),o=(0,y.useRef)(null),s=async()=>{if(uh(`share`)&&!r){a(`busy`),await dh(`share`,{url:new URL(e,location.href).href,title:n}).catch(()=>void 0),a(`idle`);return}try{if(!o.current){if(a(`busy`),r)o.current=await r();else{let n=await fetch(e,{credentials:`include`});if(!n.ok)throw Error(String(n.status));let r=await n.blob();o.current=new File([r],MS(n,`download.${t}`),{type:r.type.split(`;`)[0]})}}let i={files:[o.current],title:n};if(!navigator.canShare(i)){r?NS(o.current):location.href=e,a(`idle`);return}await navigator.share(i),a(`idle`)}catch(e){a(o.current&&e.name===`NotAllowedError`?`ready`:`idle`)}};return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>void s(),disabled:i===`busy`,"aria-label":Q(`run.shareFile`),title:Q(`run.shareFile`),className:_h(`inline-flex h-9 items-center gap-1.5 rounded-full px-3 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,i===`ready`?`bg-ember-tint text-ink ring-1 ring-ember`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),children:[i===`busy`?(0,$.jsx)(Mh,{className:`size-3.5`}):(0,$.jsx)(km,{className:`size-3.5`}),Q(i===`ready`?`run.shareNow`:`run.share`)]})}var FS=uh(`share`)||sg();function IS({base:e,stepId:t,formats:n,title:r,step:i,output:a,foot:o}){let s=n=>sh(`${e}/steps/${t}/download?format=${n}`),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(null),d=mh()&&i?.type===`agent`&&a&&(a.text||a.json!==void 0)?{title:r??i.title,text:a.text,json:i.output.format===`json`?a.json:void 0,label:e=>OS(i,e),foot:o}:null,f=async()=>{if(!d)throw Error(`nothing written`);return u.current??=await $x(d),u.current},p=async()=>{l(!0);try{NS(await f())}catch(e){console.warn(`pdf: ${e.message}`),n.includes(`html`)&&window.open(s(`html`),`_blank`,`noopener`)}finally{l(!1)}},m=e=>_h(`inline-flex h-9 items-center gap-1.5 rounded-full px-3.5 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,e===0?`bg-primary text-primary-foreground hover:brightness-105`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),h=e=>e===`pdf`&&d!==null;return(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.map((e,t)=>h(e)?(0,$.jsxs)(`button`,{type:`button`,onClick:()=>void p(),disabled:c,className:m(t),children:[c?(0,$.jsx)(Mh,{className:`size-3.5`}):t===0?(0,$.jsx)(rp,{className:`size-3.5`}):null,jS[e]]},e):e===`html`&&mh()?(0,$.jsxs)(`a`,{href:s(e),target:`_blank`,rel:`noopener`,className:m(t),children:[t===0?(0,$.jsx)(_m,{className:`size-3.5`}):null,Q(`run.print`)]},e):(0,$.jsxs)(`a`,{href:s(e),onClick:t=>ph(t,s(e)),className:m(t),children:[t===0?(0,$.jsx)(rp,{className:`size-3.5`}):null,jS[e]]},e)),FS&&n.length?(0,$.jsx)(PS,{url:s(n[0]),format:n[0],title:r,make:h(n[0])?f:void 0},s(n[0])):null]})}function LS({view:e}){let t=Math.round(Math.min(e.progress.done,e.progress.total)/Math.max(1,e.progress.total)*100);return(0,$.jsx)(`div`,{className:`h-[3px] w-full bg-paper-2`,children:(0,$.jsx)(`div`,{className:`h-full bg-ember transition-[width] duration-700 ease-out`,style:{width:`${t}%`}})})}var RS=(e,t)=>n=>{oh.put(`${lh(e)}/views/${t}`,{state:n}).catch(()=>void 0)};function zS({title:e,description:t,kicker:n}){return(0,$.jsxs)(`div`,{className:`mb-8`,children:[n?(0,$.jsx)(`p`,{className:`mb-4 text-[0.9375rem] text-ink-2 leading-relaxed`,children:n}):null,(0,$.jsx)(`h1`,{className:`font-display font-semibold text-[1.75rem] leading-[1.15] tracking-tight sm:text-[2rem]`,children:e}),t?(0,$.jsx)(`p`,{className:`mt-2 text-[0.9375rem] text-ink-3 leading-relaxed`,children:t}):null]})}function BS(e,t){let n={};for(let r of e.fields)n[r.id]=t.values[r.id]??t.prefill?.[r.id]??r.default??(r.kind===`multiselect`?[]:void 0);return n}function VS(e){return Array.from(e.querySelectorAll(`input:not([type="hidden"], [type="file"], [type="checkbox"], [type="color"], [type="range"], [disabled]), textarea:not([disabled])`)).filter(e=>!e.closest(`dialog`)&&e.offsetParent!==null)}function HS({view:e,run:t,step:n}){let[r,i]=(0,y.useState)(()=>BS(n,e)),[a,o]=(0,y.useState)(new Set),s=(0,y.useRef)(null),c=e.progress.done===0,l=dd((0,y.useMemo)(()=>n.fields.filter(t=>!ud(t)||e.decidedFields?.includes(t.id)).map(t=>e.options?.[t.id]?.length?{...t,options:e.options[t.id]}:t),[n.fields,e.options,e.decidedFields]),e.known??{},r),u=()=>void t.submitPage(n.id,r);return(0,y.useEffect)(()=>{if(!s.current)return;let e=VS(s.current).filter(e=>e instanceof HTMLInputElement);for(let[t,n]of e.entries())(n.dataset.hint||!n.hasAttribute(`enterkeyhint`))&&(n.dataset.hint=`1`,n.setAttribute(`enterkeyhint`,t===e.length-1?`go`:`next`))}),(0,$.jsxs)(`form`,{ref:s,className:`animate-rise`,onSubmit:e=>{e.preventDefault(),a.size||u()},onKeyDown:e=>{let t=e.target;if(e.key!==`Enter`||e.defaultPrevented||e.nativeEvent.isComposing||!(t instanceof HTMLInputElement)||t.closest(`dialog`))return;let n=VS(e.currentTarget),r=n[n.indexOf(t)+1];r&&(e.preventDefault(),r.focus())},children:[(0,$.jsx)(zS,{title:n.title,description:n.description,kicker:c?e.wizard.intro:null}),(0,$.jsx)(`div`,{className:`flex flex-col gap-7`,children:l.map(n=>(0,$.jsx)(q_,{field:n,value:r[n.id],values:r,runId:e.id,view:e,error:t.fieldErrors[n.id],closed:e.closed?.[n.id],onChange:e=>i(t=>({...t,[n.id]:e})),onBusy:e=>o(t=>{if(t.has(n.id)===e)return t;let r=new Set(t);return e?r.add(n.id):r.delete(n.id),r})},n.id))}),(0,$.jsx)(US,{view:e,run:t,sticky:!0,children:(0,$.jsxs)(yh,{type:`submit`,size:`lg`,busy:t.busy,disabled:a.size>0,children:[n.cta||Q(`run.next`),` `,(0,$.jsx)(Df,{className:`size-4`})]})})]})}function US({view:e,run:t,sticky:n,children:r}){return(0,$.jsxs)(`div`,{className:_h(`mt-10 flex items-center justify-between gap-3`,n&&`action-bar`),children:[e.canBack?(0,$.jsxs)(yh,{variant:`ghost`,onClick:()=>void t.back(),disabled:t.busy,children:[(0,$.jsx)(Tf,{className:`size-4`}),` `,Q(`run.back`)]}):(0,$.jsx)(`span`,{}),r]})}function WS(){let e=tg(),[t,n]=(0,y.useState)(!1),r=e!==`off`;return(0,$.jsxs)(`div`,{className:`mt-6 flex flex-col items-center gap-2`,children:[(0,$.jsxs)(`button`,{type:`button`,"aria-pressed":r,disabled:t,onClick:async()=>{if(r){ig();return}n(!0),await rg(),n(!1)},className:_h(`inline-flex h-11 items-center gap-2 rounded-full px-4 font-medium text-[0.875rem] ring-1 transition`,r?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink hover:ring-ink-4`),children:[r?(0,$.jsx)(jf,{className:`size-4 text-ember-strong`}):(0,$.jsx)(Nf,{className:`size-4`}),Q(r?`notify.on`:`notify.ask`)]}),(0,$.jsx)(`p`,{className:`max-w-xs text-[0.75rem] text-ink-4 leading-relaxed`,children:Q(e===`off`?`notify.why`:e===`on`?`notify.onHint`:ng()?`notify.blocked`:`notify.quiet`)})]})}function GS({view:e,compact:t,awake:n}){let r=(0,y.useMemo)(()=>{let t=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id);return t?new Date(t.at).getTime():Date.now()},[e.events,e.step?.id]),[i,a]=(0,y.useState)(Date.now());(0,y.useEffect)(()=>{let e=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(e)},[]);let o=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id)?.message??e.step?.title??Q(`run.working`),s=e.events.filter(e=>(e.type===`tool`||e.type===`info`)&&new Date(e.at).getTime()>=r-500),c=s.slice(-4),{Mascot:l}=ah(),u=[...new Set(s.map(e=>e.asset).filter(e=>!!e))],d=[...s].reverse().find(e=>e.asset)?.asset;return(0,$.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-6 text-center`,children:[(0,$.jsx)(l,{kind:e.wizard.avatar,size:t?130:170,fluffy:!0}),(0,$.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem] tracking-tight`,children:o}),(0,$.jsx)(`div`,{className:`mt-1 text-[0.8125rem] text-ink-4 tabular-nums`,children:Q(`run.elapsed`,{s:Math.max(0,Math.round((i-r)/1e3))})}),u.length?(0,$.jsx)(`div`,{className:`mt-5 flex max-w-full flex-wrap justify-center gap-2`,children:u.slice(-8).map(t=>(0,$.jsx)(`img`,{src:sh(`${lh(e.id)}/assets/${t}`),alt:``,className:_h(`size-16 animate-rise rounded-lg bg-paper-2 object-cover ring-1 ring-border-soft transition sm:size-20`,t===d?`ring-2 ring-ember`:`opacity-70`)},t))}):null,(0,$.jsx)(`div`,{className:`mt-6 flex min-h-[7rem] w-full max-w-sm flex-col gap-1.5`,children:c.map((e,t)=>(0,$.jsxs)(`div`,{className:_h(`flex items-center justify-center gap-2 text-[0.8125rem] transition-opacity`,t===c.length-1?`text-ink-2`:`text-ink-4`),children:[t===c.length-1?(0,$.jsx)(Nm,{className:`size-3.5 animate-breathe text-ember`}):null,(0,$.jsx)(`span`,{className:`truncate`,children:zd(e)})]},e.id))}),t?null:(0,$.jsx)(WS,{}),n?(0,$.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-4`,children:Q(`run.awake`)}):null]})}function KS(e){let t=(0,y.useRef)({running:!1,since:0,ask:null});(0,y.useEffect)(()=>{if(!e)return;let n=t.current,r=e.status===`running`,i=r?n.running?n.since:Date.now():0,a=t=>{document.visibilityState!==`visible`&&!document.title.startsWith(`● `)&&(document.title=`● ${document.title}`),og({title:e.wizard.title,body:t,tag:e.id})};r&&e.ask&&e.ask.id!==n.ask?a(Q(`notify.needsYou`)):!r&&n.running&&Date.now()-n.since>8e3&&a(e.status===`failed`?Q(`run.failed`):e.status===`done`?Q(`notify.done`):Q(`notify.next`)),t.current={running:r,since:i,ask:e.ask?.id??null}},[e]),(0,y.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&document.title.startsWith(`● `)&&(document.title=document.title.slice(2))};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[])}function qS({view:e,run:t,step:n,studio:r}){let[i,a]=(0,y.useState)({}),[o,s]=(0,y.useState)({}),[c,l]=(0,y.useState)(``),u=e.shown.filter(e=>e.output),[d,f]=(0,y.useState)(u.length===1?u[0].step.id:null),[p,m]=(0,y.useState)({}),h=(0,y.useRef)(null),g=u.find(e=>e.step.id===d),_=g?.step.type===`generate`&&(g.output?.assets?.length??0)>1,v=()=>{g&&c.trim()&&t.regenerate(n.id,g.step.id,c.trim(),p[g.step.id])};return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsx)(zS,{title:n.title,description:n.description}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[e.shown.filter(e=>e.output).map(({step:t,output:c})=>{let l=qg(t)?t:null,u=!!n.edit&&t.type===`agent`&&(t.output.format!==`json`||!!l),d=i[t.id],g=e=>(0,$.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.title}),(0,$.jsxs)(`div`,{className:`flex items-center`,children:[u&&!o[t.id]?(0,$.jsxs)(`button`,{type:`button`,onClick:()=>s(e=>({...e,[t.id]:!0})),className:`inline-flex h-8 items-center gap-1.5 rounded-full px-3 text-[0.8125rem] text-ink-2 hover:bg-accent hover:text-ink coarse:h-11`,children:[(0,$.jsx)(pm,{className:`size-3.5`}),` `,Q(`run.edit`)]}):null,e]})]}),_=l&&c&&u&&o[t.id]?(0,$.jsx)(`div`,{className:`overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:(0,$.jsx)(Ug,{shape:nd(l),value:d&&typeof d==`object`?d:c.json??{},onChange:e=>a(n=>({...n,[t.id]:e})),start:`edit`})}):(0,$.jsx)(AS,{base:`${lh(e.id)}`,step:t,output:c,onView:RS(e.id,t.id),editable:u&&o[t.id]&&!l,draft:typeof d==`string`?d:void 0,onDraft:e=>a(n=>({...n,[t.id]:e})),picked:p[t.id],onPick:n.regenerate?e=>{f(t.id),m(n=>{let r=n[t.id]??[];return{...n,[t.id]:r.includes(e)?r.filter(t=>t!==e):[...r,e]}}),h.current?.focus()}:void 0,onSurfaceAction:n.regenerate?()=>{f(t.id),h.current?.focus()}:void 0});return(0,$.jsx)(`section`,{children:r&&l&&c?(0,$.jsx)(Jg,{runId:e.id,step:l,output:c,header:g,children:_}):(0,$.jsxs)($.Fragment,{children:[g(null),_]})},t.id)}),e.lists.map(t=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-2 font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.def.title}),t.def.check?(0,$.jsx)(k_,{runId:e.id,list:t}):(0,$.jsx)(E_,{runId:e.id,list:t,editable:!0})]},t.def.id)),n.regenerate&&u.length?(0,$.jsxs)(Nh,{className:`p-3`,children:[u.length>1?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 pb-2`,children:[(0,$.jsx)(`span`,{className:`mr-1 text-[0.8125rem] text-ink-3`,children:Q(`run.feedbackTarget`)}),u.map(({step:e})=>(0,$.jsx)(`button`,{type:`button`,"aria-pressed":d===e.id,onClick:()=>{f(e.id),h.current?.focus()},className:_h(`inline-flex h-8 items-center rounded-full px-3 text-[0.8125rem] ring-1 transition coarse:h-11`,d===e.id?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink`),children:e.title},e.id))]}):null,(0,$.jsx)(Th,{ref:h,minRows:2,maxRows:8,value:c,placeholder:Q(`run.feedbackPlaceholder`),onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())},className:`border-0 bg-transparent shadow-none focus:ring-0`}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-1 pt-1`,children:[(0,$.jsx)(`span`,{className:`min-w-0 text-[0.75rem] text-ink-3`,children:_?p[g.step.id]?.length?Q(`run.regeneratePicked`,{n:[...p[g.step.id]].sort((e,t)=>e-t).map(e=>e+1).join(`, `)}):Q(`run.regenerateAll`):!g&&c.trim()?Q(`run.feedbackPick`):null}),(0,$.jsxs)(yh,{size:`sm`,variant:`secondary`,busy:t.busy,disabled:!c.trim()||!g,onClick:v,children:[(0,$.jsx)(ym,{className:`size-3.5`}),` `,Q(`run.regenerateGo`)]})]})]}):null]}),(0,$.jsx)(US,{view:e,run:t,sticky:!0,children:(0,$.jsxs)(yh,{size:`lg`,busy:t.busy,onClick:()=>void t.accept(n.id,Object.keys(i).length?i:void 0),children:[Q(`run.accept`),` `,(0,$.jsx)(Df,{className:`size-4`})]})})]})}function JS({view:e,run:t,step:n,onRestart:r,studio:i}){let a=e.shown.filter(e=>e.output),{Mascot:o,ShareResultButton:s}=ah();return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsxs)(`div`,{className:`mb-8 flex flex-wrap items-center gap-x-4 gap-y-5`,children:[(0,$.jsx)(o,{kind:e.wizard.avatar,size:64}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 basis-[12rem]`,children:[(0,$.jsx)(`h1`,{className:`text-balance font-display font-semibold text-[1.75rem] leading-tight tracking-tight sm:text-[2rem]`,children:n.title}),n.message?(0,$.jsx)(`p`,{className:`mt-1 text-[0.9375rem] text-ink-3`,children:n.message}):null]}),s&&e.shown.some(e=>e.output)?(0,$.jsx)(`div`,{className:`max-sm:basis-full`,children:(0,$.jsx)(s,{runId:e.id,title:`${n.title} · ${e.wizard.title}`,initial:e.shareUrl?{url:e.shareUrl,expiresAt:e.expiresAt}:null})}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[a.map(({step:n,output:r,formats:a,label:o})=>{let s=t=>(0,$.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:o??n.title}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(IS,{base:`${lh(e.id)}`,stepId:n.id,formats:a,title:o??n.title,step:n,output:r??void 0,foot:`${e.wizard.title} · ${new Date().toLocaleDateString(ah().lang)}`}),t]})]}),c=(0,$.jsx)(XS,{view:e,run:t,step:n,output:r,onView:RS(e.id,n.id)});return(0,$.jsxs)(Nh,{className:`p-4 sm:p-5`,children:[i&&qg(n)&&r?(0,$.jsx)(Jg,{runId:e.id,step:n,output:r,header:s,children:c}):(0,$.jsxs)($.Fragment,{children:[s(null),c]}),r?.assets?.some(e=>e.ai)?(0,$.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-3 leading-relaxed`,children:Q(`ai.publish`)}):null]},n.id)}),e.lists.map(t=>(0,$.jsxs)(Nh,{className:`p-4 sm:p-5`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:t.label??t.def.title}),(0,$.jsx)(j_,{runId:e.id,list:t})]}),(0,$.jsx)(E_,{runId:e.id,list:t,editable:!0})]},t.def.id))]}),(0,$.jsx)(US,{view:e,run:t,children:r?(0,$.jsxs)(yh,{variant:`secondary`,onClick:r,children:[(0,$.jsx)(xm,{className:`size-4`}),` `,Q(`run.again`)]}):(0,$.jsx)(`span`,{})})]})}function YS({view:e,run:t}){let{Mascot:n}=ah();return(0,$.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-8 text-center`,children:[(0,$.jsx)(n,{kind:e.wizard.avatar,size:90}),(0,$.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem]`,children:Q(`run.failed`)}),(0,$.jsx)(`p`,{className:`mt-2 max-w-md text-[0.9375rem] text-ink-3`,children:(0,$.jsx)(Ih,{text:e.error??``})}),(0,$.jsxs)(`div`,{className:`mt-8 flex gap-3`,children:[e.canBack?(0,$.jsxs)(yh,{variant:`ghost`,onClick:()=>void t.back(),children:[(0,$.jsx)(Tf,{className:`size-4`}),` `,Q(`run.back`)]}):null,(0,$.jsxs)(yh,{onClick:()=>void t.retry(),busy:t.busy,children:[(0,$.jsx)(xm,{className:`size-4`}),` `,Q(`run.retry`)]})]})]})}function XS({view:e,run:t,step:n,output:r,onView:i}){let[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),l=lh(e.id),u=e.translation?.results[n.id];if(!(e.translation&&r?.text&&t.translateResult))return(0,$.jsx)(AS,{base:l,step:n,output:r,onView:i});let d=u&&!a?{...r,text:u}:r;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(AS,{base:l,step:n,output:d,onView:i}),(0,$.jsx)(`div`,{className:`mt-3 flex items-center gap-3 text-[0.8125rem] text-ink-3`,children:u?(0,$.jsxs)($.Fragment,{children:[a?null:(0,$.jsx)(`span`,{children:Q(`translation.machine`)}),(0,$.jsx)(`button`,{type:`button`,className:`underline-offset-4 hover:text-ink hover:underline coarse:min-h-11`,onClick:()=>o(e=>!e),children:Q(a?`translation.showTranslated`:`translation.showOriginal`)})]}):(0,$.jsxs)(yh,{size:`sm`,variant:`secondary`,busy:s,onClick:async()=>{c(!0),await t.translateResult?.(n.id),c(!1)},children:[(0,$.jsx)(Np,{className:`size-4`}),` `,Q(s?`translation.working`:`result.translate`)]})})]})}function ZS({run:e,compact:t,onRestart:n,onView:r,stickyProgress:i,studio:a}){let{view:o}=e;Vd(o?.translation?.labels),(0,y.useEffect)(()=>{r?.(o)},[o,r]),Gh();let s=Kh(o?.status===`running`&&!o.ask);if(KS(o),e.notFound)return(0,$.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:Q(`run.notFound`)});if(!o)return(0,$.jsx)(`div`,{className:`flex justify-center py-24 text-ink-4`,children:(0,$.jsx)(Mh,{})});let c=o.step,l=null;if(o.status===`running`&&o.ask)l=(0,$.jsx)(Bh,{runId:o.id,ask:o.ask},o.ask.id);else if(o.status===`running`)l=(0,$.jsx)(GS,{view:o,compact:t,awake:s});else if(o.status===`failed`)l=(0,$.jsx)(YS,{view:o,run:e});else if(o.status===`cancelled`)l=(0,$.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:Q(`run.cancelled`)});else if(c?.type===`page`)l=(0,$.jsx)(HS,{view:o,run:e,step:c},c.id);else if(c?.type===`review`){let t=o.shown.map(e=>e.output?.at??``).join(`|`);l=(0,$.jsx)(qS,{view:o,run:e,step:c,studio:a},`${c.id}:${t}`)}else c?.type===`result`&&(l=(0,$.jsx)(JS,{view:o,run:e,step:c,onRestart:n,studio:a}));let u=c?.type===`review`&&o.status===`waiting_input`&&o.lists.some(e=>e.def.check);return(0,$.jsxs)(`div`,{className:`flex min-h-full flex-col`,children:[i?(0,$.jsx)(`div`,{className:`sticky top-0 z-10`,children:(0,$.jsx)(LS,{view:o})}):(0,$.jsx)(LS,{view:o}),(0,$.jsxs)(`div`,{className:_h(`safe-x mx-auto w-full flex-1`,u?`max-w-[1240px] py-8`:t?`max-w-[620px] py-8`:`max-w-[640px] py-8 sm:py-16`),children:[l,e.error&&o.status!==`failed`?(0,$.jsx)(`div`,{className:`mt-4 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:e.error}):null,o.keeps&&o.status!==`running`?(0,$.jsx)(`div`,{className:`mt-10 flex justify-center`,children:(0,$.jsx)(M_,{runId:o.id})}):null]})]})}var QS=Object.defineProperty,$S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),eC=(e,t)=>{let n={};for(var r in e)QS(n,r,{get:e[r],enumerable:!0});return t&&QS(n,Symbol.toStringTag,{value:`Module`}),n},tC=new Set([`https://json-schema.org/draft/2019-09/schema`,`http://json-schema.org/draft/2019-09/schema`]);function nC(e){return typeof e==`string`&&tC.has(e.replace(/#$/,``))}var rC=[`2025-11-25`,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],iC=`io.modelcontextprotocol/related-task`,aC=`io.modelcontextprotocol/protocolVersion`,oC=`io.modelcontextprotocol/clientInfo`,sC=`io.modelcontextprotocol/serverInfo`,cC=`io.modelcontextprotocol/clientCapabilities`,lC=`io.modelcontextprotocol/subscriptionId`,uC=`io.modelcontextprotocol/logLevel`,dC=ol(()=>Ec([q(),J(),dc(),hc(),Mc(q(),dC),Y(dC)])),fC=Mc(q(),dC),pC=Y(dC),mC=Ec([q(),J().int()]),hC=q(),gC=X({ttl:J().optional()}),_C=X({taskId:q()}),vC=wc({progressToken:mC.optional(),[iC]:_C.optional()}),yC=X({_meta:vC.optional()}),bC=yC.extend({task:gC.optional()}),xC=X({method:q(),params:yC.loose().optional()}),SC=X({_meta:vC.optional()}),CC=X({method:q(),params:SC.loose().optional()}),wC=wc({get[sC](){return zC.optional().catch(void 0)}}),TC=wc({_meta:wC.optional()}),EC=Ec([q(),J().int()]),DC=X({jsonrpc:Z(`2.0`),id:EC,...xC.shape}).strict(),OC=X({jsonrpc:Z(`2.0`),...CC.shape}).strict(),kC=X({jsonrpc:Z(`2.0`),id:EC,result:TC}).strict(),AC=X({jsonrpc:Z(`2.0`),id:EC.optional(),error:X({code:J().int(),message:q(),data:yc().optional()})}).strict(),jC=Ec([DC,OC,kC,AC]),MC=Ec([kC,AC]),NC=TC.strict(),PC=SC.extend({requestId:EC.optional(),reason:q().optional()}),FC=CC.extend({method:Z(`notifications/cancelled`),params:PC}),IC=X({src:q(),mimeType:q().optional(),sizes:Y(q()).optional(),theme:Pc([`light`,`dark`]).optional()}),LC=X({icons:Y(IC).optional()}),RC=X({name:q(),title:q().optional()}),zC=RC.extend({...RC.shape,...LC.shape,version:q(),websiteUrl:q().optional(),description:q().optional()}),BC=ul(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Ac(X({form:Ac(X({applyDefaults:dc().optional()}),fC).optional(),url:fC.optional()}),fC.optional())),VC=wc({list:fC.optional(),cancel:fC.optional(),requests:wc({sampling:wc({createMessage:fC.optional()}).optional(),elicitation:wc({create:fC.optional()}).optional()}).optional()}),HC=wc({list:fC.optional(),cancel:fC.optional(),requests:wc({tools:wc({call:fC.optional()}).optional()}).optional()}),UC=X({experimental:Mc(q(),fC).optional(),sampling:X({context:fC.optional(),tools:fC.optional()}).optional(),elicitation:BC.optional(),roots:X({listChanged:dc().optional()}).optional(),tasks:VC.optional(),extensions:Mc(q(),fC).optional()}),WC=yC.extend({protocolVersion:q(),capabilities:UC,clientInfo:zC}),GC=xC.extend({method:Z(`initialize`),params:WC}),KC=X({experimental:Mc(q(),fC).optional(),logging:fC.optional(),completions:fC.optional(),prompts:X({listChanged:dc().optional()}).optional(),resources:X({subscribe:dc().optional(),listChanged:dc().optional()}).optional(),tools:X({listChanged:dc().optional()}).optional(),tasks:HC.optional(),extensions:Mc(q(),fC).optional()}),qC=TC.extend({protocolVersion:q(),capabilities:KC,serverInfo:zC,instructions:q().optional()}),JC=CC.extend({method:Z(`notifications/initialized`),params:SC.optional()}),YC=xC.extend({method:Z(`server/discover`),params:yC.optional()}),XC=TC.extend({supportedVersions:Y(q()),capabilities:KC,instructions:q().optional()}),ZC=xC.extend({method:Z(`ping`),params:yC.optional()}),QC=X({progress:J(),total:zc(J()),message:zc(q())}),$C=X({...SC.shape,...QC.shape,progressToken:mC}),ew=CC.extend({method:Z(`notifications/progress`),params:$C}),tw=yC.extend({cursor:hC.optional()}),nw=xC.extend({params:tw.optional()}),rw=TC.extend({nextCursor:hC.optional()}),iw=X({uri:q(),mimeType:zc(q()),_meta:Mc(q(),yc()).optional()}),aw=iw.extend({text:q()}),ow=q().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),sw=iw.extend({blob:ow}),cw=Pc([`user`,`assistant`]),lw=X({audience:Y(cw).optional(),priority:J().min(0).max(1).optional(),lastModified:pl({offset:!0}).optional()}),uw=X({...RC.shape,...LC.shape,uri:q(),description:zc(q()),mimeType:zc(q()),size:zc(J()),annotations:lw.optional(),_meta:zc(wc({}))}),dw=X({...RC.shape,...LC.shape,uriTemplate:q(),description:zc(q()),mimeType:zc(q()),annotations:lw.optional(),_meta:zc(wc({}))}),fw=nw.extend({method:Z(`resources/list`)}),pw=rw.extend({resources:Y(uw)}),mw=nw.extend({method:Z(`resources/templates/list`)}),hw=rw.extend({resourceTemplates:Y(dw)}),gw=yC.extend({uri:q()}),_w=gw,vw=xC.extend({method:Z(`resources/read`),params:_w}),yw=TC.extend({contents:Y(Ec([aw,sw]))}),bw=CC.extend({method:Z(`notifications/resources/list_changed`),params:SC.optional()}),xw=gw,Sw=xC.extend({method:Z(`resources/subscribe`),params:xw}),Cw=gw,ww=xC.extend({method:Z(`resources/unsubscribe`),params:Cw}),Tw=X({toolsListChanged:dc().optional(),promptsListChanged:dc().optional(),resourcesListChanged:dc().optional(),resourceSubscriptions:Y(q()).optional()}),Ew=yC.extend({notifications:Tw}),Dw=xC.extend({method:Z(`subscriptions/listen`),params:Ew}),Ow=SC.extend({notifications:Tw}),kw=CC.extend({method:Z(`notifications/subscriptions/acknowledged`),params:Ow}),Aw=wC.extend({[lC]:EC}),jw=TC.extend({_meta:Aw}),Mw=SC.extend({uri:q()}),Nw=CC.extend({method:Z(`notifications/resources/updated`),params:Mw}),Pw=X({name:q(),description:zc(q()),required:zc(dc())}),Fw=X({...RC.shape,...LC.shape,description:zc(q()),arguments:zc(Y(Pw)),_meta:zc(wc({}))}),Iw=nw.extend({method:Z(`prompts/list`)}),Lw=rw.extend({prompts:Y(Fw)}),Rw=yC.extend({name:q(),arguments:Mc(q(),q()).optional()}),zw=xC.extend({method:Z(`prompts/get`),params:Rw}),Bw=X({type:Z(`text`),text:q(),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Vw=X({type:Z(`image`),data:ow,mimeType:q(),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Hw=X({type:Z(`audio`),data:ow,mimeType:q(),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Uw=X({type:Z(`tool_use`),name:q(),id:q(),input:Mc(q(),yc()),_meta:Mc(q(),yc()).optional()}),Ww=X({type:Z(`resource`),resource:Ec([aw,sw]),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Gw=uw.extend({type:Z(`resource_link`)}),Kw=Ec([Bw,Vw,Hw,Gw,Ww]),qw=X({role:cw,content:Kw}),Jw=TC.extend({description:q().optional(),messages:Y(qw)}),Yw=CC.extend({method:Z(`notifications/prompts/list_changed`),params:SC.optional()}),Xw=X({title:q().optional(),readOnlyHint:dc().optional(),destructiveHint:dc().optional(),idempotentHint:dc().optional(),openWorldHint:dc().optional()}),Zw=X({taskSupport:Pc([`required`,`optional`,`forbidden`]).optional()}),Qw=X({...RC.shape,...LC.shape,description:q().optional(),inputSchema:X({type:Z(`object`),properties:Mc(q(),dC).optional(),required:Y(q()).optional()}).catchall(yc()),outputSchema:wc({$schema:q().optional()}).optional(),annotations:Xw.optional(),execution:Zw.optional(),_meta:Mc(q(),yc()).optional()}),$w=nw.extend({method:Z(`tools/list`)}),eT=rw.extend({tools:Y(Qw)}),tT=TC.extend({content:Y(Kw).default([]),structuredContent:yc().optional(),isError:dc().optional()}),nT=tT.or(TC.extend({toolResult:yc()})),rT=bC.extend({name:q(),arguments:Mc(q(),yc()).optional()}),iT=xC.extend({method:Z(`tools/call`),params:rT}),aT=CC.extend({method:Z(`notifications/tools/list_changed`),params:SC.optional()}),oT=X({autoRefresh:dc().default(!0),debounceMs:J().int().nonnegative().default(300)}),sT=Pc([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),cT=yC.extend({level:sT}),lT=xC.extend({method:Z(`logging/setLevel`),params:cT}),uT=SC.extend({level:sT,logger:q().optional(),data:yc()}),dT=CC.extend({method:Z(`notifications/message`),params:uT}),fT=X({name:q().optional()}),pT=X({hints:Y(fT).optional(),costPriority:J().min(0).max(1).optional(),speedPriority:J().min(0).max(1).optional(),intelligencePriority:J().min(0).max(1).optional()}),mT=X({mode:Pc([`auto`,`required`,`none`]).optional()}),hT=X({type:Z(`tool_result`),toolUseId:q().describe(`The unique identifier for the corresponding tool call.`),content:Y(Kw),structuredContent:yc().optional(),isError:dc().optional(),_meta:Mc(q(),yc()).optional()}),gT=Oc(`type`,[Bw,Vw,Hw]),_T=Oc(`type`,[Bw,Vw,Hw,Uw,hT]),vT=X({role:cw,content:Ec([_T,Y(_T)]),_meta:Mc(q(),yc()).optional()}),yT=bC.extend({messages:Y(vT),modelPreferences:pT.optional(),systemPrompt:q().optional(),includeContext:Pc([`none`,`thisServer`,`allServers`]).optional(),temperature:J().optional(),maxTokens:J().int(),stopSequences:Y(q()).optional(),metadata:fC.optional(),tools:Y(Qw).optional(),toolChoice:mT.optional()}),bT=xC.extend({method:Z(`sampling/createMessage`),params:yT}),xT=TC.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`]).or(q())),role:cw,content:gT}),ST=TC.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(q())),role:cw,content:Ec([_T,Y(_T)])}),CT=X({type:Z(`boolean`),title:q().optional(),description:q().optional(),default:dc().optional()}),wT=X({type:Z(`string`),title:q().optional(),description:q().optional(),minLength:J().optional(),maxLength:J().optional(),format:Pc([`email`,`uri`,`date`,`date-time`]).optional(),default:q().optional()}),TT=X({type:Pc([`number`,`integer`]),title:q().optional(),description:q().optional(),minimum:J().optional(),maximum:J().optional(),default:J().optional()}),ET=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),default:q().optional()}),DT=X({type:Z(`string`),title:q().optional(),description:q().optional(),oneOf:Y(X({const:q(),title:q()})),default:q().optional()}),OT=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),enumNames:Y(q()).optional(),default:q().optional()}),kT=Ec([ET,DT]),AT=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({type:Z(`string`),enum:Y(q())}),default:Y(q()).optional()}),jT=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({anyOf:Y(X({const:q(),title:q()}))}),default:Y(q()).optional()}),MT=Ec([AT,jT]),NT=Ec([OT,kT,MT]),PT=Ec([NT,CT,wT,TT]),FT=bC.extend({mode:Z(`form`).optional(),message:q(),requestedSchema:X({type:Z(`object`),properties:Mc(q(),PT),required:Y(q()).optional()}).catchall(yc())}),IT=bC.extend({mode:Z(`url`),message:q(),elicitationId:q(),url:q().url()}),LT=Ec([FT,IT]),RT=xC.extend({method:Z(`elicitation/create`),params:LT}),zT=SC.extend({elicitationId:q()}),BT=CC.extend({method:Z(`notifications/elicitation/complete`),params:zT}),VT=TC.extend({action:Pc([`accept`,`decline`,`cancel`]),content:ul(e=>e===null?void 0:e,Mc(q(),Ec([q(),J(),dc(),Y(q())])).optional())}),HT=X({type:Z(`ref/resource`),uri:q()}),UT=X({type:Z(`ref/prompt`),name:q()}),WT=yC.extend({ref:Ec([UT,HT]),argument:X({name:q(),value:q()}),context:X({arguments:Mc(q(),q()).optional()}).optional()}),GT=xC.extend({method:Z(`completion/complete`),params:WT}),KT=TC.extend({completion:wc({values:Y(q()).max(100),total:zc(J().int()),hasMore:zc(dc())})}),qT=X({uri:q().startsWith(`file://`),name:q().optional(),_meta:Mc(q(),yc()).optional()}),JT=xC.extend({method:Z(`roots/list`),params:yC.optional()}),YT=TC.extend({roots:Y(qT)}),XT=CC.extend({method:Z(`notifications/roots/list_changed`),params:SC.optional()}),ZT=wc({ttl:J().optional(),pollInterval:J().optional()}),QT=Pc([`working`,`input_required`,`completed`,`failed`,`cancelled`]),$T=X({taskId:q(),status:QT,ttl:Ec([J(),hc()]),createdAt:q(),lastUpdatedAt:q(),pollInterval:zc(J()),statusMessage:zc(q())}),eE=TC.extend({task:$T}),tE=SC.merge($T),nE=CC.extend({method:Z(`notifications/tasks/status`),params:tE}),rE=xC.extend({method:Z(`tasks/get`),params:yC.extend({taskId:q()})}),iE=TC.merge($T),aE=xC.extend({method:Z(`tasks/result`),params:yC.extend({taskId:q()})}),oE=TC.loose(),sE=nw.extend({method:Z(`tasks/list`)}),cE=rw.extend({tasks:Y($T)}),lE=xC.extend({method:Z(`tasks/cancel`),params:yC.extend({taskId:q()})}),uE=TC.merge($T),dE=Ec([ZC,GC,YC,GT,lT,zw,Iw,fw,mw,vw,Sw,ww,Dw,iT,$w]),fE=Ec([FC,ew,JC,XT]),pE=Ec([NC,xT,ST,VT,YT]),mE=Ec([ZC,bT,RT,JT]),hE=Ec([FC,ew,dT,Nw,bw,aT,Yw,kw,BT]),gE=Ec([NC,qC,XC,KT,Jw,Lw,pw,hw,yw,tT,eT,jw]),_E=Gs().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:dl.custom,message:`URL must be parseable`,fatal:!0}),Ue}).refine(e=>{let t=new URL(e);return t.protocol!==`javascript:`&&t.protocol!==`data:`&&t.protocol!==`vbscript:`},{message:`URL cannot use javascript:, data:, or vbscript: scheme`}),vE=wc({resource:q().url(),authorization_servers:Y(_E).optional(),jwks_uri:q().url().optional(),scopes_supported:Y(q()).optional(),bearer_methods_supported:Y(q()).optional(),resource_signing_alg_values_supported:Y(q()).optional(),resource_name:q().optional(),resource_documentation:q().optional(),resource_policy_uri:q().url().optional(),resource_tos_uri:q().url().optional(),tls_client_certificate_bound_access_tokens:dc().optional(),authorization_details_types_supported:Y(q()).optional(),dpop_signing_alg_values_supported:Y(q()).optional(),dpop_bound_access_tokens_required:dc().optional()}),yE=wc({issuer:q(),authorization_endpoint:_E,token_endpoint:_E,registration_endpoint:_E.optional(),scopes_supported:Y(q()).optional(),response_types_supported:Y(q()),response_modes_supported:Y(q()).optional(),grant_types_supported:Y(q()).optional(),token_endpoint_auth_methods_supported:Y(q()).optional(),token_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),service_documentation:_E.optional(),revocation_endpoint:_E.optional(),revocation_endpoint_auth_methods_supported:Y(q()).optional(),revocation_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),introspection_endpoint:q().optional(),introspection_endpoint_auth_methods_supported:Y(q()).optional(),introspection_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),code_challenge_methods_supported:Y(q()).optional(),client_id_metadata_document_supported:dc().optional(),authorization_response_iss_parameter_supported:dc().optional().catch(void 0),dpop_signing_alg_values_supported:Y(q()).optional()}),bE=wc({issuer:q(),authorization_endpoint:_E,token_endpoint:_E,userinfo_endpoint:_E.optional(),jwks_uri:_E,registration_endpoint:_E.optional(),scopes_supported:Y(q()).optional(),response_types_supported:Y(q()),response_modes_supported:Y(q()).optional(),grant_types_supported:Y(q()).optional(),acr_values_supported:Y(q()).optional(),subject_types_supported:Y(q()),id_token_signing_alg_values_supported:Y(q()),id_token_encryption_alg_values_supported:Y(q()).optional(),id_token_encryption_enc_values_supported:Y(q()).optional(),userinfo_signing_alg_values_supported:Y(q()).optional(),userinfo_encryption_alg_values_supported:Y(q()).optional(),userinfo_encryption_enc_values_supported:Y(q()).optional(),request_object_signing_alg_values_supported:Y(q()).optional(),request_object_encryption_alg_values_supported:Y(q()).optional(),request_object_encryption_enc_values_supported:Y(q()).optional(),token_endpoint_auth_methods_supported:Y(q()).optional(),token_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),display_values_supported:Y(q()).optional(),claim_types_supported:Y(q()).optional(),claims_supported:Y(q()).optional(),service_documentation:q().optional(),claims_locales_supported:Y(q()).optional(),ui_locales_supported:Y(q()).optional(),claims_parameter_supported:dc().optional(),request_parameter_supported:dc().optional(),request_uri_parameter_supported:dc().optional(),require_request_uri_registration:dc().optional(),op_policy_uri:_E.optional(),op_tos_uri:_E.optional(),client_id_metadata_document_supported:dc().optional(),authorization_response_iss_parameter_supported:dc().optional().catch(void 0)}),xE=X({...bE.shape,...yE.pick({code_challenge_methods_supported:!0}).shape}),SE=X({access_token:q(),id_token:q().optional(),token_type:q(),expires_in:hl().optional(),scope:q().optional(),refresh_token:q().optional(),issuer:q().optional().catch(void 0)}).strip(),CE=X({issued_token_type:Z(`urn:ietf:params:oauth:token-type:id-jag`),access_token:q(),token_type:q().optional(),expires_in:J().optional(),scope:q().optional()}).strip(),wE=X({error:q(),error_description:q().optional(),error_uri:q().optional()}),TE=_E.optional().or(Z(``).transform(()=>void 0)),EE=X({redirect_uris:Y(_E),token_endpoint_auth_method:q().optional(),grant_types:Y(q()).optional(),response_types:Y(q()).optional(),application_type:q().optional(),client_name:q().optional(),client_uri:_E.optional(),logo_uri:TE,scope:q().optional(),contacts:Y(q()).optional(),tos_uri:TE,policy_uri:q().optional(),jwks_uri:_E.optional(),jwks:_c().optional(),software_id:q().optional(),software_version:q().optional(),software_statement:q().optional()}).strip(),DE=X({client_id:q(),client_secret:q().optional(),client_id_issued_at:J().optional(),client_secret_expires_at:J().optional(),issuer:q().optional().catch(void 0)}).strip(),OE=EE.merge(DE),kE=X({error:q(),error_description:q().optional()}).strip(),AE=X({token:q(),token_type_hint:q().optional()}).strip(),jE=Symbol.for(`mcp.sdk.errorBrands`);function ME(e,t){let n=new Set,r=t;for(;typeof r==`function`;){let e=r.mcpBrand;Object.prototype.hasOwnProperty.call(r,`mcpBrand`)&&typeof e==`string`&&n.add(e),r=Object.getPrototypeOf(r)}n.size!==0&&Object.defineProperty(e,jE,{value:n,enumerable:!1,configurable:!0})}function NE(e,t){try{if(typeof t==`object`&&t&&Object.prototype.hasOwnProperty.call(e,`mcpBrand`)&&typeof e.mcpBrand==`string`&&Object.prototype.hasOwnProperty.call(t,jE)){let n=t[jE];if(n&&typeof n.has==`function`&&n.has(e.mcpBrand))return!0}}catch{}return Function.prototype[Symbol.hasInstance].call(e,t)}(class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.OAuthError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n){super(t),this.code=e,this.errorUri=n,this.name=`OAuthError`,ME(this,new.target)}toResponseObject(){let e={error:this.code,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}static fromResponse(t){return new e(t.error,t.error_description??t.error,t.error_uri)}});var PE=function(e){return e.NotConnected=`NOT_CONNECTED`,e.AlreadyConnected=`ALREADY_CONNECTED`,e.NotInitialized=`NOT_INITIALIZED`,e.CapabilityNotSupported=`CAPABILITY_NOT_SUPPORTED`,e.RequestTimeout=`REQUEST_TIMEOUT`,e.ConnectionClosed=`CONNECTION_CLOSED`,e.SendFailed=`SEND_FAILED`,e.InvalidResult=`INVALID_RESULT`,e.UnsupportedResultType=`UNSUPPORTED_RESULT_TYPE`,e.InputRequiredRoundsExceeded=`INPUT_REQUIRED_ROUNDS_EXCEEDED`,e.ListPaginationExceeded=`LIST_PAGINATION_EXCEEDED`,e.MethodNotSupportedByProtocolVersion=`METHOD_NOT_SUPPORTED_BY_PROTOCOL_VERSION`,e.EraNegotiationFailed=`ERA_NEGOTIATION_FAILED`,e.ClientHttpNotImplemented=`CLIENT_HTTP_NOT_IMPLEMENTED`,e.ClientHttpAuthentication=`CLIENT_HTTP_AUTHENTICATION`,e.ClientHttpForbidden=`CLIENT_HTTP_FORBIDDEN`,e.ClientHttpUnexpectedContent=`CLIENT_HTTP_UNEXPECTED_CONTENT`,e.ClientHttpFailedToOpenStream=`CLIENT_HTTP_FAILED_TO_OPEN_STREAM`,e.ClientHttpFailedToTerminateSession=`CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION`,e}({}),FE=class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.SdkError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n,r){super(t,r),this.code=e,this.data=n,this.name=`SdkError`,ME(this,new.target)}};(class extends FE{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.SdkHttpError`})}constructor(e,t,n,r){super(e,t,n,r),this.name=`SdkHttpError`}get status(){return this.data.status}get statusText(){return this.data.statusText}});var IE=`2026-07-28`;function LE(e){return e>=IE}function RE(e){let t=e.structuredContent;return t===void 0||typeof t==`object`&&t&&!Array.isArray(t)||(e.content?.some(e=>e.type===`text`)??!1)?e:{...e,content:[...e.content??[],{type:`text`,text:JSON.stringify(t)}]}}var zE=[`task`,`inputRequests`,`requestState`];function BE(e){return typeof e!=`object`||!e||Array.isArray(e)||e.content!==void 0||zE.some(t=>t in e)?e:{...e,content:[]}}function VE(){let e=ol(()=>Ec([q(),J(),dc(),hc(),Mc(q(),e),Y(e)])),t=Mc(q(),e),n=Ec([q(),J().int()]),r=q(),i=X({ttl:J().optional()}),a=X({taskId:q()}),o=wc({progressToken:n.optional(),"io.modelcontextprotocol/related-task":a.optional()}),s=X({_meta:o.optional()}),c=s.extend({task:i.optional()}),l=X({method:q(),params:s.loose().optional()}),u=X({_meta:o.optional()}),d=X({method:q(),params:u.loose().optional()}),f=wc({_meta:o.optional()}),p=Ec([q(),J().int()]),m=f.strict(),h=u.extend({requestId:p.optional(),reason:q().optional()}),g=d.extend({method:Z(`notifications/cancelled`),params:h}),_=X({src:q(),mimeType:q().optional(),sizes:Y(q()).optional(),theme:Pc([`light`,`dark`]).optional()}),v=X({icons:Y(_).optional()}),y=X({name:q(),title:q().optional()}),b=y.extend({...y.shape,...v.shape,version:q(),websiteUrl:q().optional(),description:q().optional()}),x=ul(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Ac(X({form:Ac(X({applyDefaults:dc().optional()}),t).optional(),url:t.optional()}),t.optional())),S=wc({list:t.optional(),cancel:t.optional(),requests:wc({sampling:wc({createMessage:t.optional()}).optional(),elicitation:wc({create:t.optional()}).optional()}).optional()}),C=wc({list:t.optional(),cancel:t.optional(),requests:wc({tools:wc({call:t.optional()}).optional()}).optional()}),w=X({experimental:Mc(q(),t).optional(),sampling:X({context:t.optional(),tools:t.optional()}).optional(),elicitation:x.optional(),roots:X({listChanged:dc().optional()}).optional(),tasks:S.optional(),extensions:Mc(q(),t).optional()}),T=s.extend({protocolVersion:q(),capabilities:w,clientInfo:b}),E=l.extend({method:Z(`initialize`),params:T}),D=X({experimental:Mc(q(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:X({listChanged:dc().optional()}).optional(),resources:X({subscribe:dc().optional(),listChanged:dc().optional()}).optional(),tools:X({listChanged:dc().optional()}).optional(),tasks:C.optional(),extensions:Mc(q(),t).optional()}),O=f.extend({protocolVersion:q(),capabilities:D,serverInfo:b,instructions:q().optional()}),k=d.extend({method:Z(`notifications/initialized`),params:u.optional()}),A=l.extend({method:Z(`ping`),params:s.optional()}),j=X({progress:J(),total:zc(J()),message:zc(q())}),M=X({...u.shape,...j.shape,progressToken:n}),N=d.extend({method:Z(`notifications/progress`),params:M}),P=s.extend({cursor:r.optional()}),F=l.extend({params:P.optional()}),I=f.extend({nextCursor:r.optional()}),ee=X({uri:q(),mimeType:zc(q()),_meta:Mc(q(),yc()).optional()}),L=ee.extend({text:q()}),R=q().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),z=ee.extend({blob:R}),te=Pc([`user`,`assistant`]),ne=X({audience:Y(te).optional(),priority:J().min(0).max(1).optional(),lastModified:pl({offset:!0}).optional()}),re=X({...y.shape,...v.shape,uri:q(),description:zc(q()),mimeType:zc(q()),size:zc(J()),annotations:ne.optional(),_meta:zc(wc({}))}),B=X({...y.shape,...v.shape,uriTemplate:q(),description:zc(q()),mimeType:zc(q()),annotations:ne.optional(),_meta:zc(wc({}))}),ie=F.extend({method:Z(`resources/list`)}),ae=I.extend({resources:Y(re)}),oe=F.extend({method:Z(`resources/templates/list`)}),se=I.extend({resourceTemplates:Y(B)}),ce=s.extend({uri:q()}),V=ce,H=l.extend({method:Z(`resources/read`),params:V}),le=f.extend({contents:Y(Ec([L,z]))}),ue=d.extend({method:Z(`notifications/resources/list_changed`),params:u.optional()}),de=ce,fe=l.extend({method:Z(`resources/subscribe`),params:de}),pe=ce,me=l.extend({method:Z(`resources/unsubscribe`),params:pe}),he=u.extend({uri:q()}),U=d.extend({method:Z(`notifications/resources/updated`),params:he}),ge=X({name:q(),description:zc(q()),required:zc(dc())}),W=X({...y.shape,...v.shape,description:zc(q()),arguments:zc(Y(ge)),_meta:zc(wc({}))}),G=F.extend({method:Z(`prompts/list`)}),_e=I.extend({prompts:Y(W)}),ve=s.extend({name:q(),arguments:Mc(q(),q()).optional()}),ye=l.extend({method:Z(`prompts/get`),params:ve}),be=X({type:Z(`text`),text:q(),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),xe=X({type:Z(`image`),data:R,mimeType:q(),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),Se=X({type:Z(`audio`),data:R,mimeType:q(),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),Ce=X({type:Z(`tool_use`),name:q(),id:q(),input:Mc(q(),yc()),_meta:Mc(q(),yc()).optional()}),we=X({type:Z(`resource`),resource:Ec([L,z]),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),Te=re.extend({type:Z(`resource_link`)}),Ee=Ec([be,xe,Se,Te,we]),De=X({role:te,content:Ee}),Oe=f.extend({description:q().optional(),messages:Y(De)}),ke=d.extend({method:Z(`notifications/prompts/list_changed`),params:u.optional()}),Ae=X({title:q().optional(),readOnlyHint:dc().optional(),destructiveHint:dc().optional(),idempotentHint:dc().optional(),openWorldHint:dc().optional()}),je=X({taskSupport:Pc([`required`,`optional`,`forbidden`]).optional()}),Me=X({...y.shape,...v.shape,description:q().optional(),inputSchema:X({type:Z(`object`),properties:Mc(q(),e).optional(),required:Y(q()).optional()}).catchall(yc()),outputSchema:X({type:Z(`object`),properties:Mc(q(),e).optional(),required:Y(q()).optional()}).catchall(yc()).optional(),annotations:Ae.optional(),execution:je.optional(),_meta:Mc(q(),yc()).optional()}),Ne=F.extend({method:Z(`tools/list`)}),Pe=I.extend({tools:Y(Me)}),Fe=f.extend({content:Y(Ee),structuredContent:Mc(q(),yc()).optional(),isError:dc().optional()}),Ie=c.extend({name:q(),arguments:Mc(q(),yc()).optional()}),Le=l.extend({method:Z(`tools/call`),params:Ie}),Re=d.extend({method:Z(`notifications/tools/list_changed`),params:u.optional()}),ze=Pc([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Be=s.extend({level:ze}),Ve=l.extend({method:Z(`logging/setLevel`),params:Be}),He=u.extend({level:ze,logger:q().optional(),data:yc()}),Ue=d.extend({method:Z(`notifications/message`),params:He}),We=X({name:q().optional()}),Ge=X({hints:Y(We).optional(),costPriority:J().min(0).max(1).optional(),speedPriority:J().min(0).max(1).optional(),intelligencePriority:J().min(0).max(1).optional()}),Ke=X({mode:Pc([`auto`,`required`,`none`]).optional()}),K=X({type:Z(`tool_result`),toolUseId:q().describe(`The unique identifier for the corresponding tool call.`),content:Y(Ee),structuredContent:X({}).loose().optional(),isError:dc().optional(),_meta:Mc(q(),yc()).optional()}),qe=Oc(`type`,[be,xe,Se]),Je=Oc(`type`,[be,xe,Se,Ce,K]),Ye=X({role:te,content:Ec([Je,Y(Je)]),_meta:Mc(q(),yc()).optional()}),Xe=c.extend({messages:Y(Ye),modelPreferences:Ge.optional(),systemPrompt:q().optional(),includeContext:Pc([`none`,`thisServer`,`allServers`]).optional(),temperature:J().optional(),maxTokens:J().int(),stopSequences:Y(q()).optional(),metadata:t.optional(),tools:Y(Me).optional(),toolChoice:Ke.optional()}),Ze=l.extend({method:Z(`sampling/createMessage`),params:Xe}),Qe=f.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`]).or(q())),role:te,content:qe}),$e=f.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(q())),role:te,content:Ec([Je,Y(Je)])}),et=X({type:Z(`boolean`),title:q().optional(),description:q().optional(),default:dc().optional()}),tt=X({type:Z(`string`),title:q().optional(),description:q().optional(),minLength:J().optional(),maxLength:J().optional(),format:Pc([`email`,`uri`,`date`,`date-time`]).optional(),default:q().optional()}),nt=X({type:Pc([`number`,`integer`]),title:q().optional(),description:q().optional(),minimum:J().optional(),maximum:J().optional(),default:J().optional()}),rt=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),default:q().optional()}),it=X({type:Z(`string`),title:q().optional(),description:q().optional(),oneOf:Y(X({const:q(),title:q()})),default:q().optional()}),at=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),enumNames:Y(q()).optional(),default:q().optional()}),ot=Ec([rt,it]),st=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({type:Z(`string`),enum:Y(q())}),default:Y(q()).optional()}),ct=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({anyOf:Y(X({const:q(),title:q()}))}),default:Y(q()).optional()}),lt=Ec([st,ct]),ut=Ec([at,ot,lt]),dt=Ec([ut,et,tt,nt]),ft=c.extend({mode:Z(`form`).optional(),message:q(),requestedSchema:X({type:Z(`object`),properties:Mc(q(),dt),required:Y(q()).optional()}).catchall(yc())}),pt=c.extend({mode:Z(`url`),message:q(),elicitationId:q(),url:q().url()}),mt=Ec([ft,pt]),ht=l.extend({method:Z(`elicitation/create`),params:mt}),gt=u.extend({elicitationId:q()}),_t=d.extend({method:Z(`notifications/elicitation/complete`),params:gt}),vt=f.extend({action:Pc([`accept`,`decline`,`cancel`]),content:ul(e=>e===null?void 0:e,Mc(q(),Ec([q(),J(),dc(),Y(q())])).optional())}),yt=X({type:Z(`ref/resource`),uri:q()}),bt=X({type:Z(`ref/prompt`),name:q()}),xt=s.extend({ref:Ec([bt,yt]),argument:X({name:q(),value:q()}),context:X({arguments:Mc(q(),q()).optional()}).optional()}),St=l.extend({method:Z(`completion/complete`),params:xt}),Ct=f.extend({completion:wc({values:Y(q()).max(100),total:zc(J().int()),hasMore:zc(dc())})}),wt=X({uri:q().startsWith(`file://`),name:q().optional(),_meta:Mc(q(),yc()).optional()}),Tt=l.extend({method:Z(`roots/list`),params:s.optional()}),Et=f.extend({roots:Y(wt)}),Dt=d.extend({method:Z(`notifications/roots/list_changed`),params:u.optional()}),Ot=wc({ttl:J().optional(),pollInterval:J().optional()}),kt=Pc([`working`,`input_required`,`completed`,`failed`,`cancelled`]),At=X({taskId:q(),status:kt,ttl:Ec([J(),hc()]),createdAt:q(),lastUpdatedAt:q(),pollInterval:zc(J()),statusMessage:zc(q())}),jt=f.extend({task:At}),Mt=u.merge(At),Nt=d.extend({method:Z(`notifications/tasks/status`),params:Mt}),Pt=l.extend({method:Z(`tasks/get`),params:s.extend({taskId:q()})}),Ft=f.merge(At),It=l.extend({method:Z(`tasks/result`),params:s.extend({taskId:q()})}),Lt=f.loose(),Rt=F.extend({method:Z(`tasks/list`)}),zt=I.extend({tasks:Y(At)}),Bt=l.extend({method:Z(`tasks/cancel`),params:s.extend({taskId:q()})});return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:n,CursorSchema:r,TaskMetadataSchema:i,RelatedTaskMetadataSchema:a,RequestMetaSchema:o,BaseRequestParamsSchema:s,TaskAugmentedRequestParamsSchema:c,RequestSchema:l,NotificationsParamsSchema:u,NotificationSchema:d,ResultSchema:f,RequestIdSchema:p,EmptyResultSchema:m,CancelledNotificationParamsSchema:h,CancelledNotificationSchema:g,IconSchema:_,IconsSchema:v,BaseMetadataSchema:y,ImplementationSchema:b,ClientTasksCapabilitySchema:S,ServerTasksCapabilitySchema:C,ClientCapabilitiesSchema:w,InitializeRequestParamsSchema:T,InitializeRequestSchema:E,ServerCapabilitiesSchema:D,InitializeResultSchema:O,InitializedNotificationSchema:k,PingRequestSchema:A,ProgressSchema:j,ProgressNotificationParamsSchema:M,ProgressNotificationSchema:N,PaginatedRequestParamsSchema:P,PaginatedRequestSchema:F,PaginatedResultSchema:I,ResourceContentsSchema:ee,TextResourceContentsSchema:L,BlobResourceContentsSchema:z,RoleSchema:te,AnnotationsSchema:ne,ResourceSchema:re,ResourceTemplateSchema:B,ListResourcesRequestSchema:ie,ListResourcesResultSchema:ae,ListResourceTemplatesRequestSchema:oe,ListResourceTemplatesResultSchema:se,ResourceRequestParamsSchema:ce,ReadResourceRequestParamsSchema:V,ReadResourceRequestSchema:H,ReadResourceResultSchema:le,ResourceListChangedNotificationSchema:ue,SubscribeRequestParamsSchema:de,SubscribeRequestSchema:fe,UnsubscribeRequestParamsSchema:pe,UnsubscribeRequestSchema:me,ResourceUpdatedNotificationParamsSchema:he,ResourceUpdatedNotificationSchema:U,PromptArgumentSchema:ge,PromptSchema:W,ListPromptsRequestSchema:G,ListPromptsResultSchema:_e,GetPromptRequestParamsSchema:ve,GetPromptRequestSchema:ye,TextContentSchema:be,ImageContentSchema:xe,AudioContentSchema:Se,ToolUseContentSchema:Ce,EmbeddedResourceSchema:we,ResourceLinkSchema:Te,ContentBlockSchema:Ee,PromptMessageSchema:De,GetPromptResultSchema:Oe,PromptListChangedNotificationSchema:ke,ToolAnnotationsSchema:Ae,ToolExecutionSchema:je,ToolSchema:Me,ListToolsRequestSchema:Ne,ListToolsResultSchema:Pe,CallToolResultSchema:Fe,CallToolRequestParamsSchema:Ie,CallToolRequestSchema:Le,ToolListChangedNotificationSchema:Re,LoggingLevelSchema:ze,SetLevelRequestParamsSchema:Be,SetLevelRequestSchema:Ve,LoggingMessageNotificationParamsSchema:He,LoggingMessageNotificationSchema:Ue,ModelHintSchema:We,ModelPreferencesSchema:Ge,ToolChoiceSchema:Ke,ToolResultContentSchema:K,SamplingContentSchema:qe,SamplingMessageContentBlockSchema:Je,SamplingMessageSchema:Ye,CreateMessageRequestParamsSchema:Xe,CreateMessageRequestSchema:Ze,CreateMessageResultSchema:Qe,CreateMessageResultWithToolsSchema:$e,BooleanSchemaSchema:et,StringSchemaSchema:tt,NumberSchemaSchema:nt,UntitledSingleSelectEnumSchemaSchema:rt,TitledSingleSelectEnumSchemaSchema:it,LegacyTitledEnumSchemaSchema:at,SingleSelectEnumSchemaSchema:ot,UntitledMultiSelectEnumSchemaSchema:st,TitledMultiSelectEnumSchemaSchema:ct,MultiSelectEnumSchemaSchema:lt,EnumSchemaSchema:ut,PrimitiveSchemaDefinitionSchema:dt,ElicitRequestFormParamsSchema:ft,ElicitRequestURLParamsSchema:pt,ElicitRequestParamsSchema:mt,ElicitRequestSchema:ht,ElicitationCompleteNotificationParamsSchema:gt,ElicitationCompleteNotificationSchema:_t,ElicitResultSchema:vt,ResourceTemplateReferenceSchema:yt,PromptReferenceSchema:bt,CompleteRequestParamsSchema:xt,CompleteRequestSchema:St,CompleteResultSchema:Ct,RootSchema:wt,ListRootsRequestSchema:Tt,ListRootsResultSchema:Et,RootsListChangedNotificationSchema:Dt,TaskCreationParamsSchema:Ot,TaskStatusSchema:kt,TaskSchema:At,CreateTaskResultSchema:jt,TaskStatusNotificationParamsSchema:Mt,TaskStatusNotificationSchema:Nt,GetTaskRequestSchema:Pt,GetTaskResultSchema:Ft,GetTaskPayloadRequestSchema:It,GetTaskPayloadResultSchema:Lt,ListTasksRequestSchema:Rt,ListTasksResultSchema:zt,CancelTaskRequestSchema:Bt,CancelTaskResultSchema:f.merge(At),ClientRequestSchema:Ec([A,E,St,Ve,ye,G,ie,oe,H,fe,me,Le,Ne,Pt,It,Rt,Bt]),ClientNotificationSchema:Ec([g,N,k,Dt,Nt]),ClientResultSchema:Ec([m,Qe,$e,vt,Et,Ft,zt,jt]),ServerRequestSchema:Ec([A,Ze,ht,Tt,Pt,It,Rt,Bt]),ServerNotificationSchema:Ec([g,N,Ue,U,ue,Re,ke,Nt,_t]),ServerResultSchema:Ec([m,O,Ct,Oe,_e,ae,se,le,Fe,Pe,Ft,zt,jt]),CallToolResultWireSchema:yc().superRefine((e,t)=>{if(typeof e==`object`&&e&&!Array.isArray(e)&&e.content===void 0){for(let n of zE)if(n in e){t.addIssue({code:`custom`,message:`content is required when the body carries '${n}' — another result family cannot default into an empty tools/call success`});return}}}).transform(BE).pipe(Fe)}}var HE;function UE(){return HE??=VE()}function WE(e){return e.type!==`object`}var GE=new Set([`const`,`enum`,`default`,`examples`]),KE=new Set([`properties`,`patternProperties`,`$defs`,`definitions`,`dependentSchemas`,`dependencies`]);function qE(e){return e!==void 0&&!(typeof e==`string`&&e.startsWith(`#`))}function JE(e){let t=typeof e.$schema==`string`?e.$schema:void 0;if(qE(e.$id))return{...t!==void 0&&{$schema:t},type:`object`,properties:{result:e},required:[`result`]};let n=nC(e.$schema)&&e.$recursiveAnchor!==!0,r=(e,t)=>{if(Array.isArray(e))return e.map(e=>r(e,!1));if(typeof e!=`object`||!e||!t&&qE(e.$id))return e;let i={},a=!1;for(let[o,s]of Object.entries(e))t?i[o]=r(s,!1):(o===`$ref`||o===`$dynamicRef`)&&typeof s==`string`?i[o]=s===`#`?`#/properties/result`:s.startsWith(`#/`)?`#/properties/result${s.slice(1)}`:s:o===`$recursiveRef`&&s===`#`&&n?a=!0:i[o]=GE.has(o)?s:KE.has(o)?r(s,!0):r(s,!1);return a&&(`$ref`in i?i.allOf=[...Array.isArray(i.allOf)?i.allOf:[],{$ref:`#/properties/result`}]:i.$ref=`#/properties/result`),i};return{...t!==void 0&&{$schema:t},type:`object`,properties:{result:r(e,!1)},required:[`result`]}}var YE={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"tasks/get":null,"tasks/result":null,"tasks/list":null,"tasks/cancel":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null},XE={"notifications/cancelled":null,"notifications/progress":null,"notifications/initialized":null,"notifications/roots/list_changed":null,"notifications/tasks/status":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/elicitation/complete":null},ZE={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null},QE;function $E(){if(QE)return QE;let e=UE();return QE={requestSchemas:{ping:e.PingRequestSchema,initialize:e.InitializeRequestSchema,"completion/complete":e.CompleteRequestSchema,"logging/setLevel":e.SetLevelRequestSchema,"prompts/get":e.GetPromptRequestSchema,"prompts/list":e.ListPromptsRequestSchema,"resources/list":e.ListResourcesRequestSchema,"resources/templates/list":e.ListResourceTemplatesRequestSchema,"resources/read":e.ReadResourceRequestSchema,"resources/subscribe":e.SubscribeRequestSchema,"resources/unsubscribe":e.UnsubscribeRequestSchema,"tools/call":e.CallToolRequestSchema,"tools/list":e.ListToolsRequestSchema,"tasks/get":e.GetTaskRequestSchema,"tasks/result":e.GetTaskPayloadRequestSchema,"tasks/list":e.ListTasksRequestSchema,"tasks/cancel":e.CancelTaskRequestSchema,"sampling/createMessage":e.CreateMessageRequestSchema,"elicitation/create":e.ElicitRequestSchema,"roots/list":e.ListRootsRequestSchema},notificationSchemas:{"notifications/cancelled":e.CancelledNotificationSchema,"notifications/progress":e.ProgressNotificationSchema,"notifications/initialized":e.InitializedNotificationSchema,"notifications/roots/list_changed":e.RootsListChangedNotificationSchema,"notifications/tasks/status":e.TaskStatusNotificationSchema,"notifications/message":e.LoggingMessageNotificationSchema,"notifications/resources/updated":e.ResourceUpdatedNotificationSchema,"notifications/resources/list_changed":e.ResourceListChangedNotificationSchema,"notifications/tools/list_changed":e.ToolListChangedNotificationSchema,"notifications/prompts/list_changed":e.PromptListChangedNotificationSchema,"notifications/elicitation/complete":e.ElicitationCompleteNotificationSchema},resultSchemas:{ping:e.EmptyResultSchema,initialize:e.InitializeResultSchema,"completion/complete":e.CompleteResultSchema,"logging/setLevel":e.EmptyResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"resources/subscribe":e.EmptyResultSchema,"resources/unsubscribe":e.EmptyResultSchema,"tools/call":e.CallToolResultWireSchema,"tools/list":e.ListToolsResultSchema,"sampling/createMessage":e.CreateMessageResultWithToolsSchema,"elicitation/create":e.ElicitResultSchema,"roots/list":e.ListRootsResultSchema}},QE}function eD(e){return Object.prototype.hasOwnProperty.call(YE,e)}function tD(e){return Object.prototype.hasOwnProperty.call(XE,e)}function nD(e){return Object.prototype.hasOwnProperty.call(ZE,e)}function rD(e){return nD(e)?$E().resultSchemas[e]:void 0}function iD(e){return eD(e)?$E().requestSchemas[e]:void 0}function aD(e){return tD(e)?$E().notificationSchemas[e]:void 0}Object.keys(YE),Object.keys(XE);function oD(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function sD(e,t){if(e===void 0)return{ok:!1,reason:`not-in-era`};let n=e.safeParse(t);return n.success?{ok:!0,value:n.data}:{ok:!1,reason:`invalid`,message:String(n.error)}}var cD={ok:!1,reason:`not-in-era`};function lD(e){return oD(e)&&oD(e.outputSchema)&&WE(e.outputSchema)}function uD(e){return e}var dD={era:`2025-11-25`,hasRequestMethod:eD,hasNotificationMethod:tD,validateRequest:(e,t)=>sD(iD(e),t),validateResult:(e,t)=>sD(rD(e),t),validateNotification:(e,t)=>sD(aD(e),t),hasInputRequestMethod:()=>!1,validateInputRequest:()=>cD,validateInputResponse:()=>cD,samplingResultVariant:((e,t)=>{let n=UE();return sD(e?n.CreateMessageResultWithToolsSchema:n.CreateMessageResultSchema,t)}),outboundEnvelope:e=>void 0,validateEnvelopeMeta:e=>[],projectCallToolResult(e,t){let n=RE(e),r=n.structuredContent;if(r===void 0)return n;let i=typeof r!=`object`||!r||Array.isArray(r),a=t!==void 0&&WE(t);return!i&&!a?n:{...n,structuredContent:{result:r}}},decodeResult(e,t){if(oD(t)&&`resultType`in t){let e={...t};return delete e.resultType,{kind:`complete`,result:uD(e)}}return{kind:`complete`,result:uD(t)}},encodeResult(e,t){if(e!==`tools/list`)return t;let n=t.tools;return!Array.isArray(n)||!n.some(e=>lD(e))?t:{...t,tools:n.map(e=>lD(e)?{...e,outputSchema:JE(e.outputSchema)}:e)}},encodeErrorCode:e=>e===-32002?-32602:e,checkInboundEnvelope:e=>void 0};function fD(){let e=ol(()=>Ec([q(),J(),dc(),hc(),Mc(q(),e),Y(e)])),t=Mc(q(),e),n=Ec([q(),J().int()]),r=q(),i=Ec([q(),J().int()]),a=Pc([`user`,`assistant`]),o=Pc([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),s=q().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),c=X({ttl:J().optional()}),l=X({taskId:q()}),u=wc({progressToken:n.optional(),"io.modelcontextprotocol/related-task":l.optional()}),d=X({_meta:u.optional()}),f=d.extend({task:c.optional()}),p=X({_meta:u.optional()}),m=X({method:q(),params:p.loose().optional()}),h=X({src:q(),mimeType:q().optional(),sizes:Y(q()).optional(),theme:Pc([`light`,`dark`]).optional()}),g=X({icons:Y(h).optional()}),_=X({name:q(),title:q().optional()}),v=_.extend({..._.shape,...g.shape,version:q(),websiteUrl:q().optional(),description:q().optional()}),y=ul(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Ac(X({form:Ac(X({applyDefaults:dc().optional()}),t).optional(),url:t.optional()}),t.optional())),b=wc({list:t.optional(),cancel:t.optional(),requests:wc({sampling:wc({createMessage:t.optional()}).optional(),elicitation:wc({create:t.optional()}).optional()}).optional()}),x=wc({list:t.optional(),cancel:t.optional(),requests:wc({tools:wc({call:t.optional()}).optional()}).optional()}),S=X({experimental:Mc(q(),t).optional(),sampling:X({context:t.optional(),tools:t.optional()}).optional(),elicitation:y.optional(),roots:X({listChanged:dc().optional()}).optional(),tasks:b.optional(),extensions:Mc(q(),t).optional()}),C=X({experimental:Mc(q(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:X({listChanged:dc().optional()}).optional(),resources:X({subscribe:dc().optional(),listChanged:dc().optional()}).optional(),tools:X({listChanged:dc().optional()}).optional(),tasks:x.optional(),extensions:Mc(q(),t).optional()}),w=X({progress:J(),total:zc(J()),message:zc(q())}),T=X({...p.shape,...w.shape,progressToken:n}),E=m.extend({method:Z(`notifications/progress`),params:T}),D=p.extend({level:o,logger:q().optional(),data:yc()}),O=m.extend({method:Z(`notifications/message`),params:D}),k=X({uri:q(),mimeType:zc(q()),_meta:Mc(q(),yc()).optional()}),A=k.extend({text:q()}),j=k.extend({blob:s}),M=X({audience:Y(a).optional(),priority:J().min(0).max(1).optional(),lastModified:pl({offset:!0}).optional()}),N=X({..._.shape,...g.shape,uri:q(),description:zc(q()),mimeType:zc(q()),size:zc(J()),annotations:M.optional(),_meta:zc(wc({}))}),P=X({..._.shape,...g.shape,uriTemplate:q(),description:zc(q()),mimeType:zc(q()),annotations:M.optional(),_meta:zc(wc({}))}),F=m.extend({method:Z(`notifications/resources/list_changed`),params:p.optional()}),I=p.extend({uri:q()}),ee=m.extend({method:Z(`notifications/resources/updated`),params:I}),L=X({name:q(),description:zc(q()),required:zc(dc())}),R=X({..._.shape,...g.shape,description:zc(q()),arguments:zc(Y(L)),_meta:zc(wc({}))}),z=m.extend({method:Z(`notifications/prompts/list_changed`),params:p.optional()}),te=X({type:Z(`text`),text:q(),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),ne=X({type:Z(`image`),data:s,mimeType:q(),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),re=X({type:Z(`audio`),data:s,mimeType:q(),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),B=X({type:Z(`tool_use`),name:q(),id:q(),input:Mc(q(),yc()),_meta:Mc(q(),yc()).optional()}),ie=X({type:Z(`resource`),resource:Ec([A,j]),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),ae=N.extend({type:Z(`resource_link`)}),oe=Ec([te,ne,re,ae,ie]),se=X({role:a,content:oe}),ce=X({title:q().optional(),readOnlyHint:dc().optional(),destructiveHint:dc().optional(),idempotentHint:dc().optional(),openWorldHint:dc().optional()}),V=m.extend({method:Z(`notifications/tools/list_changed`),params:p.optional()}),H=X({name:q().optional()}),le=X({hints:Y(H).optional(),costPriority:J().min(0).max(1).optional(),speedPriority:J().min(0).max(1).optional(),intelligencePriority:J().min(0).max(1).optional()}),ue=X({mode:Pc([`auto`,`required`,`none`]).optional()}),de=X({type:Z(`boolean`),title:q().optional(),description:q().optional(),default:dc().optional()}),fe=X({type:Z(`string`),title:q().optional(),description:q().optional(),minLength:J().optional(),maxLength:J().optional(),format:Pc([`email`,`uri`,`date`,`date-time`]).optional(),default:q().optional()}),pe=X({type:Pc([`number`,`integer`]),title:q().optional(),description:q().optional(),minimum:J().optional(),maximum:J().optional(),default:J().optional()}),me=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),default:q().optional()}),he=X({type:Z(`string`),title:q().optional(),description:q().optional(),oneOf:Y(X({const:q(),title:q()})),default:q().optional()}),U=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),enumNames:Y(q()).optional(),default:q().optional()}),ge=Ec([me,he]),W=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({type:Z(`string`),enum:Y(q())}),default:Y(q()).optional()}),G=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({anyOf:Y(X({const:q(),title:q()}))}),default:Y(q()).optional()}),_e=Ec([W,G]),ve=Ec([U,ge,_e]),ye=Ec([ve,de,fe,pe]),be=f.extend({mode:Z(`form`).optional(),message:q(),requestedSchema:X({type:Z(`object`),properties:Mc(q(),ye),required:Y(q()).optional()}).catchall(yc())}),xe=X({type:Z(`ref/resource`),uri:q()}),Se=X({type:Z(`ref/prompt`),name:q()}),Ce=X({uri:q().startsWith(`file://`),name:q().optional(),_meta:Mc(q(),yc()).optional()}),we=S.shape,Te=X({experimental:we.experimental,sampling:we.sampling,elicitation:we.elicitation,roots:we.roots,extensions:we.extensions}),Ee=C.shape,De=X({experimental:Ee.experimental,logging:Ee.logging,completions:Ee.completions,prompts:Ee.prompts,resources:Ee.resources,tools:Ee.tools,extensions:Ee.extensions}),Oe=wc({progressToken:n.optional(),[aC]:q(),[oC]:v.optional(),[cC]:Te,[uC]:o.optional()}),ke=X({..._.shape,...g.shape,description:q().optional(),inputSchema:wc({$schema:q().optional(),type:Z(`object`)}),outputSchema:wc({$schema:q().optional()}).optional(),annotations:ce.optional(),_meta:Mc(q(),yc()).optional()}),Ae=X({type:Z(`tool_result`),toolUseId:q(),content:Y(oe),structuredContent:yc().optional(),isError:dc().optional(),_meta:Mc(q(),yc()).optional()}),je=Ec([te,ne,re,B,Ae]),Me=X({role:a,content:Ec([je,Y(je)]),_meta:Mc(q(),yc()).optional()}),Ne=q(),Pe=wc({[sC]:v.optional().catch(void 0)}),Fe=Pe.optional();function Ie(e){return wc({_meta:Fe,resultType:Ne.default(`complete`),...e})}let Le=Ie({}),Re=Ie({nextCursor:r.optional()}),ze=Ie({content:Y(oe),structuredContent:yc().optional(),isError:dc().optional()}),Be=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),tools:Y(ke),nextCursor:r.optional()}),Ve=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),prompts:Y(R),nextCursor:r.optional()}),He=Ie({description:q().optional(),messages:Y(se)}),Ue=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resources:Y(N),nextCursor:r.optional()}),We=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resourceTemplates:Y(P),nextCursor:r.optional()}),Ge=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),contents:Y(Ec([A,j]))}),Ke=Ie({completion:X({values:Y(q()).max(100),total:J().int().optional(),hasMore:dc().optional()}).loose()}),K=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`])}),qe=Ie({ttlMs:J().int().min(0).catch(0),cacheScope:Pc([`public`,`private`]).catch(`private`),supportedVersions:Y(q()),capabilities:De,instructions:q().optional()}),Je=X({messages:Y(Me),modelPreferences:le.optional(),systemPrompt:q().optional(),includeContext:Pc([`none`,`thisServer`,`allServers`]).optional(),temperature:J().optional(),maxTokens:J().int(),stopSequences:Y(q()).optional(),metadata:t.optional(),tools:Y(ke).optional(),toolChoice:ue.optional()}),Ye=X({method:Z(`sampling/createMessage`),params:Je}),Xe=X({method:Z(`roots/list`),params:X({_meta:Mc(q(),yc()).optional()}).optional()}),Ze=X({...Me.shape,model:q(),stopReason:q().optional()}),Qe=X({roots:Y(Ce)}),$e=X({action:Pc([`accept`,`decline`,`cancel`]),content:Mc(q(),Ec([q(),J(),dc(),Y(q())])).optional()}),et=X({mode:Z(`url`),message:q(),url:q().url()}),tt=Ec([be,et]),nt=X({method:Z(`elicitation/create`),params:tt}),rt=Ec([Ye,Xe,nt]),it=Ec([Ze,Qe,$e]),at=Mc(q(),rt),ot=Mc(q(),it),st=Ie({inputRequests:at.optional(),requestState:q().optional()}),ct={inputResponses:ot.optional(),requestState:q().optional()},lt=X({_meta:Oe,...ct}),ut=wc({progressToken:n.optional()});function dt(e,t){return X({method:Z(e),params:X({_meta:Oe,...t})})}function ft(e,t){return X({method:Z(e),params:X({_meta:ut.optional(),...t}).optional()})}let pt={name:q(),arguments:Mc(q(),yc()).optional(),...ct},mt={cursor:r.optional()},ht=dt(`tools/call`,pt),gt=dt(`tools/list`,mt),_t=dt(`prompts/list`,mt),vt=dt(`prompts/get`,{name:q(),arguments:Mc(q(),q()).optional(),...ct}),yt=dt(`resources/list`,mt),bt=dt(`resources/templates/list`,mt),xt=dt(`resources/read`,{uri:q(),...ct}),St={ref:Ec([Se,xe]),argument:X({name:q(),value:q()}),context:X({arguments:Mc(q(),q()).optional()}).optional()},Ct=dt(`completion/complete`,St),wt=dt(`server/discover`,{}),Tt=X({toolsListChanged:dc().optional(),promptsListChanged:dc().optional(),resourcesListChanged:dc().optional(),resourceSubscriptions:Y(q()).optional()}),Et={notifications:Tt},Dt=dt(`subscriptions/listen`,Et),Ot=Pe.extend({"io.modelcontextprotocol/subscriptionId":i}),kt=wc({_meta:Ot,resultType:Ne.default(`complete`)}),At={"tools/call":ft(`tools/call`,pt),"tools/list":ft(`tools/list`,mt),"prompts/get":ft(`prompts/get`,{name:q(),arguments:Mc(q(),q()).optional()}),"prompts/list":ft(`prompts/list`,mt),"resources/list":ft(`resources/list`,mt),"resources/templates/list":ft(`resources/templates/list`,mt),"resources/read":ft(`resources/read`,{uri:q()}),"completion/complete":ft(`completion/complete`,St),"server/discover":ft(`server/discover`,{}),"subscriptions/listen":ft(`subscriptions/listen`,Et)};function jt(e){return wc({_meta:Fe,...e})}let Mt={"tools/call":jt({content:Y(oe),structuredContent:yc().optional(),isError:dc().optional()}),"tools/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),tools:Y(ke),nextCursor:r.optional()}),"prompts/get":jt({description:q().optional(),messages:Y(se)}),"prompts/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),prompts:Y(R),nextCursor:r.optional()}),"resources/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resources:Y(N),nextCursor:r.optional()}),"resources/templates/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resourceTemplates:Y(P),nextCursor:r.optional()}),"resources/read":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),contents:Y(Ec([A,j]))}),"completion/complete":jt({completion:X({values:Y(q()).max(100),total:J().int().optional(),hasMore:dc().optional()}).loose()}),"server/discover":jt({ttlMs:J().int().min(0).catch(0),cacheScope:Pc([`public`,`private`]).catch(`private`),supportedVersions:Y(q()),capabilities:De,instructions:q().optional()}),"subscriptions/listen":jt({})},Nt=wc({"io.modelcontextprotocol/subscriptionId":i.optional()}),Pt=X({method:Z(`notifications/subscriptions/acknowledged`),params:X({_meta:Nt.optional(),notifications:Tt})}),Ft=X({_meta:Nt.optional(),requestId:i,reason:q().optional()}),It=X({method:Z(`notifications/cancelled`),params:Ft}),Lt={"notifications/cancelled":It,"notifications/progress":E,"notifications/message":O,"notifications/resources/updated":ee,"notifications/resources/list_changed":F,"notifications/tools/list_changed":V,"notifications/prompts/list_changed":z,"notifications/subscriptions/acknowledged":Pt},Rt=e=>X({jsonrpc:Z(`2.0`),id:Ec([q(),J().int()]),result:e}).strict();return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:n,CursorSchema:r,RequestIdSchema:i,RoleSchema:a,LoggingLevelSchema:o,TaskMetadataSchema:c,RelatedTaskMetadataSchema:l,RequestMetaSchema:u,BaseRequestParamsSchema:d,TaskAugmentedRequestParamsSchema:f,NotificationsParamsSchema:p,NotificationSchema:m,IconSchema:h,IconsSchema:g,BaseMetadataSchema:_,ImplementationSchema:v,ClientTasksCapabilitySchema:b,ServerTasksCapabilitySchema:x,ClientCapabilitiesSchema:S,ServerCapabilitiesSchema:C,ProgressSchema:w,ProgressNotificationParamsSchema:T,ProgressNotificationSchema:E,LoggingMessageNotificationParamsSchema:D,LoggingMessageNotificationSchema:O,ResourceContentsSchema:k,TextResourceContentsSchema:A,BlobResourceContentsSchema:j,AnnotationsSchema:M,ResourceSchema:N,ResourceTemplateSchema:P,ResourceListChangedNotificationSchema:F,ResourceUpdatedNotificationParamsSchema:I,ResourceUpdatedNotificationSchema:ee,PromptArgumentSchema:L,PromptSchema:R,PromptListChangedNotificationSchema:z,TextContentSchema:te,ImageContentSchema:ne,AudioContentSchema:re,ToolUseContentSchema:B,EmbeddedResourceSchema:ie,ResourceLinkSchema:ae,ContentBlockSchema:oe,PromptMessageSchema:se,ToolAnnotationsSchema:ce,ToolListChangedNotificationSchema:V,ModelHintSchema:H,ModelPreferencesSchema:le,ToolChoiceSchema:ue,BooleanSchemaSchema:de,StringSchemaSchema:fe,NumberSchemaSchema:pe,UntitledSingleSelectEnumSchemaSchema:me,TitledSingleSelectEnumSchemaSchema:he,LegacyTitledEnumSchemaSchema:U,SingleSelectEnumSchemaSchema:ge,UntitledMultiSelectEnumSchemaSchema:W,TitledMultiSelectEnumSchemaSchema:G,MultiSelectEnumSchemaSchema:_e,EnumSchemaSchema:ve,PrimitiveSchemaDefinitionSchema:ye,ElicitRequestFormParamsSchema:be,ResourceTemplateReferenceSchema:xe,PromptReferenceSchema:Se,RootSchema:Ce,ClientCapabilities2026Schema:Te,ServerCapabilities2026Schema:De,RequestMetaEnvelopeSchema:Oe,ToolSchema:ke,ToolResultContentSchema:Ae,SamplingMessageContentBlockSchema:je,SamplingMessageSchema:Me,ResultTypeSchema:Ne,ResultMetaSchema:Pe,ResultSchema:Le,PaginatedResultSchema:Re,CallToolResultSchema:ze,ListToolsResultSchema:Be,ListPromptsResultSchema:Ve,GetPromptResultSchema:He,ListResourcesResultSchema:Ue,ListResourceTemplatesResultSchema:We,ReadResourceResultSchema:Ge,CompleteResultSchema:Ke,CacheableResultSchema:K,DiscoverResultSchema:qe,CreateMessageRequestParamsSchema:Je,CreateMessageRequestSchema:Ye,ListRootsRequestSchema:Xe,CreateMessageResultSchema:Ze,ListRootsResultSchema:Qe,ElicitResultSchema:$e,ElicitRequestURLParamsSchema:et,ElicitRequestParamsSchema:tt,ElicitRequestSchema:nt,InputRequestSchema:rt,InputResponseSchema:it,InputRequestsSchema:at,InputResponsesSchema:ot,InputRequiredResultSchema:st,InputResponseRequestParamsSchema:lt,CallToolRequestSchema:ht,ListToolsRequestSchema:gt,ListPromptsRequestSchema:_t,GetPromptRequestSchema:vt,ListResourcesRequestSchema:yt,ListResourceTemplatesRequestSchema:bt,ReadResourceRequestSchema:xt,CompleteRequestSchema:Ct,DiscoverRequestSchema:wt,SubscriptionFilterSchema:Tt,SubscriptionsListenRequestSchema:Dt,SubscriptionsListenResultMetaSchema:Ot,SubscriptionsListenResultSchema:kt,dispatchRequestSchemas:At,dispatchResultSchemas:Mt,NotificationMetaSchema:Nt,SubscriptionsAcknowledgedNotificationSchema:Pt,CancelledNotificationParamsSchema:Ft,CancelledNotificationSchema:It,notificationSchemas2026:Lt,JSONRPCResultResponseSchema:Rt(Le),CallToolResultResponseSchema:Rt(Ec([ze,st])),ListToolsResultResponseSchema:Rt(Be),ListPromptsResultResponseSchema:Rt(Ve),GetPromptResultResponseSchema:Rt(Ec([He,st])),ListResourcesResultResponseSchema:Rt(Ue),ListResourceTemplatesResultResponseSchema:Rt(We),ReadResourceResultResponseSchema:Rt(Ec([Ge,st])),CompleteResultResponseSchema:Rt(Ke),DiscoverResultResponseSchema:Rt(qe)}}var pD;function mD(){return pD??=fD()}var hD=[`tools/list`,`prompts/list`,`resources/list`,`resources/templates/list`,`resources/read`,`server/discover`];function gD(e){return hD.includes(e)}var _D=Symbol(`modelcontextprotocol.resultCacheHintFallback`);function vD(e){return e[_D]}function yD(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function bD(e){return e===`public`||e===`private`}var xD=function(e){return e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.ResourceNotFound=-32002]=`ResourceNotFound`,e[e.MissingRequiredClientCapability=-32021]=`MissingRequiredClientCapability`,e[e.UnsupportedProtocolVersion=-32022]=`UnsupportedProtocolVersion`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`,e}({}),SD=class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.ProtocolError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`ProtocolError`,ME(this,new.target)}static fromError(t,n,r){if(t===xD.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new wD(e.elicitations,n)}if(t===xD.UnsupportedProtocolVersion&&r){let e=r;if(Array.isArray(e.supported)&&typeof e.requested==`string`)return new TD({supported:e.supported,requested:e.requested},n)}if(t===xD.InvalidParams||t===xD.ResourceNotFound){let e=r;if(typeof e?.uri==`string`&&(t===xD.ResourceNotFound||Object.keys(e).length===1))return new CD(e.uri,n)}if(t===xD.MissingRequiredClientCapability&&r){let e=r;if(e.requiredCapabilities!==null&&typeof e.requiredCapabilities==`object`&&!Array.isArray(e.requiredCapabilities))return new ED({requiredCapabilities:e.requiredCapabilities},n)}return new e(t,n,r)}},CD=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.ResourceNotFoundError`})}constructor(e,t=`Resource not found: ${e}`){super(xD.InvalidParams,t,{uri:e})}get uri(){return this.data.uri}},wD=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.UrlElicitationRequiredError`})}constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(xD.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}},TD=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.UnsupportedProtocolVersionError`})}constructor(e,t=`Unsupported protocol version: ${e.requested}`){super(xD.UnsupportedProtocolVersion,t,e)}get supported(){return this.data.supported}get requested(){return this.data.requested}},ED=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.MissingRequiredClientCapabilityError`})}constructor(e,t=`Missing required client capabilities: ${Object.keys(e.requiredCapabilities).join(`, `)}`){super(xD.MissingRequiredClientCapability,t,e)}get requiredCapabilities(){return this.data.requiredCapabilities}},DD=0,OD=`private`,kD=[`tools/call`,`prompts/get`,`resources/read`];function AD(e,t){let n=t.resultType;if(n===void 0)return{...t,resultType:`complete`};if(n===`complete`||kD.includes(e))return t;throw new SD(xD.InternalError,`Handler for ${e} returned resultType '${String(n)}', but results of ${e} only support 'complete' on protocol revision 2026-07-28`)}function jD(e,t){let n=vD(t);if(t.resultType!==`complete`||!gD(e))return n===void 0?t:ID(t);let r=t,i=yD(r.ttlMs)?r.ttlMs:PD(n),a=bD(r.cacheScope)?r.cacheScope:FD(n),o={...r,ttlMs:i,cacheScope:a};return delete o[_D],o}function MD(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ND(e,t){if(t===void 0)return e;let n=e._meta;return n===void 0?{...e,_meta:{[sC]:t}}:!MD(n)||n[`io.modelcontextprotocol/serverInfo`]!==void 0?e:{...e,_meta:{...n,[sC]:t}}}function PD(e){return e!==void 0&&yD(e.ttlMs)?e.ttlMs:DD}function FD(e){return e!==void 0&&bD(e.cacheScope)?e.cacheScope:OD}function ID(e){let t={...e};return delete t[_D],t}var LD=[`elicitation/create`,`sampling/createMessage`,`roots/list`],RD;function zD(){if(RD)return RD;let e=mD();return RD={request:{"elicitation/create":X({method:Z(`elicitation/create`),params:e.ElicitRequestParamsSchema}),"sampling/createMessage":X({method:Z(`sampling/createMessage`),params:e.CreateMessageRequestParamsSchema}),"roots/list":X({method:Z(`roots/list`),params:wc({}).optional()})},response:{"elicitation/create":e.ElicitResultSchema,"sampling/createMessage":e.CreateMessageResultSchema,"roots/list":e.ListRootsResultSchema}},RD}function BD(e){return LD.includes(e)}function VD(e){return BD(e)?zD().request[e]:void 0}function HD(e){return BD(e)?zD().response[e]:void 0}var UD={"tools/call":null,"tools/list":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"completion/complete":null,"server/discover":null,"subscriptions/listen":null},WD={"notifications/cancelled":null,"notifications/progress":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/subscriptions/acknowledged":null};function GD(e){return Object.prototype.hasOwnProperty.call(UD,e)}function KD(e){return Object.prototype.hasOwnProperty.call(WD,e)}function qD(e){return Object.prototype.hasOwnProperty.call(UD,e)}function JD(e){return GD(e)?mD().dispatchRequestSchemas[e]:void 0}function YD(e){return qD(e)?mD().dispatchResultSchemas[e]:void 0}function XD(e){return KD(e)?mD().notificationSchemas2026[e]:void 0}Object.keys(UD),Object.keys(WD);function ZD(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function QD(e,t){if(e===void 0)return{ok:!1,reason:`not-in-era`};let n=e.safeParse(t);return n.success?{ok:!0,value:n.data}:{ok:!1,reason:`invalid`,message:String(n.error)}}var $D={ok:!1,reason:`not-in-era`},eO=[aC,cC];function tO(e,t){let n=t,r=!1,i=()=>(r||=(n={...n},!0),n),a=t.tools;e===`tools/list`&&Array.isArray(a)&&a.some(e=>ZD(e)&&`execution`in e)&&(i().tools=a.map(e=>{if(!ZD(e)||!(`execution`in e))return e;let t={...e};return delete t.execution,t}));let o=t.capabilities;if(ZD(o)&&`tasks`in o){let e={...o};delete e.tasks,i().capabilities=e}return n}var nO={era:`2026-07-28`,hasRequestMethod:GD,hasNotificationMethod:KD,hasInputRequestMethod:e=>VD(e)!==void 0,validateRequest:(e,t)=>QD(JD(e),t),validateResult:(e,t)=>QD(YD(e),t),validateNotification:(e,t)=>QD(XD(e),t),validateInputRequest:(e,t)=>QD(VD(e),t),validateInputResponse:(e,t)=>QD(HD(e),t),samplingResultVariant:()=>$D,outboundEnvelope(e){return{[aC]:e.protocolVersion,[oC]:e.clientInfo,[cC]:e.clientCapabilities,...e.logLevel!==void 0&&{"io.modelcontextprotocol/logLevel":e.logLevel}}},validateEnvelopeMeta(e){let t=[];for(let n of eO)n in e||t.push({key:n,problem:`missing`});let n=mD().RequestMetaEnvelopeSchema.safeParse(e);if(!n.success)for(let e of n.error.issues){let n=e.path.map(String),r=n.length>0?n.join(`.`):`_meta`;n.length===1&&t.some(e=>e.key===r&&e.problem===`missing`)||t.push({key:r,problem:e.message})}return t},projectCallToolResult:e=>RE(e),inputRequestSchema:VD,decodeResult(e,t){if(!ZD(t))return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: not an object`,{method:e})};let n=t.resultType;if(n===void 0)return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: missing required resultType — servers implementing protocol revision 2026-07-28 MUST include it (the absent-means-complete bridge applies only to earlier-revision servers)`,{method:e,violation:`missing-resultType`})};if(typeof n!=`string`)return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: non-string resultType`,{method:e,resultType:n})};if(n===`input_required`){let n=t.inputRequests,r=ZD(n)?n:{},i=t.requestState,a=t._meta===void 0?void 0:mD().ResultMetaSchema.safeParse(t._meta),o=a?.success?a.data:void 0;return Object.keys(r).length===0&&typeof i!=`string`?{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: input_required carries neither inputRequests nor requestState (every input_required result must include at least one of the two)`,{method:e,violation:`input-required-missing-both`})}:{kind:`input_required`,inputRequests:r,...typeof i==`string`&&{requestState:i},...o!==void 0&&{_meta:o}}}if(n!==`complete`)return{kind:`invalid`,error:new FE(PE.UnsupportedResultType,`Unsupported result type '${n}' for ${e}`,{resultType:n,method:e})};let r=iO(),i=Object.hasOwn(r,e)?r[e]:void 0;if(i!==void 0){let n=i.safeParse(t);if(!n.success)return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: ${n.error}`,{method:e})}}let a={...t};return delete a.resultType,{kind:`complete`,result:a}},encodeResult(e,t,n){return ND(jD(e,AD(e,tO(e,t))),n)},encodeErrorCode:e=>e===-32002?-32602:e,checkInboundEnvelope(e){if(e.envelope===void 0)return`Request is missing the required _meta envelope for protocol revision 2026-07-28 (io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientCapabilities)`;let t=mD().RequestMetaEnvelopeSchema.safeParse(e.envelope);if(!t.success)return`Invalid _meta envelope for protocol revision 2026-07-28: ${t.error.issues.map(e=>e.message).join(`; `)}`}},rO;function iO(){if(rO)return rO;let e=mD();return rO={"tools/call":e.CallToolResultSchema,"tools/list":e.ListToolsResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"completion/complete":e.CompleteResultSchema,"server/discover":e.DiscoverResultSchema},rO}var aO=`2026-07-28`;function oO(e){return e!==void 0&&LE(e)?nO:dD}function sO(e){return e.revision===void 0?e.era===`modern`?nO.era:dD.era:oO(e.revision).era}function cO(e){return uO.some(t=>t.hasRequestMethod(e))}function lO(e){return uO.some(t=>t.hasNotificationMethod(e))}var uO=[dD,nO],dO=eC({AnnotationsSchema:()=>lw,AudioContentSchema:()=>Hw,BaseMetadataSchema:()=>RC,BaseRequestParamsSchema:()=>yC,BlobResourceContentsSchema:()=>sw,BooleanSchemaSchema:()=>CT,CallToolRequestParamsSchema:()=>rT,CallToolRequestSchema:()=>iT,CallToolResultSchema:()=>tT,CancelTaskRequestSchema:()=>lE,CancelTaskResultSchema:()=>uE,CancelledNotificationParamsSchema:()=>PC,CancelledNotificationSchema:()=>FC,ClientCapabilitiesSchema:()=>UC,ClientNotificationSchema:()=>fE,ClientRequestSchema:()=>dE,ClientResultSchema:()=>pE,ClientTasksCapabilitySchema:()=>VC,CompatibilityCallToolResultSchema:()=>nT,CompleteRequestParamsSchema:()=>WT,CompleteRequestSchema:()=>GT,CompleteResultSchema:()=>KT,ContentBlockSchema:()=>Kw,CreateMessageRequestParamsSchema:()=>yT,CreateMessageRequestSchema:()=>bT,CreateMessageResultSchema:()=>xT,CreateMessageResultWithToolsSchema:()=>ST,CreateTaskResultSchema:()=>eE,CursorSchema:()=>hC,DiscoverRequestSchema:()=>YC,DiscoverResultSchema:()=>XC,ElicitRequestFormParamsSchema:()=>FT,ElicitRequestParamsSchema:()=>LT,ElicitRequestSchema:()=>RT,ElicitRequestURLParamsSchema:()=>IT,ElicitResultSchema:()=>VT,ElicitationCompleteNotificationParamsSchema:()=>zT,ElicitationCompleteNotificationSchema:()=>BT,EmbeddedResourceSchema:()=>Ww,EmptyResultSchema:()=>NC,EnumSchemaSchema:()=>NT,GetPromptRequestParamsSchema:()=>Rw,GetPromptRequestSchema:()=>zw,GetPromptResultSchema:()=>Jw,GetTaskPayloadRequestSchema:()=>aE,GetTaskPayloadResultSchema:()=>oE,GetTaskRequestSchema:()=>rE,GetTaskResultSchema:()=>iE,IconSchema:()=>IC,IconsSchema:()=>LC,ImageContentSchema:()=>Vw,ImplementationSchema:()=>zC,InitializeRequestParamsSchema:()=>WC,InitializeRequestSchema:()=>GC,InitializeResultSchema:()=>qC,InitializedNotificationSchema:()=>JC,JSONArraySchema:()=>pC,JSONObjectSchema:()=>fC,JSONRPCErrorResponseSchema:()=>AC,JSONRPCMessageSchema:()=>jC,JSONRPCNotificationSchema:()=>OC,JSONRPCRequestSchema:()=>DC,JSONRPCResponseSchema:()=>MC,JSONRPCResultResponseSchema:()=>kC,JSONValueSchema:()=>dC,LegacyTitledEnumSchemaSchema:()=>OT,ListChangedOptionsBaseSchema:()=>oT,ListPromptsRequestSchema:()=>Iw,ListPromptsResultSchema:()=>Lw,ListResourceTemplatesRequestSchema:()=>mw,ListResourceTemplatesResultSchema:()=>hw,ListResourcesRequestSchema:()=>fw,ListResourcesResultSchema:()=>pw,ListRootsRequestSchema:()=>JT,ListRootsResultSchema:()=>YT,ListTasksRequestSchema:()=>sE,ListTasksResultSchema:()=>cE,ListToolsRequestSchema:()=>$w,ListToolsResultSchema:()=>eT,LoggingLevelSchema:()=>sT,LoggingMessageNotificationParamsSchema:()=>uT,LoggingMessageNotificationSchema:()=>dT,ModelHintSchema:()=>fT,ModelPreferencesSchema:()=>pT,MultiSelectEnumSchemaSchema:()=>MT,NotificationSchema:()=>CC,NotificationsParamsSchema:()=>SC,NumberSchemaSchema:()=>TT,PaginatedRequestParamsSchema:()=>tw,PaginatedRequestSchema:()=>nw,PaginatedResultSchema:()=>rw,PingRequestSchema:()=>ZC,PrimitiveSchemaDefinitionSchema:()=>PT,ProgressNotificationParamsSchema:()=>$C,ProgressNotificationSchema:()=>ew,ProgressSchema:()=>QC,ProgressTokenSchema:()=>mC,PromptArgumentSchema:()=>Pw,PromptListChangedNotificationSchema:()=>Yw,PromptMessageSchema:()=>qw,PromptReferenceSchema:()=>UT,PromptSchema:()=>Fw,ReadResourceRequestParamsSchema:()=>_w,ReadResourceRequestSchema:()=>vw,ReadResourceResultSchema:()=>yw,RelatedTaskMetadataSchema:()=>_C,RequestIdSchema:()=>EC,RequestMetaSchema:()=>vC,RequestSchema:()=>xC,ResourceContentsSchema:()=>iw,ResourceLinkSchema:()=>Gw,ResourceListChangedNotificationSchema:()=>bw,ResourceRequestParamsSchema:()=>gw,ResourceSchema:()=>uw,ResourceTemplateReferenceSchema:()=>HT,ResourceTemplateSchema:()=>dw,ResourceUpdatedNotificationParamsSchema:()=>Mw,ResourceUpdatedNotificationSchema:()=>Nw,ResultMetaObjectSchema:()=>wC,ResultSchema:()=>TC,RoleSchema:()=>cw,RootSchema:()=>qT,RootsListChangedNotificationSchema:()=>XT,SamplingContentSchema:()=>gT,SamplingMessageContentBlockSchema:()=>_T,SamplingMessageSchema:()=>vT,ServerCapabilitiesSchema:()=>KC,ServerNotificationSchema:()=>hE,ServerRequestSchema:()=>mE,ServerResultSchema:()=>gE,ServerTasksCapabilitySchema:()=>HC,SetLevelRequestParamsSchema:()=>cT,SetLevelRequestSchema:()=>lT,SingleSelectEnumSchemaSchema:()=>kT,StringSchemaSchema:()=>wT,SubscribeRequestParamsSchema:()=>xw,SubscribeRequestSchema:()=>Sw,SubscriptionFilterSchema:()=>Tw,SubscriptionsAcknowledgedNotificationParamsSchema:()=>Ow,SubscriptionsAcknowledgedNotificationSchema:()=>kw,SubscriptionsListenRequestParamsSchema:()=>Ew,SubscriptionsListenRequestSchema:()=>Dw,SubscriptionsListenResultMetaSchema:()=>Aw,SubscriptionsListenResultSchema:()=>jw,TaskAugmentedRequestParamsSchema:()=>bC,TaskCreationParamsSchema:()=>ZT,TaskMetadataSchema:()=>gC,TaskSchema:()=>$T,TaskStatusNotificationParamsSchema:()=>tE,TaskStatusNotificationSchema:()=>nE,TaskStatusSchema:()=>QT,TextContentSchema:()=>Bw,TextResourceContentsSchema:()=>aw,TitledMultiSelectEnumSchemaSchema:()=>jT,TitledSingleSelectEnumSchemaSchema:()=>DT,ToolAnnotationsSchema:()=>Xw,ToolChoiceSchema:()=>mT,ToolExecutionSchema:()=>Zw,ToolListChangedNotificationSchema:()=>aT,ToolResultContentSchema:()=>hT,ToolSchema:()=>Qw,ToolUseContentSchema:()=>Uw,UnsubscribeRequestParamsSchema:()=>Cw,UnsubscribeRequestSchema:()=>ww,UntitledMultiSelectEnumSchemaSchema:()=>AT,UntitledSingleSelectEnumSchemaSchema:()=>ET}),fO=e=>DC.safeParse(e).success,pO=e=>OC.safeParse(e).success,mO=e=>kC.safeParse(e).success,hO=e=>AC.safeParse(e).success;xD.InvalidRequest,xD.UnsupportedProtocolVersion,xD.InvalidParams,xD.MethodNotFound,xD.InvalidParams,xD.MissingRequiredClientCapability,xD.ParseError,xD.InvalidRequest,xD.MethodNotFound,xD.UnsupportedProtocolVersion,xD.MissingRequiredClientCapability;function gO(e,t){return bs(e,t)}function _O(e){return new Set(e.flatMap(e=>Object.keys(e.shape)))}function vO(e){if(e==null)return!1;let t=typeof e;return t!==`object`&&t!==`function`||!(`~standard`in e)?!1:typeof e[`~standard`]?.validate==`function`}var yO=!1,bO=`draft-2020-12`;function xO(e,t=`input`){let n=e[`~standard`],r;if(n.jsonSchema)r=n.jsonSchema[t]({target:bO});else if(n.vendor===`zod`){if(!(`_zod`in e))throw Error(`Schema appears to be from zod 3, which the SDK cannot convert to JSON Schema. Upgrade to zod >=4.2.0, or wrap your JSON Schema with fromJsonSchema().`);yO||(yO=!0,console.warn("[mcp-sdk] Your zod version does not implement `~standard.jsonSchema` (added in zod 4.2.0). Falling back to z.toJSONSchema(). Upgrade to zod >=4.2.0 to silence this warning.")),r=ms(e,{target:bO,io:t})}else throw Error(`Schema library "${n.vendor}" does not implement StandardJSONSchemaV1 (\`~standard.jsonSchema\`). Upgrade to a version that does, or wrap your JSON Schema with fromJsonSchema().`);if(t===`output`)return r.type===void 0&&SO(r)?{type:`object`,...r}:r;if(r.type!==void 0&&r.type!==`object`)throw Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(r.type)}). Wrap your schema in z.object({...}) or equivalent.`);return{type:`object`,...r}}function SO(e){if(`properties`in e||`patternProperties`in e||`additionalProperties`in e||`required`in e)return!0;for(let t of[`oneOf`,`anyOf`,`allOf`]){let n=e[t];if(Array.isArray(n)&&n.length>0)return n.every(e=>typeof e==`object`&&!!e&&(e.type===`object`||SO(e)))}return!1}function CO(e){return e.path?.length?`${e.path.map(e=>String(typeof e==`object`?e.key:e)).join(`.`)}: ${e.message}`:e.message}async function wO(e,t){let n=await e[`~standard`].validate(t);return n.issues&&n.issues.length>0?{success:!1,error:n.issues.map(e=>CO(e)).join(`, `)}:{success:!0,data:n.value}}function TO(e){let t=ms(e,{target:bO,io:`input`});return typeof t.pattern==`string`?t.pattern:void 0}var EO=/\\\.\\d\{(\d+)\}/;function DO(e){let t=EO.exec(e),n=[void 0,-1,0];return t&&n.push(Number(t[1])),[!1,!0].flatMap(e=>[!1,!0].flatMap(t=>n.map(n=>pl({local:e,offset:t,precision:n}))))}function OO(e,t){let n;switch(e){case`email`:n=[Vs()];break;case`uri`:n=[Gs()];break;case`date`:n=[ml()];break;case`date-time`:n=DO(t)}return new Set(n.map(e=>TO(e)).filter(e=>e!==void 0))}function kO(e,t,n){return n!==`zod`||OO(e,t).has(t)}function AO(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function jO(e){try{return xO(e,`input`)}catch(e){let t=e instanceof Error?e.message:String(e);throw new SD(xD.InvalidParams,`Elicitation requestedSchema must describe an object with flat primitive properties: ${t}`)}}var MO=new Set([`$comment`,`deprecated`,`description`,`examples`,`readOnly`,`title`,`writeOnly`]);function NO(e){return MO.has(e)||e.startsWith(`x-`)}var PO=new Set([`$schema`,...Object.keys(FT.shape.requestedSchema.shape)]),FO={string:_O([wT,ET,DT,OT]),number:_O([TT]),integer:_O([TT]),boolean:_O([CT]),array:_O([AT,jT])},IO=new Set(wT.shape.format.unwrap().options);function LO(e,t,n,r){if(!AO(e))return e;let i=typeof e.type==`string`&&Object.hasOwn(FO,e.type)?FO[e.type]:void 0;if(i===void 0)return e;let a={};for(let[o,s]of Object.entries(e))i.has(o)||NO(o)?a[o]=s:o===`pattern`&&e.type===`string`&&typeof e.format==`string`?IO.has(e.format)?(typeof s!=`string`||!kO(e.format,s,n))&&r.push(`${t}.${o}`):a[o]=s:r.push(`${t}.${o}`);return a}function RO(e,t){let n={},r=[];for(let[i,a]of Object.entries(e))i===`properties`&&AO(a)?n[i]=Object.fromEntries(Object.entries(a).map(([e,n])=>[e,LO(n,`properties.${e}`,t,r)])):PO.has(i)?n[i]=a:NO(i)||r.push(i);if(r.length>0)throw new SD(xD.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${r.join(`, `)}`);return n}function zO(e,t){if(!AO(e.properties))return t;let n=Object.entries(e.properties).filter(([,e])=>!gO(PT,e).success).map(([e])=>`properties.${e}`);return n.length>0?n.join(`, `):t}function BO(e,t,n=``){return Array.isArray(e)&&Array.isArray(t)?e.flatMap((e,r)=>BO(e,t[r],`${n}[${r}]`)):!AO(e)||!AO(t)?[]:Object.entries(e).flatMap(([e,r])=>{let i=n?`${n}.${e}`:e;return Object.prototype.hasOwnProperty.call(t,e)?BO(r,t[e],i):NO(e)?[]:[i]})}function VO(e){if(!vO(e.requestedSchema))return{...e,mode:`form`,requestedSchema:e.requestedSchema};let t=e.requestedSchema[`~standard`].vendor,n=RO(jO(e.requestedSchema),t),r=gO(FT.shape.requestedSchema,n);if(!r.success)throw new SD(xD.InvalidParams,`Elicitation requestedSchema only supports flat primitive properties (string, number, integer, boolean, and string enums): ${zO(n,r.error.message)}`);let i=BO(n,r.data);if(i.length>0)throw new SD(xD.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${i.join(`, `)}`);let a=(r.data.required??[]).filter(e=>!Object.prototype.hasOwnProperty.call(r.data.properties,e));if(a.length>0)throw new SD(xD.InvalidParams,`Elicitation requestedSchema lists required properties that are not defined in properties: ${a.join(`, `)}`);return{...e,mode:`form`,requestedSchema:r.data}}function HO(e){let t=e.inputRequests!==void 0&&Object.keys(e.inputRequests).length>0,n=typeof e.requestState==`string`;if(!t&&!n)throw TypeError(`inputRequired() requires at least one of inputRequests (with at least one entry) or requestState (spec: every InputRequiredResult MUST include at least one of the two)`);return{resultType:`input_required`,...e.inputRequests!==void 0&&{inputRequests:e.inputRequests},...e.requestState!==void 0&&{requestState:e.requestState}}}Object.assign(HO,{elicit(e){try{return{method:`elicitation/create`,params:VO(e)}}catch(e){throw e instanceof SD?TypeError(e.message,{cause:e}):e}},elicitUrl(e){return{method:`elicitation/create`,params:{...e,mode:`url`}}},createMessage(e){return{method:`sampling/createMessage`,params:e}},listRoots(){return{method:`roots/list`}}});var UO=`AnnotationsSchema.AudioContentSchema.BaseMetadataSchema.BlobResourceContentsSchema.BooleanSchemaSchema.CallToolRequestSchema.CallToolRequestParamsSchema.CallToolResultSchema.CancelledNotificationSchema.CancelledNotificationParamsSchema.CancelTaskRequestSchema.CancelTaskResultSchema.ClientCapabilitiesSchema.ClientNotificationSchema.ClientRequestSchema.ClientResultSchema.CompatibilityCallToolResultSchema.CompleteRequestSchema.CompleteRequestParamsSchema.CompleteResultSchema.ContentBlockSchema.CreateMessageRequestSchema.CreateMessageRequestParamsSchema.CreateMessageResultSchema.CreateMessageResultWithToolsSchema.CreateTaskResultSchema.CursorSchema.DiscoverRequestSchema.DiscoverResultSchema.ElicitationCompleteNotificationSchema.ElicitationCompleteNotificationParamsSchema.ElicitRequestSchema.ElicitRequestFormParamsSchema.ElicitRequestParamsSchema.ElicitRequestURLParamsSchema.ElicitResultSchema.EmbeddedResourceSchema.EmptyResultSchema.EnumSchemaSchema.GetPromptRequestSchema.GetPromptRequestParamsSchema.GetPromptResultSchema.GetTaskPayloadRequestSchema.GetTaskPayloadResultSchema.GetTaskRequestSchema.GetTaskResultSchema.IconSchema.IconsSchema.ImageContentSchema.ImplementationSchema.InitializedNotificationSchema.InitializeRequestSchema.InitializeRequestParamsSchema.InitializeResultSchema.JSONArraySchema.JSONObjectSchema.JSONRPCErrorResponseSchema.JSONRPCMessageSchema.JSONRPCNotificationSchema.JSONRPCRequestSchema.JSONRPCResponseSchema.JSONRPCResultResponseSchema.JSONValueSchema.LegacyTitledEnumSchemaSchema.ListPromptsRequestSchema.ListPromptsResultSchema.ListResourcesRequestSchema.ListResourcesResultSchema.ListResourceTemplatesRequestSchema.ListResourceTemplatesResultSchema.ListRootsRequestSchema.ListRootsResultSchema.ListTasksRequestSchema.ListTasksResultSchema.ListToolsRequestSchema.ListToolsResultSchema.LoggingLevelSchema.LoggingMessageNotificationSchema.LoggingMessageNotificationParamsSchema.ModelHintSchema.ModelPreferencesSchema.MultiSelectEnumSchemaSchema.NotificationSchema.NumberSchemaSchema.PaginatedRequestSchema.PaginatedRequestParamsSchema.PaginatedResultSchema.PingRequestSchema.PrimitiveSchemaDefinitionSchema.ProgressSchema.ProgressNotificationSchema.ProgressNotificationParamsSchema.ProgressTokenSchema.PromptSchema.PromptArgumentSchema.PromptListChangedNotificationSchema.PromptMessageSchema.PromptReferenceSchema.ReadResourceRequestSchema.ReadResourceRequestParamsSchema.ReadResourceResultSchema.RelatedTaskMetadataSchema.RequestSchema.RequestIdSchema.RequestMetaSchema.ResourceSchema.ResourceContentsSchema.ResourceLinkSchema.ResourceListChangedNotificationSchema.ResourceRequestParamsSchema.ResourceTemplateSchema.ResourceTemplateReferenceSchema.ResourceUpdatedNotificationSchema.ResourceUpdatedNotificationParamsSchema.ResultMetaObjectSchema.ResultSchema.RoleSchema.RootSchema.RootsListChangedNotificationSchema.SamplingContentSchema.SamplingMessageSchema.SamplingMessageContentBlockSchema.ServerCapabilitiesSchema.ServerNotificationSchema.ServerRequestSchema.ServerResultSchema.SetLevelRequestSchema.SetLevelRequestParamsSchema.SingleSelectEnumSchemaSchema.StringSchemaSchema.SubscribeRequestSchema.SubscribeRequestParamsSchema.SubscriptionFilterSchema.SubscriptionsAcknowledgedNotificationSchema.SubscriptionsAcknowledgedNotificationParamsSchema.SubscriptionsListenRequestSchema.SubscriptionsListenRequestParamsSchema.SubscriptionsListenResultSchema.SubscriptionsListenResultMetaSchema.TaskAugmentedRequestParamsSchema.TaskCreationParamsSchema.TaskMetadataSchema.TaskSchema.TaskStatusSchema.TaskStatusNotificationSchema.TaskStatusNotificationParamsSchema.TextContentSchema.TextResourceContentsSchema.TitledMultiSelectEnumSchemaSchema.TitledSingleSelectEnumSchemaSchema.ToolSchema.ToolAnnotationsSchema.ToolChoiceSchema.ToolExecutionSchema.ToolListChangedNotificationSchema.ToolResultContentSchema.ToolUseContentSchema.UnsubscribeRequestSchema.UnsubscribeRequestParamsSchema.UntitledMultiSelectEnumSchemaSchema.UntitledSingleSelectEnumSchemaSchema`.split(`.`),WO={IdJagTokenExchangeResponseSchema:CE,OAuthClientInformationFullSchema:OE,OAuthClientInformationSchema:DE,OAuthClientMetadataSchema:EE,OAuthClientRegistrationErrorSchema:kE,OAuthErrorResponseSchema:wE,OAuthMetadataSchema:yE,OAuthProtectedResourceMetadataSchema:vE,OAuthTokenRevocationRequestSchema:AE,OAuthTokensSchema:SE,OpenIdProviderDiscoveryMetadataSchema:xE,OpenIdProviderMetadataSchema:bE},GO={},KO={};function qO(e,t){let n=e.slice(0,-6);GO[n]=t,KO[n]=e=>t.safeParse(e).success}for(let e of UO)qO(e,dO[e]);for(let[e,t]of Object.entries(WO))qO(e,t);Object.freeze(GO),Object.freeze(KO);function JO(e){switch(e){case`initialize`:case`notifications/initialized`:return oO(void 0);case`server/discover`:return oO(aO);default:return}}var YO=[aC,oC,cC,uC],XO=[`inputResponses`,`requestState`];function ZO(e,t){let n=e.params;if(!nk(n))return{message:e,lifted:{}};let r=n._meta,i=nk(r)?YO.filter(e=>e in r):[],a=t===`request`?XO.filter(e=>e in n):[];if(i.length===0&&a.length===0)return{message:e,lifted:{}};let o={},s={...n};if(i.length>0&&nk(r)){let e={},t={...r};for(let n of i)e[n]=r[n],delete t[n];o.envelope=e,Object.keys(t).length>0?s._meta=t:delete s._meta}for(let e of a)e===`inputResponses`&&(o.inputResponses=s[e]),e===`requestState`&&(o.requestState=s[e]),delete s[e];return{message:{...e,params:s},lifted:o}}function QO(e,t){let n=e.validateResult(t,void 0);if(n.ok||n.reason!==`not-in-era`)return{"~standard":{version:1,vendor:`mcp-wire-codec`,validate(n){let r=e.validateResult(t,n);return r.ok?{value:r.value}:{issues:[{message:r.reason===`invalid`?r.message:`not-in-era: ${t}`}]}}}}}function $O(e){return()=>e}var ek=$O(void 0),tk=class{_transport;_requestMessageId=0;_requestHandlers=new Map;_requestHandlerAbortControllers=new Map;_notificationHandlers=new Map;_responseHandlers=new Map;_progressHandlers=new Map;_timeoutInfo=new Map;_pendingDebouncedNotifications=new Set;_negotiatedProtocolVersion;_supportedProtocolVersions;onclose;onerror;fallbackRequestHandler;fallbackNotificationHandler;constructor(e){this._options=e,this._supportedProtocolVersions=e?.supportedProtocolVersions??rC,this.setNotificationHandler(`notifications/cancelled`,e=>{this._oncancel(e)}),this.setNotificationHandler(`notifications/progress`,e=>{this._onprogress(e)}),this.setRequestHandler(`ping`,e=>({}))}_shouldDropInbound(e){}_outboundMetaEnvelope(){}_envelopeOutbound(e){let t=this._outboundMetaEnvelope();if(t===void 0)return e;let n=e.params??{};return{...e,params:{...n,_meta:{...t,...n._meta}}}}_resolveNonCompleteResult(e,t){return Promise.reject(new FE(PE.UnsupportedResultType,`Unsupported result type '${e.kind}' for ${t.request.method}`,{resultType:e.kind,method:t.request.method}))}_getRequestHandler(e){return this._requestHandlers.get(e)}async _oncancel(e){e.params.requestId!==void 0&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new FE(PE.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{try{t?.()}finally{this._onclose()}};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),mO(e)||hO(e)?this._onresponse(e):fO(e)?this._onrequest(e,t):pO(e)?this._onnotification(e,t):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},e.setSupportedProtocolVersions?.(this._supportedProtocolVersions),await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();let t=this._requestHandlerAbortControllers;this._requestHandlerAbortControllers=new Map;let n=new FE(PE.ConnectionClosed,`Connection closed`);this._transport=void 0;try{this.onclose?.()}finally{for(let t of e.values())t(n);for(let e of t.values())e.abort(n)}}_onerror(e){this.onerror?.(e)}_onnotification(e,t){let{message:n}=ZO(e,`notification`),r=this._negotiatedWireCodec();if(t?.classification===void 0&&this._shouldDropInbound(e)===`drop`)return;if(t?.classification!==void 0){let e=sO(t.classification);if(e!==r.era){this._onerror(Error(`Era mismatch on inbound notification '${n.method}': classified as ${e} but this instance serves ${r.era}`));return}}if(lO(n.method)&&!r.hasNotificationMethod(n.method))return;let i=this._notificationHandlers.get(n.method),a=this.fallbackNotificationHandler;(i!==void 0||a!==void 0)&&Promise.resolve().then(()=>i===void 0?a(n):i(n,r)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let{message:n,lifted:r}=ZO(e,`request`),i=this._negotiatedWireCodec();if(t?.classification===void 0&&this._shouldDropInbound(e)===`drop`){this._onerror(Error(`Dropped inbound request '${e.method}': not servable on this connection's protocol era`));return}let a=this._transport,o=(e,t,r)=>{let i={jsonrpc:`2.0`,id:n.id,error:{code:e,message:t,...r!==void 0&&{data:r}}};a?.send(i).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)))};if(t?.classification!==void 0){let e=sO(t.classification);if(e!==i.era){this._onerror(Error(`Era mismatch on inbound request '${n.method}': classified as ${e} but this instance serves ${i.era}`));let r=t.classification.revision??e;o(xD.UnsupportedProtocolVersion,`Unsupported protocol version: ${r}`,{supported:this._supportedProtocolVersions,requested:r});return}}if(cO(n.method)&&!i.hasRequestMethod(n.method)){o(xD.MethodNotFound,`Method not found`);return}let s=this._requestHandlers.get(n.method)??this.fallbackRequestHandler;if(s===void 0){o(xD.MethodNotFound,`Method not found`);return}let c=i.checkInboundEnvelope(r);if(c!==void 0){o(xD.InvalidParams,c);return}let l=(e,t)=>this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,{...t,relatedRequestId:n.id}),u=(e,t,r)=>this._requestWithSchemaViaCodec(this._resolveOutboundCodec(e.method),e,t,{...r,relatedRequestId:n.id}),d=new AbortController;this._requestHandlerAbortControllers.set(n.id,d);let f=r.inputResponses===void 0?void 0:ik(r.inputResponses),p={sessionId:a?.sessionId,mcpReq:{id:n.id,method:n.method,_meta:n.params?._meta,...r.envelope!==void 0&&{envelope:r.envelope},...f!==void 0&&{inputResponses:f.accepted},...f!==void 0&&f.droppedKeys.length>0&&{droppedInputResponseKeys:f.droppedKeys},requestState:r.requestState===void 0?ek:$O(r.requestState),signal:d.signal,send:((e,t,n)=>{let r=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(r,e.method),vO(t))return u(e,t,n);let i=QO(r,e.method);if(i===void 0)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to ctx.mcpReq.send().`);return u(e,i,t)}),notify:l},http:t?.authInfo?{authInfo:t.authInfo}:void 0},m=this.buildContext(p,t);Promise.resolve().then(()=>s(n,m)).then(async e=>{if(d.signal.aborted)return;let t;try{t=i.encodeResult(n.method,e,this._outboundServerInfo())}catch(e){this._onerror(Error(`Failed to encode result for ${n.method}: ${e}`)),o(xD.InternalError,`Internal error`);return}let r={result:t,jsonrpc:`2.0`,id:n.id};await a?.send(r)},async e=>{if(d.signal.aborted)return;let t=Number.isSafeInteger(e.code)?e.code:xD.InternalError,r={jsonrpc:`2.0`,id:n.id,error:{code:i.encodeErrorCode(t),message:e.message??`Internal error`,...e.data!==void 0&&{data:e.data}}};await a?.send(r)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(n.id)===d&&this._requestHandlerAbortControllers.delete(n.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._responseHandlers.get(t);if(n===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t),this._progressHandlers.delete(t),mO(e)?n(e):n(SD.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}request(e,t,n){let r=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(r,e.method),vO(t))return this._requestWithSchemaViaCodec(r,e,t,n);let i=QO(r,e.method);if(i===void 0)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to request().`);return this._requestWithSchemaViaCodec(r,e,i,t)}_negotiatedWireCodec(){return oO(this._negotiatedProtocolVersion)}_wireCodec(){return this._negotiatedWireCodec()}_resolveOutboundCodec(e){if(this._negotiatedProtocolVersion===void 0){let t=JO(e);if(t)return t}return this._negotiatedWireCodec()}_assertOutboundRequestInEra(e,t){if(cO(t)&&!e.hasRequestMethod(t))throw new FE(PE.MethodNotSupportedByProtocolVersion,`Method '${t}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t,era:e.era})}_requestWithSchema(e,t,n){let r=this._resolveOutboundCodec(e.method);return this._assertOutboundRequestInEra(r,e.method),this._requestWithSchemaViaCodec(r,e,t,n)}_requestWithSchemaViaCodec(e,t,n,r){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,headers:s}=r??{},c=Date.now(),l,u;return new Promise((d,f)=>{let p=e=>{f(e)};if(!this._transport){p(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method)}catch(e){p(e);return}if(r?.signal?.aborted){let e=r.signal.reason;throw e instanceof FE?e:new FE(PE.RequestTimeout,String(e))}let m=e.era===`2026-07-28`&&this._transport.hasPerRequestStream===!0?new AbortController:void 0,h=this._requestMessageId++;u=h;let g={...t,jsonrpc:`2.0`,id:h};r?.onprogress&&(this._progressHandlers.set(h,r.onprogress),g.params={...t.params,_meta:{...t.params?._meta,progressToken:h}});let _=this._envelopeOutbound(g),v=!1,y=e=>{v||(this._progressHandlers.delete(h),m===void 0?t.method!==`initialize`&&this._transport?.send(this._envelopeOutbound({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:h,reason:String(e)}}),{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))):m.abort(),f(e instanceof FE?e:new FE(PE.RequestTimeout,String(e))))};this._responseHandlers.set(h,i=>{if(r?.signal?.aborted)return;if(v=!0,i instanceof Error)return f(i);let a;try{a=e.decodeResult(t.method,i.result)}catch(e){return f(e instanceof Error?e:Error(String(e)))}if(a.kind===`invalid`)return f(a.error);if(a.kind===`input_required`){if(r?.allowInputRequired===!0)return d(ak(a));let i={codec:e,request:t,resultSchema:n,options:r,flowStartedAt:c,retry:(r,i)=>this._requestWithSchemaViaCodec(e,r===void 0?{method:t.method}:{method:t.method,params:r},n,i)};return d(this._resolveNonCompleteResult(a,i))}let o=a.result;wO(n,o).then(e=>{e.success?d(e.data):f(new FE(PE.InvalidResult,`Invalid result for ${t.method}: ${e.error}`))},f)}),l=()=>y(r?.signal?.reason),r?.signal?.addEventListener(`abort`,l,{once:!0});let b=r?.timeout??6e4;this._setupTimeout(h,b,r?.maxTotalTimeout,()=>y(new FE(PE.RequestTimeout,`Request timed out`,{timeout:b})),r?.resetTimeoutOnProgress??!1),this._transport.send(_,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,headers:s,requestSignal:m?.signal}).catch(e=>{this._progressHandlers.delete(h),f(e)})}).finally(()=>{l&&r?.signal?.removeEventListener(`abort`,l),u!==void 0&&(this._responseHandlers.delete(u),this._cleanupTimeout(u))})}async notification(e,t){return await this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,t)}async _notificationViaCodec(e,t,n){if(!this._transport)throw new FE(PE.NotConnected,`Not connected`);if(lO(t.method)&&!e.hasNotificationMethod(t.method))throw new FE(PE.MethodNotSupportedByProtocolVersion,`Notification '${t.method}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t.method,era:e.era});this.assertNotificationCapability(t.method);let r=this._envelopeOutbound({jsonrpc:`2.0`,...t});if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&n?.relatedRequestId===void 0){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{this._pendingDebouncedNotifications.delete(t.method),this._transport&&this._transport?.send(r,n).catch(e=>this._onerror(e))});return}await this._transport.send(r,n)}setRequestHandler(e,t,n){this.assertRequestHandlerCapability(e);let r;if(typeof t==`function`){if(!cO(e))throw TypeError(`'${e}' is not a spec request method; pass schemas as the second argument to setRequestHandler().`);r=(n,r)=>{let i=this._negotiatedWireCodec(),a=i.validateRequest(e,n);if(!a.ok&&a.reason===`not-in-era`&&(a=i.validateInputRequest(e,n)),!a.ok)throw a.reason===`not-in-era`?new SD(xD.InternalError,`No wire schema for ${e} in the resolved era`):Error(a.message);return Promise.resolve(t(a.value,r))}}else if(n)r=async(r,i)=>{let a=await wO(t.params,{...r.params});if(!a.success)throw new SD(xD.InvalidParams,`Invalid params for ${e}: ${a.error}`);return n(a.data,i)};else throw TypeError(`setRequestHandler: handler is required`);this._requestHandlers.set(e,this._wrapHandler(e,r))}_wrapHandler(e,t){return t}_outboundServerInfo(){}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t,n){if(typeof t==`function`){if(!lO(e))throw TypeError(`'${e}' is not a spec notification method; pass schemas as the second argument to setNotificationHandler().`);this._notificationHandlers.set(e,(n,r)=>{let i=r.validateNotification(e,n);if(!i.ok)throw i.reason===`not-in-era`?new SD(xD.InternalError,`No wire schema for ${e} in the resolved era`):Error(i.message);return Promise.resolve(t(i.value))});return}if(!n)throw TypeError(`setNotificationHandler: handler is required`);this._notificationHandlers.set(e,async r=>{let i=await wO(t.params,{...r.params});if(!i.success)throw new SD(xD.InvalidParams,`Invalid params for notification ${e}: ${i.error}`);await n(i.data,r)})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function nk(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rk(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ik(e){let t={},n=[];if(!rk(e))return{accepted:t,droppedKeys:n};for(let[r,i]of Object.entries(e)){if(!rk(i)||`method`in i||`result`in i){n.push(r);continue}t[r]=i}return{accepted:t,droppedKeys:n}}function ak(e){return{resultType:`input_required`,inputRequests:e.inputRequests,...e.requestState!==void 0&&{requestState:e.requestState},...e._meta!==void 0&&{_meta:e._meta}}}$S((e=>{var t=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,n=/\\([\u000b\u0020-\u00ff])/g,r=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;e.parse=i;function i(e){if(!e)throw TypeError(`argument string is required`);var i=typeof e==`object`?a(e):e;if(typeof i!=`string`)throw TypeError(`argument string is required to be a string`);var s=i.indexOf(`;`),c=s===-1?i.trim():i.slice(0,s).trim();if(!r.test(c))throw TypeError(`invalid media type`);var l=new o(c.toLowerCase());if(s!==-1){var u,d,f;for(t.lastIndex=s;d=t.exec(i);){if(d.index!==s)throw TypeError(`invalid parameter format`);s+=d[0].length,u=d[1].toLowerCase(),f=d[2],f.charCodeAt(0)===34&&(f=f.slice(1,-1),f.indexOf(`\\`)!==-1&&(f=f.replace(n,`$1`))),l.parameters[u]=f}if(s!==i.length)throw TypeError(`invalid parameter format`)}return l}function a(e){var t;if(typeof e.getHeader==`function`?t=e.getHeader(`content-type`):typeof e.headers==`object`&&(t=e.headers&&e.headers[`content-type`]),typeof t!=`string`)throw TypeError(`content-type header is missing from object`);return t}function o(e){this.parameters=Object.create(null),this.type=e}}))(),typeof self<`u`&&self.location&&self.location.origin!==`null`?new URL(self.location.origin+self.location.pathname+location.search):new URL(`https://github.com/cfworker`);var ok=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,sk=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ck=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,lk=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,uk=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,dk=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,fk=/^(?:\/(?:[^~/]|~0|~1)*)*$/,pk=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,mk=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,hk=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,gk=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i;function _k(e){return e.test.bind(e)}vk.bind(void 0,!1),_k(ck),_k(lk),_k(uk),_k(sk),_k(hk),_k(gk),_k(dk),_k(fk),_k(pk),_k(mk);function vk(e,t){let n=t.match(ok);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=!!n[5];return(r<=23&&i<=59&&a<=59||r==23&&i==59&&a==60)&&(!e||o)}globalThis.crypto;var yk=class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.OAuthClientFlowError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e){super(e),this.name=new.target.name,ME(this,new.target)}};(class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.IssuerMismatchError`})}kind;expected;received;constructor(e,t,n){super(`Issuer mismatch in ${e===`metadata`?`authorization server metadata (RFC 8414 §3.3)`:`authorization response (RFC 9207)`}: expected ${JSON.stringify(t)}, received ${JSON.stringify(n)}`),this.kind=e,this.expected=t,this.received=n}}),class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.RegistrationRejectedError`})}status;body;submittedMetadata;constructor(e){super(`Dynamic Client Registration rejected (HTTP ${e.status}): ${e.body}`),this.status=e.status,this.body=e.body,this.submittedMetadata=e.submittedMetadata}},class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.InsecureTokenEndpointError`})}tokenEndpoint;constructor(e){super(`Refusing to send credentials to non-https token endpoint '${e}'. OAuth token requests MUST use TLS (localhost / *.localhost / 127.0.0.1 / ::1 are exempt).`),this.tokenEndpoint=e}},class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.AuthorizationServerMismatchError`})}constructor(e,t){super(`Authorization server mismatch: credentials are bound to ${JSON.stringify(e)} but this call resolved ${JSON.stringify(t)}; refusing to present them to a different authorization server`),this.recordedIssuer=e,this.currentIssuer=t}},class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.InsufficientScopeError`})}requiredScope;resourceMetadataUrl;errorDescription;constructor(e){super(`Insufficient scope${e.requiredScope?`: required "${e.requiredScope}"`:``}`),this.requiredScope=e.requiredScope,this.resourceMetadataUrl=e.resourceMetadataUrl,this.errorDescription=e.errorDescription}},class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.UnauthorizedError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e){super(e??`Unauthorized`),this.name=`UnauthorizedError`,ME(this,new.target)}},class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.SseError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n){super(`SSE error: ${t}`),this.code=e,this.event=n,ME(this,new.target)}};var bk=class{_eventSlots=new Map;setHandler(e,t){let n=this._ensureEventSlot(e);n.onHandler&&t&&console.warn(`[MCP Apps] on${String(e)} handler replaced. Use addEventListener("${String(e)}", …) to add multiple listeners without replacing.`),n.onHandler=t}getHandler(e){return this._eventSlots.get(e)?.onHandler}addEventListener(e,t){this._ensureEventSlot(e).listeners.push(t)}removeEventListener(e,t){let n=this._eventSlots.get(e);if(!n)return;let r=n.listeners.indexOf(t);r!==-1&&n.listeners.splice(r,1)}dispatch(e,t){let n=this._eventSlots.get(e);if(n){n.onHandler?.(t);for(let e of[...n.listeners])e(t)}}_ensureEventSlot(e){let t=this._eventSlots.get(e);return t||(t={listeners:[]},this._eventSlots.set(e,t)),t}},xk=class{_methods=new Set;claim(e,t){if(this._methods.has(e))throw Error(`Handler for "${e}" already registered (via ${t}). Use addEventListener() to attach multiple listeners, or the on* setter for replace semantics.`);this._methods.add(e)}replace(e){this._methods.add(e)}release(e){this._methods.delete(e)}has(e){return this._methods.has(e)}},Sk=new Set;function Ck(e,t){let[n,r]=t,i=n?.shape;if(typeof i?.method?.value!=`string`)return;let a=i.method.value,o=e===`request`?`setRequestHandler`:`setNotificationHandler`;Sk.has(o)||(Sk.add(o),console.warn(`[ext-apps] ${o}(Schema, handler) is deprecated; use ${o}("${a}", { params: Schema.shape.params }, handler).`));let s=r;return[a,{params:i.params},e===`request`?(e,t)=>s({method:a,params:e},wk(t)):e=>s({method:a,params:e})]}function wk(e){return{signal:e.mcpReq.signal,requestId:e.mcpReq.id,sessionId:e.sessionId,_meta:e.mcpReq._meta,sendRequest:e.mcpReq.send,sendNotification:e.mcpReq.notify,authInfo:e.http?.authInfo}}var Tk=`2026-01-26`,Ek=class{eventTarget;eventSource;messageListener;constructor(e=window.parent,t){this.eventTarget=e,this.eventSource=t,this.messageListener=e=>{if(t&&e.source!==this.eventSource){console.debug(`Ignoring message from unknown source`,e);return}let n=jC.safeParse(e.data);n.success?(console.debug(`Parsed message`,n.data),this.onmessage?.(n.data)):e.data?.jsonrpc===`2.0`?(console.error(`Failed to parse message`,n.error.message,e),this.onerror?.(Error(`Invalid JSON-RPC message received: `+n.error.message))):console.debug(`Ignoring non-JSON-RPC message`,n.error.message,e)}}async start(){window.addEventListener(`message`,this.messageListener)}async send(e,t){e.method!==`ui/notifications/tool-input-partial`&&console.debug(`Sending message`,e),this.eventTarget.postMessage(e,`*`)}async close(){window.removeEventListener(`message`,this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion},Dk=Ec([Z(`light`),Z(`dark`)]).describe(`Color theme preference for the host environment.`),Ok=Ec([Z(`inline`),Z(`fullscreen`),Z(`pip`)]).describe(`Display mode for UI presentation.`),kk=Mc(Ec([Z(`--color-background-primary`),Z(`--color-background-secondary`),Z(`--color-background-tertiary`),Z(`--color-background-inverse`),Z(`--color-background-ghost`),Z(`--color-background-info`),Z(`--color-background-danger`),Z(`--color-background-success`),Z(`--color-background-warning`),Z(`--color-background-disabled`),Z(`--color-text-primary`),Z(`--color-text-secondary`),Z(`--color-text-tertiary`),Z(`--color-text-inverse`),Z(`--color-text-ghost`),Z(`--color-text-info`),Z(`--color-text-danger`),Z(`--color-text-success`),Z(`--color-text-warning`),Z(`--color-text-disabled`),Z(`--color-border-primary`),Z(`--color-border-secondary`),Z(`--color-border-tertiary`),Z(`--color-border-inverse`),Z(`--color-border-ghost`),Z(`--color-border-info`),Z(`--color-border-danger`),Z(`--color-border-success`),Z(`--color-border-warning`),Z(`--color-border-disabled`),Z(`--color-ring-primary`),Z(`--color-ring-secondary`),Z(`--color-ring-inverse`),Z(`--color-ring-info`),Z(`--color-ring-danger`),Z(`--color-ring-success`),Z(`--color-ring-warning`),Z(`--font-sans`),Z(`--font-mono`),Z(`--font-weight-normal`),Z(`--font-weight-medium`),Z(`--font-weight-semibold`),Z(`--font-weight-bold`),Z(`--font-text-xs-size`),Z(`--font-text-sm-size`),Z(`--font-text-md-size`),Z(`--font-text-lg-size`),Z(`--font-heading-xs-size`),Z(`--font-heading-sm-size`),Z(`--font-heading-md-size`),Z(`--font-heading-lg-size`),Z(`--font-heading-xl-size`),Z(`--font-heading-2xl-size`),Z(`--font-heading-3xl-size`),Z(`--font-text-xs-line-height`),Z(`--font-text-sm-line-height`),Z(`--font-text-md-line-height`),Z(`--font-text-lg-line-height`),Z(`--font-heading-xs-line-height`),Z(`--font-heading-sm-line-height`),Z(`--font-heading-md-line-height`),Z(`--font-heading-lg-line-height`),Z(`--font-heading-xl-line-height`),Z(`--font-heading-2xl-line-height`),Z(`--font-heading-3xl-line-height`),Z(`--border-radius-xs`),Z(`--border-radius-sm`),Z(`--border-radius-md`),Z(`--border-radius-lg`),Z(`--border-radius-xl`),Z(`--border-radius-full`),Z(`--border-width-regular`),Z(`--shadow-hairline`),Z(`--shadow-sm`),Z(`--shadow-md`),Z(`--shadow-lg`)]).describe(`CSS variable keys available to MCP apps for theming.`).describe(`Style variables for theming MCP apps.
465
+ `);try{navigator.share?await navigator.share({text:e}):(await navigator.clipboard.writeText(e),a(!0),setTimeout(()=>a(!1),1600))}catch{}},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-10`,children:[i?(0,$.jsx)(Vf,{className:`size-3.5`}):(0,$.jsx)(Dm,{className:`size-3.5`}),Q(i?`share.copied`:`run.share`)]})]}),_.map(([n,r])=>(0,$.jsxs)(`section`,{className:`rounded-xl bg-card px-4 py-1 ring-1 ring-border-soft`,children:[n?(0,$.jsx)(`h4`,{className:`pt-3 pb-1 font-semibold text-[0.6875rem] text-second uppercase tracking-[0.14em]`,children:n}):null,r.map(({item:n,i:r})=>{let i=m(n,r),a=!!p[i],o=x(n);return(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 border-border-soft border-b border-dashed py-2.5 last:border-0`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:a,onChange:()=>t.setState(e.id,{...p,[i]:!a}),className:`mt-0.5 size-[1.125rem] shrink-0 accent-[var(--second)] coarse:size-6`}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`span`,{className:_h(`text-[0.9375rem]`,a&&`text-ink-3 line-through`),children:[lS(n,s),v(n)?(0,$.jsxs)(`span`,{className:`text-ink-3`,children:[` · `,v(n)]}):null]}),o?(0,$.jsx)(`span`,{className:`block text-[0.75rem] text-ink-3`,children:o}):null]})]},i)})]},n))]})}function gS({data:e}){let t=Math.max(1,...e.map(e=>e.value));return(0,$.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.map((e,n)=>(0,$.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,8rem)_1fr_auto] items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate text-[0.8125rem] text-ink-2`,children:e.label}),(0,$.jsx)(`span`,{className:`h-2.5 rounded-full bg-paper-2`,children:(0,$.jsx)(`span`,{className:`block h-full rounded-full bg-ember`,style:{width:`${e.value/t*100}%`}})}),(0,$.jsx)(`span`,{className:`text-[0.8125rem] tabular-nums`,children:e.value.toLocaleString(jd)})]},n))})}function _S({data:e}){if(e.length<2)return(0,$.jsx)(gS,{data:e});let t=Math.max(...e.map(e=>e.value)),n=Math.min(...e.map(e=>e.value)),r=t-n||1,i=e.map((t,i)=>[i/(e.length-1)*312+4,116-(t.value-n)/r*112]);return(0,$.jsxs)(`figure`,{children:[(0,$.jsxs)(`svg`,{viewBox:`0 0 320 120`,className:`w-full text-ember`,role:`img`,children:[(0,$.jsx)(`polyline`,{points:i.map(([e,t])=>`${e},${t}`).join(` `),fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinejoin:`round`}),i.map(([t,n],r)=>(0,$.jsx)(`circle`,{cx:t,cy:n,r:`3`,fill:`currentColor`,children:(0,$.jsx)(`title`,{children:`${e[r].label}: ${e[r].value}`})},r))]}),(0,$.jsxs)(`figcaption`,{className:`mt-1 flex justify-between text-[0.75rem] text-ink-3`,children:[(0,$.jsx)(`span`,{children:e[0].label}),(0,$.jsx)(`span`,{children:e.at(-1)?.label})]})]})}var vS=[`var(--color-ember)`,`var(--color-cobalt)`,`var(--color-moss)`,`var(--color-amber)`,`var(--color-ink-3)`];function yS({data:e}){let t=e.reduce((e,t)=>e+Math.max(0,t.value),0)||1,n=0,r=2*Math.PI*40;return(0,$.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,$.jsx)(`svg`,{viewBox:`0 0 100 100`,className:`size-28 shrink-0 -rotate-90`,role:`img`,children:e.map((e,i)=>{let a=Math.max(0,e.value)/t*r,o=(0,$.jsx)(`circle`,{cx:`50`,cy:`50`,r:40,fill:`none`,stroke:vS[i%vS.length],strokeWidth:`16`,strokeDasharray:`${a} ${r-a}`,strokeDashoffset:-n,children:(0,$.jsx)(`title`,{children:`${e.label}: ${e.value}`})},i);return n+=a,o})}),(0,$.jsx)(`ul`,{className:`flex flex-col gap-1 text-[0.8125rem]`,children:e.map((e,t)=>(0,$.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2.5 rounded-full`,style:{background:vS[t%vS.length]}}),(0,$.jsx)(`span`,{className:`text-ink-2`,children:e.label}),(0,$.jsx)(`span`,{className:`tabular-nums`,children:e.value.toLocaleString(jd)})]},t))})]})}function bS({title:e,children:t}){return(0,$.jsxs)(`div`,{className:`rounded-xl bg-card p-4 ring-1 ring-border-soft`,children:[e?(0,$.jsx)(`div`,{className:`mb-3 font-medium text-[0.875rem]`,children:e}):null,t]})}function xS({id:e,ctx:t,row:n}){let r=t.byId.get(e);if(!r)return null;let i=e=>rS(r,e,t,n);switch(r.component){case`Column`:return(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})});case`Text`:{let e=eS(i(`variant`))||`body`;return(0,$.jsx)(`p`,{className:_h(e===`h3`&&`font-display font-semibold text-[1.25rem] leading-tight`,e===`h4`&&`font-semibold text-[1rem]`,e===`lead`&&`font-display text-[1.0625rem] text-ink-2 leading-relaxed`,e===`body`&&`text-[0.9375rem] leading-relaxed`,e===`muted`&&`text-[0.8125rem] text-ink-3`),children:eS(i(`text`))})}case`List`:return(0,$.jsx)(`div`,{className:`flex flex-col divide-y divide-border-soft overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})});case`Row`:{let e=nS(i(`image`),t.assetUrl),n=eS(i(`badge`));return(0,$.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3`,children:[e?(0,$.jsx)(`img`,{src:e,alt:``,className:`size-10 shrink-0 rounded-lg object-cover`}):null,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate text-[0.9375rem]`,children:eS(i(`title`))}),i(`subtitle`)?(0,$.jsx)(`div`,{className:`truncate text-[0.8125rem] text-ink-3`,children:eS(i(`subtitle`))}):null]}),i(`meta`)?(0,$.jsx)(`span`,{className:`shrink-0 text-[0.8125rem] text-ink-3 tabular-nums`,children:eS(i(`meta`))}):null,n?(0,$.jsx)(`span`,{className:_h(`shrink-0 rounded-full px-2 py-0.5 text-[0.75rem]`,oS[eS(i(`badgeTone`))]??oS.default),children:n}):null]})}case`DetailGrid`:{let e=i(`rows`);return(0,$.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 rounded-xl bg-card p-4 text-[0.875rem] ring-1 ring-border-soft`,children:(Array.isArray(e)?e:[]).map((e,r)=>(0,$.jsxs)(`div`,{className:`contents`,children:[(0,$.jsx)(`dt`,{className:`text-ink-3`,children:eS(uu(e?.label,t.data,n))}),(0,$.jsx)(`dd`,{className:`break-words`,children:eS(uu(e?.value,t.data,n))})]},r))})}case`Badge`:return(0,$.jsx)(`span`,{className:_h(`inline-flex w-fit rounded-full px-2.5 py-0.5 text-[0.75rem]`,oS[eS(i(`tone`))]??oS.default),children:eS(i(`label`))});case`Grid`:{let e=Math.min(4,Math.max(1,tS(i(`columns`))||2)),a=Math.min(24,Math.max(6,tS(i(`min`))||(e>2?9:12)));return(0,$.jsx)(`div`,{className:`grid gap-3`,style:{gridTemplateColumns:`repeat(auto-fit, minmax(min(100%, ${a}rem), 1fr))`},children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})})}case`Metric`:return(0,$.jsxs)(`div`,{className:`rounded-xl bg-card p-4 ring-1 ring-border-soft`,children:[(0,$.jsx)(`div`,{className:`text-[0.75rem] text-ink-3 uppercase tracking-[0.06em]`,children:eS(i(`label`))}),(0,$.jsx)(`div`,{className:`mt-1 font-display font-semibold text-[1.5rem] tabular-nums`,children:eS(i(`value`))}),i(`caption`)?(0,$.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:eS(i(`caption`))}):null]});case`Table`:{let e=i(`rows`),t=Array.isArray(e)?e:[],n=i(`columns`),r=Array.isArray(n)?n.map(e=>({key:eS(e?.key),label:eS(e?.label??e?.key)})):[...new Set(t.flatMap(e=>Object.keys(e??{})))].map(e=>({key:e,label:e}));return(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-xl ring-1 ring-border-soft`,children:(0,$.jsxs)(`table`,{className:`w-full text-[0.8125rem]`,children:[(0,$.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,$.jsx)(`tr`,{children:r.map(e=>(0,$.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:e.label},e.key))})}),(0,$.jsx)(`tbody`,{children:t.map((e,t)=>(0,$.jsx)(`tr`,{className:`border-border-soft border-t`,children:r.map(t=>(0,$.jsx)(`td`,{className:`px-3 py-2 tabular-nums`,children:eS(e?.[t.key])},t.key))},t))})]})})}case`Image`:{let e=nS(i(`src`),t.assetUrl);return e?(0,$.jsx)(`img`,{src:e,alt:eS(i(`alt`)),className:`w-full rounded-xl`}):null}case`BarChart`:return(0,$.jsx)(bS,{title:eS(i(`title`)),children:(0,$.jsx)(gS,{data:iS(i(`points`),i(`labelKey`),i(`valueKey`))})});case`LineChart`:return(0,$.jsx)(bS,{title:eS(i(`title`)),children:(0,$.jsx)(_S,{data:iS(i(`points`),i(`labelKey`),i(`valueKey`))})});case`DonutChart`:return(0,$.jsx)(bS,{title:eS(i(`title`)),children:(0,$.jsx)(yS,{data:iS(i(`slices`),i(`labelKey`),i(`valueKey`))})});case`Actions`:return(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})});case`Button`:{let e=eS(i(`action`));return!t.onAction&&e!==`open`?null:(0,$.jsx)(`button`,{type:`button`,onClick:()=>{let n=i(`target`);if(e===`open`){let e=nS(n,t.assetUrl);e&&window.open(e,`_blank`,`noopener`);return}t.onAction?.({action:e,target:n})},className:`inline-flex h-9 items-center rounded-full bg-paper-2 px-4 text-[0.875rem] text-ink-2 hover:text-ink coarse:h-11`,children:eS(i(`label`))})}case`Tabs`:return(0,$.jsx)(mS,{c:r,ctx:t,row:n});case`Card`:{let e=nS(i(`image`),t.assetUrl),a=eS(i(`eyebrow`)),o=eS(i(`subtitle`));return(0,$.jsxs)(`article`,{className:`overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:[e?(0,$.jsx)(`img`,{src:e,alt:``,className:`aspect-[16/9] w-full object-cover`}):null,(0,$.jsxs)(`div`,{className:_h(`flex flex-col gap-1.5 px-4 py-3.5`,r.children&&`bg-paper-2/60`),children:[a?(0,$.jsx)(`div`,{className:`font-medium text-[0.6875rem] text-ink-3 uppercase tracking-[0.14em]`,children:a}):null,(0,$.jsx)(`h3`,{className:`text-balance font-display font-semibold text-[1.1875rem] leading-snug`,children:eS(i(`title`))}),o?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-ink-3 leading-relaxed`,children:o}):null,(0,$.jsx)(fS,{items:pS(r,t,n)})]}),r.children?(0,$.jsx)(`div`,{className:`flex flex-col gap-3 border-border-soft border-t px-4 py-3.5 empty:hidden`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})}):null]})}case`Fold`:return(0,$.jsxs)(`details`,{open:!!i(`open`),className:`group border-border-soft border-t pt-3 first:border-0 first:pt-0`,children:[(0,$.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center justify-between gap-3 font-display font-semibold text-[1rem] [&::-webkit-details-marker]:hidden`,children:[eS(i(`title`)),(0,$.jsx)(Uf,{className:`size-4 text-ink-3 transition-transform group-open:rotate-90 motion-reduce:transition-none`})]}),(0,$.jsx)(`div`,{className:`flex flex-col gap-3 pt-3`,children:(0,$.jsx)(aS,{c:r,ctx:t,row:n})})]});case`Group`:{let e=r.children;if(!e||Array.isArray(e))return null;let a=sS(uu({path:e.path},t.data,n));return(0,$.jsx)(`div`,{className:`flex flex-col gap-5`,children:uS(a,eS(i(`by`)),sS(i(`order`)).map(eS)).map(([n,r])=>(0,$.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[n?(0,$.jsx)(`h4`,{className:`font-semibold text-[0.6875rem] text-second uppercase tracking-[0.14em]`,children:n}):null,r.map((n,r)=>(0,$.jsx)(xS,{id:e.componentId,ctx:t,row:n},r))]},n))})}case`Chips`:{let e=eS(i(`labelKey`)),t=eS(i(`flagKey`)),n=eS(i(`flag`)),r=eS(i(`title`));return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r?(0,$.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:r}):null,(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:sS(i(`items`)).map((r,i)=>{let a=!!(t&&cS(r,t));return(0,$.jsxs)(`span`,{className:_h(`rounded-full px-2.5 py-1 text-[0.8125rem]`,a?`bg-amber-tint font-medium text-ink ring-1 ring-amber/60`:`bg-card text-ink-2 ring-1 ring-border-soft`),children:[lS(r,e),a&&n?` · ${n}`:``]},i)})})]})}case`Checklist`:return(0,$.jsx)(hS,{c:r,ctx:t,row:n});case`Steps`:{let e=eS(i(`textKey`))||`text`,t=eS(i(`minutesKey`))||`minutes`;return(0,$.jsx)(`ol`,{className:`flex flex-col gap-3`,children:sS(i(`items`)).map((n,r)=>{let i=eS(typeof n==`object`?cS(n,e):n),a=dS(cS(n,t));return(0,$.jsxs)(`li`,{className:`grid grid-cols-[1.5rem_1fr] gap-2`,children:[(0,$.jsx)(`span`,{className:`font-display font-semibold text-[1.125rem] text-ember leading-snug`,children:r+1}),(0,$.jsxs)(`span`,{className:`text-[0.9375rem] leading-relaxed`,children:[i,a?(0,$.jsxs)(`span`,{className:`ml-1.5 inline-flex items-center gap-1 whitespace-nowrap rounded-full bg-paper-2 px-2 py-0.5 align-[1px] text-[0.75rem] text-ink-2`,children:[(0,$.jsx)(Yf,{className:`size-3`}),a]}):null]})]},r)})})}case`Link`:{let e=eS(i(`key`))||`id`,n=eS(i(`value`)),a=sS(i(`items`)).find(t=>eS(cS(t,e))===n),o=r.view;if(a===void 0)return null;let s=e=>uu(r[e],t.data,a),c=eS(i(`eyebrow`)),l=pS(r,t,a);return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>typeof o==`string`&&t.open(o,a),className:_h(`group flex w-full items-center gap-3 text-left`,eS(i(`look`))===`card`?`rounded-xl bg-card p-4 ring-1 ring-border-soft hover:ring-ink-4`:`-mx-2 w-[calc(100%+1rem)] rounded-lg px-2 py-2 hover:bg-paper-2/70 coarse:py-3`),children:[(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[c?(0,$.jsx)(`span`,{className:`block font-semibold text-[0.6875rem] text-second uppercase tracking-[0.14em]`,children:c}):null,(0,$.jsx)(`span`,{className:`block font-display font-semibold text-[1rem] leading-snug group-hover:text-ember`,children:eS(s(`title`))}),s(`subtitle`)?(0,$.jsx)(`span`,{className:`block text-[0.8125rem] text-ink-3`,children:eS(s(`subtitle`))}):null,l.length?(0,$.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[0.75rem] text-ink-3`,children:[(0,$.jsx)(Yf,{className:`size-3`}),l.join(` · `)]}):null]}),(0,$.jsx)(Uf,{className:`size-4 shrink-0 text-ink-3`})]})}case`Callout`:{let e=eS(i(`tone`))||`tip`,t=eS(i(`title`));return(0,$.jsxs)(`div`,{className:_h(`flex gap-2.5 rounded-xl px-4 py-3 text-[0.875rem] leading-relaxed`,e===`tip`&&`bg-second-tint`,e===`note`&&`bg-paper-2`,e===`warning`&&`bg-amber-tint`),children:[(0,$.jsx)(zp,{className:_h(`mt-0.5 size-4 shrink-0`,e===`tip`?`text-second`:`text-ink-3`)}),(0,$.jsxs)(`p`,{children:[t?(0,$.jsxs)(`b`,{className:`font-semibold`,children:[t,` `]}):null,eS(i(`text`))]})]})}}return null}function SS({surface:e,assetUrl:t,onAction:n,initial:r,onState:i}){let[a,o]=(0,y.useState)(r??{}),[s,c]=(0,y.useState)(null),l={byId:new Map(e.components.map(e=>[e.id,e])),data:e.data,assetUrl:t,onAction:n,state:a,setState:(e,t)=>{let n={...a,[e]:t};o(n),i?.(n)},open:(e,t)=>c({view:e,row:t})};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(xS,{id:`root`,ctx:l}),(0,$.jsx)(Fh,{open:s!==null,onClose:()=>c(null),height:`tall`,children:s?(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsx)(xS,{id:s.view,ctx:l,row:s.row}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>c(null),className:`h-10 self-center rounded-full bg-paper-2 px-5 text-[0.875rem] text-ink-2 hover:text-ink`,children:Q(`surface.close`)})]}):null})]})}function CS({text:e,className:t}){let n=(0,y.useMemo)(()=>wy.sanitize(hx.parse(e,{async:!1})),[e]);return(0,$.jsx)(`div`,{className:_h(`prose-zen`,t),dangerouslySetInnerHTML:{__html:n}})}function wS({src:e,page:t,height:n,fit:r,flow:i,state:a,onState:o}){let s=(0,y.useRef)(null),[c,l]=(0,y.useState)(n),[u]=(0,y.useState)(()=>a??{}),d=(0,y.useRef)(o);d.current=o,(0,y.useEffect)(()=>{let e=e=>{if(!s.current||e.source!==s.current.contentWindow)return;let t=e.data;if(t?.wizard===`height`&&typeof t.height==`number`)l(Math.min(2e4,Math.max(120,Math.ceil(t.height))));else if(t?.wizard===`state`&&t.state&&typeof t.state==`object`)d.current?.(t.state);else if(t?.wizard===`share`&&typeof t.text==`string`){let e=t.text.slice(0,1e4);navigator.share?navigator.share({text:e}).catch(()=>void 0):navigator.clipboard?.writeText(e).catch(()=>void 0)}};return window.addEventListener(`message`,e),()=>window.removeEventListener(`message`,e)},[]);let f=(0,y.useRef)(null),[p,m]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=f.current;if(!e)return;let t=new ResizeObserver(()=>m(e.clientWidth));return t.observe(e),m(e.clientWidth),()=>t.disconnect()},[]);let[h,g]=(0,y.useState)(null);(0,y.useEffect)(()=>{let t=!0;return fetch(e,{credentials:`include`}).then(e=>e.ok?e.text():``).then(n=>t&&g({src:e,text:n})),()=>{t=!1}},[e]);let _=i?p||360:t??Math.max(p,900),v=i?1:p?r?p/_:Math.min(1,p/_):1,b=i?c:n,x=i&&h?`<script>window.__WIZARD_STATE=${JSON.stringify(u).replace(/</g,`\\u003c`)}<\/script>${h.text}`:h?.text;return(0,$.jsxs)(`div`,{ref:f,className:_h(`relative overflow-hidden`,!i&&`rounded-lg bg-white ring-1 ring-border-soft`),style:{height:b*v},children:[h?.src===e?(0,$.jsx)(`iframe`,{ref:s,title:Q(`output.preview`),srcDoc:x,sandbox:`allow-scripts allow-popups allow-popups-to-escape-sandbox`,className:`absolute top-0 left-0 origin-top-left border-0`,style:{width:_,height:b,transform:`scale(${v})`}},e):(0,$.jsx)(`div`,{className:`absolute inset-0 animate-pulse bg-paper-2`}),i?null:(0,$.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`absolute top-3 right-3 inline-flex size-9 items-center justify-center rounded-full bg-card/90 text-ink-2 shadow-soft ring-1 ring-border-soft backdrop-blur hover:text-ink coarse:size-11`,"aria-label":Q(`run.openFull`),children:(0,$.jsx)(Zp,{className:`size-4`})})]})}var TS={disc:{file:`ai`,box:566.93,x:89.28,y:100.72,w:365.49,h:365.49},generated:{file:`ai-generated`,box:1789.84,x:207.3,y:144.36,w:1384.24,h:266.41},edited:{file:`ai-modified`,box:1700.79,x:231.11,y:144.36,w:1230.56,h:266.41}};function ES({icon:e,tone:t,size:n,className:r}){let i=TS[e],a=n/i.h;return(0,$.jsx)(`img`,{src:ch(`ai-labels/${i.file}-${t}.svg`),alt:``,draggable:!1,className:_h(`pointer-events-none absolute max-w-none select-none`,r),style:{width:i.box*a,height:566.93*a,left:-i.x*a,top:-i.y*a}})}function DS({ai:e,className:t}){let[n,r]=(0,y.useState)(!1);if(!e)return null;let i=TS[e],a=t===`static`,o=a?[[`black`,`dark:hidden`],[`white`,`hidden dark:block`]]:[[`white`,``]];return(0,$.jsx)(`button`,{type:`button`,"aria-label":Q(e===`edited`?`ai.modified`:`ai.generated`),"aria-expanded":n,"data-open":n,onClick:()=>r(e=>!e),className:_h(`group block cursor-default overflow-hidden rounded-full backdrop-blur-md transition-[width] duration-200`,`w-[var(--ai-disc)] hover:w-[var(--ai-long)] focus-visible:w-[var(--ai-long)] data-[open=true]:w-[var(--ai-long)]`,a?`relative`:_h(`absolute shadow-[0_1px_3px_rgba(0,0,0,0.25)]`,t??`bottom-2 left-2`)),style:{height:18,"--ai-disc":`18px`,"--ai-long":`${i.w/i.h*18}px`},children:o.map(([t,r])=>(0,$.jsxs)(`span`,{className:r,children:[(0,$.jsx)(ES,{icon:`disc`,tone:t,size:18,className:_h(`transition-opacity duration-200`,n?`opacity-0`:`opacity-100 group-hover:opacity-0 group-focus-visible:opacity-0`)}),(0,$.jsx)(ES,{icon:e,tone:t,size:18,className:_h(`transition-opacity duration-200`,n?`opacity-100`:`opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`)})]},t))})}function OS(e,t){let n=e.type===`agent`?nd(e).fields[t]:void 0;return n?eu(t,n):t}function kS({text:e}){let[t,n]=(0,y.useState)(!1);return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[t?(0,$.jsx)(Vf,{className:`size-3.5`}):(0,$.jsx)(Zf,{className:`size-3.5`}),Q(t?`share.copied`:`run.copy`)]})}function AS({base:e,step:t,output:n,editable:r,draft:i,onDraft:a,picked:o,onPick:s,onSurfaceAction:c,onView:l}){if(!n)return null;let u=t=>sh(`${e}/assets/${t}`);if(n.surface)return(0,$.jsx)(SS,{surface:n.surface,assetUrl:u,onAction:c,initial:n.view,onState:l});if(t.type===`widget`||t.type===`film`){let e=n.assets?.find(e=>e.kind===`video`);if(e){let r=n.assets?.find(e=>e.kind===`poster`),i=t.type===`film`?t.format===`9:16`:(t.size?.height??0)>(t.size?.width??1);return(0,$.jsxs)(`div`,{className:_h(`relative mx-auto`,i?`w-fit`:`w-full`),children:[(0,$.jsx)(`video`,{src:u(e.id),poster:r?u(r.id):void 0,controls:!0,playsInline:!0,className:_h(`rounded-lg bg-black ring-1 ring-border-soft`,i?`max-h-[76vh]`:`w-full`)}),(0,$.jsx)(DS,{ai:e.ai,className:`top-2 right-2`})]})}if(t.type===`film`)return null;let r=n.assets?.find(e=>e.mime===`text/html`),i=t.size??{width:1280,height:720};return r?(0,$.jsx)(wS,{src:u(r.id),page:i.width,height:i.height,fit:!0,flow:t.layout===`page`,state:n.view,onState:l}):null}if(t.type===`generate`){let e=n.assets?.[0];if(!e)return null;if(t.asset===`voice`)return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(`audio`,{src:u(e.id),controls:!0,className:`w-full`}),(0,$.jsx)(DS,{ai:e.ai,className:`static`}),n.text?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-ink-2 leading-relaxed`,children:n.text}):null]});if((n.assets?.length??0)>1&&(t.asset===`image`||t.asset===`video`)){let e=t.options?.aspectRatio===`9:16`||t.options?.aspectRatio===`2:3`;return(0,$.jsx)(`div`,{className:_h(`grid gap-3`,e?`grid-cols-2 sm:grid-cols-3`:`sm:grid-cols-2`),children:n.assets?.map((e,n)=>{let r=o?.includes(n);return(0,$.jsxs)(`figure`,{className:_h(`relative overflow-hidden rounded-lg bg-paper-2 ring-1 ring-border-soft`,r&&`ring-2 ring-ember`),children:[t.asset===`image`?(0,$.jsx)(`img`,{src:u(e.id),alt:`${t.title} ${n+1}`,className:`w-full`}):(0,$.jsx)(`video`,{src:u(e.id),controls:!0,playsInline:!0,loop:!0,className:`w-full`}),s?(0,$.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>s(n),className:_h(`absolute top-2 left-2 inline-flex h-8 items-center gap-1.5 rounded-full px-3 font-medium text-[0.75rem] shadow-soft backdrop-blur coarse:h-11`,r?`bg-ember text-ember-on`:`bg-card/90 text-ink-2 hover:text-ink`),children:[r?(0,$.jsx)(Vf,{className:`size-3.5`}):null,Q(r?`run.pickedItem`:`run.pickItem`,{n:n+1})]}):(0,$.jsx)(`span`,{className:`absolute top-2 left-2 rounded-full bg-card/90 px-2.5 py-1 font-medium text-[0.75rem] text-ink-2`,children:n+1}),(0,$.jsx)(DS,{ai:e.ai,className:t.asset===`image`?`bottom-2 left-2`:`top-2 right-2`})]},e.id)})})}if(t.asset===`image`)return(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`img`,{src:u(e.id),alt:t.title,className:`w-full rounded-lg bg-paper-2 ring-1 ring-border-soft`}),(0,$.jsx)(DS,{ai:e.ai})]});if(t.asset===`video`){let n=t.options?.aspectRatio===`9:16`;return(0,$.jsxs)(`div`,{className:_h(`relative mx-auto`,n?`w-fit`:`w-full`),children:[(0,$.jsx)(`video`,{src:u(e.id),controls:!0,playsInline:!0,loop:!0,className:_h(`rounded-lg bg-black ring-1 ring-border-soft`,n?`max-h-[70vh]`:`w-full`)}),(0,$.jsx)(DS,{ai:e.ai,className:`top-2 left-2`})]})}return t.asset===`document`?(0,$.jsx)(wS,{src:u(e.id),page:820,height:1100}):(0,$.jsx)(wS,{src:u(e.id),page:null,height:760})}if(t.type===`agent`){let e=n.assets?.filter(e=>e.kind!==`file`&&e.mime.startsWith(`image/`))??[],o=n.assets?.filter(e=>e.kind===`file`)??[];return(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[t.output.format===`json`&&n.json!==void 0?(0,$.jsx)(Ax,{step:t,json:n.json}):r?(0,$.jsx)(Th,{value:i??n.text??``,onChange:e=>a?.(e.target.value),minRows:4,maxRows:24}):t.output.format===`markdown`?(0,$.jsx)(CS,{text:n.text??``}):(0,$.jsx)(`div`,{className:`whitespace-pre-wrap text-[1rem] leading-relaxed`,children:n.text}),e.map(e=>(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`img`,{src:u(e.id),alt:``,className:`w-full rounded-lg ring-1 ring-border-soft`}),(0,$.jsx)(DS,{ai:e.ai})]},e.id)),o.length?(0,$.jsx)(`ul`,{className:`overflow-hidden rounded-lg ring-1 ring-border-soft`,children:o.map(e=>(0,$.jsx)(`li`,{className:`border-border-soft border-b last:border-0`,children:(0,$.jsxs)(`a`,{href:u(e.id),download:e.name,onClick:t=>ph(t,u(e.id),e.name),className:`flex items-center gap-2 px-3 py-2 text-[0.8125rem] hover:bg-paper-2 coarse:min-h-11`,children:[(0,$.jsx)(hp,{className:`size-3.5 shrink-0 text-ink-3`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})]})},e.id))}):null,t.output.format!==`json`&&!r&&n.text?(0,$.jsx)(`div`,{children:(0,$.jsx)(kS,{text:n.text})}):null]})}return null}var jS={png:`PNG`,mp4:`MP4`,mp3:`MP3`,pdf:`PDF`,docx:`Word`,html:`HTML`,md:`Markdown`,txt:`Text`,csv:`CSV`,xlsx:`Excel`,json:`JSON`,zip:`ZIP`};function MS(e,t){return(e.headers.get(`content-disposition`)??``).match(/filename="([^"]+)"/)?.[1]??t}function NS(e){let t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=e.name,n.rel=`noopener`,document.body.append(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(t),6e4)}function PS({url:e,format:t,title:n,make:r}){let[i,a]=(0,y.useState)(`idle`),o=(0,y.useRef)(null),s=async()=>{if(uh(`share`)&&!r){a(`busy`),await dh(`share`,{url:new URL(e,location.href).href,title:n}).catch(()=>void 0),a(`idle`);return}try{if(!o.current){if(a(`busy`),r)o.current=await r();else{let n=await fetch(e,{credentials:`include`});if(!n.ok)throw Error(String(n.status));let r=await n.blob();o.current=new File([r],MS(n,`download.${t}`),{type:r.type.split(`;`)[0]})}}let i={files:[o.current],title:n};if(!navigator.canShare(i)){r?NS(o.current):location.href=e,a(`idle`);return}await navigator.share(i),a(`idle`)}catch(e){a(o.current&&e.name===`NotAllowedError`?`ready`:`idle`)}};return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>void s(),disabled:i===`busy`,"aria-label":Q(`run.shareFile`),title:Q(`run.shareFile`),className:_h(`inline-flex h-9 items-center gap-1.5 rounded-full px-3 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,i===`ready`?`bg-ember-tint text-ink ring-1 ring-ember`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),children:[i===`busy`?(0,$.jsx)(Mh,{className:`size-3.5`}):(0,$.jsx)(km,{className:`size-3.5`}),Q(i===`ready`?`run.shareNow`:`run.share`)]})}var FS=uh(`share`)||sg();function IS({base:e,stepId:t,formats:n,title:r,step:i,output:a,foot:o}){let s=n=>sh(`${e}/steps/${t}/download?format=${n}`),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(null),d=mh()&&i?.type===`agent`&&a&&(a.text||a.json!==void 0)?{title:r??i.title,text:a.text,json:i.output.format===`json`?a.json:void 0,label:e=>OS(i,e),foot:o}:null,f=async()=>{if(!d)throw Error(`nothing written`);return u.current??=await $x(d),u.current},p=async()=>{l(!0);try{NS(await f())}catch(e){console.warn(`pdf: ${e.message}`),n.includes(`html`)&&window.open(s(`html`),`_blank`,`noopener`)}finally{l(!1)}},m=e=>_h(`inline-flex h-9 items-center gap-1.5 rounded-full px-3.5 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,e===0?`bg-primary text-primary-foreground hover:brightness-105`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),h=e=>e===`pdf`&&d!==null;return(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.map((e,t)=>h(e)?(0,$.jsxs)(`button`,{type:`button`,onClick:()=>void p(),disabled:c,className:m(t),children:[c?(0,$.jsx)(Mh,{className:`size-3.5`}):t===0?(0,$.jsx)(rp,{className:`size-3.5`}):null,jS[e]]},e):e===`html`&&mh()?(0,$.jsxs)(`a`,{href:s(e),target:`_blank`,rel:`noopener`,className:m(t),children:[t===0?(0,$.jsx)(_m,{className:`size-3.5`}):null,Q(`run.print`)]},e):(0,$.jsxs)(`a`,{href:s(e),onClick:t=>ph(t,s(e)),className:m(t),children:[t===0?(0,$.jsx)(rp,{className:`size-3.5`}):null,jS[e]]},e)),FS&&n.length?(0,$.jsx)(PS,{url:s(n[0]),format:n[0],title:r,make:h(n[0])?f:void 0},s(n[0])):null]})}function LS({view:e}){let t=Math.round(Math.min(e.progress.done,e.progress.total)/Math.max(1,e.progress.total)*100);return(0,$.jsx)(`div`,{className:`h-[3px] w-full bg-paper-2`,children:(0,$.jsx)(`div`,{className:`h-full bg-ember transition-[width] duration-700 ease-out`,style:{width:`${t}%`}})})}var RS=(e,t)=>n=>{oh.put(`${lh(e)}/views/${t}`,{state:n}).catch(()=>void 0)};function zS({title:e,description:t,kicker:n}){return(0,$.jsxs)(`div`,{className:`kb-title mb-8`,children:[n?(0,$.jsx)(`p`,{className:`kb-hide mb-4 text-[0.9375rem] text-ink-2 leading-relaxed`,children:n}):null,(0,$.jsx)(`h1`,{className:`font-display font-semibold text-[1.75rem] leading-[1.15] tracking-tight sm:text-[2rem]`,children:e}),t?(0,$.jsx)(`p`,{className:`kb-hide mt-2 text-[0.9375rem] text-ink-3 leading-relaxed`,children:t}):null]})}function BS(e,t){let n={};for(let r of e.fields)n[r.id]=t.values[r.id]??t.prefill?.[r.id]??r.default??(r.kind===`multiselect`?[]:void 0);return n}function VS(e){return Array.from(e.querySelectorAll(`input:not([type="hidden"], [type="file"], [type="checkbox"], [type="color"], [type="range"], [disabled]), textarea:not([disabled])`)).filter(e=>!e.closest(`dialog`)&&e.offsetParent!==null)}function HS({view:e,run:t,step:n}){let[r,i]=(0,y.useState)(()=>BS(n,e)),[a,o]=(0,y.useState)(new Set),s=(0,y.useRef)(null),c=e.progress.done===0,l=dd((0,y.useMemo)(()=>n.fields.filter(t=>!ud(t)||e.decidedFields?.includes(t.id)).map(t=>e.options?.[t.id]?.length?{...t,options:e.options[t.id]}:t),[n.fields,e.options,e.decidedFields]),e.known??{},r),u=()=>void t.submitPage(n.id,r);return(0,y.useEffect)(()=>{if(!s.current)return;let e=VS(s.current).filter(e=>e instanceof HTMLInputElement);for(let[t,n]of e.entries())(n.dataset.hint||!n.hasAttribute(`enterkeyhint`))&&(n.dataset.hint=`1`,n.setAttribute(`enterkeyhint`,t===e.length-1?`go`:`next`))}),(0,$.jsxs)(`form`,{ref:s,className:`animate-rise`,onSubmit:e=>{e.preventDefault(),a.size||u()},onKeyDown:e=>{let t=e.target;if(e.key!==`Enter`||e.defaultPrevented||e.nativeEvent.isComposing||!(t instanceof HTMLInputElement)||t.closest(`dialog`))return;let n=VS(e.currentTarget),r=n[n.indexOf(t)+1];r&&(e.preventDefault(),r.focus())},children:[(0,$.jsx)(zS,{title:n.title,description:n.description,kicker:c?e.wizard.intro:null}),(0,$.jsx)(`div`,{className:`flex flex-col gap-7`,children:l.map(n=>(0,$.jsx)(q_,{field:n,value:r[n.id],values:r,runId:e.id,view:e,error:t.fieldErrors[n.id],closed:e.closed?.[n.id],onChange:e=>i(t=>({...t,[n.id]:e})),onBusy:e=>o(t=>{if(t.has(n.id)===e)return t;let r=new Set(t);return e?r.add(n.id):r.delete(n.id),r})},n.id))}),(0,$.jsx)(US,{view:e,run:t,sticky:!0,children:(0,$.jsxs)(yh,{type:`submit`,size:`lg`,busy:t.busy,disabled:a.size>0,children:[n.cta||Q(`run.next`),` `,(0,$.jsx)(Df,{className:`size-4`})]})})]})}function US({view:e,run:t,sticky:n,children:r}){return(0,$.jsxs)(`div`,{className:_h(`mt-10 flex items-center justify-between gap-3`,n&&`action-bar`),children:[e.canBack?(0,$.jsxs)(yh,{variant:`ghost`,onClick:()=>void t.back(),disabled:t.busy,children:[(0,$.jsx)(Tf,{className:`size-4`}),` `,Q(`run.back`)]}):(0,$.jsx)(`span`,{}),r]})}function WS(){let e=tg(),[t,n]=(0,y.useState)(!1),r=e!==`off`;return(0,$.jsxs)(`div`,{className:`mt-6 flex flex-col items-center gap-2`,children:[(0,$.jsxs)(`button`,{type:`button`,"aria-pressed":r,disabled:t,onClick:async()=>{if(r){ig();return}n(!0),await rg(),n(!1)},className:_h(`inline-flex h-11 items-center gap-2 rounded-full px-4 font-medium text-[0.875rem] ring-1 transition`,r?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink hover:ring-ink-4`),children:[r?(0,$.jsx)(jf,{className:`size-4 text-ember-strong`}):(0,$.jsx)(Nf,{className:`size-4`}),Q(r?`notify.on`:`notify.ask`)]}),(0,$.jsx)(`p`,{className:`max-w-xs text-[0.75rem] text-ink-4 leading-relaxed`,children:Q(e===`off`?`notify.why`:e===`on`?`notify.onHint`:ng()?`notify.blocked`:`notify.quiet`)})]})}function GS({view:e,compact:t,awake:n}){let r=(0,y.useMemo)(()=>{let t=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id);return t?new Date(t.at).getTime():Date.now()},[e.events,e.step?.id]),[i,a]=(0,y.useState)(Date.now());(0,y.useEffect)(()=>{let e=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(e)},[]);let o=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id)?.message??e.step?.title??Q(`run.working`),s=e.events.filter(e=>(e.type===`tool`||e.type===`info`)&&new Date(e.at).getTime()>=r-500),c=s.slice(-4),{Mascot:l}=ah(),u=[...new Set(s.map(e=>e.asset).filter(e=>!!e))],d=[...s].reverse().find(e=>e.asset)?.asset;return(0,$.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-6 text-center`,children:[(0,$.jsx)(l,{kind:e.wizard.avatar,size:t?130:170,fluffy:!0}),(0,$.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem] tracking-tight`,children:o}),(0,$.jsx)(`div`,{className:`mt-1 text-[0.8125rem] text-ink-4 tabular-nums`,children:Q(`run.elapsed`,{s:Math.max(0,Math.round((i-r)/1e3))})}),u.length?(0,$.jsx)(`div`,{className:`mt-5 flex max-w-full flex-wrap justify-center gap-2`,children:u.slice(-8).map(t=>(0,$.jsx)(`img`,{src:sh(`${lh(e.id)}/assets/${t}`),alt:``,className:_h(`size-16 animate-rise rounded-lg bg-paper-2 object-cover ring-1 ring-border-soft transition sm:size-20`,t===d?`ring-2 ring-ember`:`opacity-70`)},t))}):null,(0,$.jsx)(`div`,{className:`mt-6 flex min-h-[7rem] w-full max-w-sm flex-col gap-1.5`,children:c.map((e,t)=>(0,$.jsxs)(`div`,{className:_h(`flex items-center justify-center gap-2 text-[0.8125rem] transition-opacity`,t===c.length-1?`text-ink-2`:`text-ink-4`),children:[t===c.length-1?(0,$.jsx)(Nm,{className:`size-3.5 animate-breathe text-ember`}):null,(0,$.jsx)(`span`,{className:`truncate`,children:zd(e)})]},e.id))}),t?null:(0,$.jsx)(WS,{}),n?(0,$.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-4`,children:Q(`run.awake`)}):null]})}function KS(e){let t=(0,y.useRef)({running:!1,since:0,ask:null});(0,y.useEffect)(()=>{if(!e)return;let n=t.current,r=e.status===`running`,i=r?n.running?n.since:Date.now():0,a=t=>{document.visibilityState!==`visible`&&!document.title.startsWith(`● `)&&(document.title=`● ${document.title}`),og({title:e.wizard.title,body:t,tag:e.id})};r&&e.ask&&e.ask.id!==n.ask?a(Q(`notify.needsYou`)):!r&&n.running&&Date.now()-n.since>8e3&&a(e.status===`failed`?Q(`run.failed`):e.status===`done`?Q(`notify.done`):Q(`notify.next`)),t.current={running:r,since:i,ask:e.ask?.id??null}},[e]),(0,y.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&document.title.startsWith(`● `)&&(document.title=document.title.slice(2))};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[])}function qS({view:e,run:t,step:n,studio:r}){let[i,a]=(0,y.useState)({}),[o,s]=(0,y.useState)({}),[c,l]=(0,y.useState)(``),u=e.shown.filter(e=>e.output),[d,f]=(0,y.useState)(u.length===1?u[0].step.id:null),[p,m]=(0,y.useState)({}),h=(0,y.useRef)(null),g=u.find(e=>e.step.id===d),_=g?.step.type===`generate`&&(g.output?.assets?.length??0)>1,v=()=>{g&&c.trim()&&t.regenerate(n.id,g.step.id,c.trim(),p[g.step.id])};return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsx)(zS,{title:n.title,description:n.description}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[e.shown.filter(e=>e.output).map(({step:t,output:c})=>{let l=qg(t)?t:null,u=!!n.edit&&t.type===`agent`&&(t.output.format!==`json`||!!l),d=i[t.id],g=e=>(0,$.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.title}),(0,$.jsxs)(`div`,{className:`flex items-center`,children:[u&&!o[t.id]?(0,$.jsxs)(`button`,{type:`button`,onClick:()=>s(e=>({...e,[t.id]:!0})),className:`inline-flex h-8 items-center gap-1.5 rounded-full px-3 text-[0.8125rem] text-ink-2 hover:bg-accent hover:text-ink coarse:h-11`,children:[(0,$.jsx)(pm,{className:`size-3.5`}),` `,Q(`run.edit`)]}):null,e]})]}),_=l&&c&&u&&o[t.id]?(0,$.jsx)(`div`,{className:`overflow-hidden rounded-xl bg-card ring-1 ring-border-soft`,children:(0,$.jsx)(Ug,{shape:nd(l),value:d&&typeof d==`object`?d:c.json??{},onChange:e=>a(n=>({...n,[t.id]:e})),start:`edit`})}):(0,$.jsx)(AS,{base:`${lh(e.id)}`,step:t,output:c,onView:RS(e.id,t.id),editable:u&&o[t.id]&&!l,draft:typeof d==`string`?d:void 0,onDraft:e=>a(n=>({...n,[t.id]:e})),picked:p[t.id],onPick:n.regenerate?e=>{f(t.id),m(n=>{let r=n[t.id]??[];return{...n,[t.id]:r.includes(e)?r.filter(t=>t!==e):[...r,e]}}),h.current?.focus()}:void 0,onSurfaceAction:n.regenerate?()=>{f(t.id),h.current?.focus()}:void 0});return(0,$.jsx)(`section`,{children:r&&l&&c?(0,$.jsx)(Jg,{runId:e.id,step:l,output:c,header:g,children:_}):(0,$.jsxs)($.Fragment,{children:[g(null),_]})},t.id)}),e.lists.map(t=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-2 font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.def.title}),t.def.check?(0,$.jsx)(k_,{runId:e.id,list:t}):(0,$.jsx)(E_,{runId:e.id,list:t,editable:!0})]},t.def.id)),n.regenerate&&u.length?(0,$.jsxs)(Nh,{className:`p-3`,children:[u.length>1?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 pb-2`,children:[(0,$.jsx)(`span`,{className:`mr-1 text-[0.8125rem] text-ink-3`,children:Q(`run.feedbackTarget`)}),u.map(({step:e})=>(0,$.jsx)(`button`,{type:`button`,"aria-pressed":d===e.id,onClick:()=>{f(e.id),h.current?.focus()},className:_h(`inline-flex h-8 items-center rounded-full px-3 text-[0.8125rem] ring-1 transition coarse:h-11`,d===e.id?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink`),children:e.title},e.id))]}):null,(0,$.jsx)(Th,{ref:h,minRows:2,maxRows:8,value:c,placeholder:Q(`run.feedbackPlaceholder`),onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())},className:`border-0 bg-transparent shadow-none focus:ring-0`}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-1 pt-1`,children:[(0,$.jsx)(`span`,{className:`min-w-0 text-[0.75rem] text-ink-3`,children:_?p[g.step.id]?.length?Q(`run.regeneratePicked`,{n:[...p[g.step.id]].sort((e,t)=>e-t).map(e=>e+1).join(`, `)}):Q(`run.regenerateAll`):!g&&c.trim()?Q(`run.feedbackPick`):null}),(0,$.jsxs)(yh,{size:`sm`,variant:`secondary`,busy:t.busy,disabled:!c.trim()||!g,onClick:v,children:[(0,$.jsx)(ym,{className:`size-3.5`}),` `,Q(`run.regenerateGo`)]})]})]}):null]}),(0,$.jsx)(US,{view:e,run:t,sticky:!0,children:(0,$.jsxs)(yh,{size:`lg`,busy:t.busy,onClick:()=>void t.accept(n.id,Object.keys(i).length?i:void 0),children:[Q(`run.accept`),` `,(0,$.jsx)(Df,{className:`size-4`})]})})]})}function JS({view:e,run:t,step:n,onRestart:r,studio:i}){let a=e.shown.filter(e=>e.output),{Mascot:o,ShareResultButton:s}=ah();return(0,$.jsxs)(`div`,{className:`animate-rise`,children:[(0,$.jsxs)(`div`,{className:`mb-8 flex flex-wrap items-center gap-x-4 gap-y-5`,children:[(0,$.jsx)(o,{kind:e.wizard.avatar,size:64}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 basis-[12rem]`,children:[(0,$.jsx)(`h1`,{className:`text-balance font-display font-semibold text-[1.75rem] leading-tight tracking-tight sm:text-[2rem]`,children:n.title}),n.message?(0,$.jsx)(`p`,{className:`mt-1 text-[0.9375rem] text-ink-3`,children:n.message}):null]}),s&&e.shown.some(e=>e.output)?(0,$.jsx)(`div`,{className:`max-sm:basis-full`,children:(0,$.jsx)(s,{runId:e.id,title:`${n.title} · ${e.wizard.title}`,initial:e.shareUrl?{url:e.shareUrl,expiresAt:e.expiresAt}:null})}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[a.map(({step:n,output:r,formats:a,label:o})=>{let s=t=>(0,$.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:o??n.title}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(IS,{base:`${lh(e.id)}`,stepId:n.id,formats:a,title:o??n.title,step:n,output:r??void 0,foot:`${e.wizard.title} · ${new Date().toLocaleDateString(ah().lang)}`}),t]})]}),c=(0,$.jsx)(XS,{view:e,run:t,step:n,output:r,onView:RS(e.id,n.id)});return(0,$.jsxs)(Nh,{className:`p-4 sm:p-5`,children:[i&&qg(n)&&r?(0,$.jsx)(Jg,{runId:e.id,step:n,output:r,header:s,children:c}):(0,$.jsxs)($.Fragment,{children:[s(null),c]}),r?.assets?.some(e=>e.ai)?(0,$.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-3 leading-relaxed`,children:Q(`ai.publish`)}):null]},n.id)}),e.lists.map(t=>(0,$.jsxs)(Nh,{className:`p-4 sm:p-5`,children:[(0,$.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:t.label??t.def.title}),(0,$.jsx)(j_,{runId:e.id,list:t})]}),(0,$.jsx)(E_,{runId:e.id,list:t,editable:!0})]},t.def.id))]}),(0,$.jsx)(US,{view:e,run:t,children:r?(0,$.jsxs)(yh,{variant:`secondary`,onClick:r,children:[(0,$.jsx)(xm,{className:`size-4`}),` `,Q(`run.again`)]}):(0,$.jsx)(`span`,{})})]})}function YS({view:e,run:t}){let{Mascot:n}=ah();return(0,$.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-8 text-center`,children:[(0,$.jsx)(n,{kind:e.wizard.avatar,size:90}),(0,$.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem]`,children:Q(`run.failed`)}),(0,$.jsx)(`p`,{className:`mt-2 max-w-md text-[0.9375rem] text-ink-3`,children:(0,$.jsx)(Ih,{text:e.error??``})}),(0,$.jsxs)(`div`,{className:`mt-8 flex gap-3`,children:[e.canBack?(0,$.jsxs)(yh,{variant:`ghost`,onClick:()=>void t.back(),children:[(0,$.jsx)(Tf,{className:`size-4`}),` `,Q(`run.back`)]}):null,(0,$.jsxs)(yh,{onClick:()=>void t.retry(),busy:t.busy,children:[(0,$.jsx)(xm,{className:`size-4`}),` `,Q(`run.retry`)]})]})]})}function XS({view:e,run:t,step:n,output:r,onView:i}){let[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),l=lh(e.id),u=e.translation?.results[n.id];if(!(e.translation&&r?.text&&t.translateResult))return(0,$.jsx)(AS,{base:l,step:n,output:r,onView:i});let d=u&&!a?{...r,text:u}:r;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(AS,{base:l,step:n,output:d,onView:i}),(0,$.jsx)(`div`,{className:`mt-3 flex items-center gap-3 text-[0.8125rem] text-ink-3`,children:u?(0,$.jsxs)($.Fragment,{children:[a?null:(0,$.jsx)(`span`,{children:Q(`translation.machine`)}),(0,$.jsx)(`button`,{type:`button`,className:`underline-offset-4 hover:text-ink hover:underline coarse:min-h-11`,onClick:()=>o(e=>!e),children:Q(a?`translation.showTranslated`:`translation.showOriginal`)})]}):(0,$.jsxs)(yh,{size:`sm`,variant:`secondary`,busy:s,onClick:async()=>{c(!0),await t.translateResult?.(n.id),c(!1)},children:[(0,$.jsx)(Np,{className:`size-4`}),` `,Q(s?`translation.working`:`result.translate`)]})})]})}function ZS({run:e,compact:t,onRestart:n,onView:r,stickyProgress:i,studio:a}){let{view:o}=e;Vd(o?.translation?.labels),(0,y.useEffect)(()=>{r?.(o)},[o,r]),Gh();let s=Kh(o?.status===`running`&&!o.ask);if(KS(o),e.notFound)return(0,$.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:Q(`run.notFound`)});if(!o)return(0,$.jsx)(`div`,{className:`flex justify-center py-24 text-ink-4`,children:(0,$.jsx)(Mh,{})});let c=o.step,l=null;if(o.status===`running`&&o.ask)l=(0,$.jsx)(Bh,{runId:o.id,ask:o.ask},o.ask.id);else if(o.status===`running`)l=(0,$.jsx)(GS,{view:o,compact:t,awake:s});else if(o.status===`failed`)l=(0,$.jsx)(YS,{view:o,run:e});else if(o.status===`cancelled`)l=(0,$.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:Q(`run.cancelled`)});else if(c?.type===`page`)l=(0,$.jsx)(HS,{view:o,run:e,step:c},c.id);else if(c?.type===`review`){let t=o.shown.map(e=>e.output?.at??``).join(`|`);l=(0,$.jsx)(qS,{view:o,run:e,step:c,studio:a},`${c.id}:${t}`)}else c?.type===`result`&&(l=(0,$.jsx)(JS,{view:o,run:e,step:c,onRestart:n,studio:a}));let u=c?.type===`review`&&o.status===`waiting_input`&&o.lists.some(e=>e.def.check);return(0,$.jsxs)(`div`,{className:`flex min-h-full flex-col`,children:[i?(0,$.jsx)(`div`,{className:`sticky top-0 z-10`,children:(0,$.jsx)(LS,{view:o})}):(0,$.jsx)(LS,{view:o}),(0,$.jsxs)(`div`,{className:_h(`safe-x kb-tight mx-auto w-full flex-1`,u?`max-w-[1240px] py-8`:t?`max-w-[620px] py-8`:`max-w-[640px] py-8 sm:py-16`),children:[l,e.error&&o.status!==`failed`?(0,$.jsx)(`div`,{className:`mt-4 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:e.error}):null,o.keeps&&o.status!==`running`?(0,$.jsx)(`div`,{className:`mt-10 flex justify-center`,children:(0,$.jsx)(M_,{runId:o.id})}):null]})]})}var QS=Object.defineProperty,$S=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),eC=(e,t)=>{let n={};for(var r in e)QS(n,r,{get:e[r],enumerable:!0});return t&&QS(n,Symbol.toStringTag,{value:`Module`}),n},tC=new Set([`https://json-schema.org/draft/2019-09/schema`,`http://json-schema.org/draft/2019-09/schema`]);function nC(e){return typeof e==`string`&&tC.has(e.replace(/#$/,``))}var rC=[`2025-11-25`,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],iC=`io.modelcontextprotocol/related-task`,aC=`io.modelcontextprotocol/protocolVersion`,oC=`io.modelcontextprotocol/clientInfo`,sC=`io.modelcontextprotocol/serverInfo`,cC=`io.modelcontextprotocol/clientCapabilities`,lC=`io.modelcontextprotocol/subscriptionId`,uC=`io.modelcontextprotocol/logLevel`,dC=ol(()=>Ec([q(),J(),dc(),hc(),Mc(q(),dC),Y(dC)])),fC=Mc(q(),dC),pC=Y(dC),mC=Ec([q(),J().int()]),hC=q(),gC=X({ttl:J().optional()}),_C=X({taskId:q()}),vC=wc({progressToken:mC.optional(),[iC]:_C.optional()}),yC=X({_meta:vC.optional()}),bC=yC.extend({task:gC.optional()}),xC=X({method:q(),params:yC.loose().optional()}),SC=X({_meta:vC.optional()}),CC=X({method:q(),params:SC.loose().optional()}),wC=wc({get[sC](){return zC.optional().catch(void 0)}}),TC=wc({_meta:wC.optional()}),EC=Ec([q(),J().int()]),DC=X({jsonrpc:Z(`2.0`),id:EC,...xC.shape}).strict(),OC=X({jsonrpc:Z(`2.0`),...CC.shape}).strict(),kC=X({jsonrpc:Z(`2.0`),id:EC,result:TC}).strict(),AC=X({jsonrpc:Z(`2.0`),id:EC.optional(),error:X({code:J().int(),message:q(),data:yc().optional()})}).strict(),jC=Ec([DC,OC,kC,AC]),MC=Ec([kC,AC]),NC=TC.strict(),PC=SC.extend({requestId:EC.optional(),reason:q().optional()}),FC=CC.extend({method:Z(`notifications/cancelled`),params:PC}),IC=X({src:q(),mimeType:q().optional(),sizes:Y(q()).optional(),theme:Pc([`light`,`dark`]).optional()}),LC=X({icons:Y(IC).optional()}),RC=X({name:q(),title:q().optional()}),zC=RC.extend({...RC.shape,...LC.shape,version:q(),websiteUrl:q().optional(),description:q().optional()}),BC=ul(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Ac(X({form:Ac(X({applyDefaults:dc().optional()}),fC).optional(),url:fC.optional()}),fC.optional())),VC=wc({list:fC.optional(),cancel:fC.optional(),requests:wc({sampling:wc({createMessage:fC.optional()}).optional(),elicitation:wc({create:fC.optional()}).optional()}).optional()}),HC=wc({list:fC.optional(),cancel:fC.optional(),requests:wc({tools:wc({call:fC.optional()}).optional()}).optional()}),UC=X({experimental:Mc(q(),fC).optional(),sampling:X({context:fC.optional(),tools:fC.optional()}).optional(),elicitation:BC.optional(),roots:X({listChanged:dc().optional()}).optional(),tasks:VC.optional(),extensions:Mc(q(),fC).optional()}),WC=yC.extend({protocolVersion:q(),capabilities:UC,clientInfo:zC}),GC=xC.extend({method:Z(`initialize`),params:WC}),KC=X({experimental:Mc(q(),fC).optional(),logging:fC.optional(),completions:fC.optional(),prompts:X({listChanged:dc().optional()}).optional(),resources:X({subscribe:dc().optional(),listChanged:dc().optional()}).optional(),tools:X({listChanged:dc().optional()}).optional(),tasks:HC.optional(),extensions:Mc(q(),fC).optional()}),qC=TC.extend({protocolVersion:q(),capabilities:KC,serverInfo:zC,instructions:q().optional()}),JC=CC.extend({method:Z(`notifications/initialized`),params:SC.optional()}),YC=xC.extend({method:Z(`server/discover`),params:yC.optional()}),XC=TC.extend({supportedVersions:Y(q()),capabilities:KC,instructions:q().optional()}),ZC=xC.extend({method:Z(`ping`),params:yC.optional()}),QC=X({progress:J(),total:zc(J()),message:zc(q())}),$C=X({...SC.shape,...QC.shape,progressToken:mC}),ew=CC.extend({method:Z(`notifications/progress`),params:$C}),tw=yC.extend({cursor:hC.optional()}),nw=xC.extend({params:tw.optional()}),rw=TC.extend({nextCursor:hC.optional()}),iw=X({uri:q(),mimeType:zc(q()),_meta:Mc(q(),yc()).optional()}),aw=iw.extend({text:q()}),ow=q().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),sw=iw.extend({blob:ow}),cw=Pc([`user`,`assistant`]),lw=X({audience:Y(cw).optional(),priority:J().min(0).max(1).optional(),lastModified:pl({offset:!0}).optional()}),uw=X({...RC.shape,...LC.shape,uri:q(),description:zc(q()),mimeType:zc(q()),size:zc(J()),annotations:lw.optional(),_meta:zc(wc({}))}),dw=X({...RC.shape,...LC.shape,uriTemplate:q(),description:zc(q()),mimeType:zc(q()),annotations:lw.optional(),_meta:zc(wc({}))}),fw=nw.extend({method:Z(`resources/list`)}),pw=rw.extend({resources:Y(uw)}),mw=nw.extend({method:Z(`resources/templates/list`)}),hw=rw.extend({resourceTemplates:Y(dw)}),gw=yC.extend({uri:q()}),_w=gw,vw=xC.extend({method:Z(`resources/read`),params:_w}),yw=TC.extend({contents:Y(Ec([aw,sw]))}),bw=CC.extend({method:Z(`notifications/resources/list_changed`),params:SC.optional()}),xw=gw,Sw=xC.extend({method:Z(`resources/subscribe`),params:xw}),Cw=gw,ww=xC.extend({method:Z(`resources/unsubscribe`),params:Cw}),Tw=X({toolsListChanged:dc().optional(),promptsListChanged:dc().optional(),resourcesListChanged:dc().optional(),resourceSubscriptions:Y(q()).optional()}),Ew=yC.extend({notifications:Tw}),Dw=xC.extend({method:Z(`subscriptions/listen`),params:Ew}),Ow=SC.extend({notifications:Tw}),kw=CC.extend({method:Z(`notifications/subscriptions/acknowledged`),params:Ow}),Aw=wC.extend({[lC]:EC}),jw=TC.extend({_meta:Aw}),Mw=SC.extend({uri:q()}),Nw=CC.extend({method:Z(`notifications/resources/updated`),params:Mw}),Pw=X({name:q(),description:zc(q()),required:zc(dc())}),Fw=X({...RC.shape,...LC.shape,description:zc(q()),arguments:zc(Y(Pw)),_meta:zc(wc({}))}),Iw=nw.extend({method:Z(`prompts/list`)}),Lw=rw.extend({prompts:Y(Fw)}),Rw=yC.extend({name:q(),arguments:Mc(q(),q()).optional()}),zw=xC.extend({method:Z(`prompts/get`),params:Rw}),Bw=X({type:Z(`text`),text:q(),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Vw=X({type:Z(`image`),data:ow,mimeType:q(),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Hw=X({type:Z(`audio`),data:ow,mimeType:q(),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Uw=X({type:Z(`tool_use`),name:q(),id:q(),input:Mc(q(),yc()),_meta:Mc(q(),yc()).optional()}),Ww=X({type:Z(`resource`),resource:Ec([aw,sw]),annotations:lw.optional(),_meta:Mc(q(),yc()).optional()}),Gw=uw.extend({type:Z(`resource_link`)}),Kw=Ec([Bw,Vw,Hw,Gw,Ww]),qw=X({role:cw,content:Kw}),Jw=TC.extend({description:q().optional(),messages:Y(qw)}),Yw=CC.extend({method:Z(`notifications/prompts/list_changed`),params:SC.optional()}),Xw=X({title:q().optional(),readOnlyHint:dc().optional(),destructiveHint:dc().optional(),idempotentHint:dc().optional(),openWorldHint:dc().optional()}),Zw=X({taskSupport:Pc([`required`,`optional`,`forbidden`]).optional()}),Qw=X({...RC.shape,...LC.shape,description:q().optional(),inputSchema:X({type:Z(`object`),properties:Mc(q(),dC).optional(),required:Y(q()).optional()}).catchall(yc()),outputSchema:wc({$schema:q().optional()}).optional(),annotations:Xw.optional(),execution:Zw.optional(),_meta:Mc(q(),yc()).optional()}),$w=nw.extend({method:Z(`tools/list`)}),eT=rw.extend({tools:Y(Qw)}),tT=TC.extend({content:Y(Kw).default([]),structuredContent:yc().optional(),isError:dc().optional()}),nT=tT.or(TC.extend({toolResult:yc()})),rT=bC.extend({name:q(),arguments:Mc(q(),yc()).optional()}),iT=xC.extend({method:Z(`tools/call`),params:rT}),aT=CC.extend({method:Z(`notifications/tools/list_changed`),params:SC.optional()}),oT=X({autoRefresh:dc().default(!0),debounceMs:J().int().nonnegative().default(300)}),sT=Pc([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),cT=yC.extend({level:sT}),lT=xC.extend({method:Z(`logging/setLevel`),params:cT}),uT=SC.extend({level:sT,logger:q().optional(),data:yc()}),dT=CC.extend({method:Z(`notifications/message`),params:uT}),fT=X({name:q().optional()}),pT=X({hints:Y(fT).optional(),costPriority:J().min(0).max(1).optional(),speedPriority:J().min(0).max(1).optional(),intelligencePriority:J().min(0).max(1).optional()}),mT=X({mode:Pc([`auto`,`required`,`none`]).optional()}),hT=X({type:Z(`tool_result`),toolUseId:q().describe(`The unique identifier for the corresponding tool call.`),content:Y(Kw),structuredContent:yc().optional(),isError:dc().optional(),_meta:Mc(q(),yc()).optional()}),gT=Oc(`type`,[Bw,Vw,Hw]),_T=Oc(`type`,[Bw,Vw,Hw,Uw,hT]),vT=X({role:cw,content:Ec([_T,Y(_T)]),_meta:Mc(q(),yc()).optional()}),yT=bC.extend({messages:Y(vT),modelPreferences:pT.optional(),systemPrompt:q().optional(),includeContext:Pc([`none`,`thisServer`,`allServers`]).optional(),temperature:J().optional(),maxTokens:J().int(),stopSequences:Y(q()).optional(),metadata:fC.optional(),tools:Y(Qw).optional(),toolChoice:mT.optional()}),bT=xC.extend({method:Z(`sampling/createMessage`),params:yT}),xT=TC.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`]).or(q())),role:cw,content:gT}),ST=TC.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(q())),role:cw,content:Ec([_T,Y(_T)])}),CT=X({type:Z(`boolean`),title:q().optional(),description:q().optional(),default:dc().optional()}),wT=X({type:Z(`string`),title:q().optional(),description:q().optional(),minLength:J().optional(),maxLength:J().optional(),format:Pc([`email`,`uri`,`date`,`date-time`]).optional(),default:q().optional()}),TT=X({type:Pc([`number`,`integer`]),title:q().optional(),description:q().optional(),minimum:J().optional(),maximum:J().optional(),default:J().optional()}),ET=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),default:q().optional()}),DT=X({type:Z(`string`),title:q().optional(),description:q().optional(),oneOf:Y(X({const:q(),title:q()})),default:q().optional()}),OT=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),enumNames:Y(q()).optional(),default:q().optional()}),kT=Ec([ET,DT]),AT=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({type:Z(`string`),enum:Y(q())}),default:Y(q()).optional()}),jT=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({anyOf:Y(X({const:q(),title:q()}))}),default:Y(q()).optional()}),MT=Ec([AT,jT]),NT=Ec([OT,kT,MT]),PT=Ec([NT,CT,wT,TT]),FT=bC.extend({mode:Z(`form`).optional(),message:q(),requestedSchema:X({type:Z(`object`),properties:Mc(q(),PT),required:Y(q()).optional()}).catchall(yc())}),IT=bC.extend({mode:Z(`url`),message:q(),elicitationId:q(),url:q().url()}),LT=Ec([FT,IT]),RT=xC.extend({method:Z(`elicitation/create`),params:LT}),zT=SC.extend({elicitationId:q()}),BT=CC.extend({method:Z(`notifications/elicitation/complete`),params:zT}),VT=TC.extend({action:Pc([`accept`,`decline`,`cancel`]),content:ul(e=>e===null?void 0:e,Mc(q(),Ec([q(),J(),dc(),Y(q())])).optional())}),HT=X({type:Z(`ref/resource`),uri:q()}),UT=X({type:Z(`ref/prompt`),name:q()}),WT=yC.extend({ref:Ec([UT,HT]),argument:X({name:q(),value:q()}),context:X({arguments:Mc(q(),q()).optional()}).optional()}),GT=xC.extend({method:Z(`completion/complete`),params:WT}),KT=TC.extend({completion:wc({values:Y(q()).max(100),total:zc(J().int()),hasMore:zc(dc())})}),qT=X({uri:q().startsWith(`file://`),name:q().optional(),_meta:Mc(q(),yc()).optional()}),JT=xC.extend({method:Z(`roots/list`),params:yC.optional()}),YT=TC.extend({roots:Y(qT)}),XT=CC.extend({method:Z(`notifications/roots/list_changed`),params:SC.optional()}),ZT=wc({ttl:J().optional(),pollInterval:J().optional()}),QT=Pc([`working`,`input_required`,`completed`,`failed`,`cancelled`]),$T=X({taskId:q(),status:QT,ttl:Ec([J(),hc()]),createdAt:q(),lastUpdatedAt:q(),pollInterval:zc(J()),statusMessage:zc(q())}),eE=TC.extend({task:$T}),tE=SC.merge($T),nE=CC.extend({method:Z(`notifications/tasks/status`),params:tE}),rE=xC.extend({method:Z(`tasks/get`),params:yC.extend({taskId:q()})}),iE=TC.merge($T),aE=xC.extend({method:Z(`tasks/result`),params:yC.extend({taskId:q()})}),oE=TC.loose(),sE=nw.extend({method:Z(`tasks/list`)}),cE=rw.extend({tasks:Y($T)}),lE=xC.extend({method:Z(`tasks/cancel`),params:yC.extend({taskId:q()})}),uE=TC.merge($T),dE=Ec([ZC,GC,YC,GT,lT,zw,Iw,fw,mw,vw,Sw,ww,Dw,iT,$w]),fE=Ec([FC,ew,JC,XT]),pE=Ec([NC,xT,ST,VT,YT]),mE=Ec([ZC,bT,RT,JT]),hE=Ec([FC,ew,dT,Nw,bw,aT,Yw,kw,BT]),gE=Ec([NC,qC,XC,KT,Jw,Lw,pw,hw,yw,tT,eT,jw]),_E=Gs().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:dl.custom,message:`URL must be parseable`,fatal:!0}),Ue}).refine(e=>{let t=new URL(e);return t.protocol!==`javascript:`&&t.protocol!==`data:`&&t.protocol!==`vbscript:`},{message:`URL cannot use javascript:, data:, or vbscript: scheme`}),vE=wc({resource:q().url(),authorization_servers:Y(_E).optional(),jwks_uri:q().url().optional(),scopes_supported:Y(q()).optional(),bearer_methods_supported:Y(q()).optional(),resource_signing_alg_values_supported:Y(q()).optional(),resource_name:q().optional(),resource_documentation:q().optional(),resource_policy_uri:q().url().optional(),resource_tos_uri:q().url().optional(),tls_client_certificate_bound_access_tokens:dc().optional(),authorization_details_types_supported:Y(q()).optional(),dpop_signing_alg_values_supported:Y(q()).optional(),dpop_bound_access_tokens_required:dc().optional()}),yE=wc({issuer:q(),authorization_endpoint:_E,token_endpoint:_E,registration_endpoint:_E.optional(),scopes_supported:Y(q()).optional(),response_types_supported:Y(q()),response_modes_supported:Y(q()).optional(),grant_types_supported:Y(q()).optional(),token_endpoint_auth_methods_supported:Y(q()).optional(),token_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),service_documentation:_E.optional(),revocation_endpoint:_E.optional(),revocation_endpoint_auth_methods_supported:Y(q()).optional(),revocation_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),introspection_endpoint:q().optional(),introspection_endpoint_auth_methods_supported:Y(q()).optional(),introspection_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),code_challenge_methods_supported:Y(q()).optional(),client_id_metadata_document_supported:dc().optional(),authorization_response_iss_parameter_supported:dc().optional().catch(void 0),dpop_signing_alg_values_supported:Y(q()).optional()}),bE=wc({issuer:q(),authorization_endpoint:_E,token_endpoint:_E,userinfo_endpoint:_E.optional(),jwks_uri:_E,registration_endpoint:_E.optional(),scopes_supported:Y(q()).optional(),response_types_supported:Y(q()),response_modes_supported:Y(q()).optional(),grant_types_supported:Y(q()).optional(),acr_values_supported:Y(q()).optional(),subject_types_supported:Y(q()),id_token_signing_alg_values_supported:Y(q()),id_token_encryption_alg_values_supported:Y(q()).optional(),id_token_encryption_enc_values_supported:Y(q()).optional(),userinfo_signing_alg_values_supported:Y(q()).optional(),userinfo_encryption_alg_values_supported:Y(q()).optional(),userinfo_encryption_enc_values_supported:Y(q()).optional(),request_object_signing_alg_values_supported:Y(q()).optional(),request_object_encryption_alg_values_supported:Y(q()).optional(),request_object_encryption_enc_values_supported:Y(q()).optional(),token_endpoint_auth_methods_supported:Y(q()).optional(),token_endpoint_auth_signing_alg_values_supported:Y(q()).optional(),display_values_supported:Y(q()).optional(),claim_types_supported:Y(q()).optional(),claims_supported:Y(q()).optional(),service_documentation:q().optional(),claims_locales_supported:Y(q()).optional(),ui_locales_supported:Y(q()).optional(),claims_parameter_supported:dc().optional(),request_parameter_supported:dc().optional(),request_uri_parameter_supported:dc().optional(),require_request_uri_registration:dc().optional(),op_policy_uri:_E.optional(),op_tos_uri:_E.optional(),client_id_metadata_document_supported:dc().optional(),authorization_response_iss_parameter_supported:dc().optional().catch(void 0)}),xE=X({...bE.shape,...yE.pick({code_challenge_methods_supported:!0}).shape}),SE=X({access_token:q(),id_token:q().optional(),token_type:q(),expires_in:hl().optional(),scope:q().optional(),refresh_token:q().optional(),issuer:q().optional().catch(void 0)}).strip(),CE=X({issued_token_type:Z(`urn:ietf:params:oauth:token-type:id-jag`),access_token:q(),token_type:q().optional(),expires_in:J().optional(),scope:q().optional()}).strip(),wE=X({error:q(),error_description:q().optional(),error_uri:q().optional()}),TE=_E.optional().or(Z(``).transform(()=>void 0)),EE=X({redirect_uris:Y(_E),token_endpoint_auth_method:q().optional(),grant_types:Y(q()).optional(),response_types:Y(q()).optional(),application_type:q().optional(),client_name:q().optional(),client_uri:_E.optional(),logo_uri:TE,scope:q().optional(),contacts:Y(q()).optional(),tos_uri:TE,policy_uri:q().optional(),jwks_uri:_E.optional(),jwks:_c().optional(),software_id:q().optional(),software_version:q().optional(),software_statement:q().optional()}).strip(),DE=X({client_id:q(),client_secret:q().optional(),client_id_issued_at:J().optional(),client_secret_expires_at:J().optional(),issuer:q().optional().catch(void 0)}).strip(),OE=EE.merge(DE),kE=X({error:q(),error_description:q().optional()}).strip(),AE=X({token:q(),token_type_hint:q().optional()}).strip(),jE=Symbol.for(`mcp.sdk.errorBrands`);function ME(e,t){let n=new Set,r=t;for(;typeof r==`function`;){let e=r.mcpBrand;Object.prototype.hasOwnProperty.call(r,`mcpBrand`)&&typeof e==`string`&&n.add(e),r=Object.getPrototypeOf(r)}n.size!==0&&Object.defineProperty(e,jE,{value:n,enumerable:!1,configurable:!0})}function NE(e,t){try{if(typeof t==`object`&&t&&Object.prototype.hasOwnProperty.call(e,`mcpBrand`)&&typeof e.mcpBrand==`string`&&Object.prototype.hasOwnProperty.call(t,jE)){let n=t[jE];if(n&&typeof n.has==`function`&&n.has(e.mcpBrand))return!0}}catch{}return Function.prototype[Symbol.hasInstance].call(e,t)}(class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.OAuthError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n){super(t),this.code=e,this.errorUri=n,this.name=`OAuthError`,ME(this,new.target)}toResponseObject(){let e={error:this.code,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}static fromResponse(t){return new e(t.error,t.error_description??t.error,t.error_uri)}});var PE=function(e){return e.NotConnected=`NOT_CONNECTED`,e.AlreadyConnected=`ALREADY_CONNECTED`,e.NotInitialized=`NOT_INITIALIZED`,e.CapabilityNotSupported=`CAPABILITY_NOT_SUPPORTED`,e.RequestTimeout=`REQUEST_TIMEOUT`,e.ConnectionClosed=`CONNECTION_CLOSED`,e.SendFailed=`SEND_FAILED`,e.InvalidResult=`INVALID_RESULT`,e.UnsupportedResultType=`UNSUPPORTED_RESULT_TYPE`,e.InputRequiredRoundsExceeded=`INPUT_REQUIRED_ROUNDS_EXCEEDED`,e.ListPaginationExceeded=`LIST_PAGINATION_EXCEEDED`,e.MethodNotSupportedByProtocolVersion=`METHOD_NOT_SUPPORTED_BY_PROTOCOL_VERSION`,e.EraNegotiationFailed=`ERA_NEGOTIATION_FAILED`,e.ClientHttpNotImplemented=`CLIENT_HTTP_NOT_IMPLEMENTED`,e.ClientHttpAuthentication=`CLIENT_HTTP_AUTHENTICATION`,e.ClientHttpForbidden=`CLIENT_HTTP_FORBIDDEN`,e.ClientHttpUnexpectedContent=`CLIENT_HTTP_UNEXPECTED_CONTENT`,e.ClientHttpFailedToOpenStream=`CLIENT_HTTP_FAILED_TO_OPEN_STREAM`,e.ClientHttpFailedToTerminateSession=`CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION`,e}({}),FE=class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.SdkError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n,r){super(t,r),this.code=e,this.data=n,this.name=`SdkError`,ME(this,new.target)}};(class extends FE{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.SdkHttpError`})}constructor(e,t,n,r){super(e,t,n,r),this.name=`SdkHttpError`}get status(){return this.data.status}get statusText(){return this.data.statusText}});var IE=`2026-07-28`;function LE(e){return e>=IE}function RE(e){let t=e.structuredContent;return t===void 0||typeof t==`object`&&t&&!Array.isArray(t)||(e.content?.some(e=>e.type===`text`)??!1)?e:{...e,content:[...e.content??[],{type:`text`,text:JSON.stringify(t)}]}}var zE=[`task`,`inputRequests`,`requestState`];function BE(e){return typeof e!=`object`||!e||Array.isArray(e)||e.content!==void 0||zE.some(t=>t in e)?e:{...e,content:[]}}function VE(){let e=ol(()=>Ec([q(),J(),dc(),hc(),Mc(q(),e),Y(e)])),t=Mc(q(),e),n=Ec([q(),J().int()]),r=q(),i=X({ttl:J().optional()}),a=X({taskId:q()}),o=wc({progressToken:n.optional(),"io.modelcontextprotocol/related-task":a.optional()}),s=X({_meta:o.optional()}),c=s.extend({task:i.optional()}),l=X({method:q(),params:s.loose().optional()}),u=X({_meta:o.optional()}),d=X({method:q(),params:u.loose().optional()}),f=wc({_meta:o.optional()}),p=Ec([q(),J().int()]),m=f.strict(),h=u.extend({requestId:p.optional(),reason:q().optional()}),g=d.extend({method:Z(`notifications/cancelled`),params:h}),_=X({src:q(),mimeType:q().optional(),sizes:Y(q()).optional(),theme:Pc([`light`,`dark`]).optional()}),v=X({icons:Y(_).optional()}),y=X({name:q(),title:q().optional()}),b=y.extend({...y.shape,...v.shape,version:q(),websiteUrl:q().optional(),description:q().optional()}),x=ul(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Ac(X({form:Ac(X({applyDefaults:dc().optional()}),t).optional(),url:t.optional()}),t.optional())),S=wc({list:t.optional(),cancel:t.optional(),requests:wc({sampling:wc({createMessage:t.optional()}).optional(),elicitation:wc({create:t.optional()}).optional()}).optional()}),C=wc({list:t.optional(),cancel:t.optional(),requests:wc({tools:wc({call:t.optional()}).optional()}).optional()}),w=X({experimental:Mc(q(),t).optional(),sampling:X({context:t.optional(),tools:t.optional()}).optional(),elicitation:x.optional(),roots:X({listChanged:dc().optional()}).optional(),tasks:S.optional(),extensions:Mc(q(),t).optional()}),T=s.extend({protocolVersion:q(),capabilities:w,clientInfo:b}),E=l.extend({method:Z(`initialize`),params:T}),D=X({experimental:Mc(q(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:X({listChanged:dc().optional()}).optional(),resources:X({subscribe:dc().optional(),listChanged:dc().optional()}).optional(),tools:X({listChanged:dc().optional()}).optional(),tasks:C.optional(),extensions:Mc(q(),t).optional()}),O=f.extend({protocolVersion:q(),capabilities:D,serverInfo:b,instructions:q().optional()}),k=d.extend({method:Z(`notifications/initialized`),params:u.optional()}),A=l.extend({method:Z(`ping`),params:s.optional()}),j=X({progress:J(),total:zc(J()),message:zc(q())}),M=X({...u.shape,...j.shape,progressToken:n}),N=d.extend({method:Z(`notifications/progress`),params:M}),P=s.extend({cursor:r.optional()}),F=l.extend({params:P.optional()}),I=f.extend({nextCursor:r.optional()}),ee=X({uri:q(),mimeType:zc(q()),_meta:Mc(q(),yc()).optional()}),L=ee.extend({text:q()}),R=q().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),z=ee.extend({blob:R}),te=Pc([`user`,`assistant`]),ne=X({audience:Y(te).optional(),priority:J().min(0).max(1).optional(),lastModified:pl({offset:!0}).optional()}),re=X({...y.shape,...v.shape,uri:q(),description:zc(q()),mimeType:zc(q()),size:zc(J()),annotations:ne.optional(),_meta:zc(wc({}))}),B=X({...y.shape,...v.shape,uriTemplate:q(),description:zc(q()),mimeType:zc(q()),annotations:ne.optional(),_meta:zc(wc({}))}),ie=F.extend({method:Z(`resources/list`)}),ae=I.extend({resources:Y(re)}),oe=F.extend({method:Z(`resources/templates/list`)}),se=I.extend({resourceTemplates:Y(B)}),ce=s.extend({uri:q()}),V=ce,H=l.extend({method:Z(`resources/read`),params:V}),le=f.extend({contents:Y(Ec([L,z]))}),ue=d.extend({method:Z(`notifications/resources/list_changed`),params:u.optional()}),de=ce,fe=l.extend({method:Z(`resources/subscribe`),params:de}),pe=ce,me=l.extend({method:Z(`resources/unsubscribe`),params:pe}),he=u.extend({uri:q()}),U=d.extend({method:Z(`notifications/resources/updated`),params:he}),ge=X({name:q(),description:zc(q()),required:zc(dc())}),W=X({...y.shape,...v.shape,description:zc(q()),arguments:zc(Y(ge)),_meta:zc(wc({}))}),G=F.extend({method:Z(`prompts/list`)}),_e=I.extend({prompts:Y(W)}),ve=s.extend({name:q(),arguments:Mc(q(),q()).optional()}),ye=l.extend({method:Z(`prompts/get`),params:ve}),be=X({type:Z(`text`),text:q(),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),xe=X({type:Z(`image`),data:R,mimeType:q(),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),Se=X({type:Z(`audio`),data:R,mimeType:q(),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),Ce=X({type:Z(`tool_use`),name:q(),id:q(),input:Mc(q(),yc()),_meta:Mc(q(),yc()).optional()}),we=X({type:Z(`resource`),resource:Ec([L,z]),annotations:ne.optional(),_meta:Mc(q(),yc()).optional()}),Te=re.extend({type:Z(`resource_link`)}),Ee=Ec([be,xe,Se,Te,we]),De=X({role:te,content:Ee}),Oe=f.extend({description:q().optional(),messages:Y(De)}),ke=d.extend({method:Z(`notifications/prompts/list_changed`),params:u.optional()}),Ae=X({title:q().optional(),readOnlyHint:dc().optional(),destructiveHint:dc().optional(),idempotentHint:dc().optional(),openWorldHint:dc().optional()}),je=X({taskSupport:Pc([`required`,`optional`,`forbidden`]).optional()}),Me=X({...y.shape,...v.shape,description:q().optional(),inputSchema:X({type:Z(`object`),properties:Mc(q(),e).optional(),required:Y(q()).optional()}).catchall(yc()),outputSchema:X({type:Z(`object`),properties:Mc(q(),e).optional(),required:Y(q()).optional()}).catchall(yc()).optional(),annotations:Ae.optional(),execution:je.optional(),_meta:Mc(q(),yc()).optional()}),Ne=F.extend({method:Z(`tools/list`)}),Pe=I.extend({tools:Y(Me)}),Fe=f.extend({content:Y(Ee),structuredContent:Mc(q(),yc()).optional(),isError:dc().optional()}),Ie=c.extend({name:q(),arguments:Mc(q(),yc()).optional()}),Le=l.extend({method:Z(`tools/call`),params:Ie}),Re=d.extend({method:Z(`notifications/tools/list_changed`),params:u.optional()}),ze=Pc([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),Be=s.extend({level:ze}),Ve=l.extend({method:Z(`logging/setLevel`),params:Be}),He=u.extend({level:ze,logger:q().optional(),data:yc()}),Ue=d.extend({method:Z(`notifications/message`),params:He}),We=X({name:q().optional()}),Ge=X({hints:Y(We).optional(),costPriority:J().min(0).max(1).optional(),speedPriority:J().min(0).max(1).optional(),intelligencePriority:J().min(0).max(1).optional()}),Ke=X({mode:Pc([`auto`,`required`,`none`]).optional()}),K=X({type:Z(`tool_result`),toolUseId:q().describe(`The unique identifier for the corresponding tool call.`),content:Y(Ee),structuredContent:X({}).loose().optional(),isError:dc().optional(),_meta:Mc(q(),yc()).optional()}),qe=Oc(`type`,[be,xe,Se]),Je=Oc(`type`,[be,xe,Se,Ce,K]),Ye=X({role:te,content:Ec([Je,Y(Je)]),_meta:Mc(q(),yc()).optional()}),Xe=c.extend({messages:Y(Ye),modelPreferences:Ge.optional(),systemPrompt:q().optional(),includeContext:Pc([`none`,`thisServer`,`allServers`]).optional(),temperature:J().optional(),maxTokens:J().int(),stopSequences:Y(q()).optional(),metadata:t.optional(),tools:Y(Me).optional(),toolChoice:Ke.optional()}),Ze=l.extend({method:Z(`sampling/createMessage`),params:Xe}),Qe=f.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`]).or(q())),role:te,content:qe}),$e=f.extend({model:q(),stopReason:zc(Pc([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(q())),role:te,content:Ec([Je,Y(Je)])}),et=X({type:Z(`boolean`),title:q().optional(),description:q().optional(),default:dc().optional()}),tt=X({type:Z(`string`),title:q().optional(),description:q().optional(),minLength:J().optional(),maxLength:J().optional(),format:Pc([`email`,`uri`,`date`,`date-time`]).optional(),default:q().optional()}),nt=X({type:Pc([`number`,`integer`]),title:q().optional(),description:q().optional(),minimum:J().optional(),maximum:J().optional(),default:J().optional()}),rt=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),default:q().optional()}),it=X({type:Z(`string`),title:q().optional(),description:q().optional(),oneOf:Y(X({const:q(),title:q()})),default:q().optional()}),at=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),enumNames:Y(q()).optional(),default:q().optional()}),ot=Ec([rt,it]),st=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({type:Z(`string`),enum:Y(q())}),default:Y(q()).optional()}),ct=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({anyOf:Y(X({const:q(),title:q()}))}),default:Y(q()).optional()}),lt=Ec([st,ct]),ut=Ec([at,ot,lt]),dt=Ec([ut,et,tt,nt]),ft=c.extend({mode:Z(`form`).optional(),message:q(),requestedSchema:X({type:Z(`object`),properties:Mc(q(),dt),required:Y(q()).optional()}).catchall(yc())}),pt=c.extend({mode:Z(`url`),message:q(),elicitationId:q(),url:q().url()}),mt=Ec([ft,pt]),ht=l.extend({method:Z(`elicitation/create`),params:mt}),gt=u.extend({elicitationId:q()}),_t=d.extend({method:Z(`notifications/elicitation/complete`),params:gt}),vt=f.extend({action:Pc([`accept`,`decline`,`cancel`]),content:ul(e=>e===null?void 0:e,Mc(q(),Ec([q(),J(),dc(),Y(q())])).optional())}),yt=X({type:Z(`ref/resource`),uri:q()}),bt=X({type:Z(`ref/prompt`),name:q()}),xt=s.extend({ref:Ec([bt,yt]),argument:X({name:q(),value:q()}),context:X({arguments:Mc(q(),q()).optional()}).optional()}),St=l.extend({method:Z(`completion/complete`),params:xt}),Ct=f.extend({completion:wc({values:Y(q()).max(100),total:zc(J().int()),hasMore:zc(dc())})}),wt=X({uri:q().startsWith(`file://`),name:q().optional(),_meta:Mc(q(),yc()).optional()}),Tt=l.extend({method:Z(`roots/list`),params:s.optional()}),Et=f.extend({roots:Y(wt)}),Dt=d.extend({method:Z(`notifications/roots/list_changed`),params:u.optional()}),Ot=wc({ttl:J().optional(),pollInterval:J().optional()}),kt=Pc([`working`,`input_required`,`completed`,`failed`,`cancelled`]),At=X({taskId:q(),status:kt,ttl:Ec([J(),hc()]),createdAt:q(),lastUpdatedAt:q(),pollInterval:zc(J()),statusMessage:zc(q())}),jt=f.extend({task:At}),Mt=u.merge(At),Nt=d.extend({method:Z(`notifications/tasks/status`),params:Mt}),Pt=l.extend({method:Z(`tasks/get`),params:s.extend({taskId:q()})}),Ft=f.merge(At),It=l.extend({method:Z(`tasks/result`),params:s.extend({taskId:q()})}),Lt=f.loose(),Rt=F.extend({method:Z(`tasks/list`)}),zt=I.extend({tasks:Y(At)}),Bt=l.extend({method:Z(`tasks/cancel`),params:s.extend({taskId:q()})});return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:n,CursorSchema:r,TaskMetadataSchema:i,RelatedTaskMetadataSchema:a,RequestMetaSchema:o,BaseRequestParamsSchema:s,TaskAugmentedRequestParamsSchema:c,RequestSchema:l,NotificationsParamsSchema:u,NotificationSchema:d,ResultSchema:f,RequestIdSchema:p,EmptyResultSchema:m,CancelledNotificationParamsSchema:h,CancelledNotificationSchema:g,IconSchema:_,IconsSchema:v,BaseMetadataSchema:y,ImplementationSchema:b,ClientTasksCapabilitySchema:S,ServerTasksCapabilitySchema:C,ClientCapabilitiesSchema:w,InitializeRequestParamsSchema:T,InitializeRequestSchema:E,ServerCapabilitiesSchema:D,InitializeResultSchema:O,InitializedNotificationSchema:k,PingRequestSchema:A,ProgressSchema:j,ProgressNotificationParamsSchema:M,ProgressNotificationSchema:N,PaginatedRequestParamsSchema:P,PaginatedRequestSchema:F,PaginatedResultSchema:I,ResourceContentsSchema:ee,TextResourceContentsSchema:L,BlobResourceContentsSchema:z,RoleSchema:te,AnnotationsSchema:ne,ResourceSchema:re,ResourceTemplateSchema:B,ListResourcesRequestSchema:ie,ListResourcesResultSchema:ae,ListResourceTemplatesRequestSchema:oe,ListResourceTemplatesResultSchema:se,ResourceRequestParamsSchema:ce,ReadResourceRequestParamsSchema:V,ReadResourceRequestSchema:H,ReadResourceResultSchema:le,ResourceListChangedNotificationSchema:ue,SubscribeRequestParamsSchema:de,SubscribeRequestSchema:fe,UnsubscribeRequestParamsSchema:pe,UnsubscribeRequestSchema:me,ResourceUpdatedNotificationParamsSchema:he,ResourceUpdatedNotificationSchema:U,PromptArgumentSchema:ge,PromptSchema:W,ListPromptsRequestSchema:G,ListPromptsResultSchema:_e,GetPromptRequestParamsSchema:ve,GetPromptRequestSchema:ye,TextContentSchema:be,ImageContentSchema:xe,AudioContentSchema:Se,ToolUseContentSchema:Ce,EmbeddedResourceSchema:we,ResourceLinkSchema:Te,ContentBlockSchema:Ee,PromptMessageSchema:De,GetPromptResultSchema:Oe,PromptListChangedNotificationSchema:ke,ToolAnnotationsSchema:Ae,ToolExecutionSchema:je,ToolSchema:Me,ListToolsRequestSchema:Ne,ListToolsResultSchema:Pe,CallToolResultSchema:Fe,CallToolRequestParamsSchema:Ie,CallToolRequestSchema:Le,ToolListChangedNotificationSchema:Re,LoggingLevelSchema:ze,SetLevelRequestParamsSchema:Be,SetLevelRequestSchema:Ve,LoggingMessageNotificationParamsSchema:He,LoggingMessageNotificationSchema:Ue,ModelHintSchema:We,ModelPreferencesSchema:Ge,ToolChoiceSchema:Ke,ToolResultContentSchema:K,SamplingContentSchema:qe,SamplingMessageContentBlockSchema:Je,SamplingMessageSchema:Ye,CreateMessageRequestParamsSchema:Xe,CreateMessageRequestSchema:Ze,CreateMessageResultSchema:Qe,CreateMessageResultWithToolsSchema:$e,BooleanSchemaSchema:et,StringSchemaSchema:tt,NumberSchemaSchema:nt,UntitledSingleSelectEnumSchemaSchema:rt,TitledSingleSelectEnumSchemaSchema:it,LegacyTitledEnumSchemaSchema:at,SingleSelectEnumSchemaSchema:ot,UntitledMultiSelectEnumSchemaSchema:st,TitledMultiSelectEnumSchemaSchema:ct,MultiSelectEnumSchemaSchema:lt,EnumSchemaSchema:ut,PrimitiveSchemaDefinitionSchema:dt,ElicitRequestFormParamsSchema:ft,ElicitRequestURLParamsSchema:pt,ElicitRequestParamsSchema:mt,ElicitRequestSchema:ht,ElicitationCompleteNotificationParamsSchema:gt,ElicitationCompleteNotificationSchema:_t,ElicitResultSchema:vt,ResourceTemplateReferenceSchema:yt,PromptReferenceSchema:bt,CompleteRequestParamsSchema:xt,CompleteRequestSchema:St,CompleteResultSchema:Ct,RootSchema:wt,ListRootsRequestSchema:Tt,ListRootsResultSchema:Et,RootsListChangedNotificationSchema:Dt,TaskCreationParamsSchema:Ot,TaskStatusSchema:kt,TaskSchema:At,CreateTaskResultSchema:jt,TaskStatusNotificationParamsSchema:Mt,TaskStatusNotificationSchema:Nt,GetTaskRequestSchema:Pt,GetTaskResultSchema:Ft,GetTaskPayloadRequestSchema:It,GetTaskPayloadResultSchema:Lt,ListTasksRequestSchema:Rt,ListTasksResultSchema:zt,CancelTaskRequestSchema:Bt,CancelTaskResultSchema:f.merge(At),ClientRequestSchema:Ec([A,E,St,Ve,ye,G,ie,oe,H,fe,me,Le,Ne,Pt,It,Rt,Bt]),ClientNotificationSchema:Ec([g,N,k,Dt,Nt]),ClientResultSchema:Ec([m,Qe,$e,vt,Et,Ft,zt,jt]),ServerRequestSchema:Ec([A,Ze,ht,Tt,Pt,It,Rt,Bt]),ServerNotificationSchema:Ec([g,N,Ue,U,ue,Re,ke,Nt,_t]),ServerResultSchema:Ec([m,O,Ct,Oe,_e,ae,se,le,Fe,Pe,Ft,zt,jt]),CallToolResultWireSchema:yc().superRefine((e,t)=>{if(typeof e==`object`&&e&&!Array.isArray(e)&&e.content===void 0){for(let n of zE)if(n in e){t.addIssue({code:`custom`,message:`content is required when the body carries '${n}' — another result family cannot default into an empty tools/call success`});return}}}).transform(BE).pipe(Fe)}}var HE;function UE(){return HE??=VE()}function WE(e){return e.type!==`object`}var GE=new Set([`const`,`enum`,`default`,`examples`]),KE=new Set([`properties`,`patternProperties`,`$defs`,`definitions`,`dependentSchemas`,`dependencies`]);function qE(e){return e!==void 0&&!(typeof e==`string`&&e.startsWith(`#`))}function JE(e){let t=typeof e.$schema==`string`?e.$schema:void 0;if(qE(e.$id))return{...t!==void 0&&{$schema:t},type:`object`,properties:{result:e},required:[`result`]};let n=nC(e.$schema)&&e.$recursiveAnchor!==!0,r=(e,t)=>{if(Array.isArray(e))return e.map(e=>r(e,!1));if(typeof e!=`object`||!e||!t&&qE(e.$id))return e;let i={},a=!1;for(let[o,s]of Object.entries(e))t?i[o]=r(s,!1):(o===`$ref`||o===`$dynamicRef`)&&typeof s==`string`?i[o]=s===`#`?`#/properties/result`:s.startsWith(`#/`)?`#/properties/result${s.slice(1)}`:s:o===`$recursiveRef`&&s===`#`&&n?a=!0:i[o]=GE.has(o)?s:KE.has(o)?r(s,!0):r(s,!1);return a&&(`$ref`in i?i.allOf=[...Array.isArray(i.allOf)?i.allOf:[],{$ref:`#/properties/result`}]:i.$ref=`#/properties/result`),i};return{...t!==void 0&&{$schema:t},type:`object`,properties:{result:r(e,!1)},required:[`result`]}}var YE={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"tasks/get":null,"tasks/result":null,"tasks/list":null,"tasks/cancel":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null},XE={"notifications/cancelled":null,"notifications/progress":null,"notifications/initialized":null,"notifications/roots/list_changed":null,"notifications/tasks/status":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/elicitation/complete":null},ZE={ping:null,initialize:null,"completion/complete":null,"logging/setLevel":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"resources/subscribe":null,"resources/unsubscribe":null,"tools/call":null,"tools/list":null,"sampling/createMessage":null,"elicitation/create":null,"roots/list":null},QE;function $E(){if(QE)return QE;let e=UE();return QE={requestSchemas:{ping:e.PingRequestSchema,initialize:e.InitializeRequestSchema,"completion/complete":e.CompleteRequestSchema,"logging/setLevel":e.SetLevelRequestSchema,"prompts/get":e.GetPromptRequestSchema,"prompts/list":e.ListPromptsRequestSchema,"resources/list":e.ListResourcesRequestSchema,"resources/templates/list":e.ListResourceTemplatesRequestSchema,"resources/read":e.ReadResourceRequestSchema,"resources/subscribe":e.SubscribeRequestSchema,"resources/unsubscribe":e.UnsubscribeRequestSchema,"tools/call":e.CallToolRequestSchema,"tools/list":e.ListToolsRequestSchema,"tasks/get":e.GetTaskRequestSchema,"tasks/result":e.GetTaskPayloadRequestSchema,"tasks/list":e.ListTasksRequestSchema,"tasks/cancel":e.CancelTaskRequestSchema,"sampling/createMessage":e.CreateMessageRequestSchema,"elicitation/create":e.ElicitRequestSchema,"roots/list":e.ListRootsRequestSchema},notificationSchemas:{"notifications/cancelled":e.CancelledNotificationSchema,"notifications/progress":e.ProgressNotificationSchema,"notifications/initialized":e.InitializedNotificationSchema,"notifications/roots/list_changed":e.RootsListChangedNotificationSchema,"notifications/tasks/status":e.TaskStatusNotificationSchema,"notifications/message":e.LoggingMessageNotificationSchema,"notifications/resources/updated":e.ResourceUpdatedNotificationSchema,"notifications/resources/list_changed":e.ResourceListChangedNotificationSchema,"notifications/tools/list_changed":e.ToolListChangedNotificationSchema,"notifications/prompts/list_changed":e.PromptListChangedNotificationSchema,"notifications/elicitation/complete":e.ElicitationCompleteNotificationSchema},resultSchemas:{ping:e.EmptyResultSchema,initialize:e.InitializeResultSchema,"completion/complete":e.CompleteResultSchema,"logging/setLevel":e.EmptyResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"resources/subscribe":e.EmptyResultSchema,"resources/unsubscribe":e.EmptyResultSchema,"tools/call":e.CallToolResultWireSchema,"tools/list":e.ListToolsResultSchema,"sampling/createMessage":e.CreateMessageResultWithToolsSchema,"elicitation/create":e.ElicitResultSchema,"roots/list":e.ListRootsResultSchema}},QE}function eD(e){return Object.prototype.hasOwnProperty.call(YE,e)}function tD(e){return Object.prototype.hasOwnProperty.call(XE,e)}function nD(e){return Object.prototype.hasOwnProperty.call(ZE,e)}function rD(e){return nD(e)?$E().resultSchemas[e]:void 0}function iD(e){return eD(e)?$E().requestSchemas[e]:void 0}function aD(e){return tD(e)?$E().notificationSchemas[e]:void 0}Object.keys(YE),Object.keys(XE);function oD(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function sD(e,t){if(e===void 0)return{ok:!1,reason:`not-in-era`};let n=e.safeParse(t);return n.success?{ok:!0,value:n.data}:{ok:!1,reason:`invalid`,message:String(n.error)}}var cD={ok:!1,reason:`not-in-era`};function lD(e){return oD(e)&&oD(e.outputSchema)&&WE(e.outputSchema)}function uD(e){return e}var dD={era:`2025-11-25`,hasRequestMethod:eD,hasNotificationMethod:tD,validateRequest:(e,t)=>sD(iD(e),t),validateResult:(e,t)=>sD(rD(e),t),validateNotification:(e,t)=>sD(aD(e),t),hasInputRequestMethod:()=>!1,validateInputRequest:()=>cD,validateInputResponse:()=>cD,samplingResultVariant:((e,t)=>{let n=UE();return sD(e?n.CreateMessageResultWithToolsSchema:n.CreateMessageResultSchema,t)}),outboundEnvelope:e=>void 0,validateEnvelopeMeta:e=>[],projectCallToolResult(e,t){let n=RE(e),r=n.structuredContent;if(r===void 0)return n;let i=typeof r!=`object`||!r||Array.isArray(r),a=t!==void 0&&WE(t);return!i&&!a?n:{...n,structuredContent:{result:r}}},decodeResult(e,t){if(oD(t)&&`resultType`in t){let e={...t};return delete e.resultType,{kind:`complete`,result:uD(e)}}return{kind:`complete`,result:uD(t)}},encodeResult(e,t){if(e!==`tools/list`)return t;let n=t.tools;return!Array.isArray(n)||!n.some(e=>lD(e))?t:{...t,tools:n.map(e=>lD(e)?{...e,outputSchema:JE(e.outputSchema)}:e)}},encodeErrorCode:e=>e===-32002?-32602:e,checkInboundEnvelope:e=>void 0};function fD(){let e=ol(()=>Ec([q(),J(),dc(),hc(),Mc(q(),e),Y(e)])),t=Mc(q(),e),n=Ec([q(),J().int()]),r=q(),i=Ec([q(),J().int()]),a=Pc([`user`,`assistant`]),o=Pc([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),s=q().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),c=X({ttl:J().optional()}),l=X({taskId:q()}),u=wc({progressToken:n.optional(),"io.modelcontextprotocol/related-task":l.optional()}),d=X({_meta:u.optional()}),f=d.extend({task:c.optional()}),p=X({_meta:u.optional()}),m=X({method:q(),params:p.loose().optional()}),h=X({src:q(),mimeType:q().optional(),sizes:Y(q()).optional(),theme:Pc([`light`,`dark`]).optional()}),g=X({icons:Y(h).optional()}),_=X({name:q(),title:q().optional()}),v=_.extend({..._.shape,...g.shape,version:q(),websiteUrl:q().optional(),description:q().optional()}),y=ul(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Ac(X({form:Ac(X({applyDefaults:dc().optional()}),t).optional(),url:t.optional()}),t.optional())),b=wc({list:t.optional(),cancel:t.optional(),requests:wc({sampling:wc({createMessage:t.optional()}).optional(),elicitation:wc({create:t.optional()}).optional()}).optional()}),x=wc({list:t.optional(),cancel:t.optional(),requests:wc({tools:wc({call:t.optional()}).optional()}).optional()}),S=X({experimental:Mc(q(),t).optional(),sampling:X({context:t.optional(),tools:t.optional()}).optional(),elicitation:y.optional(),roots:X({listChanged:dc().optional()}).optional(),tasks:b.optional(),extensions:Mc(q(),t).optional()}),C=X({experimental:Mc(q(),t).optional(),logging:t.optional(),completions:t.optional(),prompts:X({listChanged:dc().optional()}).optional(),resources:X({subscribe:dc().optional(),listChanged:dc().optional()}).optional(),tools:X({listChanged:dc().optional()}).optional(),tasks:x.optional(),extensions:Mc(q(),t).optional()}),w=X({progress:J(),total:zc(J()),message:zc(q())}),T=X({...p.shape,...w.shape,progressToken:n}),E=m.extend({method:Z(`notifications/progress`),params:T}),D=p.extend({level:o,logger:q().optional(),data:yc()}),O=m.extend({method:Z(`notifications/message`),params:D}),k=X({uri:q(),mimeType:zc(q()),_meta:Mc(q(),yc()).optional()}),A=k.extend({text:q()}),j=k.extend({blob:s}),M=X({audience:Y(a).optional(),priority:J().min(0).max(1).optional(),lastModified:pl({offset:!0}).optional()}),N=X({..._.shape,...g.shape,uri:q(),description:zc(q()),mimeType:zc(q()),size:zc(J()),annotations:M.optional(),_meta:zc(wc({}))}),P=X({..._.shape,...g.shape,uriTemplate:q(),description:zc(q()),mimeType:zc(q()),annotations:M.optional(),_meta:zc(wc({}))}),F=m.extend({method:Z(`notifications/resources/list_changed`),params:p.optional()}),I=p.extend({uri:q()}),ee=m.extend({method:Z(`notifications/resources/updated`),params:I}),L=X({name:q(),description:zc(q()),required:zc(dc())}),R=X({..._.shape,...g.shape,description:zc(q()),arguments:zc(Y(L)),_meta:zc(wc({}))}),z=m.extend({method:Z(`notifications/prompts/list_changed`),params:p.optional()}),te=X({type:Z(`text`),text:q(),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),ne=X({type:Z(`image`),data:s,mimeType:q(),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),re=X({type:Z(`audio`),data:s,mimeType:q(),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),B=X({type:Z(`tool_use`),name:q(),id:q(),input:Mc(q(),yc()),_meta:Mc(q(),yc()).optional()}),ie=X({type:Z(`resource`),resource:Ec([A,j]),annotations:M.optional(),_meta:Mc(q(),yc()).optional()}),ae=N.extend({type:Z(`resource_link`)}),oe=Ec([te,ne,re,ae,ie]),se=X({role:a,content:oe}),ce=X({title:q().optional(),readOnlyHint:dc().optional(),destructiveHint:dc().optional(),idempotentHint:dc().optional(),openWorldHint:dc().optional()}),V=m.extend({method:Z(`notifications/tools/list_changed`),params:p.optional()}),H=X({name:q().optional()}),le=X({hints:Y(H).optional(),costPriority:J().min(0).max(1).optional(),speedPriority:J().min(0).max(1).optional(),intelligencePriority:J().min(0).max(1).optional()}),ue=X({mode:Pc([`auto`,`required`,`none`]).optional()}),de=X({type:Z(`boolean`),title:q().optional(),description:q().optional(),default:dc().optional()}),fe=X({type:Z(`string`),title:q().optional(),description:q().optional(),minLength:J().optional(),maxLength:J().optional(),format:Pc([`email`,`uri`,`date`,`date-time`]).optional(),default:q().optional()}),pe=X({type:Pc([`number`,`integer`]),title:q().optional(),description:q().optional(),minimum:J().optional(),maximum:J().optional(),default:J().optional()}),me=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),default:q().optional()}),he=X({type:Z(`string`),title:q().optional(),description:q().optional(),oneOf:Y(X({const:q(),title:q()})),default:q().optional()}),U=X({type:Z(`string`),title:q().optional(),description:q().optional(),enum:Y(q()),enumNames:Y(q()).optional(),default:q().optional()}),ge=Ec([me,he]),W=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({type:Z(`string`),enum:Y(q())}),default:Y(q()).optional()}),G=X({type:Z(`array`),title:q().optional(),description:q().optional(),minItems:J().optional(),maxItems:J().optional(),items:X({anyOf:Y(X({const:q(),title:q()}))}),default:Y(q()).optional()}),_e=Ec([W,G]),ve=Ec([U,ge,_e]),ye=Ec([ve,de,fe,pe]),be=f.extend({mode:Z(`form`).optional(),message:q(),requestedSchema:X({type:Z(`object`),properties:Mc(q(),ye),required:Y(q()).optional()}).catchall(yc())}),xe=X({type:Z(`ref/resource`),uri:q()}),Se=X({type:Z(`ref/prompt`),name:q()}),Ce=X({uri:q().startsWith(`file://`),name:q().optional(),_meta:Mc(q(),yc()).optional()}),we=S.shape,Te=X({experimental:we.experimental,sampling:we.sampling,elicitation:we.elicitation,roots:we.roots,extensions:we.extensions}),Ee=C.shape,De=X({experimental:Ee.experimental,logging:Ee.logging,completions:Ee.completions,prompts:Ee.prompts,resources:Ee.resources,tools:Ee.tools,extensions:Ee.extensions}),Oe=wc({progressToken:n.optional(),[aC]:q(),[oC]:v.optional(),[cC]:Te,[uC]:o.optional()}),ke=X({..._.shape,...g.shape,description:q().optional(),inputSchema:wc({$schema:q().optional(),type:Z(`object`)}),outputSchema:wc({$schema:q().optional()}).optional(),annotations:ce.optional(),_meta:Mc(q(),yc()).optional()}),Ae=X({type:Z(`tool_result`),toolUseId:q(),content:Y(oe),structuredContent:yc().optional(),isError:dc().optional(),_meta:Mc(q(),yc()).optional()}),je=Ec([te,ne,re,B,Ae]),Me=X({role:a,content:Ec([je,Y(je)]),_meta:Mc(q(),yc()).optional()}),Ne=q(),Pe=wc({[sC]:v.optional().catch(void 0)}),Fe=Pe.optional();function Ie(e){return wc({_meta:Fe,resultType:Ne.default(`complete`),...e})}let Le=Ie({}),Re=Ie({nextCursor:r.optional()}),ze=Ie({content:Y(oe),structuredContent:yc().optional(),isError:dc().optional()}),Be=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),tools:Y(ke),nextCursor:r.optional()}),Ve=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),prompts:Y(R),nextCursor:r.optional()}),He=Ie({description:q().optional(),messages:Y(se)}),Ue=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resources:Y(N),nextCursor:r.optional()}),We=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resourceTemplates:Y(P),nextCursor:r.optional()}),Ge=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),contents:Y(Ec([A,j]))}),Ke=Ie({completion:X({values:Y(q()).max(100),total:J().int().optional(),hasMore:dc().optional()}).loose()}),K=Ie({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`])}),qe=Ie({ttlMs:J().int().min(0).catch(0),cacheScope:Pc([`public`,`private`]).catch(`private`),supportedVersions:Y(q()),capabilities:De,instructions:q().optional()}),Je=X({messages:Y(Me),modelPreferences:le.optional(),systemPrompt:q().optional(),includeContext:Pc([`none`,`thisServer`,`allServers`]).optional(),temperature:J().optional(),maxTokens:J().int(),stopSequences:Y(q()).optional(),metadata:t.optional(),tools:Y(ke).optional(),toolChoice:ue.optional()}),Ye=X({method:Z(`sampling/createMessage`),params:Je}),Xe=X({method:Z(`roots/list`),params:X({_meta:Mc(q(),yc()).optional()}).optional()}),Ze=X({...Me.shape,model:q(),stopReason:q().optional()}),Qe=X({roots:Y(Ce)}),$e=X({action:Pc([`accept`,`decline`,`cancel`]),content:Mc(q(),Ec([q(),J(),dc(),Y(q())])).optional()}),et=X({mode:Z(`url`),message:q(),url:q().url()}),tt=Ec([be,et]),nt=X({method:Z(`elicitation/create`),params:tt}),rt=Ec([Ye,Xe,nt]),it=Ec([Ze,Qe,$e]),at=Mc(q(),rt),ot=Mc(q(),it),st=Ie({inputRequests:at.optional(),requestState:q().optional()}),ct={inputResponses:ot.optional(),requestState:q().optional()},lt=X({_meta:Oe,...ct}),ut=wc({progressToken:n.optional()});function dt(e,t){return X({method:Z(e),params:X({_meta:Oe,...t})})}function ft(e,t){return X({method:Z(e),params:X({_meta:ut.optional(),...t}).optional()})}let pt={name:q(),arguments:Mc(q(),yc()).optional(),...ct},mt={cursor:r.optional()},ht=dt(`tools/call`,pt),gt=dt(`tools/list`,mt),_t=dt(`prompts/list`,mt),vt=dt(`prompts/get`,{name:q(),arguments:Mc(q(),q()).optional(),...ct}),yt=dt(`resources/list`,mt),bt=dt(`resources/templates/list`,mt),xt=dt(`resources/read`,{uri:q(),...ct}),St={ref:Ec([Se,xe]),argument:X({name:q(),value:q()}),context:X({arguments:Mc(q(),q()).optional()}).optional()},Ct=dt(`completion/complete`,St),wt=dt(`server/discover`,{}),Tt=X({toolsListChanged:dc().optional(),promptsListChanged:dc().optional(),resourcesListChanged:dc().optional(),resourceSubscriptions:Y(q()).optional()}),Et={notifications:Tt},Dt=dt(`subscriptions/listen`,Et),Ot=Pe.extend({"io.modelcontextprotocol/subscriptionId":i}),kt=wc({_meta:Ot,resultType:Ne.default(`complete`)}),At={"tools/call":ft(`tools/call`,pt),"tools/list":ft(`tools/list`,mt),"prompts/get":ft(`prompts/get`,{name:q(),arguments:Mc(q(),q()).optional()}),"prompts/list":ft(`prompts/list`,mt),"resources/list":ft(`resources/list`,mt),"resources/templates/list":ft(`resources/templates/list`,mt),"resources/read":ft(`resources/read`,{uri:q()}),"completion/complete":ft(`completion/complete`,St),"server/discover":ft(`server/discover`,{}),"subscriptions/listen":ft(`subscriptions/listen`,Et)};function jt(e){return wc({_meta:Fe,...e})}let Mt={"tools/call":jt({content:Y(oe),structuredContent:yc().optional(),isError:dc().optional()}),"tools/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),tools:Y(ke),nextCursor:r.optional()}),"prompts/get":jt({description:q().optional(),messages:Y(se)}),"prompts/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),prompts:Y(R),nextCursor:r.optional()}),"resources/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resources:Y(N),nextCursor:r.optional()}),"resources/templates/list":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),resourceTemplates:Y(P),nextCursor:r.optional()}),"resources/read":jt({ttlMs:J().int().min(0),cacheScope:Pc([`public`,`private`]),contents:Y(Ec([A,j]))}),"completion/complete":jt({completion:X({values:Y(q()).max(100),total:J().int().optional(),hasMore:dc().optional()}).loose()}),"server/discover":jt({ttlMs:J().int().min(0).catch(0),cacheScope:Pc([`public`,`private`]).catch(`private`),supportedVersions:Y(q()),capabilities:De,instructions:q().optional()}),"subscriptions/listen":jt({})},Nt=wc({"io.modelcontextprotocol/subscriptionId":i.optional()}),Pt=X({method:Z(`notifications/subscriptions/acknowledged`),params:X({_meta:Nt.optional(),notifications:Tt})}),Ft=X({_meta:Nt.optional(),requestId:i,reason:q().optional()}),It=X({method:Z(`notifications/cancelled`),params:Ft}),Lt={"notifications/cancelled":It,"notifications/progress":E,"notifications/message":O,"notifications/resources/updated":ee,"notifications/resources/list_changed":F,"notifications/tools/list_changed":V,"notifications/prompts/list_changed":z,"notifications/subscriptions/acknowledged":Pt},Rt=e=>X({jsonrpc:Z(`2.0`),id:Ec([q(),J().int()]),result:e}).strict();return{JSONValueSchema:e,JSONObjectSchema:t,ProgressTokenSchema:n,CursorSchema:r,RequestIdSchema:i,RoleSchema:a,LoggingLevelSchema:o,TaskMetadataSchema:c,RelatedTaskMetadataSchema:l,RequestMetaSchema:u,BaseRequestParamsSchema:d,TaskAugmentedRequestParamsSchema:f,NotificationsParamsSchema:p,NotificationSchema:m,IconSchema:h,IconsSchema:g,BaseMetadataSchema:_,ImplementationSchema:v,ClientTasksCapabilitySchema:b,ServerTasksCapabilitySchema:x,ClientCapabilitiesSchema:S,ServerCapabilitiesSchema:C,ProgressSchema:w,ProgressNotificationParamsSchema:T,ProgressNotificationSchema:E,LoggingMessageNotificationParamsSchema:D,LoggingMessageNotificationSchema:O,ResourceContentsSchema:k,TextResourceContentsSchema:A,BlobResourceContentsSchema:j,AnnotationsSchema:M,ResourceSchema:N,ResourceTemplateSchema:P,ResourceListChangedNotificationSchema:F,ResourceUpdatedNotificationParamsSchema:I,ResourceUpdatedNotificationSchema:ee,PromptArgumentSchema:L,PromptSchema:R,PromptListChangedNotificationSchema:z,TextContentSchema:te,ImageContentSchema:ne,AudioContentSchema:re,ToolUseContentSchema:B,EmbeddedResourceSchema:ie,ResourceLinkSchema:ae,ContentBlockSchema:oe,PromptMessageSchema:se,ToolAnnotationsSchema:ce,ToolListChangedNotificationSchema:V,ModelHintSchema:H,ModelPreferencesSchema:le,ToolChoiceSchema:ue,BooleanSchemaSchema:de,StringSchemaSchema:fe,NumberSchemaSchema:pe,UntitledSingleSelectEnumSchemaSchema:me,TitledSingleSelectEnumSchemaSchema:he,LegacyTitledEnumSchemaSchema:U,SingleSelectEnumSchemaSchema:ge,UntitledMultiSelectEnumSchemaSchema:W,TitledMultiSelectEnumSchemaSchema:G,MultiSelectEnumSchemaSchema:_e,EnumSchemaSchema:ve,PrimitiveSchemaDefinitionSchema:ye,ElicitRequestFormParamsSchema:be,ResourceTemplateReferenceSchema:xe,PromptReferenceSchema:Se,RootSchema:Ce,ClientCapabilities2026Schema:Te,ServerCapabilities2026Schema:De,RequestMetaEnvelopeSchema:Oe,ToolSchema:ke,ToolResultContentSchema:Ae,SamplingMessageContentBlockSchema:je,SamplingMessageSchema:Me,ResultTypeSchema:Ne,ResultMetaSchema:Pe,ResultSchema:Le,PaginatedResultSchema:Re,CallToolResultSchema:ze,ListToolsResultSchema:Be,ListPromptsResultSchema:Ve,GetPromptResultSchema:He,ListResourcesResultSchema:Ue,ListResourceTemplatesResultSchema:We,ReadResourceResultSchema:Ge,CompleteResultSchema:Ke,CacheableResultSchema:K,DiscoverResultSchema:qe,CreateMessageRequestParamsSchema:Je,CreateMessageRequestSchema:Ye,ListRootsRequestSchema:Xe,CreateMessageResultSchema:Ze,ListRootsResultSchema:Qe,ElicitResultSchema:$e,ElicitRequestURLParamsSchema:et,ElicitRequestParamsSchema:tt,ElicitRequestSchema:nt,InputRequestSchema:rt,InputResponseSchema:it,InputRequestsSchema:at,InputResponsesSchema:ot,InputRequiredResultSchema:st,InputResponseRequestParamsSchema:lt,CallToolRequestSchema:ht,ListToolsRequestSchema:gt,ListPromptsRequestSchema:_t,GetPromptRequestSchema:vt,ListResourcesRequestSchema:yt,ListResourceTemplatesRequestSchema:bt,ReadResourceRequestSchema:xt,CompleteRequestSchema:Ct,DiscoverRequestSchema:wt,SubscriptionFilterSchema:Tt,SubscriptionsListenRequestSchema:Dt,SubscriptionsListenResultMetaSchema:Ot,SubscriptionsListenResultSchema:kt,dispatchRequestSchemas:At,dispatchResultSchemas:Mt,NotificationMetaSchema:Nt,SubscriptionsAcknowledgedNotificationSchema:Pt,CancelledNotificationParamsSchema:Ft,CancelledNotificationSchema:It,notificationSchemas2026:Lt,JSONRPCResultResponseSchema:Rt(Le),CallToolResultResponseSchema:Rt(Ec([ze,st])),ListToolsResultResponseSchema:Rt(Be),ListPromptsResultResponseSchema:Rt(Ve),GetPromptResultResponseSchema:Rt(Ec([He,st])),ListResourcesResultResponseSchema:Rt(Ue),ListResourceTemplatesResultResponseSchema:Rt(We),ReadResourceResultResponseSchema:Rt(Ec([Ge,st])),CompleteResultResponseSchema:Rt(Ke),DiscoverResultResponseSchema:Rt(qe)}}var pD;function mD(){return pD??=fD()}var hD=[`tools/list`,`prompts/list`,`resources/list`,`resources/templates/list`,`resources/read`,`server/discover`];function gD(e){return hD.includes(e)}var _D=Symbol(`modelcontextprotocol.resultCacheHintFallback`);function vD(e){return e[_D]}function yD(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function bD(e){return e===`public`||e===`private`}var xD=function(e){return e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.ResourceNotFound=-32002]=`ResourceNotFound`,e[e.MissingRequiredClientCapability=-32021]=`MissingRequiredClientCapability`,e[e.UnsupportedProtocolVersion=-32022]=`UnsupportedProtocolVersion`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`,e}({}),SD=class e extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.ProtocolError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`ProtocolError`,ME(this,new.target)}static fromError(t,n,r){if(t===xD.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new wD(e.elicitations,n)}if(t===xD.UnsupportedProtocolVersion&&r){let e=r;if(Array.isArray(e.supported)&&typeof e.requested==`string`)return new TD({supported:e.supported,requested:e.requested},n)}if(t===xD.InvalidParams||t===xD.ResourceNotFound){let e=r;if(typeof e?.uri==`string`&&(t===xD.ResourceNotFound||Object.keys(e).length===1))return new CD(e.uri,n)}if(t===xD.MissingRequiredClientCapability&&r){let e=r;if(e.requiredCapabilities!==null&&typeof e.requiredCapabilities==`object`&&!Array.isArray(e.requiredCapabilities))return new ED({requiredCapabilities:e.requiredCapabilities},n)}return new e(t,n,r)}},CD=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.ResourceNotFoundError`})}constructor(e,t=`Resource not found: ${e}`){super(xD.InvalidParams,t,{uri:e})}get uri(){return this.data.uri}},wD=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.UrlElicitationRequiredError`})}constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(xD.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}},TD=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.UnsupportedProtocolVersionError`})}constructor(e,t=`Unsupported protocol version: ${e.requested}`){super(xD.UnsupportedProtocolVersion,t,e)}get supported(){return this.data.supported}get requested(){return this.data.requested}},ED=class extends SD{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.MissingRequiredClientCapabilityError`})}constructor(e,t=`Missing required client capabilities: ${Object.keys(e.requiredCapabilities).join(`, `)}`){super(xD.MissingRequiredClientCapability,t,e)}get requiredCapabilities(){return this.data.requiredCapabilities}},DD=0,OD=`private`,kD=[`tools/call`,`prompts/get`,`resources/read`];function AD(e,t){let n=t.resultType;if(n===void 0)return{...t,resultType:`complete`};if(n===`complete`||kD.includes(e))return t;throw new SD(xD.InternalError,`Handler for ${e} returned resultType '${String(n)}', but results of ${e} only support 'complete' on protocol revision 2026-07-28`)}function jD(e,t){let n=vD(t);if(t.resultType!==`complete`||!gD(e))return n===void 0?t:ID(t);let r=t,i=yD(r.ttlMs)?r.ttlMs:PD(n),a=bD(r.cacheScope)?r.cacheScope:FD(n),o={...r,ttlMs:i,cacheScope:a};return delete o[_D],o}function MD(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ND(e,t){if(t===void 0)return e;let n=e._meta;return n===void 0?{...e,_meta:{[sC]:t}}:!MD(n)||n[`io.modelcontextprotocol/serverInfo`]!==void 0?e:{...e,_meta:{...n,[sC]:t}}}function PD(e){return e!==void 0&&yD(e.ttlMs)?e.ttlMs:DD}function FD(e){return e!==void 0&&bD(e.cacheScope)?e.cacheScope:OD}function ID(e){let t={...e};return delete t[_D],t}var LD=[`elicitation/create`,`sampling/createMessage`,`roots/list`],RD;function zD(){if(RD)return RD;let e=mD();return RD={request:{"elicitation/create":X({method:Z(`elicitation/create`),params:e.ElicitRequestParamsSchema}),"sampling/createMessage":X({method:Z(`sampling/createMessage`),params:e.CreateMessageRequestParamsSchema}),"roots/list":X({method:Z(`roots/list`),params:wc({}).optional()})},response:{"elicitation/create":e.ElicitResultSchema,"sampling/createMessage":e.CreateMessageResultSchema,"roots/list":e.ListRootsResultSchema}},RD}function BD(e){return LD.includes(e)}function VD(e){return BD(e)?zD().request[e]:void 0}function HD(e){return BD(e)?zD().response[e]:void 0}var UD={"tools/call":null,"tools/list":null,"prompts/get":null,"prompts/list":null,"resources/list":null,"resources/templates/list":null,"resources/read":null,"completion/complete":null,"server/discover":null,"subscriptions/listen":null},WD={"notifications/cancelled":null,"notifications/progress":null,"notifications/message":null,"notifications/resources/updated":null,"notifications/resources/list_changed":null,"notifications/tools/list_changed":null,"notifications/prompts/list_changed":null,"notifications/subscriptions/acknowledged":null};function GD(e){return Object.prototype.hasOwnProperty.call(UD,e)}function KD(e){return Object.prototype.hasOwnProperty.call(WD,e)}function qD(e){return Object.prototype.hasOwnProperty.call(UD,e)}function JD(e){return GD(e)?mD().dispatchRequestSchemas[e]:void 0}function YD(e){return qD(e)?mD().dispatchResultSchemas[e]:void 0}function XD(e){return KD(e)?mD().notificationSchemas2026[e]:void 0}Object.keys(UD),Object.keys(WD);function ZD(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function QD(e,t){if(e===void 0)return{ok:!1,reason:`not-in-era`};let n=e.safeParse(t);return n.success?{ok:!0,value:n.data}:{ok:!1,reason:`invalid`,message:String(n.error)}}var $D={ok:!1,reason:`not-in-era`},eO=[aC,cC];function tO(e,t){let n=t,r=!1,i=()=>(r||=(n={...n},!0),n),a=t.tools;e===`tools/list`&&Array.isArray(a)&&a.some(e=>ZD(e)&&`execution`in e)&&(i().tools=a.map(e=>{if(!ZD(e)||!(`execution`in e))return e;let t={...e};return delete t.execution,t}));let o=t.capabilities;if(ZD(o)&&`tasks`in o){let e={...o};delete e.tasks,i().capabilities=e}return n}var nO={era:`2026-07-28`,hasRequestMethod:GD,hasNotificationMethod:KD,hasInputRequestMethod:e=>VD(e)!==void 0,validateRequest:(e,t)=>QD(JD(e),t),validateResult:(e,t)=>QD(YD(e),t),validateNotification:(e,t)=>QD(XD(e),t),validateInputRequest:(e,t)=>QD(VD(e),t),validateInputResponse:(e,t)=>QD(HD(e),t),samplingResultVariant:()=>$D,outboundEnvelope(e){return{[aC]:e.protocolVersion,[oC]:e.clientInfo,[cC]:e.clientCapabilities,...e.logLevel!==void 0&&{"io.modelcontextprotocol/logLevel":e.logLevel}}},validateEnvelopeMeta(e){let t=[];for(let n of eO)n in e||t.push({key:n,problem:`missing`});let n=mD().RequestMetaEnvelopeSchema.safeParse(e);if(!n.success)for(let e of n.error.issues){let n=e.path.map(String),r=n.length>0?n.join(`.`):`_meta`;n.length===1&&t.some(e=>e.key===r&&e.problem===`missing`)||t.push({key:r,problem:e.message})}return t},projectCallToolResult:e=>RE(e),inputRequestSchema:VD,decodeResult(e,t){if(!ZD(t))return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: not an object`,{method:e})};let n=t.resultType;if(n===void 0)return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: missing required resultType — servers implementing protocol revision 2026-07-28 MUST include it (the absent-means-complete bridge applies only to earlier-revision servers)`,{method:e,violation:`missing-resultType`})};if(typeof n!=`string`)return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: non-string resultType`,{method:e,resultType:n})};if(n===`input_required`){let n=t.inputRequests,r=ZD(n)?n:{},i=t.requestState,a=t._meta===void 0?void 0:mD().ResultMetaSchema.safeParse(t._meta),o=a?.success?a.data:void 0;return Object.keys(r).length===0&&typeof i!=`string`?{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: input_required carries neither inputRequests nor requestState (every input_required result must include at least one of the two)`,{method:e,violation:`input-required-missing-both`})}:{kind:`input_required`,inputRequests:r,...typeof i==`string`&&{requestState:i},...o!==void 0&&{_meta:o}}}if(n!==`complete`)return{kind:`invalid`,error:new FE(PE.UnsupportedResultType,`Unsupported result type '${n}' for ${e}`,{resultType:n,method:e})};let r=iO(),i=Object.hasOwn(r,e)?r[e]:void 0;if(i!==void 0){let n=i.safeParse(t);if(!n.success)return{kind:`invalid`,error:new FE(PE.InvalidResult,`Invalid result for ${e}: ${n.error}`,{method:e})}}let a={...t};return delete a.resultType,{kind:`complete`,result:a}},encodeResult(e,t,n){return ND(jD(e,AD(e,tO(e,t))),n)},encodeErrorCode:e=>e===-32002?-32602:e,checkInboundEnvelope(e){if(e.envelope===void 0)return`Request is missing the required _meta envelope for protocol revision 2026-07-28 (io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientCapabilities)`;let t=mD().RequestMetaEnvelopeSchema.safeParse(e.envelope);if(!t.success)return`Invalid _meta envelope for protocol revision 2026-07-28: ${t.error.issues.map(e=>e.message).join(`; `)}`}},rO;function iO(){if(rO)return rO;let e=mD();return rO={"tools/call":e.CallToolResultSchema,"tools/list":e.ListToolsResultSchema,"prompts/get":e.GetPromptResultSchema,"prompts/list":e.ListPromptsResultSchema,"resources/list":e.ListResourcesResultSchema,"resources/templates/list":e.ListResourceTemplatesResultSchema,"resources/read":e.ReadResourceResultSchema,"completion/complete":e.CompleteResultSchema,"server/discover":e.DiscoverResultSchema},rO}var aO=`2026-07-28`;function oO(e){return e!==void 0&&LE(e)?nO:dD}function sO(e){return e.revision===void 0?e.era===`modern`?nO.era:dD.era:oO(e.revision).era}function cO(e){return uO.some(t=>t.hasRequestMethod(e))}function lO(e){return uO.some(t=>t.hasNotificationMethod(e))}var uO=[dD,nO],dO=eC({AnnotationsSchema:()=>lw,AudioContentSchema:()=>Hw,BaseMetadataSchema:()=>RC,BaseRequestParamsSchema:()=>yC,BlobResourceContentsSchema:()=>sw,BooleanSchemaSchema:()=>CT,CallToolRequestParamsSchema:()=>rT,CallToolRequestSchema:()=>iT,CallToolResultSchema:()=>tT,CancelTaskRequestSchema:()=>lE,CancelTaskResultSchema:()=>uE,CancelledNotificationParamsSchema:()=>PC,CancelledNotificationSchema:()=>FC,ClientCapabilitiesSchema:()=>UC,ClientNotificationSchema:()=>fE,ClientRequestSchema:()=>dE,ClientResultSchema:()=>pE,ClientTasksCapabilitySchema:()=>VC,CompatibilityCallToolResultSchema:()=>nT,CompleteRequestParamsSchema:()=>WT,CompleteRequestSchema:()=>GT,CompleteResultSchema:()=>KT,ContentBlockSchema:()=>Kw,CreateMessageRequestParamsSchema:()=>yT,CreateMessageRequestSchema:()=>bT,CreateMessageResultSchema:()=>xT,CreateMessageResultWithToolsSchema:()=>ST,CreateTaskResultSchema:()=>eE,CursorSchema:()=>hC,DiscoverRequestSchema:()=>YC,DiscoverResultSchema:()=>XC,ElicitRequestFormParamsSchema:()=>FT,ElicitRequestParamsSchema:()=>LT,ElicitRequestSchema:()=>RT,ElicitRequestURLParamsSchema:()=>IT,ElicitResultSchema:()=>VT,ElicitationCompleteNotificationParamsSchema:()=>zT,ElicitationCompleteNotificationSchema:()=>BT,EmbeddedResourceSchema:()=>Ww,EmptyResultSchema:()=>NC,EnumSchemaSchema:()=>NT,GetPromptRequestParamsSchema:()=>Rw,GetPromptRequestSchema:()=>zw,GetPromptResultSchema:()=>Jw,GetTaskPayloadRequestSchema:()=>aE,GetTaskPayloadResultSchema:()=>oE,GetTaskRequestSchema:()=>rE,GetTaskResultSchema:()=>iE,IconSchema:()=>IC,IconsSchema:()=>LC,ImageContentSchema:()=>Vw,ImplementationSchema:()=>zC,InitializeRequestParamsSchema:()=>WC,InitializeRequestSchema:()=>GC,InitializeResultSchema:()=>qC,InitializedNotificationSchema:()=>JC,JSONArraySchema:()=>pC,JSONObjectSchema:()=>fC,JSONRPCErrorResponseSchema:()=>AC,JSONRPCMessageSchema:()=>jC,JSONRPCNotificationSchema:()=>OC,JSONRPCRequestSchema:()=>DC,JSONRPCResponseSchema:()=>MC,JSONRPCResultResponseSchema:()=>kC,JSONValueSchema:()=>dC,LegacyTitledEnumSchemaSchema:()=>OT,ListChangedOptionsBaseSchema:()=>oT,ListPromptsRequestSchema:()=>Iw,ListPromptsResultSchema:()=>Lw,ListResourceTemplatesRequestSchema:()=>mw,ListResourceTemplatesResultSchema:()=>hw,ListResourcesRequestSchema:()=>fw,ListResourcesResultSchema:()=>pw,ListRootsRequestSchema:()=>JT,ListRootsResultSchema:()=>YT,ListTasksRequestSchema:()=>sE,ListTasksResultSchema:()=>cE,ListToolsRequestSchema:()=>$w,ListToolsResultSchema:()=>eT,LoggingLevelSchema:()=>sT,LoggingMessageNotificationParamsSchema:()=>uT,LoggingMessageNotificationSchema:()=>dT,ModelHintSchema:()=>fT,ModelPreferencesSchema:()=>pT,MultiSelectEnumSchemaSchema:()=>MT,NotificationSchema:()=>CC,NotificationsParamsSchema:()=>SC,NumberSchemaSchema:()=>TT,PaginatedRequestParamsSchema:()=>tw,PaginatedRequestSchema:()=>nw,PaginatedResultSchema:()=>rw,PingRequestSchema:()=>ZC,PrimitiveSchemaDefinitionSchema:()=>PT,ProgressNotificationParamsSchema:()=>$C,ProgressNotificationSchema:()=>ew,ProgressSchema:()=>QC,ProgressTokenSchema:()=>mC,PromptArgumentSchema:()=>Pw,PromptListChangedNotificationSchema:()=>Yw,PromptMessageSchema:()=>qw,PromptReferenceSchema:()=>UT,PromptSchema:()=>Fw,ReadResourceRequestParamsSchema:()=>_w,ReadResourceRequestSchema:()=>vw,ReadResourceResultSchema:()=>yw,RelatedTaskMetadataSchema:()=>_C,RequestIdSchema:()=>EC,RequestMetaSchema:()=>vC,RequestSchema:()=>xC,ResourceContentsSchema:()=>iw,ResourceLinkSchema:()=>Gw,ResourceListChangedNotificationSchema:()=>bw,ResourceRequestParamsSchema:()=>gw,ResourceSchema:()=>uw,ResourceTemplateReferenceSchema:()=>HT,ResourceTemplateSchema:()=>dw,ResourceUpdatedNotificationParamsSchema:()=>Mw,ResourceUpdatedNotificationSchema:()=>Nw,ResultMetaObjectSchema:()=>wC,ResultSchema:()=>TC,RoleSchema:()=>cw,RootSchema:()=>qT,RootsListChangedNotificationSchema:()=>XT,SamplingContentSchema:()=>gT,SamplingMessageContentBlockSchema:()=>_T,SamplingMessageSchema:()=>vT,ServerCapabilitiesSchema:()=>KC,ServerNotificationSchema:()=>hE,ServerRequestSchema:()=>mE,ServerResultSchema:()=>gE,ServerTasksCapabilitySchema:()=>HC,SetLevelRequestParamsSchema:()=>cT,SetLevelRequestSchema:()=>lT,SingleSelectEnumSchemaSchema:()=>kT,StringSchemaSchema:()=>wT,SubscribeRequestParamsSchema:()=>xw,SubscribeRequestSchema:()=>Sw,SubscriptionFilterSchema:()=>Tw,SubscriptionsAcknowledgedNotificationParamsSchema:()=>Ow,SubscriptionsAcknowledgedNotificationSchema:()=>kw,SubscriptionsListenRequestParamsSchema:()=>Ew,SubscriptionsListenRequestSchema:()=>Dw,SubscriptionsListenResultMetaSchema:()=>Aw,SubscriptionsListenResultSchema:()=>jw,TaskAugmentedRequestParamsSchema:()=>bC,TaskCreationParamsSchema:()=>ZT,TaskMetadataSchema:()=>gC,TaskSchema:()=>$T,TaskStatusNotificationParamsSchema:()=>tE,TaskStatusNotificationSchema:()=>nE,TaskStatusSchema:()=>QT,TextContentSchema:()=>Bw,TextResourceContentsSchema:()=>aw,TitledMultiSelectEnumSchemaSchema:()=>jT,TitledSingleSelectEnumSchemaSchema:()=>DT,ToolAnnotationsSchema:()=>Xw,ToolChoiceSchema:()=>mT,ToolExecutionSchema:()=>Zw,ToolListChangedNotificationSchema:()=>aT,ToolResultContentSchema:()=>hT,ToolSchema:()=>Qw,ToolUseContentSchema:()=>Uw,UnsubscribeRequestParamsSchema:()=>Cw,UnsubscribeRequestSchema:()=>ww,UntitledMultiSelectEnumSchemaSchema:()=>AT,UntitledSingleSelectEnumSchemaSchema:()=>ET}),fO=e=>DC.safeParse(e).success,pO=e=>OC.safeParse(e).success,mO=e=>kC.safeParse(e).success,hO=e=>AC.safeParse(e).success;xD.InvalidRequest,xD.UnsupportedProtocolVersion,xD.InvalidParams,xD.MethodNotFound,xD.InvalidParams,xD.MissingRequiredClientCapability,xD.ParseError,xD.InvalidRequest,xD.MethodNotFound,xD.UnsupportedProtocolVersion,xD.MissingRequiredClientCapability;function gO(e,t){return bs(e,t)}function _O(e){return new Set(e.flatMap(e=>Object.keys(e.shape)))}function vO(e){if(e==null)return!1;let t=typeof e;return t!==`object`&&t!==`function`||!(`~standard`in e)?!1:typeof e[`~standard`]?.validate==`function`}var yO=!1,bO=`draft-2020-12`;function xO(e,t=`input`){let n=e[`~standard`],r;if(n.jsonSchema)r=n.jsonSchema[t]({target:bO});else if(n.vendor===`zod`){if(!(`_zod`in e))throw Error(`Schema appears to be from zod 3, which the SDK cannot convert to JSON Schema. Upgrade to zod >=4.2.0, or wrap your JSON Schema with fromJsonSchema().`);yO||(yO=!0,console.warn("[mcp-sdk] Your zod version does not implement `~standard.jsonSchema` (added in zod 4.2.0). Falling back to z.toJSONSchema(). Upgrade to zod >=4.2.0 to silence this warning.")),r=ms(e,{target:bO,io:t})}else throw Error(`Schema library "${n.vendor}" does not implement StandardJSONSchemaV1 (\`~standard.jsonSchema\`). Upgrade to a version that does, or wrap your JSON Schema with fromJsonSchema().`);if(t===`output`)return r.type===void 0&&SO(r)?{type:`object`,...r}:r;if(r.type!==void 0&&r.type!==`object`)throw Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(r.type)}). Wrap your schema in z.object({...}) or equivalent.`);return{type:`object`,...r}}function SO(e){if(`properties`in e||`patternProperties`in e||`additionalProperties`in e||`required`in e)return!0;for(let t of[`oneOf`,`anyOf`,`allOf`]){let n=e[t];if(Array.isArray(n)&&n.length>0)return n.every(e=>typeof e==`object`&&!!e&&(e.type===`object`||SO(e)))}return!1}function CO(e){return e.path?.length?`${e.path.map(e=>String(typeof e==`object`?e.key:e)).join(`.`)}: ${e.message}`:e.message}async function wO(e,t){let n=await e[`~standard`].validate(t);return n.issues&&n.issues.length>0?{success:!1,error:n.issues.map(e=>CO(e)).join(`, `)}:{success:!0,data:n.value}}function TO(e){let t=ms(e,{target:bO,io:`input`});return typeof t.pattern==`string`?t.pattern:void 0}var EO=/\\\.\\d\{(\d+)\}/;function DO(e){let t=EO.exec(e),n=[void 0,-1,0];return t&&n.push(Number(t[1])),[!1,!0].flatMap(e=>[!1,!0].flatMap(t=>n.map(n=>pl({local:e,offset:t,precision:n}))))}function OO(e,t){let n;switch(e){case`email`:n=[Vs()];break;case`uri`:n=[Gs()];break;case`date`:n=[ml()];break;case`date-time`:n=DO(t)}return new Set(n.map(e=>TO(e)).filter(e=>e!==void 0))}function kO(e,t,n){return n!==`zod`||OO(e,t).has(t)}function AO(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function jO(e){try{return xO(e,`input`)}catch(e){let t=e instanceof Error?e.message:String(e);throw new SD(xD.InvalidParams,`Elicitation requestedSchema must describe an object with flat primitive properties: ${t}`)}}var MO=new Set([`$comment`,`deprecated`,`description`,`examples`,`readOnly`,`title`,`writeOnly`]);function NO(e){return MO.has(e)||e.startsWith(`x-`)}var PO=new Set([`$schema`,...Object.keys(FT.shape.requestedSchema.shape)]),FO={string:_O([wT,ET,DT,OT]),number:_O([TT]),integer:_O([TT]),boolean:_O([CT]),array:_O([AT,jT])},IO=new Set(wT.shape.format.unwrap().options);function LO(e,t,n,r){if(!AO(e))return e;let i=typeof e.type==`string`&&Object.hasOwn(FO,e.type)?FO[e.type]:void 0;if(i===void 0)return e;let a={};for(let[o,s]of Object.entries(e))i.has(o)||NO(o)?a[o]=s:o===`pattern`&&e.type===`string`&&typeof e.format==`string`?IO.has(e.format)?(typeof s!=`string`||!kO(e.format,s,n))&&r.push(`${t}.${o}`):a[o]=s:r.push(`${t}.${o}`);return a}function RO(e,t){let n={},r=[];for(let[i,a]of Object.entries(e))i===`properties`&&AO(a)?n[i]=Object.fromEntries(Object.entries(a).map(([e,n])=>[e,LO(n,`properties.${e}`,t,r)])):PO.has(i)?n[i]=a:NO(i)||r.push(i);if(r.length>0)throw new SD(xD.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${r.join(`, `)}`);return n}function zO(e,t){if(!AO(e.properties))return t;let n=Object.entries(e.properties).filter(([,e])=>!gO(PT,e).success).map(([e])=>`properties.${e}`);return n.length>0?n.join(`, `):t}function BO(e,t,n=``){return Array.isArray(e)&&Array.isArray(t)?e.flatMap((e,r)=>BO(e,t[r],`${n}[${r}]`)):!AO(e)||!AO(t)?[]:Object.entries(e).flatMap(([e,r])=>{let i=n?`${n}.${e}`:e;return Object.prototype.hasOwnProperty.call(t,e)?BO(r,t[e],i):NO(e)?[]:[i]})}function VO(e){if(!vO(e.requestedSchema))return{...e,mode:`form`,requestedSchema:e.requestedSchema};let t=e.requestedSchema[`~standard`].vendor,n=RO(jO(e.requestedSchema),t),r=gO(FT.shape.requestedSchema,n);if(!r.success)throw new SD(xD.InvalidParams,`Elicitation requestedSchema only supports flat primitive properties (string, number, integer, boolean, and string enums): ${zO(n,r.error.message)}`);let i=BO(n,r.data);if(i.length>0)throw new SD(xD.InvalidParams,`Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${i.join(`, `)}`);let a=(r.data.required??[]).filter(e=>!Object.prototype.hasOwnProperty.call(r.data.properties,e));if(a.length>0)throw new SD(xD.InvalidParams,`Elicitation requestedSchema lists required properties that are not defined in properties: ${a.join(`, `)}`);return{...e,mode:`form`,requestedSchema:r.data}}function HO(e){let t=e.inputRequests!==void 0&&Object.keys(e.inputRequests).length>0,n=typeof e.requestState==`string`;if(!t&&!n)throw TypeError(`inputRequired() requires at least one of inputRequests (with at least one entry) or requestState (spec: every InputRequiredResult MUST include at least one of the two)`);return{resultType:`input_required`,...e.inputRequests!==void 0&&{inputRequests:e.inputRequests},...e.requestState!==void 0&&{requestState:e.requestState}}}Object.assign(HO,{elicit(e){try{return{method:`elicitation/create`,params:VO(e)}}catch(e){throw e instanceof SD?TypeError(e.message,{cause:e}):e}},elicitUrl(e){return{method:`elicitation/create`,params:{...e,mode:`url`}}},createMessage(e){return{method:`sampling/createMessage`,params:e}},listRoots(){return{method:`roots/list`}}});var UO=`AnnotationsSchema.AudioContentSchema.BaseMetadataSchema.BlobResourceContentsSchema.BooleanSchemaSchema.CallToolRequestSchema.CallToolRequestParamsSchema.CallToolResultSchema.CancelledNotificationSchema.CancelledNotificationParamsSchema.CancelTaskRequestSchema.CancelTaskResultSchema.ClientCapabilitiesSchema.ClientNotificationSchema.ClientRequestSchema.ClientResultSchema.CompatibilityCallToolResultSchema.CompleteRequestSchema.CompleteRequestParamsSchema.CompleteResultSchema.ContentBlockSchema.CreateMessageRequestSchema.CreateMessageRequestParamsSchema.CreateMessageResultSchema.CreateMessageResultWithToolsSchema.CreateTaskResultSchema.CursorSchema.DiscoverRequestSchema.DiscoverResultSchema.ElicitationCompleteNotificationSchema.ElicitationCompleteNotificationParamsSchema.ElicitRequestSchema.ElicitRequestFormParamsSchema.ElicitRequestParamsSchema.ElicitRequestURLParamsSchema.ElicitResultSchema.EmbeddedResourceSchema.EmptyResultSchema.EnumSchemaSchema.GetPromptRequestSchema.GetPromptRequestParamsSchema.GetPromptResultSchema.GetTaskPayloadRequestSchema.GetTaskPayloadResultSchema.GetTaskRequestSchema.GetTaskResultSchema.IconSchema.IconsSchema.ImageContentSchema.ImplementationSchema.InitializedNotificationSchema.InitializeRequestSchema.InitializeRequestParamsSchema.InitializeResultSchema.JSONArraySchema.JSONObjectSchema.JSONRPCErrorResponseSchema.JSONRPCMessageSchema.JSONRPCNotificationSchema.JSONRPCRequestSchema.JSONRPCResponseSchema.JSONRPCResultResponseSchema.JSONValueSchema.LegacyTitledEnumSchemaSchema.ListPromptsRequestSchema.ListPromptsResultSchema.ListResourcesRequestSchema.ListResourcesResultSchema.ListResourceTemplatesRequestSchema.ListResourceTemplatesResultSchema.ListRootsRequestSchema.ListRootsResultSchema.ListTasksRequestSchema.ListTasksResultSchema.ListToolsRequestSchema.ListToolsResultSchema.LoggingLevelSchema.LoggingMessageNotificationSchema.LoggingMessageNotificationParamsSchema.ModelHintSchema.ModelPreferencesSchema.MultiSelectEnumSchemaSchema.NotificationSchema.NumberSchemaSchema.PaginatedRequestSchema.PaginatedRequestParamsSchema.PaginatedResultSchema.PingRequestSchema.PrimitiveSchemaDefinitionSchema.ProgressSchema.ProgressNotificationSchema.ProgressNotificationParamsSchema.ProgressTokenSchema.PromptSchema.PromptArgumentSchema.PromptListChangedNotificationSchema.PromptMessageSchema.PromptReferenceSchema.ReadResourceRequestSchema.ReadResourceRequestParamsSchema.ReadResourceResultSchema.RelatedTaskMetadataSchema.RequestSchema.RequestIdSchema.RequestMetaSchema.ResourceSchema.ResourceContentsSchema.ResourceLinkSchema.ResourceListChangedNotificationSchema.ResourceRequestParamsSchema.ResourceTemplateSchema.ResourceTemplateReferenceSchema.ResourceUpdatedNotificationSchema.ResourceUpdatedNotificationParamsSchema.ResultMetaObjectSchema.ResultSchema.RoleSchema.RootSchema.RootsListChangedNotificationSchema.SamplingContentSchema.SamplingMessageSchema.SamplingMessageContentBlockSchema.ServerCapabilitiesSchema.ServerNotificationSchema.ServerRequestSchema.ServerResultSchema.SetLevelRequestSchema.SetLevelRequestParamsSchema.SingleSelectEnumSchemaSchema.StringSchemaSchema.SubscribeRequestSchema.SubscribeRequestParamsSchema.SubscriptionFilterSchema.SubscriptionsAcknowledgedNotificationSchema.SubscriptionsAcknowledgedNotificationParamsSchema.SubscriptionsListenRequestSchema.SubscriptionsListenRequestParamsSchema.SubscriptionsListenResultSchema.SubscriptionsListenResultMetaSchema.TaskAugmentedRequestParamsSchema.TaskCreationParamsSchema.TaskMetadataSchema.TaskSchema.TaskStatusSchema.TaskStatusNotificationSchema.TaskStatusNotificationParamsSchema.TextContentSchema.TextResourceContentsSchema.TitledMultiSelectEnumSchemaSchema.TitledSingleSelectEnumSchemaSchema.ToolSchema.ToolAnnotationsSchema.ToolChoiceSchema.ToolExecutionSchema.ToolListChangedNotificationSchema.ToolResultContentSchema.ToolUseContentSchema.UnsubscribeRequestSchema.UnsubscribeRequestParamsSchema.UntitledMultiSelectEnumSchemaSchema.UntitledSingleSelectEnumSchemaSchema`.split(`.`),WO={IdJagTokenExchangeResponseSchema:CE,OAuthClientInformationFullSchema:OE,OAuthClientInformationSchema:DE,OAuthClientMetadataSchema:EE,OAuthClientRegistrationErrorSchema:kE,OAuthErrorResponseSchema:wE,OAuthMetadataSchema:yE,OAuthProtectedResourceMetadataSchema:vE,OAuthTokenRevocationRequestSchema:AE,OAuthTokensSchema:SE,OpenIdProviderDiscoveryMetadataSchema:xE,OpenIdProviderMetadataSchema:bE},GO={},KO={};function qO(e,t){let n=e.slice(0,-6);GO[n]=t,KO[n]=e=>t.safeParse(e).success}for(let e of UO)qO(e,dO[e]);for(let[e,t]of Object.entries(WO))qO(e,t);Object.freeze(GO),Object.freeze(KO);function JO(e){switch(e){case`initialize`:case`notifications/initialized`:return oO(void 0);case`server/discover`:return oO(aO);default:return}}var YO=[aC,oC,cC,uC],XO=[`inputResponses`,`requestState`];function ZO(e,t){let n=e.params;if(!nk(n))return{message:e,lifted:{}};let r=n._meta,i=nk(r)?YO.filter(e=>e in r):[],a=t===`request`?XO.filter(e=>e in n):[];if(i.length===0&&a.length===0)return{message:e,lifted:{}};let o={},s={...n};if(i.length>0&&nk(r)){let e={},t={...r};for(let n of i)e[n]=r[n],delete t[n];o.envelope=e,Object.keys(t).length>0?s._meta=t:delete s._meta}for(let e of a)e===`inputResponses`&&(o.inputResponses=s[e]),e===`requestState`&&(o.requestState=s[e]),delete s[e];return{message:{...e,params:s},lifted:o}}function QO(e,t){let n=e.validateResult(t,void 0);if(n.ok||n.reason!==`not-in-era`)return{"~standard":{version:1,vendor:`mcp-wire-codec`,validate(n){let r=e.validateResult(t,n);return r.ok?{value:r.value}:{issues:[{message:r.reason===`invalid`?r.message:`not-in-era: ${t}`}]}}}}}function $O(e){return()=>e}var ek=$O(void 0),tk=class{_transport;_requestMessageId=0;_requestHandlers=new Map;_requestHandlerAbortControllers=new Map;_notificationHandlers=new Map;_responseHandlers=new Map;_progressHandlers=new Map;_timeoutInfo=new Map;_pendingDebouncedNotifications=new Set;_negotiatedProtocolVersion;_supportedProtocolVersions;onclose;onerror;fallbackRequestHandler;fallbackNotificationHandler;constructor(e){this._options=e,this._supportedProtocolVersions=e?.supportedProtocolVersions??rC,this.setNotificationHandler(`notifications/cancelled`,e=>{this._oncancel(e)}),this.setNotificationHandler(`notifications/progress`,e=>{this._onprogress(e)}),this.setRequestHandler(`ping`,e=>({}))}_shouldDropInbound(e){}_outboundMetaEnvelope(){}_envelopeOutbound(e){let t=this._outboundMetaEnvelope();if(t===void 0)return e;let n=e.params??{};return{...e,params:{...n,_meta:{...t,...n._meta}}}}_resolveNonCompleteResult(e,t){return Promise.reject(new FE(PE.UnsupportedResultType,`Unsupported result type '${e.kind}' for ${t.request.method}`,{resultType:e.kind,method:t.request.method}))}_getRequestHandler(e){return this._requestHandlers.get(e)}async _oncancel(e){e.params.requestId!==void 0&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new FE(PE.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{try{t?.()}finally{this._onclose()}};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),mO(e)||hO(e)?this._onresponse(e):fO(e)?this._onrequest(e,t):pO(e)?this._onnotification(e,t):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},e.setSupportedProtocolVersions?.(this._supportedProtocolVersions),await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();let t=this._requestHandlerAbortControllers;this._requestHandlerAbortControllers=new Map;let n=new FE(PE.ConnectionClosed,`Connection closed`);this._transport=void 0;try{this.onclose?.()}finally{for(let t of e.values())t(n);for(let e of t.values())e.abort(n)}}_onerror(e){this.onerror?.(e)}_onnotification(e,t){let{message:n}=ZO(e,`notification`),r=this._negotiatedWireCodec();if(t?.classification===void 0&&this._shouldDropInbound(e)===`drop`)return;if(t?.classification!==void 0){let e=sO(t.classification);if(e!==r.era){this._onerror(Error(`Era mismatch on inbound notification '${n.method}': classified as ${e} but this instance serves ${r.era}`));return}}if(lO(n.method)&&!r.hasNotificationMethod(n.method))return;let i=this._notificationHandlers.get(n.method),a=this.fallbackNotificationHandler;(i!==void 0||a!==void 0)&&Promise.resolve().then(()=>i===void 0?a(n):i(n,r)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let{message:n,lifted:r}=ZO(e,`request`),i=this._negotiatedWireCodec();if(t?.classification===void 0&&this._shouldDropInbound(e)===`drop`){this._onerror(Error(`Dropped inbound request '${e.method}': not servable on this connection's protocol era`));return}let a=this._transport,o=(e,t,r)=>{let i={jsonrpc:`2.0`,id:n.id,error:{code:e,message:t,...r!==void 0&&{data:r}}};a?.send(i).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)))};if(t?.classification!==void 0){let e=sO(t.classification);if(e!==i.era){this._onerror(Error(`Era mismatch on inbound request '${n.method}': classified as ${e} but this instance serves ${i.era}`));let r=t.classification.revision??e;o(xD.UnsupportedProtocolVersion,`Unsupported protocol version: ${r}`,{supported:this._supportedProtocolVersions,requested:r});return}}if(cO(n.method)&&!i.hasRequestMethod(n.method)){o(xD.MethodNotFound,`Method not found`);return}let s=this._requestHandlers.get(n.method)??this.fallbackRequestHandler;if(s===void 0){o(xD.MethodNotFound,`Method not found`);return}let c=i.checkInboundEnvelope(r);if(c!==void 0){o(xD.InvalidParams,c);return}let l=(e,t)=>this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,{...t,relatedRequestId:n.id}),u=(e,t,r)=>this._requestWithSchemaViaCodec(this._resolveOutboundCodec(e.method),e,t,{...r,relatedRequestId:n.id}),d=new AbortController;this._requestHandlerAbortControllers.set(n.id,d);let f=r.inputResponses===void 0?void 0:ik(r.inputResponses),p={sessionId:a?.sessionId,mcpReq:{id:n.id,method:n.method,_meta:n.params?._meta,...r.envelope!==void 0&&{envelope:r.envelope},...f!==void 0&&{inputResponses:f.accepted},...f!==void 0&&f.droppedKeys.length>0&&{droppedInputResponseKeys:f.droppedKeys},requestState:r.requestState===void 0?ek:$O(r.requestState),signal:d.signal,send:((e,t,n)=>{let r=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(r,e.method),vO(t))return u(e,t,n);let i=QO(r,e.method);if(i===void 0)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to ctx.mcpReq.send().`);return u(e,i,t)}),notify:l},http:t?.authInfo?{authInfo:t.authInfo}:void 0},m=this.buildContext(p,t);Promise.resolve().then(()=>s(n,m)).then(async e=>{if(d.signal.aborted)return;let t;try{t=i.encodeResult(n.method,e,this._outboundServerInfo())}catch(e){this._onerror(Error(`Failed to encode result for ${n.method}: ${e}`)),o(xD.InternalError,`Internal error`);return}let r={result:t,jsonrpc:`2.0`,id:n.id};await a?.send(r)},async e=>{if(d.signal.aborted)return;let t=Number.isSafeInteger(e.code)?e.code:xD.InternalError,r={jsonrpc:`2.0`,id:n.id,error:{code:i.encodeErrorCode(t),message:e.message??`Internal error`,...e.data!==void 0&&{data:e.data}}};await a?.send(r)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(n.id)===d&&this._requestHandlerAbortControllers.delete(n.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._responseHandlers.get(t);if(n===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t),this._progressHandlers.delete(t),mO(e)?n(e):n(SD.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}request(e,t,n){let r=this._resolveOutboundCodec(e.method);if(this._assertOutboundRequestInEra(r,e.method),vO(t))return this._requestWithSchemaViaCodec(r,e,t,n);let i=QO(r,e.method);if(i===void 0)throw TypeError(`'${e.method}' is not a spec method; pass a result schema as the second argument to request().`);return this._requestWithSchemaViaCodec(r,e,i,t)}_negotiatedWireCodec(){return oO(this._negotiatedProtocolVersion)}_wireCodec(){return this._negotiatedWireCodec()}_resolveOutboundCodec(e){if(this._negotiatedProtocolVersion===void 0){let t=JO(e);if(t)return t}return this._negotiatedWireCodec()}_assertOutboundRequestInEra(e,t){if(cO(t)&&!e.hasRequestMethod(t))throw new FE(PE.MethodNotSupportedByProtocolVersion,`Method '${t}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t,era:e.era})}_requestWithSchema(e,t,n){let r=this._resolveOutboundCodec(e.method);return this._assertOutboundRequestInEra(r,e.method),this._requestWithSchemaViaCodec(r,e,t,n)}_requestWithSchemaViaCodec(e,t,n,r){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,headers:s}=r??{},c=Date.now(),l,u;return new Promise((d,f)=>{let p=e=>{f(e)};if(!this._transport){p(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method)}catch(e){p(e);return}if(r?.signal?.aborted){let e=r.signal.reason;throw e instanceof FE?e:new FE(PE.RequestTimeout,String(e))}let m=e.era===`2026-07-28`&&this._transport.hasPerRequestStream===!0?new AbortController:void 0,h=this._requestMessageId++;u=h;let g={...t,jsonrpc:`2.0`,id:h};r?.onprogress&&(this._progressHandlers.set(h,r.onprogress),g.params={...t.params,_meta:{...t.params?._meta,progressToken:h}});let _=this._envelopeOutbound(g),v=!1,y=e=>{v||(this._progressHandlers.delete(h),m===void 0?t.method!==`initialize`&&this._transport?.send(this._envelopeOutbound({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:h,reason:String(e)}}),{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))):m.abort(),f(e instanceof FE?e:new FE(PE.RequestTimeout,String(e))))};this._responseHandlers.set(h,i=>{if(r?.signal?.aborted)return;if(v=!0,i instanceof Error)return f(i);let a;try{a=e.decodeResult(t.method,i.result)}catch(e){return f(e instanceof Error?e:Error(String(e)))}if(a.kind===`invalid`)return f(a.error);if(a.kind===`input_required`){if(r?.allowInputRequired===!0)return d(ak(a));let i={codec:e,request:t,resultSchema:n,options:r,flowStartedAt:c,retry:(r,i)=>this._requestWithSchemaViaCodec(e,r===void 0?{method:t.method}:{method:t.method,params:r},n,i)};return d(this._resolveNonCompleteResult(a,i))}let o=a.result;wO(n,o).then(e=>{e.success?d(e.data):f(new FE(PE.InvalidResult,`Invalid result for ${t.method}: ${e.error}`))},f)}),l=()=>y(r?.signal?.reason),r?.signal?.addEventListener(`abort`,l,{once:!0});let b=r?.timeout??6e4;this._setupTimeout(h,b,r?.maxTotalTimeout,()=>y(new FE(PE.RequestTimeout,`Request timed out`,{timeout:b})),r?.resetTimeoutOnProgress??!1),this._transport.send(_,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,headers:s,requestSignal:m?.signal}).catch(e=>{this._progressHandlers.delete(h),f(e)})}).finally(()=>{l&&r?.signal?.removeEventListener(`abort`,l),u!==void 0&&(this._responseHandlers.delete(u),this._cleanupTimeout(u))})}async notification(e,t){return await this._notificationViaCodec(this._resolveOutboundCodec(e.method),e,t)}async _notificationViaCodec(e,t,n){if(!this._transport)throw new FE(PE.NotConnected,`Not connected`);if(lO(t.method)&&!e.hasNotificationMethod(t.method))throw new FE(PE.MethodNotSupportedByProtocolVersion,`Notification '${t.method}' is not supported by the negotiated protocol version (wire era ${e.era})`,{method:t.method,era:e.era});this.assertNotificationCapability(t.method);let r=this._envelopeOutbound({jsonrpc:`2.0`,...t});if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&n?.relatedRequestId===void 0){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{this._pendingDebouncedNotifications.delete(t.method),this._transport&&this._transport?.send(r,n).catch(e=>this._onerror(e))});return}await this._transport.send(r,n)}setRequestHandler(e,t,n){this.assertRequestHandlerCapability(e);let r;if(typeof t==`function`){if(!cO(e))throw TypeError(`'${e}' is not a spec request method; pass schemas as the second argument to setRequestHandler().`);r=(n,r)=>{let i=this._negotiatedWireCodec(),a=i.validateRequest(e,n);if(!a.ok&&a.reason===`not-in-era`&&(a=i.validateInputRequest(e,n)),!a.ok)throw a.reason===`not-in-era`?new SD(xD.InternalError,`No wire schema for ${e} in the resolved era`):Error(a.message);return Promise.resolve(t(a.value,r))}}else if(n)r=async(r,i)=>{let a=await wO(t.params,{...r.params});if(!a.success)throw new SD(xD.InvalidParams,`Invalid params for ${e}: ${a.error}`);return n(a.data,i)};else throw TypeError(`setRequestHandler: handler is required`);this._requestHandlers.set(e,this._wrapHandler(e,r))}_wrapHandler(e,t){return t}_outboundServerInfo(){}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t,n){if(typeof t==`function`){if(!lO(e))throw TypeError(`'${e}' is not a spec notification method; pass schemas as the second argument to setNotificationHandler().`);this._notificationHandlers.set(e,(n,r)=>{let i=r.validateNotification(e,n);if(!i.ok)throw i.reason===`not-in-era`?new SD(xD.InternalError,`No wire schema for ${e} in the resolved era`):Error(i.message);return Promise.resolve(t(i.value))});return}if(!n)throw TypeError(`setNotificationHandler: handler is required`);this._notificationHandlers.set(e,async r=>{let i=await wO(t.params,{...r.params});if(!i.success)throw new SD(xD.InvalidParams,`Invalid params for notification ${e}: ${i.error}`);await n(i.data,r)})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function nk(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rk(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ik(e){let t={},n=[];if(!rk(e))return{accepted:t,droppedKeys:n};for(let[r,i]of Object.entries(e)){if(!rk(i)||`method`in i||`result`in i){n.push(r);continue}t[r]=i}return{accepted:t,droppedKeys:n}}function ak(e){return{resultType:`input_required`,inputRequests:e.inputRequests,...e.requestState!==void 0&&{requestState:e.requestState},...e._meta!==void 0&&{_meta:e._meta}}}$S((e=>{var t=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,n=/\\([\u000b\u0020-\u00ff])/g,r=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;e.parse=i;function i(e){if(!e)throw TypeError(`argument string is required`);var i=typeof e==`object`?a(e):e;if(typeof i!=`string`)throw TypeError(`argument string is required to be a string`);var s=i.indexOf(`;`),c=s===-1?i.trim():i.slice(0,s).trim();if(!r.test(c))throw TypeError(`invalid media type`);var l=new o(c.toLowerCase());if(s!==-1){var u,d,f;for(t.lastIndex=s;d=t.exec(i);){if(d.index!==s)throw TypeError(`invalid parameter format`);s+=d[0].length,u=d[1].toLowerCase(),f=d[2],f.charCodeAt(0)===34&&(f=f.slice(1,-1),f.indexOf(`\\`)!==-1&&(f=f.replace(n,`$1`))),l.parameters[u]=f}if(s!==i.length)throw TypeError(`invalid parameter format`)}return l}function a(e){var t;if(typeof e.getHeader==`function`?t=e.getHeader(`content-type`):typeof e.headers==`object`&&(t=e.headers&&e.headers[`content-type`]),typeof t!=`string`)throw TypeError(`content-type header is missing from object`);return t}function o(e){this.parameters=Object.create(null),this.type=e}}))(),typeof self<`u`&&self.location&&self.location.origin!==`null`?new URL(self.location.origin+self.location.pathname+location.search):new URL(`https://github.com/cfworker`);var ok=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,sk=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ck=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,lk=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,uk=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,dk=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,fk=/^(?:\/(?:[^~/]|~0|~1)*)*$/,pk=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,mk=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,hk=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,gk=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i;function _k(e){return e.test.bind(e)}vk.bind(void 0,!1),_k(ck),_k(lk),_k(uk),_k(sk),_k(hk),_k(gk),_k(dk),_k(fk),_k(pk),_k(mk);function vk(e,t){let n=t.match(ok);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=!!n[5];return(r<=23&&i<=59&&a<=59||r==23&&i==59&&a==60)&&(!e||o)}globalThis.crypto;var yk=class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.OAuthClientFlowError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e){super(e),this.name=new.target.name,ME(this,new.target)}};(class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.IssuerMismatchError`})}kind;expected;received;constructor(e,t,n){super(`Issuer mismatch in ${e===`metadata`?`authorization server metadata (RFC 8414 §3.3)`:`authorization response (RFC 9207)`}: expected ${JSON.stringify(t)}, received ${JSON.stringify(n)}`),this.kind=e,this.expected=t,this.received=n}}),class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.RegistrationRejectedError`})}status;body;submittedMetadata;constructor(e){super(`Dynamic Client Registration rejected (HTTP ${e.status}): ${e.body}`),this.status=e.status,this.body=e.body,this.submittedMetadata=e.submittedMetadata}},class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.InsecureTokenEndpointError`})}tokenEndpoint;constructor(e){super(`Refusing to send credentials to non-https token endpoint '${e}'. OAuth token requests MUST use TLS (localhost / *.localhost / 127.0.0.1 / ::1 are exempt).`),this.tokenEndpoint=e}},class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.AuthorizationServerMismatchError`})}constructor(e,t){super(`Authorization server mismatch: credentials are bound to ${JSON.stringify(e)} but this call resolved ${JSON.stringify(t)}; refusing to present them to a different authorization server`),this.recordedIssuer=e,this.currentIssuer=t}},class extends yk{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.InsufficientScopeError`})}requiredScope;resourceMetadataUrl;errorDescription;constructor(e){super(`Insufficient scope${e.requiredScope?`: required "${e.requiredScope}"`:``}`),this.requiredScope=e.requiredScope,this.resourceMetadataUrl=e.resourceMetadataUrl,this.errorDescription=e.errorDescription}},class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.UnauthorizedError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e){super(e??`Unauthorized`),this.name=`UnauthorizedError`,ME(this,new.target)}},class extends Error{static{Object.defineProperty(this,"mcpBrand",{value:`mcp.SseError`})}static[Symbol.hasInstance](e){return NE(this,e)}static isInstance(e){if(typeof this!=`function`)throw TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`");return NE(this,e)}constructor(e,t,n){super(`SSE error: ${t}`),this.code=e,this.event=n,ME(this,new.target)}};var bk=class{_eventSlots=new Map;setHandler(e,t){let n=this._ensureEventSlot(e);n.onHandler&&t&&console.warn(`[MCP Apps] on${String(e)} handler replaced. Use addEventListener("${String(e)}", …) to add multiple listeners without replacing.`),n.onHandler=t}getHandler(e){return this._eventSlots.get(e)?.onHandler}addEventListener(e,t){this._ensureEventSlot(e).listeners.push(t)}removeEventListener(e,t){let n=this._eventSlots.get(e);if(!n)return;let r=n.listeners.indexOf(t);r!==-1&&n.listeners.splice(r,1)}dispatch(e,t){let n=this._eventSlots.get(e);if(n){n.onHandler?.(t);for(let e of[...n.listeners])e(t)}}_ensureEventSlot(e){let t=this._eventSlots.get(e);return t||(t={listeners:[]},this._eventSlots.set(e,t)),t}},xk=class{_methods=new Set;claim(e,t){if(this._methods.has(e))throw Error(`Handler for "${e}" already registered (via ${t}). Use addEventListener() to attach multiple listeners, or the on* setter for replace semantics.`);this._methods.add(e)}replace(e){this._methods.add(e)}release(e){this._methods.delete(e)}has(e){return this._methods.has(e)}},Sk=new Set;function Ck(e,t){let[n,r]=t,i=n?.shape;if(typeof i?.method?.value!=`string`)return;let a=i.method.value,o=e===`request`?`setRequestHandler`:`setNotificationHandler`;Sk.has(o)||(Sk.add(o),console.warn(`[ext-apps] ${o}(Schema, handler) is deprecated; use ${o}("${a}", { params: Schema.shape.params }, handler).`));let s=r;return[a,{params:i.params},e===`request`?(e,t)=>s({method:a,params:e},wk(t)):e=>s({method:a,params:e})]}function wk(e){return{signal:e.mcpReq.signal,requestId:e.mcpReq.id,sessionId:e.sessionId,_meta:e.mcpReq._meta,sendRequest:e.mcpReq.send,sendNotification:e.mcpReq.notify,authInfo:e.http?.authInfo}}var Tk=`2026-01-26`,Ek=class{eventTarget;eventSource;messageListener;constructor(e=window.parent,t){this.eventTarget=e,this.eventSource=t,this.messageListener=e=>{if(t&&e.source!==this.eventSource){console.debug(`Ignoring message from unknown source`,e);return}let n=jC.safeParse(e.data);n.success?(console.debug(`Parsed message`,n.data),this.onmessage?.(n.data)):e.data?.jsonrpc===`2.0`?(console.error(`Failed to parse message`,n.error.message,e),this.onerror?.(Error(`Invalid JSON-RPC message received: `+n.error.message))):console.debug(`Ignoring non-JSON-RPC message`,n.error.message,e)}}async start(){window.addEventListener(`message`,this.messageListener)}async send(e,t){e.method!==`ui/notifications/tool-input-partial`&&console.debug(`Sending message`,e),this.eventTarget.postMessage(e,`*`)}async close(){window.removeEventListener(`message`,this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion},Dk=Ec([Z(`light`),Z(`dark`)]).describe(`Color theme preference for the host environment.`),Ok=Ec([Z(`inline`),Z(`fullscreen`),Z(`pip`)]).describe(`Display mode for UI presentation.`),kk=Mc(Ec([Z(`--color-background-primary`),Z(`--color-background-secondary`),Z(`--color-background-tertiary`),Z(`--color-background-inverse`),Z(`--color-background-ghost`),Z(`--color-background-info`),Z(`--color-background-danger`),Z(`--color-background-success`),Z(`--color-background-warning`),Z(`--color-background-disabled`),Z(`--color-text-primary`),Z(`--color-text-secondary`),Z(`--color-text-tertiary`),Z(`--color-text-inverse`),Z(`--color-text-ghost`),Z(`--color-text-info`),Z(`--color-text-danger`),Z(`--color-text-success`),Z(`--color-text-warning`),Z(`--color-text-disabled`),Z(`--color-border-primary`),Z(`--color-border-secondary`),Z(`--color-border-tertiary`),Z(`--color-border-inverse`),Z(`--color-border-ghost`),Z(`--color-border-info`),Z(`--color-border-danger`),Z(`--color-border-success`),Z(`--color-border-warning`),Z(`--color-border-disabled`),Z(`--color-ring-primary`),Z(`--color-ring-secondary`),Z(`--color-ring-inverse`),Z(`--color-ring-info`),Z(`--color-ring-danger`),Z(`--color-ring-success`),Z(`--color-ring-warning`),Z(`--font-sans`),Z(`--font-mono`),Z(`--font-weight-normal`),Z(`--font-weight-medium`),Z(`--font-weight-semibold`),Z(`--font-weight-bold`),Z(`--font-text-xs-size`),Z(`--font-text-sm-size`),Z(`--font-text-md-size`),Z(`--font-text-lg-size`),Z(`--font-heading-xs-size`),Z(`--font-heading-sm-size`),Z(`--font-heading-md-size`),Z(`--font-heading-lg-size`),Z(`--font-heading-xl-size`),Z(`--font-heading-2xl-size`),Z(`--font-heading-3xl-size`),Z(`--font-text-xs-line-height`),Z(`--font-text-sm-line-height`),Z(`--font-text-md-line-height`),Z(`--font-text-lg-line-height`),Z(`--font-heading-xs-line-height`),Z(`--font-heading-sm-line-height`),Z(`--font-heading-md-line-height`),Z(`--font-heading-lg-line-height`),Z(`--font-heading-xl-line-height`),Z(`--font-heading-2xl-line-height`),Z(`--font-heading-3xl-line-height`),Z(`--border-radius-xs`),Z(`--border-radius-sm`),Z(`--border-radius-md`),Z(`--border-radius-lg`),Z(`--border-radius-xl`),Z(`--border-radius-full`),Z(`--border-width-regular`),Z(`--shadow-hairline`),Z(`--shadow-sm`),Z(`--shadow-md`),Z(`--shadow-lg`)]).describe(`CSS variable keys available to MCP apps for theming.`).describe(`Style variables for theming MCP apps.
466
466
 
467
467
  Individual style keys are optional - hosts may provide any subset of these values.
468
468
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
@@ -970,7 +970,7 @@ void main(){
970
970
  +`).split(`
971
971
  `));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,y.useEffect)(()=>{let n=t?.target??SK,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&ZU(e))return!1;let n=TK(e.code,s);if(a.current.add(e[n]),wK(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=TK(e.code,s);wK(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function wK(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function TK(e,t){return t.includes(e)?`code`:`key`}var EK=()=>{let e=YG();return(0,y.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=LU(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return MU(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=NU(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function DK(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)OK(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function OK(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function kK(e,t){return DK(e,t)}function AK(e,t){return DK(e,t)}function jK(e,t){return{id:e,type:`select`,selected:t}}function MK(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);(a.selected!==void 0||e)&&a.selected!==e&&(n&&(a.selected=e),r.push(jK(a.id,e)))}return r}function NK({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function PK(e){return{id:e.id,type:`remove`}}var FK=AU(`React Flow`,`https://reactflow.dev/`);function IK(e,t,n={}){return uW(e,t,{...n,onError:n.onError??FK})}var LK=e=>iU(e),RK=e=>rU(e);function zK(e){return(0,y.forwardRef)(e)}var BK=typeof window<`u`?y.useLayoutEffect:y.useEffect;function VK(e){let[t,n]=(0,y.useState)(BigInt(0)),[r]=(0,y.useState)(()=>HK(()=>n(e=>e+BigInt(1))));return BK(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function HK(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var UK=(0,y.createContext)(null);function WK({children:e}){let t=YG(),n=VK((0,y.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=NK({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=VK((0,y.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(NK({items:s,lookup:o}))},[])),i=(0,y.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,$.jsx)(UK.Provider,{value:i,children:e})}function GK(){let e=(0,y.useContext)(UK);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var KK=e=>!!e.panZoom;function qK(){let e=EK(),t=YG(),n=GK(),r=JG(KK),i=(0,y.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=LK(e)?e:n.get(e.id),a=i.parentId?HU(i.position,i.measured,i.parentId,n,r):i.position;return CU({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&LK(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&RK(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await mU({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(PK);o?.(f),c(e)}if(m){let e=d.map(PK);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=OU(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=CU(s?r:a),l=DU(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=OU(e)?e:a(e);if(!r)return!1;let i=DU(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return sU(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??WU();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,y.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var JK=e=>e.selected,YK=typeof window<`u`?window:void 0;function XK({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=YG(),{deleteElements:r}=qK(),i=CK(e,{actInsideInputWithModifier:!1}),a=CK(t,{target:YK});(0,y.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(JK),edges:e.filter(JK)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,y.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function ZK(e){let t=YG();(0,y.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=JU(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,GH.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var QK={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},$K=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function eq({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=XH.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:b,paneClickDistance:x,selectionOnDrag:S}){let C=YG(),w=(0,y.useRef)(null),{userSelectionActive:T,lib:E,connectionInProgress:D}=JG($K,WG),O=CK(p),k=(0,y.useRef)();ZK(w);let A=(0,y.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),b||C.setState({transform:e})},[v,b]);return(0,y.useEffect)(()=>{if(w.current){k.current=yG({domNode:w.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>C.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=k.current.getViewport();return C.setState({panZoom:k.current,transform:[e,t,n],domNode:w.current.closest(`.react-flow`)}),()=>{k.current?.destroy()}}},[]),(0,y.useEffect)(()=>{k.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:O,preventScrolling:m,noPanClassName:_,userSelectionActive:T,noWheelClassName:g,lib:E,onTransformChange:A,connectionInProgress:D,selectionOnDrag:S,paneClickDistance:x})},[e,t,n,r,i,a,o,s,c,O,m,_,T,g,E,A,D,S,x]),(0,$.jsx)(`div`,{className:`react-flow__renderer`,ref:w,style:QK,children:h})}var tq=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function nq(){let{userSelectionActive:e,userSelectionRect:t}=JG(tq,WG);return e&&t?(0,$.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var rq=(e,t)=>n=>{n.target===t.current&&e?.(n)},iq=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function aq({isSelecting:e,selectionKeyPressed:t,selectionMode:n=ZH.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,y.useRef)(0),_=YG(),{userSelectionActive:v,elementsSelectable:b,dragging:x,panBy:S,autoPanSpeed:C}=JG(iq,WG),w=b&&(e||v),T=(0,y.useRef)(null),E=(0,y.useRef)(),D=(0,y.useRef)(new Set),O=(0,y.useRef)(new Set),k=(0,y.useRef)(!1),A=(0,y.useRef)(!1),j=(0,y.useRef)({x:0,y:0}),M=(0,y.useRef)(!1),N=e=>{if(A.current||k.current||_.getState().connection.inProgress){A.current=!1,k.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},P=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},F=d?e=>d(e):void 0,I=e=>{A.current&&=(e.stopPropagation(),!1)},ee=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(E.current=i?.getBoundingClientRect(),!E.current)return;let s=n.target===T.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),A.current=!1;let{x:c,y:l}=$U(n.nativeEvent,E.current),u=MU({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function L(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=NU(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=D.current,g=O.current;D.current=new Set(lU(a,m,i,n===ZH.Partial,!0).map(e=>e.id)),O.current=new Set;let v=u?.selectable??!0;for(let e of D.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&O.current.add(e)}}UU(h,D.current)||c(MK(a,D.current,!0)),UU(g,O.current)||l(MK(o,O.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function R(){if(!i||!E.current)return;let[e,t]=yU(j.current,E.current,C);S({x:e,y:t}).then(e=>{if(!A.current||!e){g.current=requestAnimationFrame(R);return}let{x:t,y:n}=j.current;L(t,n),g.current=requestAnimationFrame(R)})}let z=()=>{cancelAnimationFrame(g.current),g.current=0,M.current=!1};(0,y.useEffect)(()=>()=>z(),[]);let te=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!E.current||!n)return;let{x:o,y:c}=$U(e.nativeEvent,E.current);j.current={x:o,y:c};let l=NU({x:n.startX,y:n.startY},r);if(!A.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}A.current=!0,M.current||=(R(),!0),L(o,c)},ne=e=>{if(!w){e.target===T.current&&_.getState().connection.inProgress&&(k.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===T.current&&_.getState().userSelectionRect&&N?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),A.current&&(c?.(e),_.setState({nodesSelectionActive:D.current.size>0})),z())},re=e=>{e.target?.releasePointerCapture?.(e.pointerId),z()},B=r===!0||Array.isArray(r)&&r.includes(0);return(0,$.jsxs)(`div`,{className:cL([`react-flow__pane`,{draggable:B,dragging:x,selection:e}]),onClick:w?void 0:rq(N,T),onContextMenu:rq(P,T),onWheel:rq(F,T),onPointerEnter:w?void 0:f,onPointerMove:w?te:p,onPointerUp:ne,onPointerCancel:w?re:void 0,onPointerDownCapture:w?ee:void 0,onClickCapture:w?I:void 0,onPointerLeave:m,ref:T,style:QK,children:[h,(0,$.jsx)(nq,{})]})}function oq({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,GH.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function sq({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=YG(),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)();return(0,y.useEffect)(()=>{if(!t)return u.current=JW({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{oq({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,y.useEffect)(()=>{!t&&e.current&&u.current&&u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var cq=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function lq(){let e=YG();return(0,y.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=cq(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=jU(t,i));let{position:a,positionAbsolute:s}=pU({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var uq=(0,y.createContext)(null),dq=uq.Provider;uq.Consumer;var fq=()=>(0,y.useContext)(uq),pq=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),mq=(0,y.createContext)(null);function hq({children:e}){let t=JG(pq,WG);return(0,$.jsx)(mq.Provider,{value:t,children:e})}function gq(){let e=(0,y.useContext)(mq);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var _q={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},vq=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return _q;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===YH.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function yq({type:e=`source`,position:t=tU.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=YG(),_=fq(),{connectOnClick:v,noPanClassName:y,rfId:b}=gq(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=JG(vq(_,m,e),WG);_||g.getState().onError?.(`010`,GH.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(IK(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=QU(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();iG.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,$.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:cL([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=YU(t.target),h=n||c,{connection:v,isValid:y}=iG.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var bq=(0,y.memo)(zK(yq));function xq({data:e,isConnectable:t,sourcePosition:n=tU.Bottom}){return(0,$.jsxs)($.Fragment,{children:[e?.label,(0,$.jsx)(bq,{type:`source`,position:n,isConnectable:t})]})}function Sq({data:e,isConnectable:t,targetPosition:n=tU.Top,sourcePosition:r=tU.Bottom}){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(bq,{type:`target`,position:n,isConnectable:t}),e?.label,(0,$.jsx)(bq,{type:`source`,position:r,isConnectable:t})]})}function Cq(){return null}function wq({data:e,isConnectable:t,targetPosition:n=tU.Top}){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(bq,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Tq={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Eq={input:xq,default:Sq,output:wq,group:Cq};function Dq(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var Oq=e=>{let{width:t,height:n,x:r,y:i}=cU(e.nodeLookup,{filter:e=>!!e.selected});return{width:kU(t)?t:null,height:kU(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function kq({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=YG(),{width:i,height:a,transformString:o,userSelectionActive:s}=JG(Oq,WG),c=lq(),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(sq({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,$.jsx)(`div`,{className:cL([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,$.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(Tq,e.key)&&(e.preventDefault(),c({direction:Tq[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var Aq=typeof window<`u`?window:void 0,jq=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Mq({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:ee,userSelectionActive:L}=JG(jq,WG),R=CK(l,{target:Aq}),z=CK(h,{target:Aq}),te=z||w,ne=z||b,re=u&&te!==!0,B=R||L||re;return XK({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,$.jsx)(eq,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:ne,panActivationKeyPressed:z,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!R&&te,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:re,children:(0,$.jsxs)(aq,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:te,autoPanOnSelection:T,isSelecting:!!B,selectionMode:d,selectionKeyPressed:R,paneClickDistance:s,selectionOnDrag:re,children:[e,ee&&(0,$.jsx)(kq,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}Mq.displayName=`FlowRenderer`;var Nq=(0,y.memo)(Mq),Pq=e=>t=>e?lU(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function Fq(e){return JG((0,y.useCallback)(Pq(e),[e]),WG)}var Iq=e=>e.updateNodeInternals;function Lq(){let e=JG(Iq),[t]=(0,y.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,y.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function Rq({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=YG(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(e.sourcePosition),c=(0,y.useRef)(e.targetPosition),l=(0,y.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,y.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,y.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,y.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function zq({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=JG(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},WG),S=y.type||`default`,C=g?.[S]||Eq[S];C===void 0&&(v?.(`003`,GH.error003(S)),S=`default`,C=g?.default||Eq.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=YG(),k=VU(y),A=Rq({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=sq({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=lq();if(y.hidden)return null;let N=BU(y),P=Dq(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,ee=r?e=>r(e,{...b.userNode}):void 0,L=i?e=>i(e,{...b.userNode}):void 0,R=a?e=>a(e,{...b.userNode}):void 0,z=o?e=>o(e,{...b.userNode}):void 0,te=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&oq({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},ne=t=>{if(!(ZU(t.nativeEvent)||m)){if(qH.includes(t.key)&&T){let n=t.key===`Escape`;oq({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(Tq,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:Tq[t.key],factor:t.shiftKey?4:1})}}},re=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(lU(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,$.jsx)(`div`,{className:cL([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:ee,onMouseLeave:L,onContextMenu:R,onClick:te,onDoubleClick:z,onKeyDown:D?ne:void 0,tabIndex:D?0:void 0,onFocus:D?re:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${QG}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,$.jsx)(dq,{value:e,children:(0,$.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var Bq=(0,y.memo)(zq),Vq=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Hq(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=JG(Vq,WG),a=Fq(e.onlyRenderVisibleElements),o=Lq();return(0,$.jsx)(`div`,{className:`react-flow__nodes`,style:QK,children:a.map(a=>(0,$.jsx)(Bq,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}Hq.displayName=`NodeRenderer`;var Uq=(0,y.memo)(Hq);function Wq(e){return JG((0,y.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&sW({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),WG)}var Gq=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,$.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},Kq=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,$.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},qq={[eU.Arrow]:Gq,[eU.ArrowClosed]:Kq};function Jq(e){let t=YG();return(0,y.useMemo)(()=>Object.prototype.hasOwnProperty.call(qq,e)?qq[e]:(t.getState().onError?.(`009`,GH.error009(e)),null),[e])}var Yq=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=Jq(t);return c?(0,$.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,$.jsx)(c,{color:n,strokeWidth:o})}):null},Xq=({defaultColor:e,rfId:t})=>{let n=JG(e=>e.edges),r=JG(e=>e.defaultEdgeOptions),i=(0,y.useMemo)(()=>wW(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,$.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,$.jsx)(`defs`,{children:i.map(e=>(0,$.jsx)(Yq,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Xq.displayName=`MarkerDefinitions`;var Zq=(0,y.memo)(Xq);function Qq({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,y.useState)({x:1,y:0,width:0,height:0}),p=cL([`react-flow__edge-textwrapper`,l]),m=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,$.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,$.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,$.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Qq.displayName=`EdgeText`;var $q=(0,y.memo)(Qq);function eJ({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`path`,{...u,d:e,fill:`none`,className:cL([`react-flow__edge-path`,u.className])}),l?(0,$.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&kU(t)&&kU(n)?(0,$.jsx)($q,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function tJ({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===tU.Left||e===tU.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function nJ({sourceX:e,sourceY:t,sourcePosition:n=tU.Bottom,targetX:r,targetY:i,targetPosition:a=tU.Top}){let[o,s]=tJ({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=tJ({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=tW({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function rJ(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=nJ({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,$.jsx)(eJ,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var iJ=rJ({isInternal:!1}),aJ=rJ({isInternal:!0});iJ.displayName=`SimpleBezierEdge`,aJ.displayName=`SimpleBezierEdgeInternal`;function oJ(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=tU.Bottom,targetPosition:m=tU.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=_W({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,$.jsx)(eJ,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var sJ=oJ({isInternal:!1}),cJ=oJ({isInternal:!0});sJ.displayName=`SmoothStepEdge`,cJ.displayName=`SmoothStepEdgeInternal`;function lJ(e){return(0,y.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,$.jsx)(sJ,{...n,id:r,pathOptions:(0,y.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var uJ=lJ({isInternal:!1}),dJ=lJ({isInternal:!0});uJ.displayName=`StepEdge`,dJ.displayName=`StepEdgeInternal`;function fJ(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=dW({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,$.jsx)(eJ,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var pJ=fJ({isInternal:!1}),mJ=fJ({isInternal:!0});pJ.displayName=`StraightEdge`,mJ.displayName=`StraightEdgeInternal`;function hJ(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=tU.Bottom,targetPosition:s=tU.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=iW({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,$.jsx)(eJ,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var gJ=hJ({isInternal:!1}),_J=hJ({isInternal:!0});gJ.displayName=`BezierEdge`,_J.displayName=`BezierEdgeInternal`;var vJ={default:_J,straight:mJ,step:dJ,smoothstep:cJ,simplebezier:aJ},yJ={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},bJ=(e,t,n)=>n===tU.Left?e-t:n===tU.Right?e+t:e,xJ=(e,t,n)=>n===tU.Top?e-t:n===tU.Bottom?e+t:e,SJ=`react-flow__edgeupdater`;function CJ({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,$.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:cL([SJ,`${SJ}-${s}`]),cx:bJ(t,r,e),cy:xJ(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function wJ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=YG(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;iG.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,$.jsxs)($.Fragment,{children:[(e===!0||e===`source`)&&(0,$.jsx)(CJ,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,$.jsx)(CJ,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function TJ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let b=JG(t=>t.edgeLookup.get(e)),x=JG(e=>e.defaultEdgeOptions);b=x?{...x,...b}:b;let S=b.type||`default`,C=h?.[S]||vJ[S];C===void 0&&(_?.(`011`,GH.error011(S)),S=`default`,C=h?.default||vJ.default);let w=!!(b.focusable||t&&b.focusable===void 0),T=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),E=!!(b.selectable||r&&b.selectable===void 0),D=(0,y.useRef)(null),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!1),M=YG(),{zIndex:N=b.zIndex,sourceX:P,sourceY:F,targetX:I,targetY:ee,sourcePosition:L,targetPosition:R}=JG((0,y.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return yJ;let i=yW({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=oW({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||yJ,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,_]),WG),z=(0,y.useMemo)(()=>b.markerStart?`url('#${CW(b.markerStart,m)}')`:void 0,[b.markerStart,m]),te=(0,y.useMemo)(()=>b.markerEnd?`url('#${CW(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||P===null||F===null||I===null||ee===null)return null;let ne=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=M.getState();E&&(M.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),D.current?.blur()):n([e])),i&&i(t,b)},re=a?e=>{a(e,{...b})}:void 0,B=o?e=>{o(e,{...b})}:void 0,ie=s?e=>{s(e,{...b})}:void 0,ae=c?e=>{c(e,{...b})}:void 0,oe=l?e=>{l(e,{...b})}:void 0;return(0,$.jsx)(`svg`,{style:{zIndex:N},children:(0,$.jsxs)(`g`,{className:cL([`react-flow__edge`,`react-flow__edge-${S}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!E&&!i,updating:O,selectable:E}]),onClick:ne,onDoubleClick:re,onContextMenu:B,onMouseEnter:ie,onMouseMove:ae,onMouseLeave:oe,onKeyDown:w?t=>{if(!v&&qH.includes(t.key)&&E){let{unselectNodesAndEdges:n,addSelectedEdges:r}=M.getState();t.key===`Escape`?(D.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:w?0:void 0,role:b.ariaRole??(w?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":w?`${$G}-${m}`:void 0,ref:D,...b.domAttributes,children:[!A&&(0,$.jsx)(C,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:E,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:P,sourceY:F,targetX:I,targetY:ee,sourcePosition:L,targetPosition:R,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:z,markerEnd:te,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),T&&(0,$.jsx)(wJ,{edge:b,isReconnectable:T,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:P,sourceY:F,targetX:I,targetY:ee,sourcePosition:L,targetPosition:R,setUpdateHover:k,setReconnecting:j})]})})}var EJ=(0,y.memo)(TJ),DJ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function OJ({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=JG(DJ,WG),b=Wq(t);return(0,$.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,$.jsx)(Zq,{defaultColor:e,rfId:n}),b.map(e=>(0,$.jsx)(EJ,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}OJ.displayName=`EdgeRenderer`;var kJ=(0,y.memo)(OJ),AJ=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function jJ({children:e}){let t=YG(),n=(0,y.useRef)(null),[r]=(0,y.useState)(()=>t.getState().transform);return BK(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=AJ(r)))};return r(),t.subscribe(r)},[t]),(0,$.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:AJ(r)},children:e})}function MJ(e){let t=qK(),n=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var NJ=e=>e.panZoom?.syncViewport;function PJ(e){let t=JG(NJ),n=YG();return(0,y.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function FJ(e){return e.connection.inProgress?{...e.connection,to:MU(e.connection.to,e.transform)}:{...e.connection}}function IJ(e){return e?t=>e(FJ(t)):FJ}function LJ(e){return JG(IJ(e),WG)}var RJ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function zJ({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=JG(RJ,WG);return a&&i&&c?(0,$.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,$.jsx)(`g`,{className:cL([`react-flow__connection`,KU(s)]),children:(0,$.jsx)(BJ,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var BJ=({style:e,type:t=$H.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=LJ();if(!i)return;if(n)return(0,$.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:KU(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case $H.Bezier:[m]=iW(h);break;case $H.SimpleBezier:[m]=nJ(h);break;case $H.Step:[m]=_W({...h,borderRadius:0});break;case $H.SmoothStep:[m]=_W(h);break;default:[m]=dW(h)}return(0,$.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};BJ.displayName=`ConnectionLine`;var VJ={};function HJ(e=VJ){(0,y.useRef)(e),YG(),(0,y.useEffect)(()=>{},[e])}function UJ(){YG(),(0,y.useRef)(!1),(0,y.useEffect)(()=>{},[])}function WJ({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:ee,zoomOnDoubleClick:L,panOnDrag:R,autoPanOnSelection:z,onPaneClick:te,onPaneMouseEnter:ne,onPaneMouseMove:re,onPaneMouseLeave:B,onPaneScroll:ie,onPaneContextMenu:ae,paneClickDistance:oe,nodeClickDistance:se,onEdgeContextMenu:ce,onEdgeMouseEnter:V,onEdgeMouseMove:H,onEdgeMouseLeave:le,reconnectRadius:ue,onReconnect:de,onReconnectStart:fe,onReconnectEnd:pe,noDragClassName:me,noWheelClassName:he,noPanClassName:U,disableKeyboardA11y:ge,nodeExtent:W,rfId:G,viewport:_e,onViewportChange:ve,nodesDraggable:ye}){return HJ(e),HJ(t),UJ(),MJ(n),PJ(_e),(0,$.jsx)(Nq,{onPaneClick:te,onPaneMouseEnter:ne,onPaneMouseMove:re,onPaneMouseLeave:B,onPaneContextMenu:ae,onPaneScroll:ie,paneClickDistance:oe,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:L,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:ee,panOnDrag:R,autoPanOnSelection:z,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:me,noWheelClassName:he,noPanClassName:U,disableKeyboardA11y:ge,onViewportChange:ve,isControlledViewport:!!_e,children:(0,$.jsxs)(jJ,{children:[(0,$.jsx)(kJ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:de,onReconnectStart:fe,onReconnectEnd:pe,onlyRenderVisibleElements:T,onEdgeContextMenu:ce,onEdgeMouseEnter:V,onEdgeMouseMove:H,onEdgeMouseLeave:le,reconnectRadius:ue,defaultMarkerColor:M,noPanClassName:U,disableKeyboardA11y:ge,rfId:G}),(0,$.jsx)(zJ,{style:h,type:m,component:g,containerStyle:_}),(0,$.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,$.jsx)(Uq,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:se,onlyRenderVisibleElements:T,noPanClassName:U,noDragClassName:me,disableKeyboardA11y:ge,nodeExtent:W,rfId:G,nodesDraggable:ye}),(0,$.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}WJ.displayName=`GraphView`;var GJ=(0,y.memo)(WJ),KJ=AU(`React Flow`,`https://reactflow.dev/`),qJ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??KH;HW(h,g,_);let{nodesInitialized:x}=NW(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=LU(cU(p,{filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:KH,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:YH.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...QH},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:KJ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:JH,zIndexMode:f,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},JJ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>UG((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await fU({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...qJ({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=NW(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();HW(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=zW(e,n,r,i,a,o,l);d&&(AW(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=xW(e,o.fromHandle,tU.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=RW(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(kK(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(AK(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>jK(e,!0)));return}i(MK(r,new Set([...e]),!0)),a(MK(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>jK(e,!0)));return}a(MK(n,new Set([...e]))),i(MK(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(jK(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(jK(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,jK(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,jK(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(NW(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return BW({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...QH}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...qJ()})}},Object.is);function YJ({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,y.useState)(()=>JJ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,$.jsx)(KG,{value:m,children:(0,$.jsx)(WK,{children:(0,$.jsx)(hq,{children:p})})})}function XJ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,y.useContext)(GG)?(0,$.jsx)($.Fragment,{children:e}):(0,$.jsx)(YJ,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var ZJ={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function QJ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onSelectionChange:A,onSelectionDragStart:j,onSelectionDrag:M,onSelectionDragStop:N,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onBeforeDelete:ee,connectionMode:L,connectionLineType:R=$H.Bezier,connectionLineStyle:z,connectionLineComponent:te,connectionLineContainerStyle:ne,deleteKeyCode:re=`Backspace`,selectionKeyCode:B=`Shift`,selectionOnDrag:ie=!1,selectionMode:ae=ZH.Full,panActivationKeyCode:oe=`Space`,multiSelectionKeyCode:se=RU()?`Meta`:`Control`,zoomActivationKeyCode:ce=RU()?`Meta`:`Control`,snapToGrid:V,snapGrid:H,onlyRenderVisibleElements:le=!1,selectNodesOnDrag:ue,nodesDraggable:de,autoPanOnNodeFocus:fe,nodesConnectable:pe,nodesFocusable:me,nodeOrigin:he=mK,edgesFocusable:U,edgesReconnectable:ge,elementsSelectable:W=!0,defaultViewport:G=hK,minZoom:_e=.5,maxZoom:ve=2,translateExtent:ye=KH,preventScrolling:be=!0,nodeExtent:xe,defaultMarkerColor:Se=`#b1b1b7`,zoomOnScroll:Ce=!0,zoomOnPinch:we=!0,panOnScroll:Te=!1,panOnScrollSpeed:Ee=.5,panOnScrollMode:De=XH.Free,zoomOnDoubleClick:Oe=!0,panOnDrag:ke=!0,onPaneClick:Ae,onPaneMouseEnter:je,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:Pe,onPaneContextMenu:Fe,paneClickDistance:Ie=1,nodeClickDistance:Le=0,children:Re,onReconnect:ze,onReconnectStart:Be,onReconnectEnd:Ve,onEdgeContextMenu:He,onEdgeDoubleClick:Ue,onEdgeMouseEnter:We,onEdgeMouseMove:Ge,onEdgeMouseLeave:Ke,reconnectRadius:K=10,onNodesChange:qe,onEdgesChange:Je,noDragClassName:Ye=`nodrag`,noWheelClassName:Xe=`nowheel`,noPanClassName:Ze=`nopan`,fitView:Qe,fitViewOptions:$e,connectOnClick:et,attributionPosition:tt,proOptions:nt,defaultEdgeOptions:rt,elevateNodesOnSelect:it=!0,elevateEdgesOnSelect:at=!1,disableKeyboardA11y:ot=!1,autoPanOnConnect:st,autoPanOnNodeDrag:ct,autoPanOnSelection:lt=!0,autoPanSpeed:ut,connectionRadius:dt,isValidConnection:ft,onError:pt,style:mt,id:ht,nodeDragThreshold:gt,connectionDragThreshold:_t,viewport:vt,onViewportChange:yt,width:bt,height:xt,colorMode:St=`light`,debug:Ct,onScroll:wt,ariaLabelConfig:Tt,zIndexMode:Et=`basic`,...Dt},Ot){let kt=ht||`1`,At=xK(St),jt=(0,y.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),wt?.(e)},[wt]);return(0,$.jsx)(`div`,{"data-testid":`rf__wrapper`,...Dt,onScroll:jt,style:{...mt,...ZJ},ref:Ot,className:cL([`react-flow`,i,At]),id:ht,role:`application`,children:(0,$.jsxs)(XJ,{nodes:e,edges:t,width:bt,height:xt,fitView:Qe,fitViewOptions:$e,minZoom:_e,maxZoom:ve,nodeOrigin:he,nodeExtent:xe,zIndexMode:Et,children:[(0,$.jsx)(yK,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:de,autoPanOnNodeFocus:fe,nodesConnectable:pe,nodesFocusable:me,edgesFocusable:U,edgesReconnectable:ge,elementsSelectable:W,elevateNodesOnSelect:it,elevateEdgesOnSelect:at,minZoom:_e,maxZoom:ve,nodeExtent:xe,onNodesChange:qe,onEdgesChange:Je,snapToGrid:V,snapGrid:H,connectionMode:L,translateExtent:ye,connectOnClick:et,defaultEdgeOptions:rt,fitView:Qe,fitViewOptions:$e,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onSelectionDrag:M,onSelectionDragStart:j,onSelectionDragStop:N,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:Ze,nodeOrigin:he,rfId:kt,autoPanOnConnect:st,autoPanOnNodeDrag:ct,autoPanSpeed:ut,onError:pt,connectionRadius:dt,isValidConnection:ft,selectNodesOnDrag:ue,nodeDragThreshold:gt,connectionDragThreshold:_t,onBeforeDelete:ee,debug:Ct,ariaLabelConfig:Tt,zIndexMode:Et}),(0,$.jsx)(GJ,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,nodeTypes:a,edgeTypes:o,connectionLineType:R,connectionLineStyle:z,connectionLineComponent:te,connectionLineContainerStyle:ne,selectionKeyCode:B,selectionOnDrag:ie,selectionMode:ae,deleteKeyCode:re,multiSelectionKeyCode:se,panActivationKeyCode:oe,zoomActivationKeyCode:ce,onlyRenderVisibleElements:le,defaultViewport:G,translateExtent:ye,minZoom:_e,maxZoom:ve,preventScrolling:be,zoomOnScroll:Ce,zoomOnPinch:we,zoomOnDoubleClick:Oe,panOnScroll:Te,panOnScrollSpeed:Ee,panOnScrollMode:De,panOnDrag:ke,autoPanOnSelection:lt,onPaneClick:Ae,onPaneMouseEnter:je,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:Pe,onPaneContextMenu:Fe,paneClickDistance:Ie,nodeClickDistance:Le,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onReconnect:ze,onReconnectStart:Be,onReconnectEnd:Ve,onEdgeContextMenu:He,onEdgeDoubleClick:Ue,onEdgeMouseEnter:We,onEdgeMouseMove:Ge,onEdgeMouseLeave:Ke,reconnectRadius:K,defaultMarkerColor:Se,noDragClassName:Ye,noWheelClassName:Xe,noPanClassName:Ze,rfId:kt,disableKeyboardA11y:ot,nodeExtent:xe,viewport:vt,onViewportChange:yt,nodesDraggable:de}),(0,$.jsx)(pK,{onSelectionChange:A}),Re,(0,$.jsx)(sK,{proOptions:nt,position:tt}),(0,$.jsx)(iK,{rfId:kt,disableKeyboardA11y:ot})]})})}var $J=zK(QJ);GH.error014();function eY({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,$.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:cL([`react-flow__background-pattern`,n,r])})}function tY({radius:e,className:t}){return(0,$.jsx)(`circle`,{cx:e,cy:e,r:e,className:cL([`react-flow__background-pattern`,`dots`,t])})}var nY;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(nY||={});var rY={[nY.Dots]:1,[nY.Lines]:1,[nY.Cross]:6},iY=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function aY({id:e,variant:t=nY.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,y.useRef)(null),{transform:f,patternId:p}=JG(iY,WG),m=r||rY[t],h=t===nY.Dots,g=t===nY.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],b=m*f[2],x=Array.isArray(a)?a:[a,a],S=g?[b,b]:v,C=[x[0]*f[2]+S[0]/2,x[1]*f[2]+S[1]/2],w=`${p}${e||``}`;return(0,$.jsxs)(`svg`,{className:cL([`react-flow__background`,l]),style:{...c,...QK,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,$.jsx)(`pattern`,{id:w,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${C[0]},-${C[1]})`,children:h?(0,$.jsx)(tY,{radius:b/2,className:u}):(0,$.jsx)(eY,{dimensions:S,lineWidth:i,variant:t,className:u})}),(0,$.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${w})`})]})}aY.displayName=`Background`,(0,y.memo)(aY);function oY(){return(0,$.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,$.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function sY(){return(0,$.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,$.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function cY(){return(0,$.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,$.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function lY(){return(0,$.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,$.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function uY(){return(0,$.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,$.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function dY({children:e,className:t,...n}){return(0,$.jsx)(`button`,{type:`button`,className:cL([`react-flow__controls-button`,t]),...n,children:e})}var fY=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function pY({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=YG(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=JG(fY,WG),{zoomIn:y,zoomOut:b,fitView:x}=qK();return(0,$.jsxs)(aK,{className:cL([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(dY,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,$.jsx)(oY,{})}),(0,$.jsx)(dY,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,$.jsx)(sY,{})})]}),n&&(0,$.jsx)(dY,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,$.jsx)(cY,{})}),r&&(0,$.jsx)(dY,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,$.jsx)(uY,{}):(0,$.jsx)(lY,{})}),u]})}pY.displayName=`Controls`,(0,y.memo)(pY);function mY({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,$.jsx)(`rect`,{className:cL([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var hY=(0,y.memo)(mY),gY=e=>e.nodes.map(e=>e.id),_Y=e=>e instanceof Function?e:()=>e;function vY({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=hY,onClick:o}){let s=JG(gY,WG),c=_Y(t),l=_Y(e),u=_Y(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,$.jsx)($.Fragment,{children:s.map(e=>(0,$.jsx)(bY,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function yY({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=JG(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=BU(r);return{node:r,x:i,y:a,width:o,height:s}},WG);return!l||l.hidden||!VU(l)?null:(0,$.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var bY=(0,y.memo)(yY),xY=(0,y.memo)(vY),SY=200,CY=150,wY=e=>!e.hidden,TY=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]},n=!1;for(let t of e.nodeLookup.values())if(!t.hidden){n=!0;break}return{viewBB:t,boundingRect:n?TU(cU(e.nodeLookup,{filter:wY}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},EY=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,DY=(e,t)=>EY(e.viewBB,t.viewBB)&&EY(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,OY=`react-flow__minimap-desc`;function kY({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:b=1,offsetScale:x=5}){let S=YG(),C=(0,y.useRef)(null),{boundingRect:w,panZoom:T,viewBB:E,rfId:D,translateExtent:O,flowWidth:k,flowHeight:A,ariaLabelConfig:j}=JG(TY,DY),M=e?.width??SY,N=e?.height??CY,P=w.width/M,F=w.height/N,I=Math.max(P,F),ee=I*M,L=I*N,R=x*I,z=w.x-(ee-w.width)/2-R,te=w.y-(L-w.height)/2-R,ne=ee+R*2,re=L+R*2,B=`${OY}-${D}`,ie=(0,y.useRef)(0),ae=(0,y.useRef)();ie.current=I,(0,y.useEffect)(()=>{let e=S.getState().panZoom;if(C.current&&e)return ae.current=aG({domNode:C.current,panZoom:e,getTransform:()=>S.getState().transform,getViewScale:()=>ie.current}),()=>{ae.current?.destroy()}},[T]),(0,y.useEffect)(()=>{ae.current?.update({translateExtent:O,width:k,height:A,inversePan:v,pannable:h,zoomStep:b,zoomable:g})},[h,g,v,b,O,k,A]);let oe=p?e=>{let[t,n]=ae.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,se=(0,y.useCallback)((e,t)=>{let n=S.getState().nodeLookup.get(t).internals.userNode;m?.(e,n)},[m]),ce=m?se:void 0,V=_??j[`minimap.ariaLabel`];return(0,$.jsx)(aK,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*I:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:cL([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,$.jsxs)(`svg`,{width:M,height:N,viewBox:`${z} ${te} ${ne} ${re}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":B,ref:C,onClick:oe,children:[V&&(0,$.jsx)(`title`,{id:B,children:V}),(0,$.jsx)(xY,{onClick:ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,$.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${z-R},${te-R}h${ne+R*2}v${re+R*2}h${-ne-R*2}z
972
972
  M${E.x},${E.y}h${E.width}v${E.height}h${-E.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}kY.displayName=`MiniMap`,(0,y.memo)(kY);var AY=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,jY={[bG.Line]:`right`,[bG.Handle]:`bottom-right`};function MY({nodeId:e,position:t,variant:n=bG.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=fq(),b=typeof e==`string`?e:v,x=YG(),S=(0,y.useRef)(null),C=n===bG.Handle,w=JG((0,y.useCallback)(AY(C&&p),[C,p]),WG),T=(0,y.useRef)(null),E=t??jY[n];(0,y.useEffect)(()=>{if(S.current&&b)return T.current||=jG({domNode:S.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=x.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=x.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=RW([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...HU({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};x.getState().triggerNodeChanges([n])}}),T.current.update({controlPosition:E,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{T.current?.destroy()}},[E,s,c,l,u,d,h,g,_,m]);let D=E.split(`-`);return(0,$.jsx)(`div`,{className:cL([`react-flow__resize-control`,`nodrag`,...D,n,r]),ref:S,style:{...i,scale:w,...o&&{[C?`backgroundColor`:`borderColor`]:o}},children:a})}(0,y.memo)(MY);function NY(e){switch(e.type){case`page`:return Up;case`agent`:return Ff;case`generate`:return e.asset===`image`?jp:e.asset===`video`?qm:e.asset===`dashboard`?Fp:hp;case`widget`:return xf;case`surface`:return Lp;case`film`:return qf;case`review`:return dp;case`result`:return yp}return Ym}var PY={page:`bg-cobalt-tint text-cobalt`,agent:`bg-ember-tint text-ember-strong`,generate:`bg-amber-tint text-ink-2`,widget:`bg-ember-veil text-ember-strong`,surface:`bg-ember-veil text-ember-strong`,film:`bg-amber-tint text-ink-2`,review:`bg-moss-tint text-moss`,result:`bg-paper-2 text-ink-2`};function FY(e){return af(`type.${e.type}`)}var IY=[`web_search`,`web_fetch`,`browser`,`sandbox`,`image`,`http`,`pages`];function LY(e){return IY.includes(e)?af(`tool.${e}`):e}function RY(e){switch(e.type){case`page`:return e.fields.map(e=>e.label).join(` · `);case`agent`:{let t=e.tools.map(LY),n=e.mcp?.length?[`MCP: ${e.mcp.join(`, `)}`]:[];return[...t,...n].join(` · `)||e.instructions.slice(0,90)}case`generate`:{let t=[e.asset];return e.options?.aspectRatio&&t.push(e.options.aspectRatio),e.options?.duration&&t.push(`${e.options.duration}s`),e.options?.resolution&&t.push(e.options.resolution),e.options?.template&&t.push(e.options.template),t.join(` · `)}case`widget`:return[e.entry,Object.keys(e.data).join(`, `)].filter(Boolean).join(` · `);case`surface`:return e.candidates?e.candidates.map(e=>e.id).join(` · `):Object.keys(e.data).join(`, `);case`film`:return[e.format,e.seconds?`${e.seconds}s`:null,e.skills.join(`, `)].filter(Boolean).join(` · `);case`review`:return[e.edit?af(`editor.reviewEditable`):null,e.regenerate?af(`editor.reviewRedo`):null].filter(Boolean).join(` · `);case`result`:return e.deliverables.map(e=>`${e.label??e.from} (${e.formats.join(`, `)})`).join(` · `)}return``}var zY=280,BY=92;function VY({data:e}){let{step:t,selected:n,issue:r,active:i,pulse:a,cost:o,passed:s,onAddAfter:c}=e,l=NY(t);return(0,$.jsxs)(`div`,{className:_h(`group relative w-[280px] cursor-pointer rounded-xl bg-card px-4 py-3 text-left shadow-soft ring-1 transition`,n?`shadow-elevated ring-2 ring-ember`:i?`ring-2 ring-moss`:a?`ring-2 ring-ember/60`:`ring-border-soft hover:shadow-elevated`),children:[i?(0,$.jsx)(`span`,{className:`-top-1 -right-1 absolute size-3 animate-breathe rounded-full bg-moss`}):a?(0,$.jsx)(`span`,{className:`-top-1 -right-1 absolute size-3 animate-breathe rounded-full bg-ember`}):null,(0,$.jsx)(bq,{type:`target`,position:tU.Top}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:_h(`inline-flex size-6 items-center justify-center rounded-md`,PY[t.type]),children:(0,$.jsx)(l,{className:`size-3.5`})}),(0,$.jsx)(`span`,{className:`font-medium text-[0.6875rem] text-ink-3 uppercase tracking-[0.07em]`,children:FY(t)}),r?(0,$.jsx)(Gf,{className:`ml-auto size-4 text-rose`}):s&&!i?(0,$.jsx)(Vf,{className:`ml-auto size-4 text-moss`}):o===null?null:(0,$.jsxs)(`span`,{className:`ml-auto text-[0.6875rem] text-ink-3 tabular-nums`,children:[`≈`,` `,af(`nav.credits`,{n:o<10?o.toLocaleString($d,{maximumFractionDigits:1}):Math.round(o)})]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 truncate font-display font-semibold text-[0.9375rem] text-ink`,children:t.title}),(0,$.jsx)(`div`,{className:`truncate text-[0.75rem] text-ink-3`,children:RY(t)||`\xA0`}),(0,$.jsx)(bq,{type:`source`,position:tU.Bottom}),c?(0,$.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),c()},className:_h(`nodrag nopan -translate-x-1/2 -translate-y-1/2 absolute top-full left-1/2 z-10 inline-flex h-7 items-center gap-1.5 whitespace-nowrap rounded-full bg-card px-3 text-[0.75rem] text-ember-strong shadow-soft ring-1 ring-ember/40 transition hover:bg-ember-tint focus-visible:opacity-100`,n?`opacity-100`:`pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100`),children:[(0,$.jsx)(Nm,{className:`size-3.5`}),` `,af(`addStep.add`)]}):null]})}function HY({data:e}){return(0,$.jsxs)(`div`,{className:_h(`flex w-[280px] cursor-pointer items-center gap-3 rounded-full bg-paper-2 py-1.5 pr-5 pl-2 transition`,e.selected?`ring-2 ring-ember`:`hover:bg-paper-3`),children:[(0,$.jsx)(dN,{kind:e.avatar,size:40,interactive:!1}),(0,$.jsx)(`span`,{className:`truncate font-display font-semibold text-[0.9375rem]`,children:e.title}),(0,$.jsx)(bq,{type:`source`,position:tU.Bottom})]})}function UY({data:e}){return(0,$.jsxs)(`div`,{className:`w-[280px] rounded-xl border border-ember/50 border-dashed bg-card/70 px-4 py-3 text-left`,children:[(0,$.jsx)(bq,{type:`target`,position:tU.Top}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-[0.75rem] text-ember-strong`,children:[(0,$.jsx)(Mh,{className:`size-3.5`}),` `,af(`addStep.building`)]}),(0,$.jsx)(`div`,{className:`mt-1.5 line-clamp-2 text-[0.8125rem] text-ink-2`,children:e.prompt}),(0,$.jsx)(bq,{type:`source`,position:tU.Bottom})]})}function WY(e){let{data:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s}=e,c={label:e.label,labelStyle:e.labelStyle,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,markerEnd:e.markerEnd};if(!t?.points.length){let[e,t,l]=iW({sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s});return(0,$.jsx)(eJ,{path:e,labelX:t,labelY:l,...c})}let l=[{x:n,y:r},...t.points,{x:i,y:a}],u=l.map((e,t)=>{let n=l[t-1];if(!n)return`M ${e.x} ${e.y}`;let r=(n.y+e.y)/2;return`C ${n.x} ${r} ${e.x} ${r} ${e.x} ${e.y}`}).join(` `);return(0,$.jsx)(eJ,{path:u,labelX:t.labelX,labelY:t.labelY,...c})}var GY={step:VY,start:HY,adding:UY},KY={branch:WY},qY=`__adding`,JY=34,YY={},XY={};function ZY(e){return`${Math.round(e*100)} %`}function QY(e){let t=e.ask?af(`editor.whenAsk`,{text:e.ask}):ad(e)?af(`editor.otherwise`):sd(e.when).map($Y).join(` · `);return e.max?`${t} (${af(`editor.atMost`,{count:e.max})})`:t}function $Y(e){let t=Array.isArray(e.value)?e.value.join(` / `):String(e.value??``);switch(e.op){case`equals`:return`${e.field} = ${t}`;case`notEquals`:return`${e.field} ≠ ${t}`;case`in`:return`${e.field} ∈ ${t}`;case`notEmpty`:return af(`editor.whenFilled`,{field:e.field});case`empty`:return af(`editor.whenEmpty`,{field:e.field});case`gt`:return`${e.field} > ${t}`;case`lt`:return`${e.field} < ${t}`;case`contains`:return af(`editor.whenContains`,{field:e.field,value:t})}}function eX(e,t,n,r,i,a,o,s,c,l){let u=new sL.graphlib.Graph;u.setGraph({rankdir:`TB`,nodesep:48,ranksep:46,marginx:20,marginy:20}),u.setDefaultEdgeLabel(()=>({})),u.setNode(`__start`,{width:zY,height:52});for(let t of e.steps)u.setNode(t.id,{width:zY,height:BY});let d=[],f={markerEnd:{type:eU.ArrowClosed,width:14,height:14,color:`var(--ink-4)`}};c&&u.setNode(qY,{width:zY,height:BY});let p=(t,n,r,i={})=>{let a=e.steps[r]?.id;if(c?.at===r){u.setEdge(n,qY),d.push({id:t,source:n,target:qY,...i,...f}),a&&(u.setEdge(qY,a),d.push({id:`${t}-adding`,source:qY,target:a,...f}));return}a&&(u.hasEdge(n,a)||u.setEdge(n,a),d.push({id:t,source:n,target:a,...i,...f}))};(e.steps[0]||c)&&p(`e-start`,`__start`,0),e.steps.forEach((t,n)=>{let r=e.steps[n+1],i=s[t.id],a=i&&i.rule!==null?t.next?.[i.rule]?.goto:void 0,o=new Map;for(let n of t.next??[])n.goto!==`end`&&e.steps.some(e=>e.id===n.goto)&&o.set(n.goto,[...o.get(n.goto)??[],QY(n)]);for(let[e,n]of o){let r=n.join(` · `),o=r.length>JY?`${r.slice(0,33)}…`:r,s=a===e?i?.probabilities?.[`r${i.rule}`]:void 0,c=a===e,l=c?`✓ ${o}${s===void 0?``:` · ${ZY(s)}`}`:o;u.setEdge(t.id,e,{width:l.length*6.2+16,height:22,labelpos:`c`}),d.push({id:`b-${t.id}-${e}`,type:`branch`,source:t.id,target:e,label:l,className:`cursor-pointer`,labelStyle:{fontSize:11,fill:c?`var(--moss)`:`var(--ink-2)`},labelBgStyle:{fill:`var(--paper-2)`},labelBgPadding:[6,3],labelBgBorderRadius:8,style:c?{strokeDasharray:`5 4`,stroke:`var(--moss)`,strokeWidth:2}:{strokeDasharray:`5 4`},...f})}if((r||c?.at===n+1)&&t.type!==`result`&&!t.next?.some(ad)){let e=i?.rule===null,r=e?i?.probabilities?.none:void 0;p(`n-${t.id}`,t.id,n+1,{...t.next?.length?{label:e?`✓ ${af(`editor.otherwise`)}${r===void 0?``:` · ${ZY(r)}`}`:af(`editor.otherwise`),className:`cursor-pointer`,labelStyle:{fontSize:11,fill:e?`var(--moss)`:`var(--ink-3)`},labelBgStyle:{fill:`var(--background)`},...e?{style:{stroke:`var(--moss)`,strokeWidth:2}}:{}}:{}})}}),sL.layout(u);for(let e of d){if(e.type!==`branch`)continue;let t=u.edge(e.source,e.target),n=(t.points??[]).slice(1,-1);n.length&&t.x!==void 0&&t.y!==void 0&&(e.data={points:n,labelX:t.x,labelY:t.y})}return{nodes:[{id:`__start`,type:`start`,position:{x:u.node(`__start`).x-zY/2,y:u.node(`__start`).y-26},data:{title:e.title,avatar:e.avatar,selected:t===`__wizard`},draggable:!1},...e.steps.map((e,s)=>{let c=u.node(e.id);return{id:e.id,type:`step`,position:{x:c.x-zY/2,y:c.y-BY/2},data:{step:e,selected:t===e.id,issue:n.has(e.id),index:s,active:r===e.id,pulse:i.includes(e.id),cost:a[e.id]?.credits??null,passed:o.has(e.id),onAddAfter:l&&e.type!==`result`?()=>l(s+1):void 0},draggable:!1}}),...c?[{id:qY,type:`adding`,position:{x:u.node(qY).x-zY/2,y:u.node(qY).y-BY/2},data:{prompt:c.prompt},draggable:!1,selectable:!1}]:[]],edges:d}}function tX(){let e=qK(),t=`inline-flex size-8 items-center justify-center rounded-full text-ink-3 hover:bg-accent hover:text-ink`;return(0,$.jsxs)(`div`,{className:`absolute bottom-4 left-4 z-10 flex items-center gap-0.5 rounded-full bg-card p-1 shadow-soft ring-1 ring-border-soft max-sm:hidden`,children:[(0,$.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.zoomOut(),"aria-label":af(`editor.zoomOut`),children:(0,$.jsx)(rm,{className:`size-4`})}),(0,$.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.fitView({padding:.2,duration:300}),"aria-label":af(`editor.zoomFit`),children:(0,$.jsx)(Tm,{className:`size-4`})}),(0,$.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.zoomIn(),"aria-label":af(`editor.zoomIn`),children:(0,$.jsx)(hm,{className:`size-4`})})]})}var nX=.8,rX=new Set;function iX({def:e,selected:t,onSelect:n,issueSteps:r,activeStep:i,pulse:a,costs:o=YY,passed:s=rX,minFitZoom:c=nX,fitKey:l,decisions:u=XY,onBranch:d,adding:f=null,onInsert:p}){let{nodes:m,edges:h}=(0,y.useMemo)(()=>eX(e,t,r,i,a??[],o,s,u,f,p),[e,t,r,i,a,o,s,u,f,p]),g=qK(),_=(0,y.useRef)(null),v=e.steps.map(e=>e.id).join(`|`)+(f?`+${f.at}`:``);return(0,y.useEffect)(()=>{let e=requestAnimationFrame(()=>{let e=_.current;if(!e||!m.length)return;let t=m.map(e=>e.position.x),n=m.map(e=>e.position.y),r={x:Math.min(...t),y:Math.min(...n),width:Math.max(...t)+zY-Math.min(...t),height:Math.max(...n)+BY-Math.min(...n)},i=Math.min(e.clientWidth/(r.width*1.2),e.clientHeight/(r.height*1.15),1),a=Math.max(i,c),o=(e.clientWidth-r.width*a)/2-r.x*a,s=i>=c?(e.clientHeight-r.height*a)/2-r.y*a:24-r.y*a;g.setViewport({x:o,y:s,zoom:a},{duration:400})});return()=>cancelAnimationFrame(e)},[v,l,g]),(0,$.jsx)(`div`,{ref:_,className:`h-full w-full`,children:(0,$.jsx)($J,{nodes:m,edges:h,nodeTypes:GY,edgeTypes:KY,onNodeClick:(e,t)=>{t.id!==qY&&n(t.id===`__start`?`__wizard`:t.id)},onEdgeClick:(t,r)=>{let i=e.steps.find(e=>e.id===(r.source===qY?``:r.source));i?.next?.length&&d?d(i.id):i&&n(i.id)},onPaneClick:()=>n(null),nodesConnectable:!1,nodesDraggable:!1,elementsSelectable:!1,panOnScroll:!0,zoomOnScroll:!1,zoomOnPinch:!0,minZoom:.3,maxZoom:1.4,proOptions:{hideAttribution:!0},children:(0,$.jsx)(tX,{})})})}function aX(e){return(0,$.jsx)(YJ,{children:(0,$.jsx)(iX,{...e})})}var oX=`engenty/flow`,sX=new Set([`text`,`textarea`,`number`,`select`,`multiselect`,`date`,`email`,`url`,`toggle`,`color`,`location`,`slot`]),cX=420,lX=600,uX=360,dX=320,fX=new Set;function pX(e){if(e.structuredContent)return e.structuredContent;let t=e.content?.find(e=>e.type===`text`);try{return t&&`text`in t?JSON.parse(t.text):null}catch{return t&&`text`in t?t.text:null}}function mX(e){let t=pX(e);if(e.isError){let e=t&&typeof t==`object`&&`error`in t?String(t.error):String(t);throw Object.assign(Error(e),{body:t})}return t}function hX(e){e&&(e.theme&&document.documentElement.classList.toggle(`dark`,e.theme===`dark`),e.locale&&nf(e.locale.toLowerCase().startsWith(`de`)?`de`:`en`))}function gX(){let e=(0,y.useMemo)(()=>new tA({name:`engenty-wizards-flow`,version:`1.0.0`},{},{autoResize:!0}),[]),[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(`asking`);(0,y.useEffect)(()=>{e.ontoolresult=e=>{let t=e._meta?.[oX];t&&(n(t),i(t.run??null))},e.onhostcontextchanged=e=>{o(t=>({...t,...e})),hX(e)},e.connect().then(()=>{let t=e.getHostContext();o(t),hX(t)}).catch(e=>console.error(`[flow widget]`,e))},[e]);let d=(0,y.useCallback)(async(t,n)=>mX(await e.callServerTool({name:t,arguments:n})),[e]),f=(0,y.useCallback)(t=>{let n=t.outputs.map(e=>e.title).join(`, `),r=[`engenty wizards run ${t.runId}: ${t.status}${t.step?` at "${t.step.title}"`:``}.`,n?`Made so far: ${n}.`:``,t.status===`done`?`The person finished it in the widget; get_run has the outputs and download links.`:`The person answers this run in the widget; get_run has the details.`].filter(Boolean).join(` `);e.updateModelContext({content:[{type:`text`,text:r}]}).catch(()=>void 0)},[e]),p=(0,y.useRef)(``),m=(0,y.useCallback)(t=>{let n=t?`${t.status}:${t.step?.id??``}`:``;if(!t||n===p.current)return;p.current=n;let r=[`engenty wizards run ${t.id}: ${t.status}${t.step?` at "${t.step.title}"`:``}.`,t.status===`done`?`The person finished it in the widget; get_run has the outputs and download links.`:`The person answers this run in the widget; get_run has the details.`].join(` `);e.updateModelContext({content:[{type:`text`,text:r}]}).catch(()=>void 0)},[e]),h=(0,y.useRef)(null),g=(0,y.useRef)(``),_=(0,y.useCallback)(e=>{m(e);let t=e?`${e.status}:${e.step?.id??``}`:``;t!==g.current&&(g.current=t,h.current?.scrollTo({top:0}))},[m]),v=r?.runId,b=t?.runtime;(0,y.useEffect)(()=>{if(!v||!b){u(`no`);return}vj(b),u(`asking`);let e=!0;return fetch(yj(`/api/runs/${v}`),{credentials:`include`}).then(t=>e&&u(t.ok?`yes`:`no`)).catch(()=>e&&u(`no`)),()=>{e=!1}},[v,b]);let x=(0,y.useCallback)(async t=>{let r=await e.callServerTool({name:`run_wizard`,arguments:{wizardId:t}});mX(r);let a=r._meta?.[oX];a&&(n(a),i(a.run??null))},[e]),S=r?.status===`running`;(0,y.useEffect)(()=>{if(!v||!S||l!==`no`)return;let e=!0;return(async()=>{for(;e;)try{let t=await d(`get_run`,{runId:v,waitSeconds:20});if(!e)return;if(i(t),t.status!==`running`){f(t);return}}catch{await new Promise(e=>setTimeout(e,3e3))}})(),()=>{e=!1}},[v,S,l,d,f]);let C=(0,y.useMemo)(()=>new Set(r?.passed??[]),[r]),w=a?.displayMode===`fullscreen`,T=a?.availableDisplayModes?.includes(`fullscreen`),E=t=>{e.openLink({url:t}).catch(()=>window.open(t,`_blank`,`noopener`))};if(!t||r&&l===`asking`)return(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-2 text-ink-3 text-sm`,style:{height:uX},children:[(0,$.jsx)(Mh,{className:`size-4`}),af(`flowApp.loading`)]});if(r&&l===`yes`)return(0,$.jsx)(`div`,{ref:h,className:`overflow-y-auto overscroll-contain bg-background text-ink`,style:{minHeight:uX,maxHeight:lX},children:(0,$.jsx)(_X,{onError:()=>u(`no`),children:(0,$.jsx)(SN,{runId:r.runId,compact:!0,stickyProgress:!0,onView:_})},r.runId)});if(!r)return(0,$.jsx)(vX,{view:t,onStart:()=>x(t.wizard.id)});let D=r&&r.status!==`done`?r.step?.id??null:null;return(0,$.jsxs)(`div`,{className:_h(`flex bg-background text-ink`,w?`h-screen flex-row`:`flex-col`),children:[(0,$.jsx)(`div`,{className:_h(`relative min-w-0`,w?`flex-1`:``),style:w?void 0:{height:dX},children:(0,$.jsx)(aX,{def:t.definition,selected:s,onSelect:c,issueSteps:fX,activeStep:D,passed:C,minFitZoom:.45,fitKey:String(w)})}),(0,$.jsxs)(`aside`,{className:_h(`flex flex-col gap-3 border-border-soft bg-card p-4`,w?`w-[380px] overflow-y-auto border-l`:`border-t`),children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate font-display font-semibold text-[0.9375rem]`,children:t.wizard.title}),(0,$.jsx)(Ph,{children:t.wizard.shows===`published`?af(`flowApp.published`):af(`flowApp.draft`)}),t.wizard.issues?(0,$.jsx)(`span`,{className:`text-[0.75rem] text-rose`,children:af(`flowApp.issues`,{n:t.wizard.issues})}):null,(0,$.jsx)(`span`,{className:`ml-auto flex items-center gap-1`,children:T?(0,$.jsxs)(yh,{size:`sm`,variant:`ghost`,onClick:()=>e.requestDisplayMode({mode:w?`inline`:`fullscreen`}).then(({mode:e})=>o(t=>({...t,displayMode:e}))).catch(()=>void 0),children:[w?(0,$.jsx)(tm,{className:`size-4`}):(0,$.jsx)(Zp,{className:`size-4`}),af(w?`flowApp.inline`:`flowApp.fullscreen`)]}):null})]}),(0,$.jsx)(yX,{report:r,selected:s,call:d,onReport:e=>{i(e),f(e)},open:E})]})]})}var _X=class extends y.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error(`[flow widget]`,e),this.props.onError?.()}render(){return this.state.failed?this.props.fallback??null:this.props.children}};function vX({view:e,onStart:t}){let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!1),c=e.wizard.description??e.definition.description;return(0,$.jsxs)(`div`,{className:`flex flex-col overflow-y-auto overscroll-contain bg-background text-ink`,style:{maxHeight:lX},children:[(0,$.jsxs)(`div`,{className:`mx-auto flex max-w-lg flex-col items-center px-6 pt-6 pb-6 text-center`,children:[(0,$.jsx)(dN,{kind:e.wizard.avatar??e.definition.avatar,size:120,fluffy:!0}),(0,$.jsx)(`h1`,{className:`mt-2 text-balance font-display font-semibold text-[1.625rem] leading-[1.1] tracking-tight`,children:e.wizard.title}),c?(0,$.jsx)(`p`,{className:`mt-3 text-[0.9375rem] text-ink-2 leading-relaxed`,children:c}):null,e.wizard.published?(0,$.jsxs)(yh,{size:`lg`,className:`mt-8 min-w-48`,busy:n,onClick:async()=>{r(!0),a(null);try{await t()}catch(e){a(e.message),r(!1)}},children:[af(`run.start`),` `,(0,$.jsx)(Df,{className:`size-4`})]}):(0,$.jsx)(`p`,{className:`mt-8 rounded-xl bg-paper-2 px-5 py-4 text-[0.875rem] text-ink-2`,children:af(`flowApp.notPublished`)}),i?(0,$.jsx)(`p`,{className:`mt-4 text-[0.875rem] text-rose`,children:i}):null,(0,$.jsxs)(yh,{size:`sm`,variant:`ghost`,className:`mt-4`,onClick:()=>s(!o),children:[(0,$.jsx)(Zm,{className:`size-4`}),af(`flowApp.flow`)]})]}),o?(0,$.jsx)(`div`,{className:`relative border-border-soft border-t`,style:{height:cX},children:(0,$.jsx)(aX,{def:e.definition,selected:null,onSelect:()=>void 0,issueSteps:fX,activeStep:null,minFitZoom:.45})}):null]})}function yX({report:e,selected:t,call:n,onReport:r,open:i}){let[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),l=async(t,i)=>{o(!0),c(null);try{r(await n(t,{runId:e.runId,...i}))}catch(e){c(e.message)}finally{o(!1)}},u=e.waitingFor,d=t?e.outputs.filter(e=>e.stepId===t):[],f=e.events.at(-1),p=e.browserUrl,m=p?()=>i(p):void 0,h=null;return e.status===`running`&&!(u&&`ask`in u)?h=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[0.8125rem] text-ink-2`,children:[(0,$.jsx)(Mh,{className:`size-4`}),f&&rf(f)||af(`run.working`)]}):u&&`page`in u?h=(0,$.jsx)(xX,{fields:u.fields,busy:a,onSubmit:e=>l(`answer_page`,{stepId:u.page,values:e,waitSeconds:3}),onBrowser:m},`${e.runId}-${u.page}`):u&&`review`in u?h=(0,$.jsx)(CX,{outputs:e.outputs.filter(e=>u.show.includes(e.stepId)),targets:u.show,busy:a,onAccept:()=>l(`review_step`,{stepId:u.review,action:{type:`accept`}}),onRegenerate:(e,t)=>l(`review_step`,{stepId:u.review,action:{type:`regenerate`,target:e,note:t}}),open:i}):u&&`ask`in u?h=u.kind===`confirm`?(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(`div`,{className:`font-medium text-[0.8125rem]`,children:af(`flowApp.ask`)}),(0,$.jsxs)(`p`,{className:`text-[0.8125rem] text-ink-2`,children:[u.reason,` — `,u.service,`: `,u.action]}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(yh,{size:`sm`,busy:a,onClick:()=>l(`answer_ask`,{askId:u.ask,answer:`allow`}),children:af(`flowApp.allow`)}),(0,$.jsx)(yh,{size:`sm`,variant:`ghost`,disabled:a,onClick:()=>l(`answer_ask`,{askId:u.ask,answer:`skip`}),children:af(`flowApp.skip`)})]})]}):(0,$.jsxs)(`div`,{className:`flex flex-col items-start gap-2`,children:[(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-ink-2`,children:af(`flowApp.signIn`,{site:u.site})}),m?(0,$.jsxs)(yh,{size:`sm`,onClick:m,children:[(0,$.jsx)(lp,{className:`size-4`}),af(`flowApp.runPage`)]}):null]}):e.status===`failed`?h=(0,$.jsxs)(`div`,{className:`flex flex-col items-start gap-2`,children:[(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:e.error||af(`run.failed`)}),(0,$.jsx)(yh,{size:`sm`,busy:a,onClick:()=>l(`control_run`,{action:`retry`}),children:af(`run.retry`)})]}):e.status===`cancelled`?h=(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:af(`run.cancelled`)}):e.status===`done`&&(h=(0,$.jsx)(wX,{outputs:e.outputs,open:i})),(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-[0.75rem] text-ink-3`,children:[(0,$.jsx)(`span`,{className:`font-medium text-ink-2`,children:e.status===`done`?af(`flowApp.done`):e.step?.title}),(0,$.jsxs)(`span`,{children:[`· `,af(`flowApp.credits`,{n:e.credits})]}),(0,$.jsxs)(`span`,{className:`ml-auto flex gap-1`,children:[e.status===`waiting_input`&&e.passed.length?(0,$.jsxs)(yh,{size:`sm`,variant:`ghost`,disabled:a,onClick:()=>l(`control_run`,{action:`back`}),children:[(0,$.jsx)(Um,{className:`size-4`}),af(`run.back`)]}):null,m?(0,$.jsxs)(yh,{size:`sm`,variant:`ghost`,onClick:m,children:[(0,$.jsx)(lp,{className:`size-4`}),af(`flowApp.runPage`)]}):null]})]}),h,s?(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:af(`flowApp.failed`,{error:s})}):null,d.length&&e.status!==`done`?(0,$.jsx)(wX,{outputs:d,open:i}):null]})}function bX(e){return e.value??e.default??(e.kind===`multiselect`?[]:e.kind!==`toggle`&&``)}function xX({fields:e,busy:t,onSubmit:n,onBrowser:r}){let i=e.filter(e=>sX.has(e.kind)),a=e.filter(e=>!sX.has(e.kind)),[o,s]=(0,y.useState)(()=>Object.fromEntries(i.map(e=>[e.id,bX(e)]))),c=(e,t)=>s(n=>({...n,[e]:t})),l=i.some(e=>{let t=o[e.id];return e.required&&(t===``||t===void 0||Array.isArray(t)&&!t.length)});return a.some(e=>e.required)?(0,$.jsxs)(`div`,{className:`flex flex-col items-start gap-2`,children:[(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-ink-2`,children:af(`flowApp.inBrowser`,{fields:a.map(e=>e.label).join(`, `)})}),r?(0,$.jsxs)(yh,{size:`sm`,onClick:r,children:[(0,$.jsx)(lp,{className:`size-4`}),af(`flowApp.runPage`)]}):null]}):(0,$.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>{e.preventDefault();let t={};for(let e of i){let n=o[e.id];n!==``&&n!==void 0&&(t[e.id]=e.kind===`number`?Number(n):e.kind===`location`?{label:String(n)}:n)}n(t)},children:[i.map(e=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(jh,{required:e.required,hint:e.help,children:e.label}),(0,$.jsx)(`div`,{className:`mt-1.5`,children:(0,$.jsx)(SX,{field:e,value:o[e.id],onChange:t=>c(e.id,t)})})]},e.id)),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(yh,{type:`submit`,busy:t,disabled:l,children:af(`run.next`)}),a.length?(0,$.jsx)(`span`,{className:`text-[0.75rem] text-ink-3`,children:af(`flowApp.inBrowser`,{fields:a.map(e=>e.label).join(`, `)})}):null]})]})}function SX({field:e,value:t,onChange:n}){let r=typeof t==`string`||typeof t==`number`?String(t):``;switch(e.kind){case`textarea`:return(0,$.jsx)(Th,{value:r,rows:4,placeholder:e.placeholder,onChange:e=>n(e.target.value)});case`select`:return(0,$.jsx)(Eh,{value:r,onChange:n,placeholder:``,options:(e.options??[]).map(e=>({value:e,label:e}))});case`multiselect`:return(0,$.jsx)(Dh,{multi:!0,value:Array.isArray(t)?t:[],onChange:n,options:e.options??[]});case`slot`:return e.options?.length?(0,$.jsx)(Eh,{value:r,onChange:n,placeholder:``,options:e.options.map(e=>({value:e,label:hd(e,$d)}))}):(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:af(`slot.none`)});case`toggle`:return(0,$.jsx)(Ah,{checked:t===!0,onChange:n});case`location`:return(0,$.jsx)(Ch,{value:t&&typeof t==`object`&&`label`in t?String(t.label??``):r,placeholder:e.placeholder,onChange:e=>n(e.target.value)});default:return(0,$.jsx)(Ch,{type:e.kind===`number`?`number`:e.kind===`date`?`date`:e.kind===`email`?`email`:e.kind===`url`?`url`:e.kind===`color`?`color`:`text`,value:r,placeholder:e.placeholder,onChange:e=>n(e.target.value)})}}function CX({outputs:e,targets:t,busy:n,onAccept:r,onRegenerate:i,open:a}){let[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(t[0]??``);return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(wX,{outputs:e,open:a}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[t.length>1?(0,$.jsx)(Eh,{value:c,onChange:l,options:e.map(e=>({value:e.stepId,label:e.title}))}):null,(0,$.jsx)(Th,{rows:2,value:o,placeholder:af(`run.regenerateNote`),onChange:e=>s(e.target.value)}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(yh,{busy:n,onClick:r,children:af(`run.accept`)}),(0,$.jsx)(yh,{variant:`ghost`,disabled:n||!o.trim()||!c,onClick:()=>i(c,o.trim()),children:af(`run.regenerateGo`)})]})]})]})}function wX({outputs:e,open:t}){return(0,$.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.map(e=>(0,$.jsxs)(`section`,{className:`rounded-xl bg-paper-2 p-3`,children:[(0,$.jsx)(`div`,{className:`mb-1.5 font-medium text-[0.8125rem] text-ink-2`,children:e.title}),e.text?(0,$.jsx)(CS,{text:e.text,className:`text-[0.8125rem]`}):null,e.assets.filter(e=>e.mime.startsWith(`image/`)).map(e=>(0,$.jsx)(`img`,{src:e.url,alt:e.name,className:`mt-2 max-h-64 rounded-lg`},e.url)),Object.keys(e.downloads).length?(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1`,children:Object.entries(e.downloads).map(([e,n])=>(0,$.jsxs)(yh,{size:`sm`,variant:`secondary`,onClick:()=>t(n),children:[(0,$.jsx)(rp,{className:`size-4`}),e.toUpperCase()]},e))}):null]},e.stepId))})}(0,b.createRoot)(document.getElementById(`root`)).render((0,$.jsx)(y.StrictMode,{children:(0,$.jsx)(_X,{fallback:(0,$.jsx)(`p`,{className:`p-4 text-ink-2 text-sm`,style:{minHeight:120},children:af(`flowApp.broken`)}),children:(0,$.jsx)(gX,{})})}));</script>
973
- <style rel="stylesheet" crossorigin>@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-border-default:1px solid #bbb;--xy-node-border-selected-default:1px solid #555;--xy-handle-background-color-default:#333;--xy-selection-background-color-default:#9696b41a;--xy-selection-border-default:1px dotted #9b9b9bcc;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));min-width:5px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{justify-content:center;align-items:center;width:26px;height:26px;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border:var(--xy-node-border,var(--xy-node-border-default));color:var(--xy-node-color,var(--xy-node-color-default))}.react-flow__node-input.selected,.react-flow__node-input:focus,.react-flow__node-input:focus-visible,.react-flow__node-default.selected,.react-flow__node-default:focus,.react-flow__node-default:focus-visible,.react-flow__node-output.selected,.react-flow__node-output:focus,.react-flow__node-output:focus-visible,.react-flow__node-group.selected,.react-flow__node-group:focus,.react-flow__node-group:focus-visible{border:var(--xy-node-border-selected,var(--xy-node-border-selected-default));outline:none}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}@layer theme{:root,:host{--color-amber-200:oklch(92.4% .12 95.746);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-violet-300:oklch(81.1% .111 293.571);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-neutral-900:oklch(20.5% 0 none);--color-neutral-950:oklch(14.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-md:12px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--f-ui);--default-mono-font-family:var(--f-mono);--color-card:var(--card);--color-ember:var(--ember-mark);--color-ink-3:var(--ink-3);--color-moss:var(--moss);--color-cobalt:var(--cobalt);--color-amber:var(--amber)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html:not([data-desktop]) :is(button,select,summary,[role=button],[role=switch],label:has(input[type=file]),input[type=color]):not(:disabled){cursor:pointer}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-3{inset:calc(var(--spacing) * 3)}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-x-6{inset-inline:calc(var(--spacing) * 6)}.inset-y-0{inset-block:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-1{top:calc(var(--spacing) * -1)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.-top-2\.5{top:calc(var(--spacing) * -2.5)}.-top-3{top:calc(var(--spacing) * -3)}.-top-4{top:calc(var(--spacing) * -4)}.-top-28{top:calc(var(--spacing) * -28)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-5{top:calc(var(--spacing) * 5)}.top-6{top:calc(var(--spacing) * 6)}.top-7{top:calc(var(--spacing) * 7)}.top-8{top:calc(var(--spacing) * 8)}.top-9{top:calc(var(--spacing) * 9)}.top-10{top:calc(var(--spacing) * 10)}.top-11{top:calc(var(--spacing) * 11)}.top-12{top:calc(var(--spacing) * 12)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.-right-1{right:calc(var(--spacing) * -1)}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.-right-10{right:calc(var(--spacing) * -10)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-9{right:calc(var(--spacing) * 9)}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.-bottom-5{bottom:calc(var(--spacing) * -5)}.bottom-0{bottom:0}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1{bottom:var(--spacing)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-12{bottom:calc(var(--spacing) * 12)}.bottom-\[22\%\]{bottom:22%}.bottom-full{bottom:100%}.-left-2\.5{left:calc(var(--spacing) * -2.5)}.-left-5{left:calc(var(--spacing) * -5)}.left-0{left:0}.left-0\.5{left:calc(var(--spacing) * .5)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.left-10{left:calc(var(--spacing) * 10)}.left-\[7px\]{left:7px}.left-full{left:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[61\]{z-index:61}.order-first{order:-9999}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-5{grid-column:span 5/span 5}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-6{grid-column-start:6}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-2{margin:calc(var(--spacing) * -2)}.m-0{margin:0}.m-2{margin:calc(var(--spacing) * 2)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-5{margin-inline:calc(var(--spacing) * -5)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-5{margin-inline:calc(var(--spacing) * 5)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.-mt-3{margin-top:calc(var(--spacing) * -3)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-\[7px\]{margin-top:7px}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\.5{margin-right:calc(var(--spacing) * -1.5)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-\[0\.09em\]{margin-right:.09em}.mr-auto{margin-right:auto}.-mb-1\.5{margin-bottom:calc(var(--spacing) * -1.5)}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-1\.5{margin-left:calc(var(--spacing) * -1.5)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-\[0\.06em\]{margin-left:.06em}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.field-sizing-content{field-sizing:content}.aspect-\[5\/2\]{aspect-ratio:5/2}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[1280\/900\]{aspect-ratio:1280/900}.aspect-square{aspect-ratio:1}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-40{width:calc(var(--spacing) * 40);height:calc(var(--spacing) * 40)}.size-48{width:calc(var(--spacing) * 48);height:calc(var(--spacing) * 48)}.size-56{width:calc(var(--spacing) * 56);height:calc(var(--spacing) * 56)}.size-80{width:calc(var(--spacing) * 80);height:calc(var(--spacing) * 80)}.size-\[1\.125rem\]{width:1.125rem;height:1.125rem}.size-\[3px\]{width:3px;height:3px}.size-\[18px\]{width:18px;height:18px}.size-\[54px\]{width:54px;height:54px}.size-\[72px\]{width:72px;height:72px}.size-\[84px\]{width:84px;height:84px}.size-full{width:100%;height:100%}.h-\(--sheet\){height:var(--sheet)}.h-0{height:0}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-13{height:calc(var(--spacing) * 13)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-40{height:calc(var(--spacing) * 40)}.h-\[3px\]{height:3px}.h-\[28rem\]{height:28rem}.h-\[38\%\]{height:38%}.h-\[46dvh\]{height:46dvh}.h-\[46vh\]{height:46vh}.h-\[70dvh\]{height:70dvh}.h-\[max\(0\.75rem\,env\(safe-area-inset-bottom\)\)\]{height:max(.75rem, env(safe-area-inset-bottom))}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[36rem\]{max-height:36rem}.max-h-\[38vh\]{max-height:38vh}.max-h-\[46vh\]{max-height:46vh}.max-h-\[60dvh\]{max-height:60dvh}.max-h-\[68dvh\]{max-height:68dvh}.max-h-\[70dvh\]{max-height:70dvh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[76vh\]{max-height:76vh}.max-h-\[200px\]{max-height:200px}.max-h-\[calc\(100dvh-32px\)\]{max-height:calc(100dvh - 32px)}.max-h-\[calc\(100dvh-48px\)\]{max-height:calc(100dvh - 48px)}.min-h-0{min-height:0}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-\[6\.5rem\]{min-height:6.5rem}.min-h-\[7rem\]{min-height:7rem}.min-h-\[50vh\]{min-height:50vh}.min-h-\[60dvh\]{min-height:60dvh}.min-h-\[124px\]{min-height:124px}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.w-0{width:0}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[19rem\]{width:19rem}.w-\[280px\]{width:280px}.w-\[380px\]{width:380px}.w-\[400px\]{width:400px}.w-\[calc\(100\%\+0\.5rem\)\]{width:calc(100% + .5rem)}.w-\[calc\(100\%\+1rem\)\]{width:calc(100% + 1rem)}.w-\[calc\(100\%-0\.75rem\)\]{width:calc(100% - .75rem)}.w-\[calc\(100\%-32px\)\]{width:calc(100% - 32px)}.w-\[calc\(100\%-48px\)\]{width:calc(100% - 48px)}.w-\[min\(21rem\,calc\(100\%-2\.5rem\)\)\]{width:min(21rem,100% - 2.5rem)}.w-\[min\(32rem\,calc\(100vw-2rem\)\)\]{width:min(32rem,100vw - 2rem)}.w-\[min\(68\%\,320px\)\]{width:min(68%,320px)}.w-\[var\(--ai-disc\)\]{width:var(--ai-disc)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-\[16rem\]{max-width:16rem}.max-w-\[45\%\]{max-width:45%}.max-w-\[60\%\]{max-width:60%}.max-w-\[64rem\]{max-width:64rem}.max-w-\[85\%\]{max-width:85%}.max-w-\[88rem\]{max-width:88rem}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[620px\]{max-width:620px}.max-w-\[640px\]{max-width:640px}.max-w-\[720px\]{max-width:720px}.max-w-\[760px\]{max-width:760px}.max-w-\[1240px\]{max-width:1240px}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[calc\(100vw-16px\)\]{max-width:calc(100vw - 16px)}.max-w-\[calc\(100vw-20px\)\]{max-width:calc(100vw - 20px)}.max-w-\[calc\(100vw-32px\)\]{max-width:calc(100vw - 32px)}.max-w-\[min\(32rem\,100\%\)\]{max-width:min(32rem,100%)}.max-w-\[min\(36rem\,100\%\)\]{max-width:min(36rem,100%)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-60{min-width:calc(var(--spacing) * 60)}.min-w-\[7\.5rem\]{min-width:7.5rem}.min-w-\[8\.5rem\]{min-width:8.5rem}.min-w-\[9rem\]{min-width:9rem}.flex-1{flex:1}.flex-\[1_1_14rem\]{flex:14rem}.flex-\[1_1_16rem\]{flex:16rem}.flex-\[1_1_18rem\]{flex:18rem}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-56{flex-basis:calc(var(--spacing) * 56)}.basis-\[12rem\]{flex-basis:12rem}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.origin-bottom{transform-origin:bottom}.origin-top{transform-origin:top}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[2px\]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[22px\]{--tw-translate-x:22px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-3{--tw-translate-y:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[0\.5px\]{--tw-translate-y:.5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-scale-x-100{--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-\[0\.56\]{scale:.56}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.scroll-mt-14{scroll-margin-top:calc(var(--spacing) * 14)}.\[scrollbar-width\:none\]{scrollbar-width:none}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1\.5rem_1fr\]{grid-template-columns:1.5rem 1fr}.grid-cols-\[1\.25rem_1fr\]{grid-template-columns:1.25rem 1fr}.grid-cols-\[1\.75rem_1fr_auto\]{grid-template-columns:1.75rem 1fr auto}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[28px_minmax\(0\,1fr\)\]{grid-template-columns:28px minmax(0,1fr)}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.grid-cols-\[minmax\(0\,8rem\)_1fr_auto\]{grid-template-columns:minmax(0,8rem) 1fr auto}.grid-cols-\[repeat\(auto-fill\,minmax\(10rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(120px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(150px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(184px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(184px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(200px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(260px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(min\(100\%\,16rem\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:var(--spacing)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-2\.5{column-gap:calc(var(--spacing) * 2.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-3\.5{column-gap:calc(var(--spacing) * 3.5)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-7{column-gap:calc(var(--spacing) * 7)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-soft>:not(:last-child)){border-color:var(--border-soft)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 2)}.rounded-3xl{border-radius:calc(var(--radius) * 3)}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-\[1\.375rem\]{border-radius:1.375rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[14px\]{border-radius:14px}.rounded-\[18px\]{border-radius:18px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .75)}.rounded-xl{border-radius:calc(var(--radius) * 1.5)}.rounded-t-3xl{border-top-left-radius:calc(var(--radius) * 3);border-top-right-radius:calc(var(--radius) * 3)}.rounded-tl-md{border-top-left-radius:calc(var(--radius) * .75)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.5);border-bottom-left-radius:calc(var(--radius) * 1.5)}.rounded-br-md{border-bottom-right-radius:calc(var(--radius) * .75)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-\(color\:--on\)\/40{border-color:var(--on)}@supports (color:color-mix(in lab, red, red)){.border-\(color\:--on\)\/40{border-color:color-mix(in oklab, var(--on) 40%, transparent)}}.border-\[\#1d1a17\]\/25{border-color:oklab(22.0098% .00284923 .00685373/.25)}.border-border{border-color:var(--border)}.border-border-soft{border-color:var(--border-soft)}.border-ember,.border-ember\/50{border-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.border-ember\/50{border-color:color-mix(in oklab, var(--ember-mark) 50%, transparent)}}.border-focus{border-color:var(--focus-line)}.border-ink-4{border-color:var(--ink-4)}.border-input{border-color:var(--input)}.border-rose\/40{border-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.border-rose\/40{border-color:color-mix(in oklab, var(--rose) 40%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.border-white\/30{border-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.border-white\/45{border-color:#ffffff73}@supports (color:color-mix(in lab, red, red)){.border-white\/45{border-color:color-mix(in oklab, var(--color-white) 45%, transparent)}}.border-white\/90{border-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.border-white\/90{border-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-\(--coin-bg\,var\(--color-card\)\){background-color:var(--coin-bg,var(--color-card))}.bg-\(color\:--dot\){background-color:var(--dot)}.bg-\(color\:--on\)\/20{background-color:var(--on)}@supports (color:color-mix(in lab, red, red)){.bg-\(color\:--on\)\/20{background-color:color-mix(in oklab, var(--on) 20%, transparent)}}.bg-\(color\:--panel\){background-color:var(--panel)}.bg-\(color\:--pick\){background-color:var(--pick)}.bg-\(color\:--pick-mark\){background-color:var(--pick-mark)}.bg-\(color\:--tile\){background-color:var(--tile)}.bg-\[\#0f1424\]{background-color:#0f1424}.bg-\[\#e5484d\]{background-color:#e5484d}.bg-\[oklch\(20\%_0\.01_60\/0\.22\)\]{background-color:oklch(20% .01 60/.22)}.bg-\[oklch\(20\%_0\.03_260\)\]{background-color:oklch(20% .03 260)}.bg-accent{background-color:var(--accent)}.bg-amber{background-color:var(--amber)}.bg-amber-tint{background-color:var(--amber-tint)}.bg-background{background-color:var(--background)}.bg-black{background-color:var(--color-black)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--border)}.bg-border-soft{background-color:var(--border-soft)}.bg-card,.bg-card\/70{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/70{background-color:color-mix(in oklab, var(--card) 70%, transparent)}}.bg-card\/90{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/90{background-color:color-mix(in oklab, var(--card) 90%, transparent)}}.bg-card\/95{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/95{background-color:color-mix(in oklab, var(--card) 95%, transparent)}}.bg-cobalt{background-color:var(--cobalt)}.bg-cobalt-tint{background-color:var(--cobalt-tint)}.bg-ember{background-color:var(--ember-mark)}.bg-ember-strong{background-color:var(--ember-strong-mark)}.bg-ember-tint,.bg-ember-tint\/40{background-color:var(--ember-tint)}@supports (color:color-mix(in lab, red, red)){.bg-ember-tint\/40{background-color:color-mix(in oklab, var(--ember-tint) 40%, transparent)}}.bg-ember-veil{background-color:var(--ember-veil)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground{background-color:var(--foreground)}.bg-ink{background-color:var(--ink)}.bg-ink-3{background-color:var(--ink-3)}.bg-ink-4,.bg-ink-4\/40{background-color:var(--ink-4)}@supports (color:color-mix(in lab, red, red)){.bg-ink-4\/40{background-color:color-mix(in oklab, var(--ink-4) 40%, transparent)}}.bg-moss{background-color:var(--moss)}.bg-moss-tint{background-color:var(--moss-tint)}.bg-muted{background-color:var(--muted)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-paper{background-color:var(--paper)}.bg-paper-2,.bg-paper-2\/60{background-color:var(--paper-2)}@supports (color:color-mix(in lab, red, red)){.bg-paper-2\/60{background-color:color-mix(in oklab, var(--paper-2) 60%, transparent)}}.bg-paper-3{background-color:var(--paper-3)}.bg-primary{background-color:var(--primary)}.bg-rose{background-color:var(--rose)}.bg-rose-tint{background-color:var(--rose-tint)}.bg-rose\/25{background-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.bg-rose\/25{background-color:color-mix(in oklab, var(--rose) 25%, transparent)}}.bg-second{background-color:var(--second)}.bg-second-tint{background-color:var(--second-tint)}.bg-sidebar{background-color:var(--sidebar)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/12{background-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.bg-white\/12{background-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.bg-white\/25{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.bg-white\/40{background-color:#fff6}@supports (color:color-mix(in lab, red, red)){.bg-white\/40{background-color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.bg-linear-to-l{--tw-gradient-position:to left}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-l{--tw-gradient-position:to left in oklab}}.bg-linear-to-l{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-t{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-t{--tw-gradient-position:to top in oklab}}.bg-linear-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/75{--tw-gradient-from:#000000bf}@supports (color:color-mix(in lab, red, red)){.from-black\/75{--tw-gradient-from:color-mix(in oklab, var(--color-black) 75%, transparent)}}.from-black\/75{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-paper\/85{--tw-gradient-from:var(--paper)}@supports (color:color-mix(in lab, red, red)){.from-paper\/85{--tw-gradient-from:color-mix(in oklab, var(--paper) 85%, transparent)}}.from-paper\/85{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-50\%{--tw-gradient-from-position:50%}.via-paper\/55{--tw-gradient-via:var(--paper)}@supports (color:color-mix(in lab, red, red)){.via-paper\/55{--tw-gradient-via:color-mix(in oklab, var(--paper) 55%, transparent)}}.via-paper\/55{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-ember-tint{--tw-gradient-to:var(--ember-tint);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-paper\/0{--tw-gradient-to:var(--paper)}@supports (color:color-mix(in lab, red, red)){.to-paper\/0{--tw-gradient-to:color-mix(in oklab, var(--paper) 0%, transparent)}}.to-paper\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-50\%{--tw-gradient-to-position:50%}.\[mask-image\:linear-gradient\(to_top\,black_45\%\,transparent\)\]{-webkit-mask-image:linear-gradient(#0000,#000 55%);mask-image:linear-gradient(#0000,#000 55%)}.fill-amber{fill:var(--amber)}.fill-current{fill:currentColor}.stroke-ember{stroke:var(--ember-mark)}.stroke-paper-3{stroke:var(--paper-3)}.stroke-rose{stroke:var(--rose)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\.5{padding-inline:calc(var(--spacing) * 4.5)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-\[3px\]{padding-block:3px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-\[calc\(0\.375rem\+env\(safe-area-inset-top\)\)\]{padding-top:calc(.375rem + env(safe-area-inset-top))}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pr-32{padding-right:calc(var(--spacing) * 32)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-\[calc\(0\.375rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(.375rem + env(safe-area-inset-bottom))}.pb-\[max\(0\.375rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.375rem, env(safe-area-inset-bottom))}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-5\.5{padding-left:calc(var(--spacing) * 5.5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.align-\[1px\]{vertical-align:1px}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-display{font-family:var(--f-display)}.font-mono{font-family:var(--f-mono)}.font-sans{font-family:var(--f-ui)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.625rem\]{font-size:.625rem}.text-\[0\.875rem\]{font-size:.875rem}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[0\.78125rem\]{font-size:.78125rem}.text-\[0\.84375rem\]{font-size:.84375rem}.text-\[1\.5rem\]{font-size:1.5rem}.text-\[1\.25rem\]{font-size:1.25rem}.text-\[1\.75rem\]{font-size:1.75rem}.text-\[1\.125rem\]{font-size:1.125rem}.text-\[1\.375rem\]{font-size:1.375rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[1\.625rem\]{font-size:1.625rem}.text-\[1\.875rem\]{font-size:1.875rem}.text-\[1\.1875rem\]{font-size:1.1875rem}.text-\[1rem\]{font-size:1rem}.text-\[2\.5rem\]{font-size:2.5rem}.text-\[2\.25rem\]{font-size:2.25rem}.text-\[2\.75rem\]{font-size:2.75rem}.text-\[2\.125rem\]{font-size:2.125rem}.text-\[2rem\]{font-size:2rem}.text-\[3\.5rem\]{font-size:3.5rem}.text-\[14px\]{font-size:14px}.text-\[clamp\(28px\,3vw\,40px\)\]{font-size:clamp(28px,3vw,40px)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.06\]{--tw-leading:1.06;line-height:1.06}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.08\]{--tw-leading:1.08;line-height:1.08}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[-0\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.07em\]{--tw-tracking:.07em;letter-spacing:.07em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-balance{text-wrap:balance}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\[tab-size\:2\]{tab-size:2}.text-\(color\:--dot\){color:var(--dot)}.text-\(color\:--moss\){color:var(--moss)}.text-\(color\:--on\),.text-\(color\:--on\)\/40{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/40{color:color-mix(in oklab, var(--on) 40%, transparent)}}.text-\(color\:--on\)\/55{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/55{color:color-mix(in oklab, var(--on) 55%, transparent)}}.text-\(color\:--on\)\/60{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/60{color:color-mix(in oklab, var(--on) 60%, transparent)}}.text-\(color\:--on\)\/65{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/65{color:color-mix(in oklab, var(--on) 65%, transparent)}}.text-\(color\:--on\)\/70{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/70{color:color-mix(in oklab, var(--on) 70%, transparent)}}.text-\(color\:--on\)\/75{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/75{color:color-mix(in oklab, var(--on) 75%, transparent)}}.text-\(color\:--on\)\/80{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/80{color:color-mix(in oklab, var(--on) 80%, transparent)}}.text-\(color\:--pick\){color:var(--pick)}.text-\(color\:--pick-ink\){color:var(--pick-ink)}.text-\(color\:--rose\){color:var(--rose)}.text-\[\#1d1a17\]\/40{color:oklab(22.0098% .00284923 .00685373/.4)}.text-\[oklch\(32\%_0\.15_262\)\]{color:oklch(32% .15 262)}.text-amber{color:var(--amber)}.text-amber-200{color:var(--color-amber-200)}.text-background{color:var(--background)}.text-black{color:var(--color-black)}.text-cobalt{color:var(--cobalt)}.text-ember{color:var(--ember-mark)}.text-ember-on{color:var(--ember-on)}.text-ember-strong{color:var(--ember-strong-mark)}.text-emerald-300{color:var(--color-emerald-300)}.text-foreground{color:var(--foreground)}.text-ink{color:var(--ink)}.text-ink-2{color:var(--ink-2)}.text-ink-3{color:var(--ink-3)}.text-ink-4{color:var(--ink-4)}.text-moss{color:var(--moss)}.text-muted-foreground{color:var(--muted-foreground)}.text-neutral-900{color:var(--color-neutral-900)}.text-paper{color:var(--paper)}.text-primary-foreground{color:var(--primary-foreground)}.text-rose{color:var(--rose)}.text-second{color:var(--second)}.text-sky-300{color:var(--color-sky-300)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-transparent{color:#0000}.text-violet-300{color:var(--color-violet-300)}.text-white{color:var(--color-white)}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\/50{color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.text-white\/55{color:#ffffff8c}@supports (color:color-mix(in lab, red, red)){.text-white\/55{color:color-mix(in oklab, var(--color-white) 55%, transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\/60{color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/75{color:#ffffffbf}@supports (color:color-mix(in lab, red, red)){.text-white\/75{color:color-mix(in oklab, var(--color-white) 75%, transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.text-white\/95{color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.text-white\/95{color:color-mix(in oklab, var(--color-white) 95%, transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.underline-offset-\[3px\]{text-underline-offset:3px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.caret-white{caret-color:var(--color-white)}.accent-\[var\(--ember\)\]{accent-color:var(--ember)}.accent-\[var\(--second\)\]{accent-color:var(--second)}.accent-ink{accent-color:var(--ink)}.opacity-0{opacity:0}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[0\.14\]{opacity:.14}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--border-soft\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--border-soft));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_100vmax_rgb\(0_0_0\/0\.35\)\]{--tw-shadow:0 0 0 100vmax var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_80px_20px_rgba\(52\,211\,153\,0\.3\)\]{--tw-shadow:0 0 80px 20px var(--tw-shadow-color,#34d3994d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_80px_20px_rgba\(244\,63\,94\,0\.25\)\]{--tw-shadow:0 0 80px 20px var(--tw-shadow-color,#f43f5e40);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_0_oklch\(0\%_0_0\/0\.08\)\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,oklch(0% 0 0/.08));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_3px_rgba\(0\,0\,0\,0\.25\)\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_2px_8px_oklch\(0\%_0_0\/0\.22\)\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,oklch(0% 0 0/.22));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_6px_24px_oklch\(88\%_0\.17_150\/0\.35\)\]{--tw-shadow:0 6px 24px var(--tw-shadow-color,oklch(88% .17 150/.35));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_oklch\(0\%_0_0\/0\.02\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,oklch(0% 0 0/.02));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevated{--tw-shadow:var(--shadow-ember-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-overlay{--tw-shadow:var(--shadow-ember-overlay);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-soft{--tw-shadow:var(--shadow-ember-soft);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\(color\:--panel-ring\){--tw-ring-color:var(--panel-ring)}.ring-\(color\:--tile-ring\){--tw-ring-color:var(--tile-ring)}.ring-amber\/30{--tw-ring-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.ring-amber\/30{--tw-ring-color:color-mix(in oklab, var(--amber) 30%, transparent)}}.ring-amber\/60{--tw-ring-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.ring-amber\/60{--tw-ring-color:color-mix(in oklab, var(--amber) 60%, transparent)}}.ring-border{--tw-ring-color:var(--border)}.ring-border-soft{--tw-ring-color:var(--border-soft)}.ring-card{--tw-ring-color:var(--card)}.ring-ember{--tw-ring-color:var(--ember-mark)}.ring-ember-strong\/25{--tw-ring-color:var(--ember-strong-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember-strong\/25{--tw-ring-color:color-mix(in oklab, var(--ember-strong-mark) 25%, transparent)}}.ring-ember-veil{--tw-ring-color:var(--ember-veil)}.ring-ember\/30{--tw-ring-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember\/30{--tw-ring-color:color-mix(in oklab, var(--ember-mark) 30%, transparent)}}.ring-ember\/40{--tw-ring-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember\/40{--tw-ring-color:color-mix(in oklab, var(--ember-mark) 40%, transparent)}}.ring-ember\/60{--tw-ring-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember\/60{--tw-ring-color:color-mix(in oklab, var(--ember-mark) 60%, transparent)}}.ring-emerald-400\/70{--tw-ring-color:#00d294b3}@supports (color:color-mix(in lab, red, red)){.ring-emerald-400\/70{--tw-ring-color:color-mix(in oklab, var(--color-emerald-400) 70%, transparent)}}.ring-focus{--tw-ring-color:var(--focus-line)}.ring-focus-glow{--tw-ring-color:var(--focus-glow)}.ring-ink{--tw-ring-color:var(--ink)}.ring-ink-4{--tw-ring-color:var(--ink-4)}.ring-ink\/80{--tw-ring-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.ring-ink\/80{--tw-ring-color:color-mix(in oklab, var(--ink) 80%, transparent)}}.ring-input{--tw-ring-color:var(--input)}.ring-moss{--tw-ring-color:var(--moss)}.ring-paper{--tw-ring-color:var(--paper)}.ring-rose,.ring-rose\/30{--tw-ring-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.ring-rose\/30{--tw-ring-color:color-mix(in oklab, var(--rose) 30%, transparent)}}.ring-rose\/40{--tw-ring-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.ring-rose\/40{--tw-ring-color:color-mix(in oklab, var(--rose) 40%, transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-white\/15{--tw-ring-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.ring-white\/15{--tw-ring-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.ring-white\/50{--tw-ring-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.ring-white\/50{--tw-ring-color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-sidebar{--tw-ring-offset-color:var(--sidebar)}.ring-offset-transparent{--tw-ring-offset-color:transparent}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\,filter\,color\,transform\]{transition-property:background,filter,color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,color\,box-shadow\,filter\]{transition-property:background-color,color,box-shadow,filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,color\,box-shadow\]{transition-property:background-color,color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,bottom\]{transition-property:left,bottom;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,translate\]{transition-property:left,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,scale\,left\]{transition-property:opacity,scale,left;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,background\,color\]{transition-property:width,background,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,margin\,opacity\]{transition-property:width,margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-\[cubic-bezier\(0\.3\,0\.7\,0\.2\,1\)\]{--tw-ease:cubic-bezier(.3,.7,.2,1);transition-timing-function:cubic-bezier(.3,.7,.2,1)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\[-webkit-touch-callout\:none\]{-webkit-touch-callout:none}.ring-inset{--tw-ring-inset:inset}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *),.group-open\/r\:rotate-90:is(:where(.group\/r):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:bg-ember\/70:is(:where(.group):hover *){background-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-ember\/70:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--ember-mark) 70%, transparent)}}.group-hover\:bg-ink-4:is(:where(.group):hover *){background-color:var(--ink-4)}.group-hover\:text-\(color\:--on\)\/80:is(:where(.group):hover *){color:var(--on)}@supports (color:color-mix(in lab, red, red)){.group-hover\:text-\(color\:--on\)\/80:is(:where(.group):hover *){color:color-mix(in oklab, var(--on) 80%, transparent)}}.group-hover\:text-ember:is(:where(.group):hover *){color:var(--ember-mark)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/card\:opacity-100:is(:where(.group\/card):hover *),.group-hover\/font\:opacity-100:is(:where(.group\/font):hover *),.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *),.group-hover\/rule\:opacity-100:is(:where(.group\/rule):hover *),.group-hover\/section\:opacity-100:is(:where(.group\/section):hover *){opacity:1}}.group-focus-visible\:bg-ember:is(:where(.group):focus-visible *){background-color:var(--ember-mark)}.group-focus-visible\:opacity-0:is(:where(.group):focus-visible *){opacity:0}.group-focus-visible\:opacity-100:is(:where(.group):focus-visible *){opacity:1}.group-active\:h-16:is(:where(.group):active *){height:calc(var(--spacing) * 16)}.group-active\:w-14:is(:where(.group):active *){width:calc(var(--spacing) * 14)}.group-active\:bg-ember:is(:where(.group):active *){background-color:var(--ember-mark)}@media (hover:hover){.group-enabled\:group-hover\:translate-x-0\.5:is(:where(.group):enabled *):is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}}.peer-checked\:border-ember:is(:where(.peer):checked~*){border-color:var(--ember-mark)}.peer-checked\:bg-ember-tint:is(:where(.peer):checked~*){background-color:var(--ember-tint)}.peer-checked\:text-ink:is(:where(.peer):checked~*){color:var(--ink)}.peer-focus-visible\:outline-\[1\.5px\]:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:1.5px}.peer-focus-visible\:outline-offset-2:is(:where(.peer):focus-visible~*){outline-offset:2px}.peer-focus-visible\:outline-\(--focus-line\):is(:where(.peer):focus-visible~*){outline-color:var(--focus-line)}.peer-focus-visible\:outline-solid:is(:where(.peer):focus-visible~*){--tw-outline-style:solid;outline-style:solid}.peer-disabled\:pointer-events-none:is(:where(.peer):disabled~*){pointer-events:none}.peer-disabled\:line-through:is(:where(.peer):disabled~*){text-decoration-line:line-through}.peer-disabled\:opacity-60:is(:where(.peer):disabled~*){opacity:.6}.selection\:bg-sky-400\/30 ::selection{background-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.selection\:bg-sky-400\/30 ::selection{background-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.selection\:bg-sky-400\/30::selection{background-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.selection\:bg-sky-400\/30::selection{background-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.placeholder\:truncate::placeholder{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.placeholder\:text-ink-4::placeholder{color:var(--ink-4)}.placeholder\:text-transparent::placeholder{color:#0000}.placeholder\:text-white\/55::placeholder{color:#ffffff8c}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/55::placeholder{color:color-mix(in oklab, var(--color-white) 55%, transparent)}}.backdrop\:bg-\[oklch\(20\%_0\.01_60\/0\.28\)\]::backdrop{background-color:oklch(20% .01 60/.28)}.backdrop\:backdrop-blur-\[2px\]::backdrop{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-x-1:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * -1)}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:-inset-y-2\.5:before{content:var(--tw-content);inset-block:calc(var(--spacing) * -2.5)}.before\:-top-4:before{content:var(--tw-content);top:calc(var(--spacing) * -4)}.before\:h-4:before{content:var(--tw-content);height:calc(var(--spacing) * 4)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:border-0:first-child{border-style:var(--tw-border-style);border-width:0}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first\:border-l-0:first-child{border-left-style:var(--tw-border-style);border-left-width:0}.first\:pt-0:first-child{padding-top:0}.first\:pt-1:first-child{padding-top:var(--spacing)}.first\:pl-0:first-child{padding-left:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}.open\:ring-ink-4\/40:is([open],:popover-open,:open){--tw-ring-color:var(--ink-4)}@supports (color:color-mix(in lab, red, red)){.open\:ring-ink-4\/40:is([open],:popover-open,:open){--tw-ring-color:color-mix(in oklab, var(--ink-4) 40%, transparent)}}.empty\:hidden:empty{display:none}.focus-within\:border-focus:focus-within{border-color:var(--focus-line)}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-4:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-focus:focus-within{--tw-ring-color:var(--focus-line)}.focus-within\:ring-focus-glow:focus-within{--tw-ring-color:var(--focus-glow)}@media (hover:hover){.hover\:w-\[var\(--ai-long\)\]:hover{width:var(--ai-long)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-ember:hover{border-color:var(--ember-mark)}.hover\:border-ink-4:hover{border-color:var(--ink-4)}.hover\:bg-\(color\:--tile-hover\):hover{background-color:var(--tile-hover)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-card:hover,.hover\:bg-card\/60:hover{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-card\/60:hover{background-color:color-mix(in oklab, var(--card) 60%, transparent)}}.hover\:bg-ember-tint:hover{background-color:var(--ember-tint)}.hover\:bg-ink\/10:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-ink\/10:hover{background-color:color-mix(in oklab, var(--ink) 10%, transparent)}}.hover\:bg-paper-2:hover,.hover\:bg-paper-2\/70:hover{background-color:var(--paper-2)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-paper-2\/70:hover{background-color:color-mix(in oklab, var(--paper-2) 70%, transparent)}}.hover\:bg-paper-3:hover{background-color:var(--paper-3)}.hover\:bg-primary:hover,.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-rose-tint:hover{background-color:var(--rose-tint)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:bg-white\/15:hover{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/15:hover{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.hover\:bg-white\/25:hover{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/25:hover{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.hover\:bg-white\/90:hover{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/90:hover{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.hover\:text-\(color\:--on\):hover{color:var(--on)}.hover\:text-ink:hover{color:var(--ink)}.hover\:text-ink-2:hover{color:var(--ink-2)}.hover\:text-ink-3:hover{color:var(--ink-3)}.hover\:text-primary-foreground:hover{color:var(--primary-foreground)}.hover\:text-rose:hover{color:var(--rose)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-elevated:hover{--tw-shadow:var(--shadow-ember-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-soft:hover{--tw-shadow:var(--shadow-ember-soft);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-border:hover{--tw-ring-color:var(--border)}.hover\:ring-border-soft:hover{--tw-ring-color:var(--border-soft)}.hover\:ring-ember:hover{--tw-ring-color:var(--ember-mark)}.hover\:ring-ink-4:hover{--tw-ring-color:var(--ink-4)}.hover\:brightness-105:hover{--tw-brightness:brightness(105%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-\[1\.06\]:hover{--tw-brightness:brightness(1.06);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-ember:focus{border-color:var(--ember-mark)}.focus\:border-focus:focus{border-color:var(--focus-line)}.focus\:border-white\/60:focus{border-color:#fff9}@supports (color:color-mix(in lab, red, red)){.focus\:border-white\/60:focus{border-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.focus\:bg-card:focus{background-color:var(--card)}.focus\:bg-paper:focus{background-color:var(--paper)}.focus\:text-ink:focus{color:var(--ink)}.focus\:opacity-100:focus{opacity:1}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-border:focus{--tw-ring-color:var(--border)}.focus\:ring-focus-glow:focus{--tw-ring-color:var(--focus-glow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus-visible\:w-\[var\(--ai-long\)\]:focus-visible{width:var(--ai-long)}.focus-visible\:border-focus:focus-visible{border-color:var(--focus-line)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-focus:focus-visible{--tw-ring-color:var(--focus-line)}.focus-visible\:ring-focus-glow:focus-visible{--tw-ring-color:var(--focus-glow)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}.active\:cursor-grabbing:active{cursor:grabbing}.active\:brightness-95:active{--tw-brightness:brightness(95%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media (hover:hover){.enabled\:hover\:brightness-105:enabled:hover{--tw-brightness:brightness(105%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:line-through:disabled{text-decoration-line:line-through}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.has-\[\:focus-visible\]\:ring-2:has(:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\:focus-visible\]\:ring-focus:has(:focus-visible){--tw-ring-color:var(--focus-line)}.has-\[\[aria-expanded\=true\]\]\:opacity-100:has([aria-expanded=true]){opacity:1}.aria-pressed\:bg-foreground[aria-pressed=true]{background-color:var(--foreground)}.aria-pressed\:text-background[aria-pressed=true]{color:var(--background)}.aria-pressed\:ring-2[aria-pressed=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.aria-pressed\:ring-current[aria-pressed=true]{--tw-ring-color:currentcolor}.data-\[open\=true\]\:w-\[var\(--ai-long\)\][data-open=true]{width:var(--ai-long)}.data-\[over\]\:border-focus[data-over]{border-color:var(--focus-line)}.data-\[over\]\:bg-paper-2[data-over]{background-color:var(--paper-2)}.data-\[over\]\:text-ink[data-over]{color:var(--ink)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media not all and (width>=420px){.max-\[420px\]\:hidden{display:none}}@media not all and (width>=64rem){.max-lg\:pointer-events-none{pointer-events:none}.max-lg\:left-1\/2{left:50%}.max-lg\:order-first{order:-9999}.max-lg\:hidden{display:none}.max-lg\:h-0{height:0}.max-lg\:h-\[148px\]{height:148px}.max-lg\:w-0{width:0}.max-lg\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.max-lg\:scale-\[0\.4\]{scale:.4}.max-lg\:scale-\[0\.6\]{scale:.6}.max-lg\:text-center{text-align:center}.max-lg\:opacity-0{opacity:0}.max-lg\:opacity-100{opacity:1}@media (prefers-reduced-motion:no-preference){.max-lg\:motion-safe\:transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.max-lg\:motion-safe\:duration-200{--tw-duration:.2s;transition-duration:.2s}}}@media not all and (width>=48rem){.max-md\:hidden{display:none}.max-md\:scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.max-md\:py-2{padding-block:calc(var(--spacing) * 2)}}@media not all and (width>=40rem){.max-sm\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-sm\:order-first{order:-9999}.max-sm\:col-span-3{grid-column:span 3/span 3}.max-sm\:m-0{margin:0}.max-sm\:-mx-3{margin-inline:calc(var(--spacing) * -3)}.max-sm\:ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.max-sm\:hidden{display:none}.max-sm\:aspect-square{aspect-ratio:1}.max-sm\:size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.max-sm\:h-dvh{height:100dvh}.max-sm\:max-h-none{max-height:none}.max-sm\:w-auto{width:auto}.max-sm\:w-full{width:100%}.max-sm\:max-w-none{max-width:none}.max-sm\:flex-1{flex:1}.max-sm\:basis-full{flex-basis:100%}.max-sm\:\[scrollbar-width\:none\]{scrollbar-width:none}.max-sm\:flex-col-reverse{flex-direction:column-reverse}.max-sm\:items-stretch{align-items:stretch}.max-sm\:overflow-x-auto{overflow-x:auto}.max-sm\:overflow-y-auto{overflow-y:auto}.max-sm\:rounded-none{border-radius:0}.max-sm\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.max-sm\:border-border-soft{border-color:var(--border-soft)}.max-sm\:px-0{padding-inline:0}.max-sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.max-sm\:pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.max-sm\:pr-10{padding-right:calc(var(--spacing) * 10)}.max-sm\:pb-4{padding-bottom:calc(var(--spacing) * 4)}.max-sm\:pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.max-sm\:font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}}@media (width>=40rem){.sm\:inset-x-10{inset-inline:calc(var(--spacing) * 10)}.sm\:-top-3\.5{top:calc(var(--spacing) * -3.5)}.sm\:top-8{top:calc(var(--spacing) * 8)}.sm\:-right-3\.5{right:calc(var(--spacing) * -3.5)}.sm\:right-4{right:calc(var(--spacing) * 4)}.sm\:bottom-4{bottom:calc(var(--spacing) * 4)}.sm\:bottom-8{bottom:calc(var(--spacing) * 8)}.sm\:order-none{order:0}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-start-auto{grid-column-start:auto}.sm\:row-start-auto{grid-row-start:auto}.sm\:-mx-7{margin-inline:calc(var(--spacing) * -7)}.sm\:mt-0\.5{margin-top:calc(var(--spacing) * .5)}.sm\:mt-6{margin-top:calc(var(--spacing) * 6)}.sm\:mr-1{margin-right:var(--spacing)}.sm\:-ml-2{margin-left:calc(var(--spacing) * -2)}.sm\:block{display:block}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:inline-flex{display:inline-flex}.sm\:size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.sm\:h-11{height:calc(var(--spacing) * 11)}.sm\:h-\[min\(calc\(100dvh-32px\)\,56rem\)\]{height:min(100dvh - 32px,56rem)}.sm\:h-\[min\(var\(--share-h\)\,calc\(100dvh-32px\)\)\]{height:min(var(--share-h), calc(100dvh - 32px))}.sm\:min-h-0{min-height:0}.sm\:min-h-\[136px\]{min-height:136px}.sm\:w-32{width:calc(var(--spacing) * 32)}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:w-\[var\(--drawer\)\]{width:var(--drawer)}.sm\:w-auto{width:auto}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-4xl{max-width:var(--container-4xl)}.sm\:max-w-\[34rem\]{max-width:34rem}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-1{flex:1}.sm\:basis-0{flex-basis:0}.sm\:\[grid-template-columns\:var\(--cols\)\]{grid-template-columns:var(--cols)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-\[1fr_2fr_auto\]{grid-template-columns:1fr 2fr auto}.sm\:grid-cols-\[5\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:5.5rem minmax(0,1fr)}.sm\:grid-cols-\[7\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:7.5rem minmax(0,1fr)}.sm\:grid-cols-\[9rem_minmax\(0\,1fr\)\]{grid-template-columns:9rem minmax(0,1fr)}.sm\:grid-cols-\[230px_minmax\(0\,1fr\)\]{grid-template-columns:230px minmax(0,1fr)}.sm\:grid-cols-\[minmax\(0\,1fr\)_12rem_auto\]{grid-template-columns:minmax(0,1fr) 12rem auto}.sm\:grid-cols-\[minmax\(0\,2fr\)_minmax\(0\,3fr\)_auto_auto\]{grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto auto}.sm\:grid-cols-\[repeat\(auto-fill\,minmax\(15rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.sm\:grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:justify-center{justify-content:center}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}.sm\:overflow-y-auto{overflow-y:auto}.sm\:rounded-2xl{border-radius:calc(var(--radius) * 2)}.sm\:rounded-t-2xl{border-top-left-radius:calc(var(--radius) * 2);border-top-right-radius:calc(var(--radius) * 2)}.sm\:bg-transparent{background-color:#0000}.sm\:p-0{padding:0}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-7{padding:calc(var(--spacing) * 7)}.sm\:px-2{padding-inline:calc(var(--spacing) * 2)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-7{padding-inline:calc(var(--spacing) * 7)}.sm\:px-10{padding-inline:calc(var(--spacing) * 10)}.sm\:py-16{padding-block:calc(var(--spacing) * 16)}.sm\:pt-4{padding-top:calc(var(--spacing) * 4)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pt-16{padding-top:calc(var(--spacing) * 16)}.sm\:pr-4{padding-right:calc(var(--spacing) * 4)}.sm\:pr-36{padding-right:calc(var(--spacing) * 36)}.sm\:pr-40{padding-right:calc(var(--spacing) * 40)}.sm\:pb-6{padding-bottom:calc(var(--spacing) * 6)}.sm\:pb-8{padding-bottom:calc(var(--spacing) * 8)}.sm\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.sm\:pl-3{padding-left:calc(var(--spacing) * 3)}.sm\:pl-6{padding-left:calc(var(--spacing) * 6)}.sm\:text-\[1\.75rem\]{font-size:1.75rem}.sm\:text-\[2\.75rem\]{font-size:2.75rem}.sm\:text-\[2\.125rem\]{font-size:2.125rem}.sm\:text-\[2rem\]{font-size:2rem}.sm\:text-\[3\.25rem\]{font-size:3.25rem}.sm\:placeholder\:text-ink-4::placeholder{color:var(--ink-4)}}@media (width>=48rem){.md\:sticky{position:sticky}.md\:top-6{top:calc(var(--spacing) * 6)}.md\:mt-2{margin-top:calc(var(--spacing) * 2)}.md\:mt-8{margin-top:calc(var(--spacing) * 8)}.md\:hidden{display:none}.md\:inline-flex{display:inline-flex}.md\:size-auto{width:auto;height:auto}.md\:w-4\/5{width:80%}.md\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.md\:grid-cols-\[13\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:13.5rem minmax(0,1fr)}.md\:gap-8{gap:calc(var(--spacing) * 8)}.md\:self-start{align-self:flex-start}.md\:rounded-xl{border-radius:calc(var(--radius) * 1.5)}.md\:px-2{padding-inline:calc(var(--spacing) * 2)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:py-2{padding-block:calc(var(--spacing) * 2)}.md\:pt-2{padding-top:calc(var(--spacing) * 2)}.md\:pt-4{padding-top:calc(var(--spacing) * 4)}.md\:pt-12{padding-top:calc(var(--spacing) * 12)}.md\:pr-2{padding-right:calc(var(--spacing) * 2)}.md\:pb-2{padding-bottom:calc(var(--spacing) * 2)}.md\:pl-2{padding-left:calc(var(--spacing) * 2)}.md\:text-\[2\.375rem\]{font-size:2.375rem}.md\:shadow-elevated{--tw-shadow:var(--shadow-ember-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (width>=64rem){.lg\:pointer-events-none{pointer-events:none}.lg\:top-\[calc\(6vh\+5\.25rem\)\]{top:calc(6vh + 5.25rem)}.lg\:left-0{left:0}.lg\:left-\[calc\(50\%-508px\)\]{left:calc(50% - 508px)}.lg\:left-\[calc\(50\%-560px\)\]{left:calc(50% - 560px)}.lg\:ml-0{margin-left:0}.lg\:ml-\[calc\(50\%-16rem\)\]{margin-left:calc(50% - 16rem)}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:inline{display:inline}.lg\:h-0{height:0}.lg\:h-\[calc\(100vh-27rem\)\]{height:calc(100vh - 27rem)}.lg\:h-auto{height:auto}.lg\:max-h-\[calc\(100vh-15rem\)\]{max-height:calc(100vh - 15rem)}.lg\:max-h-\[calc\(100vh-27rem\)\]{max-height:calc(100vh - 27rem)}.lg\:min-h-0{min-height:0}.lg\:min-h-\[6\.5rem\]{min-height:6.5rem}.lg\:min-h-\[360px\]{min-height:360px}.lg\:w-\(--pane\){width:var(--pane)}.lg\:w-\[32rem\]{width:32rem}.lg\:w-\[420px\]{width:420px}.lg\:flex-1{flex:1}.lg\:flex-none{flex:none}.lg\:origin-center{transform-origin:50%}.lg\:translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.lg\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.lg\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.lg\:grid-cols-\[5fr_7fr\]{grid-template-columns:5fr 7fr}.lg\:grid-cols-\[15rem_minmax\(0\,1fr\)\]{grid-template-columns:15rem minmax(0,1fr)}.lg\:grid-cols-\[minmax\(280px\,360px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:gap-10{gap:calc(var(--spacing) * 10)}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:gap-14{gap:calc(var(--spacing) * 14)}.lg\:rounded-tr-none{border-top-right-radius:0}.lg\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.lg\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.lg\:pt-3{padding-top:calc(var(--spacing) * 3)}.lg\:pt-\[6vh\]{padding-top:6vh}.lg\:text-left{text-align:left}.lg\:opacity-0{opacity:0}.lg\:opacity-100{opacity:1}.lg\:transition-\[margin\]{transition-property:margin;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.lg\:duration-700{--tw-duration:.7s;transition-duration:.7s}}@container (width>=36rem){.\@xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:ring-1:is(.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\:ring-border-soft:is(.dark *){--tw-ring-color:var(--border-soft)}@media (width>=48rem){.md\:dark\:ring-1:is(.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.md\:dark\:ring-border-soft:is(.dark *){--tw-ring-color:var(--border-soft)}}@media (pointer:coarse){.coarse\:-my-3{margin-block:calc(var(--spacing) * -3)}.coarse\:size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.coarse\:size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.coarse\:size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.coarse\:size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.coarse\:size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.coarse\:h-9{height:calc(var(--spacing) * 9)}.coarse\:h-10{height:calc(var(--spacing) * 10)}.coarse\:h-11{height:calc(var(--spacing) * 11)}.coarse\:h-14{height:calc(var(--spacing) * 14)}.coarse\:min-h-9{min-height:calc(var(--spacing) * 9)}.coarse\:min-h-11{min-height:calc(var(--spacing) * 11)}.coarse\:w-11{width:calc(var(--spacing) * 11)}.coarse\:min-w-11{min-width:calc(var(--spacing) * 11)}.coarse\:px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.coarse\:px-4{padding-inline:calc(var(--spacing) * 4)}.coarse\:py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.coarse\:py-3{padding-block:calc(var(--spacing) * 3)}.coarse\:opacity-100{opacity:1}}@media not all and (width>=40rem){@media (pointer:coarse){.max-sm\:coarse\:px-0{padding-inline:0}}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}@media not all and (width>=40rem){.max-sm\:\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-full>svg{width:100%;height:100%}}:root,.dark .tone-flip{--raw-primary:#e0531b;--raw-secondary:#f1f3f5;--raw-background:#faf8f5;--raw-sidebar:var(--paper);--contrast:1;--hue-success:150;--hue-danger:25;--hue-warning:70;--hue-info:264;--paper:oklch(from var(--raw-background) calc(.99 - (.02 * var(--contrast))) c h);--paper-2:oklch(from var(--raw-background) calc(.96 - (.03 * var(--contrast))) calc(c * 1.2) h);--paper-3:oklch(from var(--raw-background) calc(.94 - (.04 * var(--contrast))) calc(c * 1.5) h);--canvas:var(--paper);--canvas-dim:var(--paper-2);--canvas-darken:var(--paper-3);--ink:oklch(from var(--raw-background) calc(.22 + (.05 / var(--contrast))) calc(c * 1.2) h);--ink-2:oklch(from var(--raw-background) calc(.4 + (.05 / var(--contrast))) c h);--ink-3:oklch(from var(--raw-background) calc(.55 + (.05 / var(--contrast))) calc(c * .8) h);--ink-4:oklch(from var(--raw-background) calc(.7 + (.05 / var(--contrast))) calc(c * .6) h);--ember:oklch(from var(--raw-primary) l c h);--ember-strong:oklch(from var(--raw-primary) calc(l - (.08 * var(--contrast))) c h);--ember-tint:oklch(from var(--raw-primary) calc(.96 + .02 * (1 - var(--contrast))) calc(c * .2) h);--ember-veil:oklch(from var(--raw-primary) l c h / .1);--ember-mark:oklch(from var(--ember) min(l, .65) c h);--ember-strong-mark:oklch(from var(--ember-strong) min(l, .65) c h);--ember-on:oklch(from var(--ember-mark) calc(.16 + .83 * clamp(0, (.65 - l) * 1000, 1)) .01 h);--cobalt:var(--info);--cobalt-tint:var(--info-tint);--moss:var(--success);--moss-tint:var(--success-tint);--second:oklch(from var(--raw-second,var(--success)) min(l, .5) c h);--second-tint:oklch(from var(--raw-second,var(--success)) .95 calc(c * .3) h);--amber:var(--warning);--amber-tint:var(--warning-tint);--rose:var(--danger);--rose-tint:var(--danger-tint);--danger:oklch(from var(--raw-background) calc(.64 - (.05 * var(--contrast))) .2 var(--hue-danger));--danger-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .03 var(--hue-danger));--success:oklch(from var(--raw-background) calc(.48 - (.04 * var(--contrast))) .13 var(--hue-success));--success-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .025 var(--hue-success));--warning:oklch(from var(--raw-background) calc(.78 - (.04 * var(--contrast))) .16 var(--hue-warning));--warning-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .04 var(--hue-warning));--info:oklch(from var(--raw-background) calc(.5 - (.05 * var(--contrast))) .18 var(--hue-info));--info-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .025 var(--hue-info));--link:var(--info);--secondary-accent:oklch(from var(--raw-secondary) l c h);--secondary-accent-strong:oklch(from var(--raw-secondary) calc(l - (.08 * var(--contrast))) c h);--f-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--f-ui:"Geist", ui-sans-serif, system-ui, sans-serif;--f-mono:"Geist Mono", ui-monospace, monospace;--t-display-l:56px;--t-display:40px;--t-h1:28px;--t-h2:20px;--t-h3:16px;--t-body:14px;--t-ui:13px;--t-small:12px;--t-micro:11px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--r-1:2px;--r-2:4px;--r-3:6px;--r-4:12px;--r-5:16px;--r-pill:999px;--shadow-ember-elevated:0 1px 2px oklch(from var(--raw-background) .4 c h / .04), 0 6px 18px oklch(from var(--raw-background) .2 c h / .06);--shadow-ember-overlay:0 2px 4px oklch(from var(--raw-background) .2 c h / .08), 0 10px 28px oklch(from var(--raw-background) .15 c h / .16);--shadow-ember-soft:0 1px 2px oklch(from var(--raw-background) .4 c h / .03), 0 3px 10px oklch(from var(--raw-background) .3 c h / .05);--e-1:0 1px 0 oklch(from var(--raw-background) .7 c h / .08);--e-2:var(--shadow-ember-elevated);--e-3:0 1px 2px oklch(from var(--raw-background) .4 c h / .04), 0 6px 18px oklch(from var(--raw-background) .4 c h / .06), 0 18px 36px oklch(from var(--raw-background) .4 c h / .07);--shadow-shell-secondary-edge:0 2px 24px -8px oklch(from var(--raw-background) .35 c h / .14);--shadow-shell-copilot-edge:0 2px 24px -8px oklch(from var(--raw-background) .35 c h / .14);--row-compact:28px;--row-default:32px;--row-comfy:40px;--shell-row:44px;--shell-footer:48px;--input-inset:oklch(from var(--raw-background) calc(calc(.99 - (.02 * var(--contrast))) - (.12 * var(--contrast))) calc(c * 3) h / .65)}.dark,.tone-flip{--raw-sidebar:oklch(from var(--raw-background) calc(.09 + (.03 * var(--contrast))) calc(c * 1.2) h);--second:oklch(from var(--raw-second,var(--success)) max(l, .72) c h);--second-tint:oklch(from var(--raw-second,var(--success)) .25 calc(c * .35) h);--paper:oklch(from var(--raw-background) calc(.12 + (.03 * var(--contrast))) c h);--paper-2:oklch(from var(--raw-background) calc(.15 + (.02 * var(--contrast))) calc(c * 1.2) h);--paper-3:oklch(from var(--raw-background) calc(.18 + (.01 * var(--contrast))) calc(c * 1.5) h);--ink:oklch(from var(--raw-background) calc(.92 - (.05 / var(--contrast))) calc(c * 1.2) h);--ink-2:oklch(from var(--raw-background) calc(.85 - (.05 / var(--contrast))) c h);--ink-3:oklch(from var(--raw-background) calc(.72 - (.05 / var(--contrast))) calc(c * .8) h);--ink-4:oklch(from var(--raw-background) calc(.58 - (.05 / var(--contrast))) calc(c * .6) h);--input-inset:oklch(from var(--raw-background) calc(calc(.12 + (.03 * var(--contrast))) + (.21 * var(--contrast))) calc(c * 2.8) h / .65);--ember-strong:oklch(from var(--raw-primary) calc(l + (.08 * var(--contrast))) c h);--ember-tint:oklch(from var(--raw-primary) calc(.18 + .02 * var(--contrast)) calc(c * .35) h);--ember-mark:oklch(from var(--ember) max(l, .6) c h);--ember-strong-mark:oklch(from var(--ember-strong) max(l, .6) c h);--secondary-accent-strong:oklch(from var(--raw-secondary) calc(l + (.08 * var(--contrast))) c h);--danger:oklch(from var(--raw-background) calc(.62 + (.05 * var(--contrast))) .2 var(--hue-danger));--danger-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .05 var(--hue-danger));--success:oklch(from var(--raw-background) calc(.65 + (.05 * var(--contrast))) .13 var(--hue-success));--success-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .04 var(--hue-success));--warning:oklch(from var(--raw-background) calc(.78 + (.04 * var(--contrast))) .16 var(--hue-warning));--warning-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .05 var(--hue-warning));--info:oklch(from var(--raw-background) calc(.72 + (.05 * var(--contrast))) .18 var(--hue-info));--info-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .04 var(--hue-info));--shadow-ember-elevated:0 1px 2px oklch(0% 0 0/.22), 0 6px 18px oklch(0% 0 0/.28);--shadow-ember-overlay:0 2px 4px oklch(0% 0 0/.3), 0 10px 28px oklch(0% 0 0/.44);--shadow-ember-soft:0 1px 2px oklch(0% 0 0/.18), 0 3px 10px oklch(0% 0 0/.22);--e-2:var(--shadow-ember-elevated);--e-3:0 1px 2px oklch(0% 0 0/.22), 0 6px 18px oklch(0% 0 0/.28), 0 24px 48px oklch(0% 0 0/.32);--shadow-shell-secondary-edge:0 2px 28px -10px oklch(0% 0 0/.5);--shadow-shell-copilot-edge:0 2px 28px -10px oklch(0% 0 0/.5)}.tone-flip{--canvas:var(--paper);--canvas-dim:var(--paper-2);--canvas-darken:var(--paper-3);--cobalt:var(--info);--cobalt-tint:var(--info-tint);--moss:var(--success);--moss-tint:var(--success-tint);--amber:var(--warning);--amber-tint:var(--warning-tint);--rose:var(--danger);--rose-tint:var(--danger-tint);--link:var(--info);color:var(--foreground)}@media (prefers-contrast:more){:root{--contrast:1.4}}.theme-high-contrast{--contrast:1.4}.theme-deuteranopia,.theme-protanopia{--hue-success:195;--hue-danger:15;--hue-warning:50}.theme-tritanopia{--hue-success:165;--hue-warning:10;--hue-info:140}:root,.dark .tone-flip{--background:var(--canvas);--foreground:var(--ink);--card:oklch(100% 0 0);--card-foreground:var(--ink);--popover:oklch(from var(--card) l c h / .72);--popover-foreground:var(--ink);--primary:var(--ember-strong);--primary-foreground:oklch(from var(--primary) calc(.16 + .83 * clamp(0, (.65 - l) * 1000, 1)) .01 h);--secondary:var(--paper-2);--secondary-foreground:var(--ink);--muted:var(--paper-3)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--muted:color-mix(in oklch, var(--paper-3) 32%, var(--card))}}:root,.dark .tone-flip{--muted-foreground:var(--ink-3);--accent:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--accent:color-mix(in oklch, var(--ink) calc(7.5% * var(--contrast)), var(--paper))}}:root,.dark .tone-flip{--accent-foreground:var(--ink);--destructive:var(--danger);--destructive-foreground:oklch(99% 0 0);--border:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--border:color-mix(in oklch, var(--ink) calc(12% * var(--contrast)), var(--paper))}}:root,.dark .tone-flip{--border-soft:var(--border)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--border-soft:color-mix(in oklch, var(--border) 50%, transparent)}}:root,.dark .tone-flip{--input:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--input:color-mix(in oklch, var(--ink) calc(10% * var(--contrast)), var(--paper))}}:root,.dark .tone-flip{--ring:var(--ember)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--ring:color-mix(in oklch, var(--ember) 45%, transparent)}}:root,.dark .tone-flip{--link:var(--info);--chart-1:var(--moss);--chart-2:var(--cobalt);--chart-3:var(--ember);--chart-4:var(--amber);--chart-5:var(--rose);--sidebar:oklch(from var(--raw-sidebar) l c h);--sidebar-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-primary:var(--ember);--sidebar-primary-foreground:var(--ember-on);--sidebar-accent:oklch(from var(--sidebar) calc(l + .05 * (1 - 2 * l)) c h);--sidebar-accent-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-border:var(--sidebar)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--sidebar-border:color-mix(in oklch, var(--sidebar) 82%, var(--sidebar-foreground))}}:root,.dark .tone-flip{--sidebar-ring:var(--sidebar-primary)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--sidebar-ring:color-mix(in oklch, var(--sidebar-primary) 65%, transparent)}}:root,.dark .tone-flip{--font-sans:var(--f-ui);--font-heading:var(--f-display);--font-mono:var(--f-mono);--radius:.5rem;--radius-button:.5rem;--shadow-2xs:var(--e-1);--shadow-xs:0 1px 2px oklch(40% var(--seed-neutral-c) var(--seed-neutral-h) / .06);--shadow-sm:var(--e-2);--shadow-md:0 4px 12px oklch(40% var(--seed-neutral-c) var(--seed-neutral-h) / .08);--shadow-lg:var(--e-3);--shadow-xl:0 20px 40px oklch(35% var(--seed-neutral-c) var(--seed-neutral-h) / .12);--shadow-2xl:0 24px 48px oklch(30% var(--seed-neutral-c) var(--seed-neutral-h) / .16)}.dark,.tone-flip{--background:var(--canvas);--foreground:var(--ink);--card:var(--paper-2);--card-foreground:var(--ink);--popover:oklch(from var(--card) l c h / .78);--popover-foreground:var(--ink);--primary:var(--ember-strong);--primary-foreground:oklch(from var(--primary) calc(.16 + .83 * clamp(0, (.65 - l) * 1000, 1)) .01 h);--secondary:var(--paper-2);--secondary-foreground:var(--ink-2);--muted:var(--paper-3)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--muted:color-mix(in oklch, var(--paper-3) 45%, var(--card))}}.dark,.tone-flip{--muted-foreground:var(--ink-3);--accent:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--accent:color-mix(in oklch, var(--ink) calc(10% * var(--contrast)), var(--paper))}}.dark,.tone-flip{--accent-foreground:var(--ink);--destructive:var(--danger);--destructive-foreground:oklch(99% 0 0);--border:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--border:color-mix(in oklch, var(--ink) calc(12% * var(--contrast)), var(--paper))}}.dark,.tone-flip{--border-soft:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--border-soft:color-mix(in oklch, var(--border) 50%, transparent)}}.dark,.tone-flip{--input:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--input:color-mix(in oklch, var(--ink) calc(10% * var(--contrast)), var(--paper))}}.dark,.tone-flip{--ring:var(--ember)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--ring:color-mix(in oklch, var(--ember) 55%, transparent)}}.dark,.tone-flip{--link:var(--info);--chart-1:var(--moss);--chart-2:var(--cobalt);--chart-3:var(--ember);--chart-4:var(--amber);--chart-5:var(--rose);--sidebar:oklch(from var(--raw-sidebar) l c h);--sidebar-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-primary:var(--ember);--sidebar-primary-foreground:var(--ember-on);--sidebar-accent:oklch(from var(--sidebar) calc(l + .05 * (1 - 2 * l)) c h);--sidebar-accent-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-border:var(--sidebar)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--sidebar-border:color-mix(in oklch, var(--sidebar) 82%, var(--sidebar-foreground))}}.dark,.tone-flip{--sidebar-ring:var(--sidebar-primary)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--sidebar-ring:color-mix(in oklch, var(--sidebar-primary) 55%, transparent)}}.dark,.tone-flip{--shadow-2xs:0 1px 0 oklch(0% 0 0/.2);--shadow-xs:0 1px 2px oklch(0% 0 0/.25);--shadow-sm:var(--e-2);--shadow-md:0 4px 14px oklch(0% 0 0/.32);--shadow-lg:var(--e-3);--shadow-xl:0 20px 40px oklch(0% 0 0/.42);--shadow-2xl:0 24px 56px oklch(0% 0 0/.48)}:root{--raw-sidebar:var(--paper-2)}.dark{--stage:var(--brand-stage,var(--engenty-stage,oklch(34% .14 264)));--raw-background:var(--stage);--raw-sidebar:oklch(from var(--stage) calc(l - .04) c h);--paper:oklch(from var(--stage) l c h);--card:oklch(from var(--stage) calc(l + .06) calc(c * .95) h);--paper-2:oklch(from var(--stage) calc(l + .1) calc(c * .92) h);--paper-3:oklch(from var(--stage) calc(l + .14) calc(c * .88) h);--ink:oklch(from var(--stage) .97 .015 h);--ink-2:oklch(from var(--stage) .9 .03 h);--ink-3:oklch(from var(--stage) .8 .05 h);--ink-4:oklch(from var(--stage) .68 .06 h);--accent:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark{--accent:color-mix(in oklch, var(--ink) 10%, var(--card))}}.dark{--border:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark{--border:color-mix(in oklch, var(--ink) 18%, var(--card))}}.dark{--input:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark{--input:color-mix(in oklch, var(--ink) 24%, var(--card))}}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{-webkit-text-size-adjust:100%;font-size:16px}@media ((width>768px)) and ((width<1280px)){html[data-studio]{font-size:14px}}body{background:var(--background);color:var(--foreground);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100dvh}@media (pointer:coarse){input:not([type=checkbox],[type=radio],[type=range],[type=color]),textarea,select{font-size:16px}}button,a,[role=switch]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.safe-top{padding-top:env(safe-area-inset-top)}.safe-x{padding-left:max(1.25rem, env(safe-area-inset-left));padding-right:max(1.25rem, env(safe-area-inset-right))}.safe-bottom{padding-bottom:max(.75rem, env(safe-area-inset-bottom))}@media (width<=767px){.action-bar{bottom:var(--kb,0px);z-index:10;padding:.75rem 1.25rem max(.75rem, env(safe-area-inset-bottom));background:var(--background);margin-inline:-1.25rem;position:sticky}@supports (color:color-mix(in lab, red, red)){.action-bar{background:color-mix(in oklch, var(--background) 88%, transparent)}}.action-bar{-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border-soft)}.keyboard-open .action-bar{padding-bottom:.75rem}}:root.in-app{--f-ui:-apple-system, BlinkMacSystemFont, "SF Pro Text", Roboto, system-ui, sans-serif;--f-mono:ui-monospace, "SF Mono", Menlo, monospace}::selection{color:var(--ink);background:var(--ember-veil)}:root{--focus-line:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root{--focus-line:color-mix(in oklch, var(--ink) 26%, transparent)}}:root{--focus-glow:transparent}:focus-visible{outline:1.5px solid var(--focus-line);outline-offset:2px}:is(input,textarea,select):focus-visible{outline:none}.theme-high-contrast{--focus-line:var(--ember);--focus-glow:var(--ember-veil)}@media (prefers-contrast:more){:root{--focus-line:var(--ember);--focus-glow:var(--ember-veil)}}.theme-high-contrast :focus-visible{outline-width:2px}@media (prefers-contrast:more){:focus-visible{outline-width:2px}}.prose-zen{color:var(--ink);overflow-wrap:anywhere;line-height:1.6}.prose-zen>*+*{margin-top:.75em}.prose-zen h1,.prose-zen h2,.prose-zen h3{font-family:var(--f-display);margin-top:1.25em;font-weight:600;line-height:1.25}.prose-zen h1{font-size:1.5rem}.prose-zen h2{font-size:1.2rem}.prose-zen h3{font-size:1.05rem}.prose-zen ul,.prose-zen ol{padding-left:1.25em}.prose-zen ul{list-style:outside}.prose-zen ol{list-style:decimal}.prose-zen a{color:var(--ember-strong-mark);text-underline-offset:2px;text-decoration:underline}.prose-zen table{border-collapse:collapse;width:100%;font-size:.9em}@media (width<=639px){.prose-zen table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}.prose-zen pre{overflow-x:auto}.prose-zen img{max-width:100%;height:auto}.prose-zen th,.prose-zen td{border-bottom:1px solid var(--border-soft);text-align:left;padding:.4em .6em}.prose-zen code{font-family:var(--f-mono);background:var(--paper-2);border-radius:4px;padding:.1em .3em;font-size:.9em}.prose-zen blockquote{border-left:3px solid var(--border);color:var(--ink-2);padding-left:.9em}.swatch::-webkit-color-swatch-wrapper{padding:0}.swatch::-webkit-color-swatch{border-radius:calc(var(--radius) * .5);border:0}.swatch::-moz-color-swatch{border-radius:calc(var(--radius) * .5);border:0}.react-flow__attribution{display:none}.react-flow__edge-path{stroke:var(--ink-4);stroke-width:1.5px}.react-flow__handle{opacity:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.animate-rise{animation:.45s cubic-bezier(.2,.7,.2,1) backwards rise}@keyframes unfold{0%{opacity:0;transform:translateY(-6px)scale(.94)}}.animate-unfold{animation:.2s cubic-bezier(.2,.7,.2,1) backwards unfold}@keyframes dock{0%{opacity:0;transform:translateY(calc(100% + 16px))}to{opacity:1;transform:none}}.animate-dock{animation:.32s cubic-bezier(.2,.7,.2,1) both dock}@keyframes settle{0%{opacity:0;transform:translate(28px)}}.animate-settle{animation:.6s cubic-bezier(.2,.7,.2,1) .3s both settle}@keyframes step-deeper{0%{opacity:0;transform:translate(1.5rem)}}@keyframes step-back{0%{opacity:0;transform:translate(-1.5rem)}}.animate-step-deeper{animation:.2s ease-out backwards step-deeper}.animate-step-back{animation:.2s ease-out backwards step-back}@keyframes breathe{0%,to{opacity:.5}50%{opacity:1}}.animate-breathe{animation:2.4s ease-in-out infinite breathe}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.72)}}.animate-pulse-dot{animation:1.2s ease-in-out infinite pulse-dot}@keyframes typing{0%,60%,to{opacity:.45;transform:none}30%{opacity:1;transform:translateY(-3px)}}.animate-typing{animation:1.2s ease-in-out infinite typing}dialog.media-sheet{color:#fff;background:#000;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}dialog.media-sheet::backdrop{background:oklch(20% .01 60/.5)}@media (width>=640px) and (height>=560px){dialog.media-sheet{border-radius:calc(var(--radius) * 2);width:min(720px,100% - 48px);height:min(640px,100dvh - 48px);margin:auto;overflow:hidden}}@media (prefers-reduced-motion:reduce){.animate-rise,.animate-unfold,.animate-dock,.animate-settle,.animate-step-deeper,.animate-step-back,.animate-breathe,.animate-pulse-dot,.animate-typing{animation:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
973
+ <style rel="stylesheet" crossorigin>@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-border-default:1px solid #bbb;--xy-node-border-selected-default:1px solid #555;--xy-handle-background-color-default:#333;--xy-selection-background-color-default:#9696b41a;--xy-selection-border-default:1px dotted #9b9b9bcc;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));min-width:5px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{justify-content:center;align-items:center;width:26px;height:26px;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border:var(--xy-node-border,var(--xy-node-border-default));color:var(--xy-node-color,var(--xy-node-color-default))}.react-flow__node-input.selected,.react-flow__node-input:focus,.react-flow__node-input:focus-visible,.react-flow__node-default.selected,.react-flow__node-default:focus,.react-flow__node-default:focus-visible,.react-flow__node-output.selected,.react-flow__node-output:focus,.react-flow__node-output:focus-visible,.react-flow__node-group.selected,.react-flow__node-group:focus,.react-flow__node-group:focus-visible{border:var(--xy-node-border-selected,var(--xy-node-border-selected-default));outline:none}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}@layer theme{:root,:host{--color-amber-200:oklch(92.4% .12 95.746);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-violet-300:oklch(81.1% .111 293.571);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-neutral-900:oklch(20.5% 0 none);--color-neutral-950:oklch(14.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-md:12px;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--f-ui);--default-mono-font-family:var(--f-mono);--color-card:var(--card);--color-ember:var(--ember-mark);--color-ink-3:var(--ink-3);--color-moss:var(--moss);--color-cobalt:var(--cobalt);--color-amber:var(--amber)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html:not([data-desktop]) :is(button,select,summary,[role=button],[role=switch],label:has(input[type=file]),input[type=color]):not(:disabled){cursor:pointer}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-3{inset:calc(var(--spacing) * 3)}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-x-6{inset-inline:calc(var(--spacing) * 6)}.inset-y-0{inset-block:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-1{top:calc(var(--spacing) * -1)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.-top-2\.5{top:calc(var(--spacing) * -2.5)}.-top-3{top:calc(var(--spacing) * -3)}.-top-4{top:calc(var(--spacing) * -4)}.-top-28{top:calc(var(--spacing) * -28)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-5{top:calc(var(--spacing) * 5)}.top-6{top:calc(var(--spacing) * 6)}.top-7{top:calc(var(--spacing) * 7)}.top-8{top:calc(var(--spacing) * 8)}.top-9{top:calc(var(--spacing) * 9)}.top-10{top:calc(var(--spacing) * 10)}.top-11{top:calc(var(--spacing) * 11)}.top-12{top:calc(var(--spacing) * 12)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.-right-1{right:calc(var(--spacing) * -1)}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.-right-10{right:calc(var(--spacing) * -10)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-9{right:calc(var(--spacing) * 9)}.right-full{right:100%}.-bottom-1{bottom:calc(var(--spacing) * -1)}.-bottom-5{bottom:calc(var(--spacing) * -5)}.bottom-0{bottom:0}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1{bottom:var(--spacing)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-12{bottom:calc(var(--spacing) * 12)}.bottom-\[22\%\]{bottom:22%}.bottom-full{bottom:100%}.-left-2\.5{left:calc(var(--spacing) * -2.5)}.-left-5{left:calc(var(--spacing) * -5)}.left-0{left:0}.left-0\.5{left:calc(var(--spacing) * .5)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.left-10{left:calc(var(--spacing) * 10)}.left-\[7px\]{left:7px}.left-full{left:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[61\]{z-index:61}.order-first{order:-9999}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-5{grid-column:span 5/span 5}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-6{grid-column-start:6}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-2{margin:calc(var(--spacing) * -2)}.m-0{margin:0}.m-2{margin:calc(var(--spacing) * 2)}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-5{margin-inline:calc(var(--spacing) * -5)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-5{margin-inline:calc(var(--spacing) * 5)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.-mt-3{margin-top:calc(var(--spacing) * -3)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-\[7px\]{margin-top:7px}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-1\.5{margin-right:calc(var(--spacing) * -1.5)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-\[0\.09em\]{margin-right:.09em}.mr-auto{margin-right:auto}.-mb-1\.5{margin-bottom:calc(var(--spacing) * -1.5)}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-1\.5{margin-left:calc(var(--spacing) * -1.5)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-\[0\.06em\]{margin-left:.06em}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.field-sizing-content{field-sizing:content}.aspect-\[5\/2\]{aspect-ratio:5/2}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[1280\/900\]{aspect-ratio:1280/900}.aspect-square{aspect-ratio:1}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-40{width:calc(var(--spacing) * 40);height:calc(var(--spacing) * 40)}.size-48{width:calc(var(--spacing) * 48);height:calc(var(--spacing) * 48)}.size-56{width:calc(var(--spacing) * 56);height:calc(var(--spacing) * 56)}.size-80{width:calc(var(--spacing) * 80);height:calc(var(--spacing) * 80)}.size-\[1\.125rem\]{width:1.125rem;height:1.125rem}.size-\[3px\]{width:3px;height:3px}.size-\[18px\]{width:18px;height:18px}.size-\[54px\]{width:54px;height:54px}.size-\[72px\]{width:72px;height:72px}.size-\[84px\]{width:84px;height:84px}.size-full{width:100%;height:100%}.h-\(--sheet\){height:var(--sheet)}.h-0{height:0}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-13{height:calc(var(--spacing) * 13)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-40{height:calc(var(--spacing) * 40)}.h-\[3px\]{height:3px}.h-\[28rem\]{height:28rem}.h-\[38\%\]{height:38%}.h-\[46dvh\]{height:46dvh}.h-\[46vh\]{height:46vh}.h-\[70dvh\]{height:70dvh}.h-\[max\(0\.75rem\,env\(safe-area-inset-bottom\)\)\]{height:max(.75rem, env(safe-area-inset-bottom))}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[36rem\]{max-height:36rem}.max-h-\[38vh\]{max-height:38vh}.max-h-\[46vh\]{max-height:46vh}.max-h-\[60dvh\]{max-height:60dvh}.max-h-\[68dvh\]{max-height:68dvh}.max-h-\[70dvh\]{max-height:70dvh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[76vh\]{max-height:76vh}.max-h-\[200px\]{max-height:200px}.max-h-\[calc\(100dvh-32px\)\]{max-height:calc(100dvh - 32px)}.max-h-\[calc\(100dvh-48px\)\]{max-height:calc(100dvh - 48px)}.min-h-0{min-height:0}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-\[6\.5rem\]{min-height:6.5rem}.min-h-\[7rem\]{min-height:7rem}.min-h-\[50vh\]{min-height:50vh}.min-h-\[60dvh\]{min-height:60dvh}.min-h-\[124px\]{min-height:124px}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.w-0{width:0}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[19rem\]{width:19rem}.w-\[280px\]{width:280px}.w-\[380px\]{width:380px}.w-\[400px\]{width:400px}.w-\[calc\(100\%\+0\.5rem\)\]{width:calc(100% + .5rem)}.w-\[calc\(100\%\+1rem\)\]{width:calc(100% + 1rem)}.w-\[calc\(100\%-0\.75rem\)\]{width:calc(100% - .75rem)}.w-\[calc\(100\%-32px\)\]{width:calc(100% - 32px)}.w-\[calc\(100\%-48px\)\]{width:calc(100% - 48px)}.w-\[min\(21rem\,calc\(100\%-2\.5rem\)\)\]{width:min(21rem,100% - 2.5rem)}.w-\[min\(32rem\,calc\(100vw-2rem\)\)\]{width:min(32rem,100vw - 2rem)}.w-\[min\(68\%\,320px\)\]{width:min(68%,320px)}.w-\[var\(--ai-disc\)\]{width:var(--ai-disc)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-\[16rem\]{max-width:16rem}.max-w-\[45\%\]{max-width:45%}.max-w-\[60\%\]{max-width:60%}.max-w-\[64rem\]{max-width:64rem}.max-w-\[85\%\]{max-width:85%}.max-w-\[88rem\]{max-width:88rem}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[620px\]{max-width:620px}.max-w-\[640px\]{max-width:640px}.max-w-\[720px\]{max-width:720px}.max-w-\[760px\]{max-width:760px}.max-w-\[1240px\]{max-width:1240px}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[calc\(100vw-16px\)\]{max-width:calc(100vw - 16px)}.max-w-\[calc\(100vw-20px\)\]{max-width:calc(100vw - 20px)}.max-w-\[calc\(100vw-32px\)\]{max-width:calc(100vw - 32px)}.max-w-\[min\(32rem\,100\%\)\]{max-width:min(32rem,100%)}.max-w-\[min\(36rem\,100\%\)\]{max-width:min(36rem,100%)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-60{min-width:calc(var(--spacing) * 60)}.min-w-\[7\.5rem\]{min-width:7.5rem}.min-w-\[8\.5rem\]{min-width:8.5rem}.min-w-\[9rem\]{min-width:9rem}.flex-1{flex:1}.flex-\[1_1_14rem\]{flex:14rem}.flex-\[1_1_16rem\]{flex:16rem}.flex-\[1_1_18rem\]{flex:18rem}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-56{flex-basis:calc(var(--spacing) * 56)}.basis-\[12rem\]{flex-basis:12rem}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.origin-bottom{transform-origin:bottom}.origin-top{transform-origin:top}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[2px\]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[22px\]{--tw-translate-x:22px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-3{--tw-translate-y:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[0\.5px\]{--tw-translate-y:.5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-scale-x-100{--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-\[0\.56\]{scale:.56}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.scroll-mt-14{scroll-margin-top:calc(var(--spacing) * 14)}.\[scrollbar-width\:none\]{scrollbar-width:none}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1\.5rem_1fr\]{grid-template-columns:1.5rem 1fr}.grid-cols-\[1\.25rem_1fr\]{grid-template-columns:1.25rem 1fr}.grid-cols-\[1\.75rem_1fr_auto\]{grid-template-columns:1.75rem 1fr auto}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[28px_minmax\(0\,1fr\)\]{grid-template-columns:28px minmax(0,1fr)}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.grid-cols-\[minmax\(0\,8rem\)_1fr_auto\]{grid-template-columns:minmax(0,8rem) 1fr auto}.grid-cols-\[repeat\(auto-fill\,minmax\(10rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(120px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(150px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(184px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(184px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(200px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(260px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(min\(100\%\,16rem\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:var(--spacing)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-2\.5{column-gap:calc(var(--spacing) * 2.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-3\.5{column-gap:calc(var(--spacing) * 3.5)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-7{column-gap:calc(var(--spacing) * 7)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}.gap-y-6{row-gap:calc(var(--spacing) * 6)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-soft>:not(:last-child)){border-color:var(--border-soft)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) * 2)}.rounded-3xl{border-radius:calc(var(--radius) * 3)}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-\[1\.375rem\]{border-radius:1.375rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[14px\]{border-radius:14px}.rounded-\[18px\]{border-radius:18px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .75)}.rounded-xl{border-radius:calc(var(--radius) * 1.5)}.rounded-t-3xl{border-top-left-radius:calc(var(--radius) * 3);border-top-right-radius:calc(var(--radius) * 3)}.rounded-tl-md{border-top-left-radius:calc(var(--radius) * .75)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.5);border-bottom-left-radius:calc(var(--radius) * 1.5)}.rounded-br-md{border-bottom-right-radius:calc(var(--radius) * .75)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-\(color\:--on\)\/40{border-color:var(--on)}@supports (color:color-mix(in lab, red, red)){.border-\(color\:--on\)\/40{border-color:color-mix(in oklab, var(--on) 40%, transparent)}}.border-\[\#1d1a17\]\/25{border-color:oklab(22.0098% .00284923 .00685373/.25)}.border-border{border-color:var(--border)}.border-border-soft{border-color:var(--border-soft)}.border-ember,.border-ember\/50{border-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.border-ember\/50{border-color:color-mix(in oklab, var(--ember-mark) 50%, transparent)}}.border-focus{border-color:var(--focus-line)}.border-ink-4{border-color:var(--ink-4)}.border-input{border-color:var(--input)}.border-rose\/40{border-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.border-rose\/40{border-color:color-mix(in oklab, var(--rose) 40%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.border-white\/30{border-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.border-white\/45{border-color:#ffffff73}@supports (color:color-mix(in lab, red, red)){.border-white\/45{border-color:color-mix(in oklab, var(--color-white) 45%, transparent)}}.border-white\/90{border-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.border-white\/90{border-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-\(--coin-bg\,var\(--color-card\)\){background-color:var(--coin-bg,var(--color-card))}.bg-\(color\:--dot\){background-color:var(--dot)}.bg-\(color\:--on\)\/20{background-color:var(--on)}@supports (color:color-mix(in lab, red, red)){.bg-\(color\:--on\)\/20{background-color:color-mix(in oklab, var(--on) 20%, transparent)}}.bg-\(color\:--panel\){background-color:var(--panel)}.bg-\(color\:--pick\){background-color:var(--pick)}.bg-\(color\:--pick-mark\){background-color:var(--pick-mark)}.bg-\(color\:--tile\){background-color:var(--tile)}.bg-\[\#0f1424\]{background-color:#0f1424}.bg-\[\#e5484d\]{background-color:#e5484d}.bg-\[oklch\(20\%_0\.01_60\/0\.22\)\]{background-color:oklch(20% .01 60/.22)}.bg-\[oklch\(20\%_0\.03_260\)\]{background-color:oklch(20% .03 260)}.bg-accent{background-color:var(--accent)}.bg-amber{background-color:var(--amber)}.bg-amber-tint{background-color:var(--amber-tint)}.bg-background{background-color:var(--background)}.bg-black{background-color:var(--color-black)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--border)}.bg-border-soft{background-color:var(--border-soft)}.bg-card,.bg-card\/70{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/70{background-color:color-mix(in oklab, var(--card) 70%, transparent)}}.bg-card\/90{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/90{background-color:color-mix(in oklab, var(--card) 90%, transparent)}}.bg-card\/95{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/95{background-color:color-mix(in oklab, var(--card) 95%, transparent)}}.bg-cobalt{background-color:var(--cobalt)}.bg-cobalt-tint{background-color:var(--cobalt-tint)}.bg-ember{background-color:var(--ember-mark)}.bg-ember-strong{background-color:var(--ember-strong-mark)}.bg-ember-tint,.bg-ember-tint\/40{background-color:var(--ember-tint)}@supports (color:color-mix(in lab, red, red)){.bg-ember-tint\/40{background-color:color-mix(in oklab, var(--ember-tint) 40%, transparent)}}.bg-ember-veil{background-color:var(--ember-veil)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground{background-color:var(--foreground)}.bg-ink{background-color:var(--ink)}.bg-ink-3{background-color:var(--ink-3)}.bg-ink-4,.bg-ink-4\/40{background-color:var(--ink-4)}@supports (color:color-mix(in lab, red, red)){.bg-ink-4\/40{background-color:color-mix(in oklab, var(--ink-4) 40%, transparent)}}.bg-moss{background-color:var(--moss)}.bg-moss-tint{background-color:var(--moss-tint)}.bg-muted{background-color:var(--muted)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-paper{background-color:var(--paper)}.bg-paper-2,.bg-paper-2\/60{background-color:var(--paper-2)}@supports (color:color-mix(in lab, red, red)){.bg-paper-2\/60{background-color:color-mix(in oklab, var(--paper-2) 60%, transparent)}}.bg-paper-3{background-color:var(--paper-3)}.bg-primary{background-color:var(--primary)}.bg-rose{background-color:var(--rose)}.bg-rose-tint{background-color:var(--rose-tint)}.bg-rose\/25{background-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.bg-rose\/25{background-color:color-mix(in oklab, var(--rose) 25%, transparent)}}.bg-second{background-color:var(--second)}.bg-second-tint{background-color:var(--second-tint)}.bg-sidebar{background-color:var(--sidebar)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/12{background-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.bg-white\/12{background-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.bg-white\/25{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.bg-white\/40{background-color:#fff6}@supports (color:color-mix(in lab, red, red)){.bg-white\/40{background-color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.bg-linear-to-l{--tw-gradient-position:to left}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-l{--tw-gradient-position:to left in oklab}}.bg-linear-to-l{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-t{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-t{--tw-gradient-position:to top in oklab}}.bg-linear-to-t{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/75{--tw-gradient-from:#000000bf}@supports (color:color-mix(in lab, red, red)){.from-black\/75{--tw-gradient-from:color-mix(in oklab, var(--color-black) 75%, transparent)}}.from-black\/75{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-paper\/85{--tw-gradient-from:var(--paper)}@supports (color:color-mix(in lab, red, red)){.from-paper\/85{--tw-gradient-from:color-mix(in oklab, var(--paper) 85%, transparent)}}.from-paper\/85{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-50\%{--tw-gradient-from-position:50%}.via-paper\/55{--tw-gradient-via:var(--paper)}@supports (color:color-mix(in lab, red, red)){.via-paper\/55{--tw-gradient-via:color-mix(in oklab, var(--paper) 55%, transparent)}}.via-paper\/55{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-ember-tint{--tw-gradient-to:var(--ember-tint);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-paper\/0{--tw-gradient-to:var(--paper)}@supports (color:color-mix(in lab, red, red)){.to-paper\/0{--tw-gradient-to:color-mix(in oklab, var(--paper) 0%, transparent)}}.to-paper\/0{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-50\%{--tw-gradient-to-position:50%}.\[mask-image\:linear-gradient\(to_top\,black_45\%\,transparent\)\]{-webkit-mask-image:linear-gradient(#0000,#000 55%);mask-image:linear-gradient(#0000,#000 55%)}.fill-amber{fill:var(--amber)}.fill-current{fill:currentColor}.stroke-ember{stroke:var(--ember-mark)}.stroke-paper-3{stroke:var(--paper-3)}.stroke-rose{stroke:var(--rose)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\.5{padding-inline:calc(var(--spacing) * 4.5)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-\[3px\]{padding-block:3px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-\[calc\(0\.375rem\+env\(safe-area-inset-top\)\)\]{padding-top:calc(.375rem + env(safe-area-inset-top))}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pr-32{padding-right:calc(var(--spacing) * 32)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-\[calc\(0\.375rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(.375rem + env(safe-area-inset-bottom))}.pb-\[max\(0\.375rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.375rem, env(safe-area-inset-bottom))}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-5\.5{padding-left:calc(var(--spacing) * 5.5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-\[-1px\]{vertical-align:-1px}.align-\[-2px\]{vertical-align:-2px}.align-\[1px\]{vertical-align:1px}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-display{font-family:var(--f-display)}.font-mono{font-family:var(--f-mono)}.font-sans{font-family:var(--f-ui)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.625rem\]{font-size:.625rem}.text-\[0\.875rem\]{font-size:.875rem}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[0\.78125rem\]{font-size:.78125rem}.text-\[0\.84375rem\]{font-size:.84375rem}.text-\[1\.5rem\]{font-size:1.5rem}.text-\[1\.25rem\]{font-size:1.25rem}.text-\[1\.75rem\]{font-size:1.75rem}.text-\[1\.125rem\]{font-size:1.125rem}.text-\[1\.375rem\]{font-size:1.375rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[1\.625rem\]{font-size:1.625rem}.text-\[1\.875rem\]{font-size:1.875rem}.text-\[1\.1875rem\]{font-size:1.1875rem}.text-\[1rem\]{font-size:1rem}.text-\[2\.5rem\]{font-size:2.5rem}.text-\[2\.25rem\]{font-size:2.25rem}.text-\[2\.75rem\]{font-size:2.75rem}.text-\[2\.125rem\]{font-size:2.125rem}.text-\[2rem\]{font-size:2rem}.text-\[3\.5rem\]{font-size:3.5rem}.text-\[14px\]{font-size:14px}.text-\[clamp\(28px\,3vw\,40px\)\]{font-size:clamp(28px,3vw,40px)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.06\]{--tw-leading:1.06;line-height:1.06}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.08\]{--tw-leading:1.08;line-height:1.08}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[-0\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.07em\]{--tw-tracking:.07em;letter-spacing:.07em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-balance{text-wrap:balance}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.\[tab-size\:2\]{tab-size:2}.text-\(color\:--dot\){color:var(--dot)}.text-\(color\:--moss\){color:var(--moss)}.text-\(color\:--on\),.text-\(color\:--on\)\/40{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/40{color:color-mix(in oklab, var(--on) 40%, transparent)}}.text-\(color\:--on\)\/55{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/55{color:color-mix(in oklab, var(--on) 55%, transparent)}}.text-\(color\:--on\)\/60{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/60{color:color-mix(in oklab, var(--on) 60%, transparent)}}.text-\(color\:--on\)\/65{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/65{color:color-mix(in oklab, var(--on) 65%, transparent)}}.text-\(color\:--on\)\/70{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/70{color:color-mix(in oklab, var(--on) 70%, transparent)}}.text-\(color\:--on\)\/75{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/75{color:color-mix(in oklab, var(--on) 75%, transparent)}}.text-\(color\:--on\)\/80{color:var(--on)}@supports (color:color-mix(in lab, red, red)){.text-\(color\:--on\)\/80{color:color-mix(in oklab, var(--on) 80%, transparent)}}.text-\(color\:--pick\){color:var(--pick)}.text-\(color\:--pick-ink\){color:var(--pick-ink)}.text-\(color\:--rose\){color:var(--rose)}.text-\[\#1d1a17\]\/40{color:oklab(22.0098% .00284923 .00685373/.4)}.text-\[oklch\(32\%_0\.15_262\)\]{color:oklch(32% .15 262)}.text-amber{color:var(--amber)}.text-amber-200{color:var(--color-amber-200)}.text-background{color:var(--background)}.text-black{color:var(--color-black)}.text-cobalt{color:var(--cobalt)}.text-ember{color:var(--ember-mark)}.text-ember-on{color:var(--ember-on)}.text-ember-strong{color:var(--ember-strong-mark)}.text-emerald-300{color:var(--color-emerald-300)}.text-foreground{color:var(--foreground)}.text-ink{color:var(--ink)}.text-ink-2{color:var(--ink-2)}.text-ink-3{color:var(--ink-3)}.text-ink-4{color:var(--ink-4)}.text-moss{color:var(--moss)}.text-muted-foreground{color:var(--muted-foreground)}.text-neutral-900{color:var(--color-neutral-900)}.text-paper{color:var(--paper)}.text-primary-foreground{color:var(--primary-foreground)}.text-rose{color:var(--rose)}.text-second{color:var(--second)}.text-sky-300{color:var(--color-sky-300)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-transparent{color:#0000}.text-violet-300{color:var(--color-violet-300)}.text-white{color:var(--color-white)}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\/50{color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.text-white\/55{color:#ffffff8c}@supports (color:color-mix(in lab, red, red)){.text-white\/55{color:color-mix(in oklab, var(--color-white) 55%, transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\/60{color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/75{color:#ffffffbf}@supports (color:color-mix(in lab, red, red)){.text-white\/75{color:color-mix(in oklab, var(--color-white) 75%, transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.text-white\/95{color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.text-white\/95{color:color-mix(in oklab, var(--color-white) 95%, transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.underline-offset-\[3px\]{text-underline-offset:3px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.caret-white{caret-color:var(--color-white)}.accent-\[var\(--ember\)\]{accent-color:var(--ember)}.accent-\[var\(--second\)\]{accent-color:var(--second)}.accent-ink{accent-color:var(--ink)}.opacity-0{opacity:0}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[0\.14\]{opacity:.14}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--border-soft\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--border-soft));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_100vmax_rgb\(0_0_0\/0\.35\)\]{--tw-shadow:0 0 0 100vmax var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_80px_20px_rgba\(52\,211\,153\,0\.3\)\]{--tw-shadow:0 0 80px 20px var(--tw-shadow-color,#34d3994d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_80px_20px_rgba\(244\,63\,94\,0\.25\)\]{--tw-shadow:0 0 80px 20px var(--tw-shadow-color,#f43f5e40);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_0_oklch\(0\%_0_0\/0\.08\)\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,oklch(0% 0 0/.08));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_3px_rgba\(0\,0\,0\,0\.25\)\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_2px_8px_oklch\(0\%_0_0\/0\.22\)\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,oklch(0% 0 0/.22));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_6px_24px_oklch\(88\%_0\.17_150\/0\.35\)\]{--tw-shadow:0 6px 24px var(--tw-shadow-color,oklch(88% .17 150/.35));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_oklch\(0\%_0_0\/0\.02\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,oklch(0% 0 0/.02));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevated{--tw-shadow:var(--shadow-ember-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-overlay{--tw-shadow:var(--shadow-ember-overlay);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-soft{--tw-shadow:var(--shadow-ember-soft);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\(color\:--panel-ring\){--tw-ring-color:var(--panel-ring)}.ring-\(color\:--tile-ring\){--tw-ring-color:var(--tile-ring)}.ring-amber\/30{--tw-ring-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.ring-amber\/30{--tw-ring-color:color-mix(in oklab, var(--amber) 30%, transparent)}}.ring-amber\/60{--tw-ring-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.ring-amber\/60{--tw-ring-color:color-mix(in oklab, var(--amber) 60%, transparent)}}.ring-border{--tw-ring-color:var(--border)}.ring-border-soft{--tw-ring-color:var(--border-soft)}.ring-card{--tw-ring-color:var(--card)}.ring-ember{--tw-ring-color:var(--ember-mark)}.ring-ember-strong\/25{--tw-ring-color:var(--ember-strong-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember-strong\/25{--tw-ring-color:color-mix(in oklab, var(--ember-strong-mark) 25%, transparent)}}.ring-ember-veil{--tw-ring-color:var(--ember-veil)}.ring-ember\/30{--tw-ring-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember\/30{--tw-ring-color:color-mix(in oklab, var(--ember-mark) 30%, transparent)}}.ring-ember\/40{--tw-ring-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember\/40{--tw-ring-color:color-mix(in oklab, var(--ember-mark) 40%, transparent)}}.ring-ember\/60{--tw-ring-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.ring-ember\/60{--tw-ring-color:color-mix(in oklab, var(--ember-mark) 60%, transparent)}}.ring-emerald-400\/70{--tw-ring-color:#00d294b3}@supports (color:color-mix(in lab, red, red)){.ring-emerald-400\/70{--tw-ring-color:color-mix(in oklab, var(--color-emerald-400) 70%, transparent)}}.ring-focus{--tw-ring-color:var(--focus-line)}.ring-focus-glow{--tw-ring-color:var(--focus-glow)}.ring-ink{--tw-ring-color:var(--ink)}.ring-ink-4{--tw-ring-color:var(--ink-4)}.ring-ink\/80{--tw-ring-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.ring-ink\/80{--tw-ring-color:color-mix(in oklab, var(--ink) 80%, transparent)}}.ring-input{--tw-ring-color:var(--input)}.ring-moss{--tw-ring-color:var(--moss)}.ring-paper{--tw-ring-color:var(--paper)}.ring-rose,.ring-rose\/30{--tw-ring-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.ring-rose\/30{--tw-ring-color:color-mix(in oklab, var(--rose) 30%, transparent)}}.ring-rose\/40{--tw-ring-color:var(--rose)}@supports (color:color-mix(in lab, red, red)){.ring-rose\/40{--tw-ring-color:color-mix(in oklab, var(--rose) 40%, transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-white\/15{--tw-ring-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.ring-white\/15{--tw-ring-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.ring-white\/50{--tw-ring-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.ring-white\/50{--tw-ring-color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-sidebar{--tw-ring-offset-color:var(--sidebar)}.ring-offset-transparent{--tw-ring-offset-color:transparent}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[1px\]{--tw-backdrop-blur:blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\,filter\,color\,transform\]{transition-property:background,filter,color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,color\,box-shadow\,filter\]{transition-property:background-color,color,box-shadow,filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,color\,box-shadow\]{transition-property:background-color,color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,bottom\]{transition-property:left,bottom;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,translate\]{transition-property:left,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,scale\,left\]{transition-property:opacity,scale,left;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,background\,color\]{transition-property:width,background,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,margin\,opacity\]{transition-property:width,margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-\[cubic-bezier\(0\.3\,0\.7\,0\.2\,1\)\]{--tw-ease:cubic-bezier(.3,.7,.2,1);transition-timing-function:cubic-bezier(.3,.7,.2,1)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\[-webkit-touch-callout\:none\]{-webkit-touch-callout:none}.ring-inset{--tw-ring-inset:inset}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *),.group-open\/r\:rotate-90:is(:where(.group\/r):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:bg-ember\/70:is(:where(.group):hover *){background-color:var(--ember-mark)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-ember\/70:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--ember-mark) 70%, transparent)}}.group-hover\:bg-ink-4:is(:where(.group):hover *){background-color:var(--ink-4)}.group-hover\:text-\(color\:--on\)\/80:is(:where(.group):hover *){color:var(--on)}@supports (color:color-mix(in lab, red, red)){.group-hover\:text-\(color\:--on\)\/80:is(:where(.group):hover *){color:color-mix(in oklab, var(--on) 80%, transparent)}}.group-hover\:text-ember:is(:where(.group):hover *){color:var(--ember-mark)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/card\:opacity-100:is(:where(.group\/card):hover *),.group-hover\/font\:opacity-100:is(:where(.group\/font):hover *),.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *),.group-hover\/rule\:opacity-100:is(:where(.group\/rule):hover *),.group-hover\/section\:opacity-100:is(:where(.group\/section):hover *){opacity:1}}.group-focus-visible\:bg-ember:is(:where(.group):focus-visible *){background-color:var(--ember-mark)}.group-focus-visible\:opacity-0:is(:where(.group):focus-visible *){opacity:0}.group-focus-visible\:opacity-100:is(:where(.group):focus-visible *){opacity:1}.group-active\:h-16:is(:where(.group):active *){height:calc(var(--spacing) * 16)}.group-active\:w-14:is(:where(.group):active *){width:calc(var(--spacing) * 14)}.group-active\:bg-ember:is(:where(.group):active *){background-color:var(--ember-mark)}@media (hover:hover){.group-enabled\:group-hover\:translate-x-0\.5:is(:where(.group):enabled *):is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}}.peer-checked\:border-ember:is(:where(.peer):checked~*){border-color:var(--ember-mark)}.peer-checked\:bg-ember-tint:is(:where(.peer):checked~*){background-color:var(--ember-tint)}.peer-checked\:text-ink:is(:where(.peer):checked~*){color:var(--ink)}.peer-focus-visible\:outline-\[1\.5px\]:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:1.5px}.peer-focus-visible\:outline-offset-2:is(:where(.peer):focus-visible~*){outline-offset:2px}.peer-focus-visible\:outline-\(--focus-line\):is(:where(.peer):focus-visible~*){outline-color:var(--focus-line)}.peer-focus-visible\:outline-solid:is(:where(.peer):focus-visible~*){--tw-outline-style:solid;outline-style:solid}.peer-disabled\:pointer-events-none:is(:where(.peer):disabled~*){pointer-events:none}.peer-disabled\:line-through:is(:where(.peer):disabled~*){text-decoration-line:line-through}.peer-disabled\:opacity-60:is(:where(.peer):disabled~*){opacity:.6}.selection\:bg-sky-400\/30 ::selection{background-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.selection\:bg-sky-400\/30 ::selection{background-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.selection\:bg-sky-400\/30::selection{background-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.selection\:bg-sky-400\/30::selection{background-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.placeholder\:truncate::placeholder{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.placeholder\:text-ink-4::placeholder{color:var(--ink-4)}.placeholder\:text-transparent::placeholder{color:#0000}.placeholder\:text-white\/55::placeholder{color:#ffffff8c}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/55::placeholder{color:color-mix(in oklab, var(--color-white) 55%, transparent)}}.backdrop\:bg-\[oklch\(20\%_0\.01_60\/0\.28\)\]::backdrop{background-color:oklch(20% .01 60/.28)}.backdrop\:backdrop-blur-\[2px\]::backdrop{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-x-1:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * -1)}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:-inset-y-2\.5:before{content:var(--tw-content);inset-block:calc(var(--spacing) * -2.5)}.before\:-top-4:before{content:var(--tw-content);top:calc(var(--spacing) * -4)}.before\:h-4:before{content:var(--tw-content);height:calc(var(--spacing) * 4)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:border-0:first-child{border-style:var(--tw-border-style);border-width:0}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.first\:border-l-0:first-child{border-left-style:var(--tw-border-style);border-left-width:0}.first\:pt-0:first-child{padding-top:0}.first\:pt-1:first-child{padding-top:var(--spacing)}.first\:pl-0:first-child{padding-left:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}.open\:ring-ink-4\/40:is([open],:popover-open,:open){--tw-ring-color:var(--ink-4)}@supports (color:color-mix(in lab, red, red)){.open\:ring-ink-4\/40:is([open],:popover-open,:open){--tw-ring-color:color-mix(in oklab, var(--ink-4) 40%, transparent)}}.empty\:hidden:empty{display:none}.focus-within\:border-focus:focus-within{border-color:var(--focus-line)}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-4:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-focus:focus-within{--tw-ring-color:var(--focus-line)}.focus-within\:ring-focus-glow:focus-within{--tw-ring-color:var(--focus-glow)}@media (hover:hover){.hover\:w-\[var\(--ai-long\)\]:hover{width:var(--ai-long)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-ember:hover{border-color:var(--ember-mark)}.hover\:border-ink-4:hover{border-color:var(--ink-4)}.hover\:bg-\(color\:--tile-hover\):hover{background-color:var(--tile-hover)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-card:hover,.hover\:bg-card\/60:hover{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-card\/60:hover{background-color:color-mix(in oklab, var(--card) 60%, transparent)}}.hover\:bg-ember-tint:hover{background-color:var(--ember-tint)}.hover\:bg-ink\/10:hover{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-ink\/10:hover{background-color:color-mix(in oklab, var(--ink) 10%, transparent)}}.hover\:bg-paper-2:hover,.hover\:bg-paper-2\/70:hover{background-color:var(--paper-2)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-paper-2\/70:hover{background-color:color-mix(in oklab, var(--paper-2) 70%, transparent)}}.hover\:bg-paper-3:hover{background-color:var(--paper-3)}.hover\:bg-primary:hover,.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-rose-tint:hover{background-color:var(--rose-tint)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:bg-white\/15:hover{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/15:hover{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.hover\:bg-white\/25:hover{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/25:hover{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.hover\:bg-white\/90:hover{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/90:hover{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.hover\:text-\(color\:--on\):hover{color:var(--on)}.hover\:text-ink:hover{color:var(--ink)}.hover\:text-ink-2:hover{color:var(--ink-2)}.hover\:text-ink-3:hover{color:var(--ink-3)}.hover\:text-primary-foreground:hover{color:var(--primary-foreground)}.hover\:text-rose:hover{color:var(--rose)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-elevated:hover{--tw-shadow:var(--shadow-ember-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-soft:hover{--tw-shadow:var(--shadow-ember-soft);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-border:hover{--tw-ring-color:var(--border)}.hover\:ring-border-soft:hover{--tw-ring-color:var(--border-soft)}.hover\:ring-ember:hover{--tw-ring-color:var(--ember-mark)}.hover\:ring-ink-4:hover{--tw-ring-color:var(--ink-4)}.hover\:brightness-105:hover{--tw-brightness:brightness(105%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-\[1\.06\]:hover{--tw-brightness:brightness(1.06);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-ember:focus{border-color:var(--ember-mark)}.focus\:border-focus:focus{border-color:var(--focus-line)}.focus\:border-white\/60:focus{border-color:#fff9}@supports (color:color-mix(in lab, red, red)){.focus\:border-white\/60:focus{border-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.focus\:bg-card:focus{background-color:var(--card)}.focus\:bg-paper:focus{background-color:var(--paper)}.focus\:text-ink:focus{color:var(--ink)}.focus\:opacity-100:focus{opacity:1}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-border:focus{--tw-ring-color:var(--border)}.focus\:ring-focus-glow:focus{--tw-ring-color:var(--focus-glow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus-visible\:w-\[var\(--ai-long\)\]:focus-visible{width:var(--ai-long)}.focus-visible\:border-focus:focus-visible{border-color:var(--focus-line)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-focus:focus-visible{--tw-ring-color:var(--focus-line)}.focus-visible\:ring-focus-glow:focus-visible{--tw-ring-color:var(--focus-glow)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}.active\:cursor-grabbing:active{cursor:grabbing}.active\:brightness-95:active{--tw-brightness:brightness(95%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media (hover:hover){.enabled\:hover\:brightness-105:enabled:hover{--tw-brightness:brightness(105%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:line-through:disabled{text-decoration-line:line-through}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.has-\[\:focus-visible\]\:ring-2:has(:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\:focus-visible\]\:ring-focus:has(:focus-visible){--tw-ring-color:var(--focus-line)}.has-\[\[aria-expanded\=true\]\]\:opacity-100:has([aria-expanded=true]){opacity:1}.aria-pressed\:bg-foreground[aria-pressed=true]{background-color:var(--foreground)}.aria-pressed\:text-background[aria-pressed=true]{color:var(--background)}.aria-pressed\:ring-2[aria-pressed=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.aria-pressed\:ring-current[aria-pressed=true]{--tw-ring-color:currentcolor}.data-\[open\=true\]\:w-\[var\(--ai-long\)\][data-open=true]{width:var(--ai-long)}.data-\[over\]\:border-focus[data-over]{border-color:var(--focus-line)}.data-\[over\]\:bg-paper-2[data-over]{background-color:var(--paper-2)}.data-\[over\]\:text-ink[data-over]{color:var(--ink)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media not all and (width>=420px){.max-\[420px\]\:hidden{display:none}}@media not all and (width>=64rem){.max-lg\:pointer-events-none{pointer-events:none}.max-lg\:left-1\/2{left:50%}.max-lg\:order-first{order:-9999}.max-lg\:hidden{display:none}.max-lg\:h-0{height:0}.max-lg\:h-\[148px\]{height:148px}.max-lg\:w-0{width:0}.max-lg\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.max-lg\:scale-\[0\.4\]{scale:.4}.max-lg\:scale-\[0\.6\]{scale:.6}.max-lg\:text-center{text-align:center}.max-lg\:opacity-0{opacity:0}.max-lg\:opacity-100{opacity:1}@media (prefers-reduced-motion:no-preference){.max-lg\:motion-safe\:transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.max-lg\:motion-safe\:duration-200{--tw-duration:.2s;transition-duration:.2s}}}@media not all and (width>=48rem){.max-md\:hidden{display:none}.max-md\:scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.max-md\:py-2{padding-block:calc(var(--spacing) * 2)}}@media not all and (width>=40rem){.max-sm\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-sm\:order-first{order:-9999}.max-sm\:col-span-3{grid-column:span 3/span 3}.max-sm\:m-0{margin:0}.max-sm\:-mx-3{margin-inline:calc(var(--spacing) * -3)}.max-sm\:ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.max-sm\:hidden{display:none}.max-sm\:aspect-square{aspect-ratio:1}.max-sm\:size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.max-sm\:h-dvh{height:100dvh}.max-sm\:max-h-none{max-height:none}.max-sm\:w-auto{width:auto}.max-sm\:w-full{width:100%}.max-sm\:max-w-none{max-width:none}.max-sm\:flex-1{flex:1}.max-sm\:basis-full{flex-basis:100%}.max-sm\:\[scrollbar-width\:none\]{scrollbar-width:none}.max-sm\:flex-col-reverse{flex-direction:column-reverse}.max-sm\:items-stretch{align-items:stretch}.max-sm\:overflow-x-auto{overflow-x:auto}.max-sm\:overflow-y-auto{overflow-y:auto}.max-sm\:rounded-none{border-radius:0}.max-sm\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.max-sm\:border-border-soft{border-color:var(--border-soft)}.max-sm\:px-0{padding-inline:0}.max-sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.max-sm\:pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.max-sm\:pr-10{padding-right:calc(var(--spacing) * 10)}.max-sm\:pb-4{padding-bottom:calc(var(--spacing) * 4)}.max-sm\:pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.max-sm\:font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}}@media (width>=40rem){.sm\:inset-x-10{inset-inline:calc(var(--spacing) * 10)}.sm\:-top-3\.5{top:calc(var(--spacing) * -3.5)}.sm\:top-8{top:calc(var(--spacing) * 8)}.sm\:-right-3\.5{right:calc(var(--spacing) * -3.5)}.sm\:right-4{right:calc(var(--spacing) * 4)}.sm\:bottom-4{bottom:calc(var(--spacing) * 4)}.sm\:bottom-8{bottom:calc(var(--spacing) * 8)}.sm\:order-none{order:0}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-start-auto{grid-column-start:auto}.sm\:row-start-auto{grid-row-start:auto}.sm\:-mx-7{margin-inline:calc(var(--spacing) * -7)}.sm\:mt-0\.5{margin-top:calc(var(--spacing) * .5)}.sm\:mt-6{margin-top:calc(var(--spacing) * 6)}.sm\:mr-1{margin-right:var(--spacing)}.sm\:-ml-2{margin-left:calc(var(--spacing) * -2)}.sm\:block{display:block}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:inline-flex{display:inline-flex}.sm\:size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.sm\:h-11{height:calc(var(--spacing) * 11)}.sm\:h-\[min\(calc\(100dvh-32px\)\,56rem\)\]{height:min(100dvh - 32px,56rem)}.sm\:h-\[min\(var\(--share-h\)\,calc\(100dvh-32px\)\)\]{height:min(var(--share-h), calc(100dvh - 32px))}.sm\:min-h-0{min-height:0}.sm\:min-h-\[136px\]{min-height:136px}.sm\:w-32{width:calc(var(--spacing) * 32)}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:w-\[var\(--drawer\)\]{width:var(--drawer)}.sm\:w-auto{width:auto}.sm\:max-w-2xl{max-width:var(--container-2xl)}.sm\:max-w-4xl{max-width:var(--container-4xl)}.sm\:max-w-\[34rem\]{max-width:34rem}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-1{flex:1}.sm\:basis-0{flex-basis:0}.sm\:\[grid-template-columns\:var\(--cols\)\]{grid-template-columns:var(--cols)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-\[1fr_2fr_auto\]{grid-template-columns:1fr 2fr auto}.sm\:grid-cols-\[5\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:5.5rem minmax(0,1fr)}.sm\:grid-cols-\[7\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:7.5rem minmax(0,1fr)}.sm\:grid-cols-\[9rem_minmax\(0\,1fr\)\]{grid-template-columns:9rem minmax(0,1fr)}.sm\:grid-cols-\[230px_minmax\(0\,1fr\)\]{grid-template-columns:230px minmax(0,1fr)}.sm\:grid-cols-\[minmax\(0\,1fr\)_12rem_auto\]{grid-template-columns:minmax(0,1fr) 12rem auto}.sm\:grid-cols-\[minmax\(0\,2fr\)_minmax\(0\,3fr\)_auto_auto\]{grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto auto}.sm\:grid-cols-\[repeat\(auto-fill\,minmax\(15rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.sm\:grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:justify-center{justify-content:center}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}.sm\:overflow-y-auto{overflow-y:auto}.sm\:rounded-2xl{border-radius:calc(var(--radius) * 2)}.sm\:rounded-t-2xl{border-top-left-radius:calc(var(--radius) * 2);border-top-right-radius:calc(var(--radius) * 2)}.sm\:bg-transparent{background-color:#0000}.sm\:p-0{padding:0}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-7{padding:calc(var(--spacing) * 7)}.sm\:px-2{padding-inline:calc(var(--spacing) * 2)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-7{padding-inline:calc(var(--spacing) * 7)}.sm\:px-10{padding-inline:calc(var(--spacing) * 10)}.sm\:py-16{padding-block:calc(var(--spacing) * 16)}.sm\:pt-4{padding-top:calc(var(--spacing) * 4)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pt-16{padding-top:calc(var(--spacing) * 16)}.sm\:pr-4{padding-right:calc(var(--spacing) * 4)}.sm\:pr-36{padding-right:calc(var(--spacing) * 36)}.sm\:pr-40{padding-right:calc(var(--spacing) * 40)}.sm\:pb-6{padding-bottom:calc(var(--spacing) * 6)}.sm\:pb-8{padding-bottom:calc(var(--spacing) * 8)}.sm\:pb-16{padding-bottom:calc(var(--spacing) * 16)}.sm\:pl-3{padding-left:calc(var(--spacing) * 3)}.sm\:pl-6{padding-left:calc(var(--spacing) * 6)}.sm\:text-\[1\.75rem\]{font-size:1.75rem}.sm\:text-\[2\.75rem\]{font-size:2.75rem}.sm\:text-\[2\.125rem\]{font-size:2.125rem}.sm\:text-\[2rem\]{font-size:2rem}.sm\:text-\[3\.25rem\]{font-size:3.25rem}.sm\:placeholder\:text-ink-4::placeholder{color:var(--ink-4)}}@media (width>=48rem){.md\:sticky{position:sticky}.md\:top-6{top:calc(var(--spacing) * 6)}.md\:mt-2{margin-top:calc(var(--spacing) * 2)}.md\:mt-8{margin-top:calc(var(--spacing) * 8)}.md\:hidden{display:none}.md\:inline-flex{display:inline-flex}.md\:size-auto{width:auto;height:auto}.md\:w-4\/5{width:80%}.md\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.md\:grid-cols-\[13\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:13.5rem minmax(0,1fr)}.md\:gap-8{gap:calc(var(--spacing) * 8)}.md\:self-start{align-self:flex-start}.md\:rounded-xl{border-radius:calc(var(--radius) * 1.5)}.md\:px-2{padding-inline:calc(var(--spacing) * 2)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:py-2{padding-block:calc(var(--spacing) * 2)}.md\:pt-2{padding-top:calc(var(--spacing) * 2)}.md\:pt-4{padding-top:calc(var(--spacing) * 4)}.md\:pt-12{padding-top:calc(var(--spacing) * 12)}.md\:pr-2{padding-right:calc(var(--spacing) * 2)}.md\:pb-2{padding-bottom:calc(var(--spacing) * 2)}.md\:pl-2{padding-left:calc(var(--spacing) * 2)}.md\:text-\[2\.375rem\]{font-size:2.375rem}.md\:shadow-elevated{--tw-shadow:var(--shadow-ember-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (width>=64rem){.lg\:pointer-events-none{pointer-events:none}.lg\:top-\[calc\(6vh\+5\.25rem\)\]{top:calc(6vh + 5.25rem)}.lg\:left-0{left:0}.lg\:left-\[calc\(50\%-508px\)\]{left:calc(50% - 508px)}.lg\:left-\[calc\(50\%-560px\)\]{left:calc(50% - 560px)}.lg\:ml-0{margin-left:0}.lg\:ml-\[calc\(50\%-16rem\)\]{margin-left:calc(50% - 16rem)}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:inline{display:inline}.lg\:h-0{height:0}.lg\:h-\[calc\(100vh-27rem\)\]{height:calc(100vh - 27rem)}.lg\:h-auto{height:auto}.lg\:max-h-\[calc\(100vh-15rem\)\]{max-height:calc(100vh - 15rem)}.lg\:max-h-\[calc\(100vh-27rem\)\]{max-height:calc(100vh - 27rem)}.lg\:min-h-0{min-height:0}.lg\:min-h-\[6\.5rem\]{min-height:6.5rem}.lg\:min-h-\[360px\]{min-height:360px}.lg\:w-\(--pane\){width:var(--pane)}.lg\:w-\[32rem\]{width:32rem}.lg\:w-\[420px\]{width:420px}.lg\:flex-1{flex:1}.lg\:flex-none{flex:none}.lg\:origin-center{transform-origin:50%}.lg\:translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.lg\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.lg\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.lg\:grid-cols-\[5fr_7fr\]{grid-template-columns:5fr 7fr}.lg\:grid-cols-\[15rem_minmax\(0\,1fr\)\]{grid-template-columns:15rem minmax(0,1fr)}.lg\:grid-cols-\[minmax\(280px\,360px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:gap-10{gap:calc(var(--spacing) * 10)}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:gap-14{gap:calc(var(--spacing) * 14)}.lg\:rounded-tr-none{border-top-right-radius:0}.lg\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.lg\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.lg\:pt-3{padding-top:calc(var(--spacing) * 3)}.lg\:pt-\[6vh\]{padding-top:6vh}.lg\:text-left{text-align:left}.lg\:opacity-0{opacity:0}.lg\:opacity-100{opacity:1}.lg\:transition-\[margin\]{transition-property:margin;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.lg\:duration-700{--tw-duration:.7s;transition-duration:.7s}}@container (width>=36rem){.\@xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:ring-1:is(.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\:ring-border-soft:is(.dark *){--tw-ring-color:var(--border-soft)}@media (width>=48rem){.md\:dark\:ring-1:is(.dark *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.md\:dark\:ring-border-soft:is(.dark *){--tw-ring-color:var(--border-soft)}}@media (pointer:coarse){.coarse\:-my-3{margin-block:calc(var(--spacing) * -3)}.coarse\:size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.coarse\:size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.coarse\:size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.coarse\:size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.coarse\:size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.coarse\:h-9{height:calc(var(--spacing) * 9)}.coarse\:h-10{height:calc(var(--spacing) * 10)}.coarse\:h-11{height:calc(var(--spacing) * 11)}.coarse\:h-14{height:calc(var(--spacing) * 14)}.coarse\:min-h-9{min-height:calc(var(--spacing) * 9)}.coarse\:min-h-11{min-height:calc(var(--spacing) * 11)}.coarse\:w-11{width:calc(var(--spacing) * 11)}.coarse\:min-w-11{min-width:calc(var(--spacing) * 11)}.coarse\:px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.coarse\:px-4{padding-inline:calc(var(--spacing) * 4)}.coarse\:py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.coarse\:py-3{padding-block:calc(var(--spacing) * 3)}.coarse\:opacity-100{opacity:1}}@media not all and (width>=40rem){@media (pointer:coarse){.max-sm\:coarse\:px-0{padding-inline:0}}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}@media not all and (width>=40rem){.max-sm\:\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-full>svg{width:100%;height:100%}}:root,.dark .tone-flip{--raw-primary:#e0531b;--raw-secondary:#f1f3f5;--raw-background:#faf8f5;--raw-sidebar:var(--paper);--contrast:1;--hue-success:150;--hue-danger:25;--hue-warning:70;--hue-info:264;--paper:oklch(from var(--raw-background) calc(.99 - (.02 * var(--contrast))) c h);--paper-2:oklch(from var(--raw-background) calc(.96 - (.03 * var(--contrast))) calc(c * 1.2) h);--paper-3:oklch(from var(--raw-background) calc(.94 - (.04 * var(--contrast))) calc(c * 1.5) h);--canvas:var(--paper);--canvas-dim:var(--paper-2);--canvas-darken:var(--paper-3);--ink:oklch(from var(--raw-background) calc(.22 + (.05 / var(--contrast))) calc(c * 1.2) h);--ink-2:oklch(from var(--raw-background) calc(.4 + (.05 / var(--contrast))) c h);--ink-3:oklch(from var(--raw-background) calc(.55 + (.05 / var(--contrast))) calc(c * .8) h);--ink-4:oklch(from var(--raw-background) calc(.7 + (.05 / var(--contrast))) calc(c * .6) h);--ember:oklch(from var(--raw-primary) l c h);--ember-strong:oklch(from var(--raw-primary) calc(l - (.08 * var(--contrast))) c h);--ember-tint:oklch(from var(--raw-primary) calc(.96 + .02 * (1 - var(--contrast))) calc(c * .2) h);--ember-veil:oklch(from var(--raw-primary) l c h / .1);--ember-mark:oklch(from var(--ember) min(l, .65) c h);--ember-strong-mark:oklch(from var(--ember-strong) min(l, .65) c h);--ember-on:oklch(from var(--ember-mark) calc(.16 + .83 * clamp(0, (.65 - l) * 1000, 1)) .01 h);--cobalt:var(--info);--cobalt-tint:var(--info-tint);--moss:var(--success);--moss-tint:var(--success-tint);--second:oklch(from var(--raw-second,var(--success)) min(l, .5) c h);--second-tint:oklch(from var(--raw-second,var(--success)) .95 calc(c * .3) h);--amber:var(--warning);--amber-tint:var(--warning-tint);--rose:var(--danger);--rose-tint:var(--danger-tint);--danger:oklch(from var(--raw-background) calc(.64 - (.05 * var(--contrast))) .2 var(--hue-danger));--danger-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .03 var(--hue-danger));--success:oklch(from var(--raw-background) calc(.48 - (.04 * var(--contrast))) .13 var(--hue-success));--success-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .025 var(--hue-success));--warning:oklch(from var(--raw-background) calc(.78 - (.04 * var(--contrast))) .16 var(--hue-warning));--warning-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .04 var(--hue-warning));--info:oklch(from var(--raw-background) calc(.5 - (.05 * var(--contrast))) .18 var(--hue-info));--info-tint:oklch(from var(--raw-background) calc(.98 - (.01 * var(--contrast))) .025 var(--hue-info));--link:var(--info);--secondary-accent:oklch(from var(--raw-secondary) l c h);--secondary-accent-strong:oklch(from var(--raw-secondary) calc(l - (.08 * var(--contrast))) c h);--f-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--f-ui:"Geist", ui-sans-serif, system-ui, sans-serif;--f-mono:"Geist Mono", ui-monospace, monospace;--t-display-l:56px;--t-display:40px;--t-h1:28px;--t-h2:20px;--t-h3:16px;--t-body:14px;--t-ui:13px;--t-small:12px;--t-micro:11px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--r-1:2px;--r-2:4px;--r-3:6px;--r-4:12px;--r-5:16px;--r-pill:999px;--shadow-ember-elevated:0 1px 2px oklch(from var(--raw-background) .4 c h / .04), 0 6px 18px oklch(from var(--raw-background) .2 c h / .06);--shadow-ember-overlay:0 2px 4px oklch(from var(--raw-background) .2 c h / .08), 0 10px 28px oklch(from var(--raw-background) .15 c h / .16);--shadow-ember-soft:0 1px 2px oklch(from var(--raw-background) .4 c h / .03), 0 3px 10px oklch(from var(--raw-background) .3 c h / .05);--e-1:0 1px 0 oklch(from var(--raw-background) .7 c h / .08);--e-2:var(--shadow-ember-elevated);--e-3:0 1px 2px oklch(from var(--raw-background) .4 c h / .04), 0 6px 18px oklch(from var(--raw-background) .4 c h / .06), 0 18px 36px oklch(from var(--raw-background) .4 c h / .07);--shadow-shell-secondary-edge:0 2px 24px -8px oklch(from var(--raw-background) .35 c h / .14);--shadow-shell-copilot-edge:0 2px 24px -8px oklch(from var(--raw-background) .35 c h / .14);--row-compact:28px;--row-default:32px;--row-comfy:40px;--shell-row:44px;--shell-footer:48px;--input-inset:oklch(from var(--raw-background) calc(calc(.99 - (.02 * var(--contrast))) - (.12 * var(--contrast))) calc(c * 3) h / .65)}.dark,.tone-flip{--raw-sidebar:oklch(from var(--raw-background) calc(.09 + (.03 * var(--contrast))) calc(c * 1.2) h);--second:oklch(from var(--raw-second,var(--success)) max(l, .72) c h);--second-tint:oklch(from var(--raw-second,var(--success)) .25 calc(c * .35) h);--paper:oklch(from var(--raw-background) calc(.12 + (.03 * var(--contrast))) c h);--paper-2:oklch(from var(--raw-background) calc(.15 + (.02 * var(--contrast))) calc(c * 1.2) h);--paper-3:oklch(from var(--raw-background) calc(.18 + (.01 * var(--contrast))) calc(c * 1.5) h);--ink:oklch(from var(--raw-background) calc(.92 - (.05 / var(--contrast))) calc(c * 1.2) h);--ink-2:oklch(from var(--raw-background) calc(.85 - (.05 / var(--contrast))) c h);--ink-3:oklch(from var(--raw-background) calc(.72 - (.05 / var(--contrast))) calc(c * .8) h);--ink-4:oklch(from var(--raw-background) calc(.58 - (.05 / var(--contrast))) calc(c * .6) h);--input-inset:oklch(from var(--raw-background) calc(calc(.12 + (.03 * var(--contrast))) + (.21 * var(--contrast))) calc(c * 2.8) h / .65);--ember-strong:oklch(from var(--raw-primary) calc(l + (.08 * var(--contrast))) c h);--ember-tint:oklch(from var(--raw-primary) calc(.18 + .02 * var(--contrast)) calc(c * .35) h);--ember-mark:oklch(from var(--ember) max(l, .6) c h);--ember-strong-mark:oklch(from var(--ember-strong) max(l, .6) c h);--secondary-accent-strong:oklch(from var(--raw-secondary) calc(l + (.08 * var(--contrast))) c h);--danger:oklch(from var(--raw-background) calc(.62 + (.05 * var(--contrast))) .2 var(--hue-danger));--danger-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .05 var(--hue-danger));--success:oklch(from var(--raw-background) calc(.65 + (.05 * var(--contrast))) .13 var(--hue-success));--success-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .04 var(--hue-success));--warning:oklch(from var(--raw-background) calc(.78 + (.04 * var(--contrast))) .16 var(--hue-warning));--warning-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .05 var(--hue-warning));--info:oklch(from var(--raw-background) calc(.72 + (.05 * var(--contrast))) .18 var(--hue-info));--info-tint:oklch(from var(--raw-background) calc(.18 + (.02 * var(--contrast))) .04 var(--hue-info));--shadow-ember-elevated:0 1px 2px oklch(0% 0 0/.22), 0 6px 18px oklch(0% 0 0/.28);--shadow-ember-overlay:0 2px 4px oklch(0% 0 0/.3), 0 10px 28px oklch(0% 0 0/.44);--shadow-ember-soft:0 1px 2px oklch(0% 0 0/.18), 0 3px 10px oklch(0% 0 0/.22);--e-2:var(--shadow-ember-elevated);--e-3:0 1px 2px oklch(0% 0 0/.22), 0 6px 18px oklch(0% 0 0/.28), 0 24px 48px oklch(0% 0 0/.32);--shadow-shell-secondary-edge:0 2px 28px -10px oklch(0% 0 0/.5);--shadow-shell-copilot-edge:0 2px 28px -10px oklch(0% 0 0/.5)}.tone-flip{--canvas:var(--paper);--canvas-dim:var(--paper-2);--canvas-darken:var(--paper-3);--cobalt:var(--info);--cobalt-tint:var(--info-tint);--moss:var(--success);--moss-tint:var(--success-tint);--amber:var(--warning);--amber-tint:var(--warning-tint);--rose:var(--danger);--rose-tint:var(--danger-tint);--link:var(--info);color:var(--foreground)}@media (prefers-contrast:more){:root{--contrast:1.4}}.theme-high-contrast{--contrast:1.4}.theme-deuteranopia,.theme-protanopia{--hue-success:195;--hue-danger:15;--hue-warning:50}.theme-tritanopia{--hue-success:165;--hue-warning:10;--hue-info:140}:root,.dark .tone-flip{--background:var(--canvas);--foreground:var(--ink);--card:oklch(100% 0 0);--card-foreground:var(--ink);--popover:oklch(from var(--card) l c h / .72);--popover-foreground:var(--ink);--primary:var(--ember-strong);--primary-foreground:oklch(from var(--primary) calc(.16 + .83 * clamp(0, (.65 - l) * 1000, 1)) .01 h);--secondary:var(--paper-2);--secondary-foreground:var(--ink);--muted:var(--paper-3)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--muted:color-mix(in oklch, var(--paper-3) 32%, var(--card))}}:root,.dark .tone-flip{--muted-foreground:var(--ink-3);--accent:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--accent:color-mix(in oklch, var(--ink) calc(7.5% * var(--contrast)), var(--paper))}}:root,.dark .tone-flip{--accent-foreground:var(--ink);--destructive:var(--danger);--destructive-foreground:oklch(99% 0 0);--border:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--border:color-mix(in oklch, var(--ink) calc(12% * var(--contrast)), var(--paper))}}:root,.dark .tone-flip{--border-soft:var(--border)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--border-soft:color-mix(in oklch, var(--border) 50%, transparent)}}:root,.dark .tone-flip{--input:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--input:color-mix(in oklch, var(--ink) calc(10% * var(--contrast)), var(--paper))}}:root,.dark .tone-flip{--ring:var(--ember)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--ring:color-mix(in oklch, var(--ember) 45%, transparent)}}:root,.dark .tone-flip{--link:var(--info);--chart-1:var(--moss);--chart-2:var(--cobalt);--chart-3:var(--ember);--chart-4:var(--amber);--chart-5:var(--rose);--sidebar:oklch(from var(--raw-sidebar) l c h);--sidebar-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-primary:var(--ember);--sidebar-primary-foreground:var(--ember-on);--sidebar-accent:oklch(from var(--sidebar) calc(l + .05 * (1 - 2 * l)) c h);--sidebar-accent-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-border:var(--sidebar)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--sidebar-border:color-mix(in oklch, var(--sidebar) 82%, var(--sidebar-foreground))}}:root,.dark .tone-flip{--sidebar-ring:var(--sidebar-primary)}@supports (color:color-mix(in lab, red, red)){:root,.dark .tone-flip{--sidebar-ring:color-mix(in oklch, var(--sidebar-primary) 65%, transparent)}}:root,.dark .tone-flip{--font-sans:var(--f-ui);--font-heading:var(--f-display);--font-mono:var(--f-mono);--radius:.5rem;--radius-button:.5rem;--shadow-2xs:var(--e-1);--shadow-xs:0 1px 2px oklch(40% var(--seed-neutral-c) var(--seed-neutral-h) / .06);--shadow-sm:var(--e-2);--shadow-md:0 4px 12px oklch(40% var(--seed-neutral-c) var(--seed-neutral-h) / .08);--shadow-lg:var(--e-3);--shadow-xl:0 20px 40px oklch(35% var(--seed-neutral-c) var(--seed-neutral-h) / .12);--shadow-2xl:0 24px 48px oklch(30% var(--seed-neutral-c) var(--seed-neutral-h) / .16)}.dark,.tone-flip{--background:var(--canvas);--foreground:var(--ink);--card:var(--paper-2);--card-foreground:var(--ink);--popover:oklch(from var(--card) l c h / .78);--popover-foreground:var(--ink);--primary:var(--ember-strong);--primary-foreground:oklch(from var(--primary) calc(.16 + .83 * clamp(0, (.65 - l) * 1000, 1)) .01 h);--secondary:var(--paper-2);--secondary-foreground:var(--ink-2);--muted:var(--paper-3)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--muted:color-mix(in oklch, var(--paper-3) 45%, var(--card))}}.dark,.tone-flip{--muted-foreground:var(--ink-3);--accent:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--accent:color-mix(in oklch, var(--ink) calc(10% * var(--contrast)), var(--paper))}}.dark,.tone-flip{--accent-foreground:var(--ink);--destructive:var(--danger);--destructive-foreground:oklch(99% 0 0);--border:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--border:color-mix(in oklch, var(--ink) calc(12% * var(--contrast)), var(--paper))}}.dark,.tone-flip{--border-soft:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--border-soft:color-mix(in oklch, var(--border) 50%, transparent)}}.dark,.tone-flip{--input:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--input:color-mix(in oklch, var(--ink) calc(10% * var(--contrast)), var(--paper))}}.dark,.tone-flip{--ring:var(--ember)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--ring:color-mix(in oklch, var(--ember) 55%, transparent)}}.dark,.tone-flip{--link:var(--info);--chart-1:var(--moss);--chart-2:var(--cobalt);--chart-3:var(--ember);--chart-4:var(--amber);--chart-5:var(--rose);--sidebar:oklch(from var(--raw-sidebar) l c h);--sidebar-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-primary:var(--ember);--sidebar-primary-foreground:var(--ember-on);--sidebar-accent:oklch(from var(--sidebar) calc(l + .05 * (1 - 2 * l)) c h);--sidebar-accent-foreground:oklch(from var(--sidebar) clamp(.15, (.62 - l) * 100, .98) calc(c * .06) h);--sidebar-border:var(--sidebar)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--sidebar-border:color-mix(in oklch, var(--sidebar) 82%, var(--sidebar-foreground))}}.dark,.tone-flip{--sidebar-ring:var(--sidebar-primary)}@supports (color:color-mix(in lab, red, red)){.dark,.tone-flip{--sidebar-ring:color-mix(in oklch, var(--sidebar-primary) 55%, transparent)}}.dark,.tone-flip{--shadow-2xs:0 1px 0 oklch(0% 0 0/.2);--shadow-xs:0 1px 2px oklch(0% 0 0/.25);--shadow-sm:var(--e-2);--shadow-md:0 4px 14px oklch(0% 0 0/.32);--shadow-lg:var(--e-3);--shadow-xl:0 20px 40px oklch(0% 0 0/.42);--shadow-2xl:0 24px 56px oklch(0% 0 0/.48)}:root{--raw-sidebar:var(--paper-2)}.dark{--stage:var(--brand-stage,var(--engenty-stage,oklch(34% .14 264)));--raw-background:var(--stage);--raw-sidebar:oklch(from var(--stage) calc(l - .04) c h);--paper:oklch(from var(--stage) l c h);--card:oklch(from var(--stage) calc(l + .06) calc(c * .95) h);--paper-2:oklch(from var(--stage) calc(l + .1) calc(c * .92) h);--paper-3:oklch(from var(--stage) calc(l + .14) calc(c * .88) h);--ink:oklch(from var(--stage) .97 .015 h);--ink-2:oklch(from var(--stage) .9 .03 h);--ink-3:oklch(from var(--stage) .8 .05 h);--ink-4:oklch(from var(--stage) .68 .06 h);--accent:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark{--accent:color-mix(in oklch, var(--ink) 10%, var(--card))}}.dark{--border:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark{--border:color-mix(in oklch, var(--ink) 18%, var(--card))}}.dark{--input:var(--ink)}@supports (color:color-mix(in lab, red, red)){.dark{--input:color-mix(in oklch, var(--ink) 24%, var(--card))}}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{-webkit-text-size-adjust:100%;font-size:16px}@media ((width>768px)) and ((width<1280px)){html[data-studio]{font-size:14px}}body{background:var(--background);color:var(--foreground);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100dvh}@media (pointer:coarse){input:not([type=checkbox],[type=radio],[type=range],[type=color]),textarea,select{font-size:16px}}button,a,[role=switch]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.safe-top{padding-top:env(safe-area-inset-top)}.safe-x{padding-left:max(1.25rem, env(safe-area-inset-left));padding-right:max(1.25rem, env(safe-area-inset-right))}.safe-bottom{padding-bottom:max(.75rem, env(safe-area-inset-bottom))}@media (width<=767px){.action-bar{bottom:var(--kb,0px);z-index:10;padding:.75rem 1.25rem max(.75rem, env(safe-area-inset-bottom));background:var(--background);margin-inline:-1.25rem;position:sticky}@supports (color:color-mix(in lab, red, red)){.action-bar{background:color-mix(in oklch, var(--background) 88%, transparent)}}.action-bar{-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border-soft)}.keyboard-open .action-bar{padding-top:.5rem;padding-bottom:.5rem}.keyboard-open .kb-hide{display:none}.keyboard-open .kb-tight{padding-top:1rem}.keyboard-open .kb-title{margin-bottom:1rem}.keyboard-open .kb-title h1{font-size:1.25rem}.keyboard-open :is(input,textarea,select,[contenteditable]){scroll-margin-top:1rem;scroll-margin-bottom:calc(var(--kb,0px) + 5rem)}}:root.in-app{--f-ui:-apple-system, BlinkMacSystemFont, "SF Pro Text", Roboto, system-ui, sans-serif;--f-mono:ui-monospace, "SF Mono", Menlo, monospace}::selection{color:var(--ink);background:var(--ember-veil)}:root{--focus-line:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root{--focus-line:color-mix(in oklch, var(--ink) 26%, transparent)}}:root{--focus-glow:transparent}:focus-visible{outline:1.5px solid var(--focus-line);outline-offset:2px}:is(input,textarea,select):focus-visible{outline:none}.theme-high-contrast{--focus-line:var(--ember);--focus-glow:var(--ember-veil)}@media (prefers-contrast:more){:root{--focus-line:var(--ember);--focus-glow:var(--ember-veil)}}.theme-high-contrast :focus-visible{outline-width:2px}@media (prefers-contrast:more){:focus-visible{outline-width:2px}}.prose-zen{color:var(--ink);overflow-wrap:anywhere;line-height:1.6}.prose-zen>*+*{margin-top:.75em}.prose-zen h1,.prose-zen h2,.prose-zen h3{font-family:var(--f-display);margin-top:1.25em;font-weight:600;line-height:1.25}.prose-zen h1{font-size:1.5rem}.prose-zen h2{font-size:1.2rem}.prose-zen h3{font-size:1.05rem}.prose-zen ul,.prose-zen ol{padding-left:1.25em}.prose-zen ul{list-style:outside}.prose-zen ol{list-style:decimal}.prose-zen a{color:var(--ember-strong-mark);text-underline-offset:2px;text-decoration:underline}.prose-zen table{border-collapse:collapse;width:100%;font-size:.9em}@media (width<=639px){.prose-zen table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}.prose-zen pre{overflow-x:auto}.prose-zen img{max-width:100%;height:auto}.prose-zen th,.prose-zen td{border-bottom:1px solid var(--border-soft);text-align:left;padding:.4em .6em}.prose-zen code{font-family:var(--f-mono);background:var(--paper-2);border-radius:4px;padding:.1em .3em;font-size:.9em}.prose-zen blockquote{border-left:3px solid var(--border);color:var(--ink-2);padding-left:.9em}.swatch::-webkit-color-swatch-wrapper{padding:0}.swatch::-webkit-color-swatch{border-radius:calc(var(--radius) * .5);border:0}.swatch::-moz-color-swatch{border-radius:calc(var(--radius) * .5);border:0}.react-flow__attribution{display:none}.react-flow__edge-path{stroke:var(--ink-4);stroke-width:1.5px}.react-flow__handle{opacity:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.animate-rise{animation:.45s cubic-bezier(.2,.7,.2,1) backwards rise}@keyframes unfold{0%{opacity:0;transform:translateY(-6px)scale(.94)}}.animate-unfold{animation:.2s cubic-bezier(.2,.7,.2,1) backwards unfold}@keyframes dock{0%{opacity:0;transform:translateY(calc(100% + 16px))}to{opacity:1;transform:none}}.animate-dock{animation:.32s cubic-bezier(.2,.7,.2,1) both dock}@keyframes settle{0%{opacity:0;transform:translate(28px)}}.animate-settle{animation:.6s cubic-bezier(.2,.7,.2,1) .3s both settle}@keyframes step-deeper{0%{opacity:0;transform:translate(1.5rem)}}@keyframes step-back{0%{opacity:0;transform:translate(-1.5rem)}}.animate-step-deeper{animation:.2s ease-out backwards step-deeper}.animate-step-back{animation:.2s ease-out backwards step-back}@keyframes breathe{0%,to{opacity:.5}50%{opacity:1}}.animate-breathe{animation:2.4s ease-in-out infinite breathe}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.72)}}.animate-pulse-dot{animation:1.2s ease-in-out infinite pulse-dot}@keyframes typing{0%,60%,to{opacity:.45;transform:none}30%{opacity:1;transform:translateY(-3px)}}.animate-typing{animation:1.2s ease-in-out infinite typing}dialog.media-sheet{color:#fff;background:#000;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}dialog.media-sheet::backdrop{background:oklch(20% .01 60/.5)}@media (width>=640px) and (height>=560px){dialog.media-sheet{border-radius:calc(var(--radius) * 2);width:min(720px,100% - 48px);height:min(640px,100dvh - 48px);margin:auto;overflow:hidden}}@media (prefers-reduced-motion:reduce){.animate-rise,.animate-unfold,.animate-dock,.animate-settle,.animate-step-deeper,.animate-step-back,.animate-breathe,.animate-pulse-dot,.animate-typing{animation:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
974
974
  /*$vite$:1*/</style>
975
975
  </head>
976
976
  <body>