morpheus-cli 0.9.1 → 0.9.4

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 (54) hide show
  1. package/README.md +18 -4
  2. package/dist/config/manager.js +11 -0
  3. package/dist/config/schemas.js +5 -0
  4. package/dist/http/api.js +3 -0
  5. package/dist/http/routers/danger.js +137 -0
  6. package/dist/runtime/audit/repository.js +2 -0
  7. package/dist/runtime/memory/sati/index.js +1 -1
  8. package/dist/runtime/memory/sati/service.js +27 -0
  9. package/dist/runtime/memory/session-embedding-worker.js +43 -36
  10. package/dist/runtime/oracle.js +30 -2
  11. package/dist/runtime/setup/__tests__/repository.test.js +115 -0
  12. package/dist/runtime/setup/repository.js +87 -0
  13. package/dist/runtime/tools/setup-tool.js +57 -0
  14. package/dist/ui/assets/AuditDashboard-C1f6Hbdw.js +1 -0
  15. package/dist/ui/assets/{Chat-ChsmnZzq.js → Chat-5AeRYuRj.js} +2 -2
  16. package/dist/ui/assets/{Chronos-kgO7IkEj.js → Chronos-BrKldYVw.js} +1 -1
  17. package/dist/ui/assets/{ConfirmationModal-D1BYPXJ4.js → ConfirmationModal-DsbS3XkJ.js} +1 -1
  18. package/dist/ui/assets/{Dashboard-DWB5NwQn.js → Dashboard-DvrTXLdo.js} +1 -1
  19. package/dist/ui/assets/{DeleteConfirmationModal-CgIMbyB7.js → DeleteConfirmationModal-BfSjv04R.js} +1 -1
  20. package/dist/ui/assets/{Logs-DGdRnEFi.js → Logs-B0ZYWs5x.js} +1 -1
  21. package/dist/ui/assets/MCPManager-BwHGTeNs.js +1 -0
  22. package/dist/ui/assets/{ModelPricing-DAk1sS7D.js → ModelPricing-CYhGRQr8.js} +1 -1
  23. package/dist/ui/assets/{Notifications-DMEq6EZR.js → Notifications-BYMAtVMq.js} +1 -1
  24. package/dist/ui/assets/{Pagination-JsiwxVNQ.js → Pagination-oTGieBLM.js} +1 -1
  25. package/dist/ui/assets/SatiMemories-I1vsYtP2.js +1 -0
  26. package/dist/ui/assets/SessionAudit-BCecQWde.js +9 -0
  27. package/dist/ui/assets/Settings-Cu4D-7tb.js +47 -0
  28. package/dist/ui/assets/Skills-lGU3I5DO.js +7 -0
  29. package/dist/ui/assets/Smiths-DnEH3nID.js +1 -0
  30. package/dist/ui/assets/Tasks-Bz92GPWK.js +1 -0
  31. package/dist/ui/assets/{TrinityDatabases-BmM1S9aQ.js → TrinityDatabases-BUY-3j7Q.js} +1 -1
  32. package/dist/ui/assets/{UsageStats-aAu2DFlb.js → UsageStats-Dr5eSgJc.js} +1 -1
  33. package/dist/ui/assets/{WebhookManager-DdnRSWl9.js → WebhookManager-DIASAC-1.js} +1 -1
  34. package/dist/ui/assets/{audit-CqszEkOd.js → audit-CcAEDbZh.js} +1 -1
  35. package/dist/ui/assets/{chronos-CPwFWid9.js → chronos-2Z9E96_1.js} +1 -1
  36. package/dist/ui/assets/{config-D0DePxKu.js → config-DdfK4DX6.js} +1 -1
  37. package/dist/ui/assets/index-D4fzIKy1.css +1 -0
  38. package/dist/ui/assets/{index-BxVeRyTh.js → index-Dpd1Mkgp.js} +5 -5
  39. package/dist/ui/assets/{mcp-Gjc3IZpO.js → mcp-BWMt8aY7.js} +1 -1
  40. package/dist/ui/assets/{skills-B5DnmnHW.js → skills-D7JjK7JH.js} +1 -1
  41. package/dist/ui/assets/{stats-BAse7jj0.js → stats-DoIhtLot.js} +1 -1
  42. package/dist/ui/assets/{vendor-icons-BVuQI-6R.js → vendor-icons-DMd9RGvJ.js} +1 -1
  43. package/dist/ui/index.html +3 -3
  44. package/dist/ui/sw.js +1 -1
  45. package/package.json +1 -1
  46. package/dist/ui/assets/AuditDashboard-nVV9KKFp.js +0 -1
  47. package/dist/ui/assets/MCPManager-BDjWMRRX.js +0 -1
  48. package/dist/ui/assets/SatiMemories-BxicQE35.js +0 -1
  49. package/dist/ui/assets/SessionAudit-CKJQf9LU.js +0 -9
  50. package/dist/ui/assets/Settings-CulMd4Qr.js +0 -41
  51. package/dist/ui/assets/Skills-DPoqYa8Y.js +0 -7
  52. package/dist/ui/assets/Smiths-Clamjlph.js +0 -1
  53. package/dist/ui/assets/Tasks-BfTkhB1J.js +0 -1
  54. package/dist/ui/assets/index-OLhpm8I7.css +0 -1
@@ -1,41 +0,0 @@
1
- import{j as s}from"./vendor-motion-C3CZ8ZlO.js";import{r as D}from"./vendor-react-DikRIOlj.js";import{u as de,Z as hr,m as he}from"./vendor-utils-D4NnWbOU.js";import{u as gr,c as vr}from"./chronos-CPwFWid9.js";import{T as w,S as K}from"./SelectInput-KVLsnfra.js";import{c as V,N as U,S as H}from"./config-D0DePxKu.js";import{d as br,X as yr}from"./vendor-icons-BVuQI-6R.js";import"./index-BxVeRyTh.js";function L({title:e,description:t,children:r}){return s.jsxs("div",{className:"border border-azure-border dark:border-matrix-primary rounded-lg p-6 bg-azure-surface/50 dark:bg-matrix-base/50",children:[s.jsxs("div",{className:"mb-4",children:[s.jsx("h3",{className:"text-lg font-medium text-azure-text-primary dark:text-matrix-highlight",children:e}),t&&s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mt-1",children:t})]}),s.jsx("div",{className:"space-y-4",children:r})]})}function p(e,t,r){function n(l,d){if(l._zod||Object.defineProperty(l,"_zod",{value:{def:d,constr:a,traits:new Set},enumerable:!1}),l._zod.traits.has(e))return;l._zod.traits.add(e),t(l,d);const m=a.prototype,f=Object.keys(m);for(let u=0;u<f.length;u++){const v=f[u];v in l||(l[v]=m[v].bind(l))}}const o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function a(l){var d;const m=r?.Parent?new i:this;n(m,l),(d=m._zod).deferred??(d.deferred=[]);for(const f of m._zod.deferred)f();return m}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:l=>r?.Parent&&l instanceof r.Parent?!0:l?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}class be extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Nt extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const $t={};function ae(e){return $t}function Ot(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function Be(e,t){return typeof t=="bigint"?t.toString():t}function Pe(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function We(e){return e==null}function Ge(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function xr(e,t){const r=(e.toString().split(".")[1]||"").length,n=t.toString();let o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){const d=n.match(/\d?e-(\d?)/);d?.[1]&&(o=Number.parseInt(d[1]))}const i=r>o?r:o,a=Number.parseInt(e.toFixed(i).replace(".","")),l=Number.parseInt(t.toFixed(i).replace(".",""));return a%l/10**i}const ot=Symbol("evaluating");function z(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==ot)return n===void 0&&(n=ot,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function me(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function le(...e){const t={};for(const r of e){const n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function at(e){return JSON.stringify(e)}function _r(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Zt="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Se(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const kr=Pe(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function ye(e){if(Se(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(Se(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ct(e){return ye(e)?{...e}:Array.isArray(e)?[...e]:e}const wr=new Set(["string","number","symbol"]);function xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ce(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function g(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function zr(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const jr={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Sr(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const i=le(e._zod.def,{get shape(){const a={};for(const l in t){if(!(l in r.shape))throw new Error(`Unrecognized key: "${l}"`);t[l]&&(a[l]=r.shape[l])}return me(this,"shape",a),a},checks:[]});return ce(e,i)}function Nr(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const i=le(e._zod.def,{get shape(){const a={...e._zod.def.shape};for(const l in t){if(!(l in r.shape))throw new Error(`Unrecognized key: "${l}"`);t[l]&&delete a[l]}return me(this,"shape",a),a},checks:[]});return ce(e,i)}function $r(e,t){if(!ye(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const i=e._zod.def.shape;for(const a in t)if(Object.getOwnPropertyDescriptor(i,a)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=le(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return me(this,"shape",i),i}});return ce(e,o)}function Or(e,t){if(!ye(t))throw new Error("Invalid input to safeExtend: expected a plain object");const r=le(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return me(this,"shape",n),n}});return ce(e,r)}function Zr(e,t){const r=le(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return me(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return ce(e,r)}function Cr(e,t,r){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const a=le(t._zod.def,{get shape(){const l=t._zod.def.shape,d={...l};if(r)for(const m in r){if(!(m in l))throw new Error(`Unrecognized key: "${m}"`);r[m]&&(d[m]=e?new e({type:"optional",innerType:l[m]}):l[m])}else for(const m in l)d[m]=e?new e({type:"optional",innerType:l[m]}):l[m];return me(this,"shape",d),d},checks:[]});return ce(t,a)}function Ar(e,t,r){const n=le(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(r)for(const a in r){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=new e({type:"nonoptional",innerType:o[a]}))}else for(const a in o)i[a]=new e({type:"nonoptional",innerType:o[a]});return me(this,"shape",i),i}});return ce(t,n)}function ge(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function ve(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Oe(e){return typeof e=="string"?e:e?.message}function ie(e,t,r){const n={...e,path:e.path??[]};if(!e.message){const o=Oe(e.inst?._zod.def?.error?.(e))??Oe(t?.error?.(e))??Oe(r.customError?.(e))??Oe(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function qe(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Ne(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}const At=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Be,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Et=p("$ZodError",At),Tt=p("$ZodError",At,{Parent:Error});function Er(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function Tr(e,t=r=>r.message){const r={_errors:[]},n=o=>{for(const i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(a=>n({issues:a}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(t(i));else{let a=r,l=0;for(;l<i.path.length;){const d=i.path[l];l===i.path.length-1?(a[d]=a[d]||{_errors:[]},a[d]._errors.push(t(i))):a[d]=a[d]||{_errors:[]},a=a[d],l++}}};return n(e),r}const Ye=e=>(t,r,n,o)=>{const i=n?Object.assign(n,{async:!1}):{async:!1},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new be;if(a.issues.length){const l=new(o?.Err??e)(a.issues.map(d=>ie(d,i,ae())));throw Zt(l,o?.callee),l}return a.value},Xe=e=>async(t,r,n,o)=>{const i=n?Object.assign(n,{async:!0}):{async:!0};let a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const l=new(o?.Err??e)(a.issues.map(d=>ie(d,i,ae())));throw Zt(l,o?.callee),l}return a.value},Re=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new be;return i.issues.length?{success:!1,error:new(e??Et)(i.issues.map(a=>ie(a,o,ae())))}:{success:!0,data:i.value}},Ir=Re(Tt),De=e=>async(t,r,n)=>{const o=n?Object.assign(n,{async:!0}):{async:!0};let i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(a=>ie(a,o,ae())))}:{success:!0,data:i.value}},Pr=De(Tt),Rr=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ye(e)(t,r,o)},Dr=e=>(t,r,n)=>Ye(e)(t,r,n),Ur=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Xe(e)(t,r,o)},Mr=e=>async(t,r,n)=>Xe(e)(t,r,n),Jr=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Re(e)(t,r,o)},Lr=e=>(t,r,n)=>Re(e)(t,r,n),Fr=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return De(e)(t,r,o)},Br=e=>async(t,r,n)=>De(e)(t,r,n),Kr=/^[cC][^\s-]{8,}$/,Vr=/^[0-9a-z]+$/,Wr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Gr=/^[0-9a-vA-V]{20}$/,qr=/^[A-Za-z0-9]{27}$/,Yr=/^[a-zA-Z0-9_-]{21}$/,Xr=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Hr=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,it=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Qr=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,en="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function tn(){return new RegExp(en,"u")}const rn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,nn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,on=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,an=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,sn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,It=/^[A-Za-z0-9_-]*$/,ln=/^\+[1-9]\d{6,14}$/,Pt="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",cn=new RegExp(`^${Pt}$`);function Rt(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function un(e){return new RegExp(`^${Rt(e)}$`)}function dn(e){const t=Rt({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Pt}T(?:${n})$`)}const mn=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},pn=/^-?\d+$/,Dt=/^-?\d+(?:\.\d+)?$/,fn=/^(?:true|false)$/i,hn=/^[^A-Z]*$/,gn=/^[^a-z]*$/,B=p("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Ut={number:"number",bigint:"bigint",object:"date"},Mt=p("$ZodCheckLessThan",(e,t)=>{B.init(e,t);const r=Ut[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Jt=p("$ZodCheckGreaterThan",(e,t)=>{B.init(e,t);const r=Ut[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),vn=p("$ZodCheckMultipleOf",(e,t)=>{B.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):xr(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),bn=p("$ZodCheckNumberFormat",(e,t)=>{B.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,i]=jr[t.format];e._zod.onattach.push(a=>{const l=a._zod.bag;l.format=t.format,l.minimum=o,l.maximum=i,r&&(l.pattern=pn)}),e._zod.check=a=>{const l=a.value;if(r){if(!Number.isInteger(l)){a.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?a.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):a.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}l<o&&a.issues.push({origin:"number",input:l,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),l>i&&a.issues.push({origin:"number",input:l,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),yn=p("$ZodCheckMaxLength",(e,t)=>{var r;B.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!We(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const a=qe(o);n.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),xn=p("$ZodCheckMinLength",(e,t)=>{var r;B.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!We(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const a=qe(o);n.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),_n=p("$ZodCheckLengthEquals",(e,t)=>{var r;B.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!We(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const a=qe(o),l=i>t.length;n.issues.push({origin:a,...l?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Ue=p("$ZodCheckStringFormat",(e,t)=>{var r,n;B.init(e,t),e._zod.onattach.push(o=>{const i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),kn=p("$ZodCheckRegex",(e,t)=>{Ue.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),wn=p("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=hn),Ue.init(e,t)}),zn=p("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=gn),Ue.init(e,t)}),jn=p("$ZodCheckIncludes",(e,t)=>{B.init(e,t);const r=xe(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Sn=p("$ZodCheckStartsWith",(e,t)=>{B.init(e,t);const r=new RegExp(`^${xe(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Nn=p("$ZodCheckEndsWith",(e,t)=>{B.init(e,t);const r=new RegExp(`.*${xe(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),$n=p("$ZodCheckOverwrite",(e,t)=>{B.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});class On{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(`
2
- `).filter(a=>a),o=Math.min(...n.map(a=>a.length-a.trimStart().length)),i=n.map(a=>a.slice(o)).map(a=>" ".repeat(this.indent*2)+a);for(const a of i)this.content.push(a)}compile(){const t=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...r,o.join(`
3
- `))}}const Zn={major:4,minor:3,patch:6},Z=p("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Zn;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(a,l,d)=>{let m=ge(a),f;for(const u of l){if(u._zod.def.when){if(!u._zod.def.when(a))continue}else if(m)continue;const v=a.issues.length,h=u._zod.check(a);if(h instanceof Promise&&d?.async===!1)throw new be;if(f||h instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await h,a.issues.length!==v&&(m||(m=ge(a,v)))});else{if(a.issues.length===v)continue;m||(m=ge(a,v))}}return f?f.then(()=>a):a},i=(a,l,d)=>{if(ge(a))return a.aborted=!0,a;const m=o(l,n,d);if(m instanceof Promise){if(d.async===!1)throw new be;return m.then(f=>e._zod.parse(f,d))}return e._zod.parse(m,d)};e._zod.run=(a,l)=>{if(l.skipChecks)return e._zod.parse(a,l);if(l.direction==="backward"){const m=e._zod.parse({value:a.value,issues:[]},{...l,skipChecks:!0});return m instanceof Promise?m.then(f=>i(f,a,l)):i(m,a,l)}const d=e._zod.parse(a,l);if(d instanceof Promise){if(l.async===!1)throw new be;return d.then(m=>o(m,n,l))}return o(d,n,l)}}z(e,"~standard",()=>({validate:o=>{try{const i=Ir(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Pr(e,o).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),He=p("$ZodString",(e,t)=>{Z.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??mn(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),$=p("$ZodStringFormat",(e,t)=>{Ue.init(e,t),He.init(e,t)}),Cn=p("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Hr),$.init(e,t)}),An=p("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=it(n))}else t.pattern??(t.pattern=it());$.init(e,t)}),En=p("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Qr),$.init(e,t)}),Tn=p("$ZodURL",(e,t)=>{$.init(e,t),e._zod.check=r=>{try{const n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),In=p("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=tn()),$.init(e,t)}),Pn=p("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Yr),$.init(e,t)}),Rn=p("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Kr),$.init(e,t)}),Dn=p("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Vr),$.init(e,t)}),Un=p("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Wr),$.init(e,t)}),Mn=p("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Gr),$.init(e,t)}),Jn=p("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=qr),$.init(e,t)}),Ln=p("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=dn(t)),$.init(e,t)}),Fn=p("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=cn),$.init(e,t)}),Bn=p("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=un(t)),$.init(e,t)}),Kn=p("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Xr),$.init(e,t)}),Vn=p("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=rn),$.init(e,t),e._zod.bag.format="ipv4"}),Wn=p("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=nn),$.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Gn=p("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=on),$.init(e,t)}),qn=p("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=an),$.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[o,i]=n;if(!i)throw new Error;const a=Number(i);if(`${a}`!==i)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Lt(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Yn=p("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=sn),$.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Lt(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Xn(e){if(!It.test(e))return!1;const t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Lt(r)}const Hn=p("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=It),$.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Xn(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Qn=p("$ZodE164",(e,t)=>{t.pattern??(t.pattern=ln),$.init(e,t)});function eo(e,t=null){try{const r=e.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const to=p("$ZodJWT",(e,t)=>{$.init(e,t),e._zod.check=r=>{eo(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Ft=p("$ZodNumber",(e,t)=>{Z.init(e,t),e._zod.pattern=e._zod.bag.pattern??Dt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}const o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;const i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),ro=p("$ZodNumberFormat",(e,t)=>{bn.init(e,t),Ft.init(e,t)}),no=p("$ZodBoolean",(e,t)=>{Z.init(e,t),e._zod.pattern=fn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}const o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),oo=p("$ZodUnknown",(e,t)=>{Z.init(e,t),e._zod.parse=r=>r}),ao=p("$ZodNever",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function st(e,t,r){e.issues.length&&t.issues.push(...ve(r,e.issues)),t.value[r]=e.value}const io=p("$ZodArray",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const i=[];for(let a=0;a<o.length;a++){const l=o[a],d=t.element._zod.run({value:l,issues:[]},n);d instanceof Promise?i.push(d.then(m=>st(m,r,a))):st(d,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Ee(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...ve(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Bt(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const r=zr(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Kt(e,t,r,n,o,i){const a=[],l=o.keySet,d=o.catchall._zod,m=d.def.type,f=d.optout==="optional";for(const u in t){if(l.has(u))continue;if(m==="never"){a.push(u);continue}const v=d.run({value:t[u],issues:[]},n);v instanceof Promise?e.push(v.then(h=>Ee(h,r,u,t,f))):Ee(v,r,u,t,f)}return a.length&&r.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}const so=p("$ZodObject",(e,t)=>{if(Z.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const l=t.shape;Object.defineProperty(t,"shape",{get:()=>{const d={...l};return Object.defineProperty(t,"shape",{value:d}),d}})}const n=Pe(()=>Bt(t));z(e._zod,"propValues",()=>{const l=t.shape,d={};for(const m in l){const f=l[m]._zod;if(f.values){d[m]??(d[m]=new Set);for(const u of f.values)d[m].add(u)}}return d});const o=Se,i=t.catchall;let a;e._zod.parse=(l,d)=>{a??(a=n.value);const m=l.value;if(!o(m))return l.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),l;l.value={};const f=[],u=a.shape;for(const v of a.keys){const h=u[v],I=h._zod.optout==="optional",b=h._zod.run({value:m[v],issues:[]},d);b instanceof Promise?f.push(b.then(Q=>Ee(Q,l,v,m,I))):Ee(b,l,v,m,I)}return i?Kt(f,m,l,d,n.value,e):f.length?Promise.all(f).then(()=>l):l}}),lo=p("$ZodObjectJIT",(e,t)=>{so.init(e,t);const r=e._zod.parse,n=Pe(()=>Bt(t)),o=v=>{const h=new On(["shape","payload","ctx"]),I=n.value,b=_=>{const P=at(_);return`shape[${P}]._zod.run({ value: input[${P}], issues: [] }, ctx)`};h.write("const input = payload.value;");const Q=Object.create(null);let O=0;for(const _ of I.keys)Q[_]=`key_${O++}`;h.write("const newResult = {};");for(const _ of I.keys){const P=Q[_],E=at(_),te=v[_]?._zod?.optout==="optional";h.write(`const ${P} = ${b(_)};`),te?h.write(`
4
- if (${P}.issues.length) {
5
- if (${E} in input) {
6
- payload.issues = payload.issues.concat(${P}.issues.map(iss => ({
7
- ...iss,
8
- path: iss.path ? [${E}, ...iss.path] : [${E}]
9
- })));
10
- }
11
- }
12
-
13
- if (${P}.value === undefined) {
14
- if (${E} in input) {
15
- newResult[${E}] = undefined;
16
- }
17
- } else {
18
- newResult[${E}] = ${P}.value;
19
- }
20
-
21
- `):h.write(`
22
- if (${P}.issues.length) {
23
- payload.issues = payload.issues.concat(${P}.issues.map(iss => ({
24
- ...iss,
25
- path: iss.path ? [${E}, ...iss.path] : [${E}]
26
- })));
27
- }
28
-
29
- if (${P}.value === undefined) {
30
- if (${E} in input) {
31
- newResult[${E}] = undefined;
32
- }
33
- } else {
34
- newResult[${E}] = ${P}.value;
35
- }
36
-
37
- `)}h.write("payload.value = newResult;"),h.write("return payload;");const pe=h.compile();return(_,P)=>pe(v,_,P)};let i;const a=Se,l=!$t.jitless,m=l&&kr.value,f=t.catchall;let u;e._zod.parse=(v,h)=>{u??(u=n.value);const I=v.value;return a(I)?l&&m&&h?.async===!1&&h.jitless!==!0?(i||(i=o(t.shape)),v=i(v,h),f?Kt([],I,v,h,u,e):v):r(v,h):(v.issues.push({expected:"object",code:"invalid_type",input:I,inst:e}),v)}});function lt(e,t,r,n){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const o=e.filter(i=>!ge(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>ie(a,n,ae())))}),t)}const Vt=p("$ZodUnion",(e,t)=>{Z.init(e,t),z(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),z(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),z(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),z(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>Ge(i.source)).join("|")})$`)}});const r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let a=!1;const l=[];for(const d of t.options){const m=d._zod.run({value:o.value,issues:[]},i);if(m instanceof Promise)l.push(m),a=!0;else{if(m.issues.length===0)return m;l.push(m)}}return a?Promise.all(l).then(d=>lt(d,o,e,i)):lt(l,o,e,i)}}),co=p("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Vt.init(e,t);const r=e._zod.parse;z(e._zod,"propValues",()=>{const o={};for(const i of t.options){const a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(const[l,d]of Object.entries(a)){o[l]||(o[l]=new Set);for(const m of d)o[l].add(m)}}return o});const n=Pe(()=>{const o=t.options,i=new Map;for(const a of o){const l=a._zod.propValues?.[t.discriminator];if(!l||l.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(a)}"`);for(const d of l){if(i.has(d))throw new Error(`Duplicate discriminator value "${String(d)}"`);i.set(d,a)}}return i});e._zod.parse=(o,i)=>{const a=o.value;if(!Se(a))return o.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),o;const l=n.value.get(a?.[t.discriminator]);return l?l._zod.run(o,i):t.unionFallback?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),o)}}),uo=p("$ZodIntersection",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,i=t.left._zod.run({value:o,issues:[]},n),a=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([d,m])=>ct(r,d,m)):ct(r,i,a)}});function Ke(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ye(e)&&ye(t)){const r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(const i of n){const a=Ke(e[i],t[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};o[i]=a.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=e[n],i=t[n],a=Ke(o,i);if(!a.valid)return{valid:!1,mergeErrorPath:[n,...a.mergeErrorPath]};r.push(a.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function ct(e,t,r){const n=new Map;let o;for(const l of t.issues)if(l.code==="unrecognized_keys"){o??(o=l);for(const d of l.keys)n.has(d)||n.set(d,{}),n.get(d).l=!0}else e.issues.push(l);for(const l of r.issues)if(l.code==="unrecognized_keys")for(const d of l.keys)n.has(d)||n.set(d,{}),n.get(d).r=!0;else e.issues.push(l);const i=[...n].filter(([,l])=>l.l&&l.r).map(([l])=>l);if(i.length&&o&&e.issues.push({...o,keys:i}),ge(e))return e;const a=Ke(t.value,r.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}const mo=p("$ZodRecord",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!ye(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;const i=[],a=t.keyType._zod.values;if(a){r.value={};const l=new Set;for(const m of a)if(typeof m=="string"||typeof m=="number"||typeof m=="symbol"){l.add(typeof m=="number"?m.toString():m);const f=t.valueType._zod.run({value:o[m],issues:[]},n);f instanceof Promise?i.push(f.then(u=>{u.issues.length&&r.issues.push(...ve(m,u.issues)),r.value[m]=u.value})):(f.issues.length&&r.issues.push(...ve(m,f.issues)),r.value[m]=f.value)}let d;for(const m in o)l.has(m)||(d=d??[],d.push(m));d&&d.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:d})}else{r.value={};for(const l of Reflect.ownKeys(o)){if(l==="__proto__")continue;let d=t.keyType._zod.run({value:l,issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof l=="string"&&Dt.test(l)&&d.issues.length){const u=t.keyType._zod.run({value:Number(l),issues:[]},n);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");u.issues.length===0&&(d=u)}if(d.issues.length){t.mode==="loose"?r.value[l]=o[l]:r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(u=>ie(u,n,ae())),input:l,path:[l],inst:e});continue}const f=t.valueType._zod.run({value:o[l],issues:[]},n);f instanceof Promise?i.push(f.then(u=>{u.issues.length&&r.issues.push(...ve(l,u.issues)),r.value[d.value]=u.value})):(f.issues.length&&r.issues.push(...ve(l,f.issues)),r.value[d.value]=f.value)}}return i.length?Promise.all(i).then(()=>r):r}}),po=p("$ZodEnum",(e,t)=>{Z.init(e,t);const r=Ot(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>wr.has(typeof o)).map(o=>typeof o=="string"?xe(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{const a=o.value;return n.has(a)||o.issues.push({code:"invalid_value",values:r,input:a,inst:e}),o}}),fo=p("$ZodLiteral",(e,t)=>{if(Z.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?xe(n):n?xe(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{const i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),ho=p("$ZodTransform",(e,t)=>{Z.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Nt(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(a=>(r.value=a,r));if(o instanceof Promise)throw new be;return r.value=o,r}});function ut(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Wt=p("$ZodOptional",(e,t)=>{Z.init(e,t),e._zod.optin="optional",e._zod.optout="optional",z(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),z(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ge(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>ut(i,r.value)):ut(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),go=p("$ZodExactOptional",(e,t)=>{Wt.init(e,t),z(e._zod,"values",()=>t.innerType._zod.values),z(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),vo=p("$ZodNullable",(e,t)=>{Z.init(e,t),z(e._zod,"optin",()=>t.innerType._zod.optin),z(e._zod,"optout",()=>t.innerType._zod.optout),z(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ge(r.source)}|null)$`):void 0}),z(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),bo=p("$ZodDefault",(e,t)=>{Z.init(e,t),e._zod.optin="optional",z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>dt(i,t)):dt(o,t)}});function dt(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const yo=p("$ZodPrefault",(e,t)=>{Z.init(e,t),e._zod.optin="optional",z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),xo=p("$ZodNonOptional",(e,t)=>{Z.init(e,t),z(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>mt(i,e)):mt(o,e)}});function mt(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const _o=p("$ZodCatch",(e,t)=>{Z.init(e,t),z(e._zod,"optin",()=>t.innerType._zod.optin),z(e._zod,"optout",()=>t.innerType._zod.optout),z(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(a=>ie(a,n,ae()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>ie(i,n,ae()))},input:r.value}),r.issues=[]),r)}}),ko=p("$ZodPipe",(e,t)=>{Z.init(e,t),z(e._zod,"values",()=>t.in._zod.values),z(e._zod,"optin",()=>t.in._zod.optin),z(e._zod,"optout",()=>t.out._zod.optout),z(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>Ze(a,t.in,n)):Ze(i,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ze(i,t.out,n)):Ze(o,t.out,n)}});function Ze(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}const wo=p("$ZodReadonly",(e,t)=>{Z.init(e,t),z(e._zod,"propValues",()=>t.innerType._zod.propValues),z(e._zod,"values",()=>t.innerType._zod.values),z(e._zod,"optin",()=>t.innerType?._zod?.optin),z(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(pt):pt(o)}});function pt(e){return e.value=Object.freeze(e.value),e}const zo=p("$ZodCustom",(e,t)=>{B.init(e,t),Z.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>ft(i,r,n,e));ft(o,r,n,e)}});function ft(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(Ne(o))}}var ht;class jo{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){const n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){const r=t._zod.parent;if(r){const n={...this.get(r)??{}};delete n.id;const o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function So(){return new jo}(ht=globalThis).__zod_globalRegistry??(ht.__zod_globalRegistry=So());const je=globalThis.__zod_globalRegistry;function No(e,t){return new e({type:"string",...g(t)})}function $o(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...g(t)})}function gt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...g(t)})}function Oo(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...g(t)})}function Zo(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(t)})}function Co(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(t)})}function Ao(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(t)})}function Eo(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...g(t)})}function To(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...g(t)})}function Io(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(t)})}function Po(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...g(t)})}function Ro(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(t)})}function Do(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...g(t)})}function Uo(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...g(t)})}function Mo(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(t)})}function Jo(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(t)})}function Lo(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(t)})}function Fo(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(t)})}function Bo(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(t)})}function Ko(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...g(t)})}function Vo(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...g(t)})}function Wo(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...g(t)})}function Go(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...g(t)})}function qo(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(t)})}function Yo(e,t){return new e({type:"string",format:"date",check:"string_format",...g(t)})}function Xo(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...g(t)})}function Ho(e,t){return new e({type:"string",format:"duration",check:"string_format",...g(t)})}function Qo(e,t){return new e({type:"number",checks:[],...g(t)})}function ea(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...g(t)})}function ta(e,t){return new e({type:"boolean",...g(t)})}function ra(e){return new e({type:"unknown"})}function na(e,t){return new e({type:"never",...g(t)})}function vt(e,t){return new Mt({check:"less_than",...g(t),value:e,inclusive:!1})}function Le(e,t){return new Mt({check:"less_than",...g(t),value:e,inclusive:!0})}function bt(e,t){return new Jt({check:"greater_than",...g(t),value:e,inclusive:!1})}function Fe(e,t){return new Jt({check:"greater_than",...g(t),value:e,inclusive:!0})}function yt(e,t){return new vn({check:"multiple_of",...g(t),value:e})}function Gt(e,t){return new yn({check:"max_length",...g(t),maximum:e})}function Te(e,t){return new xn({check:"min_length",...g(t),minimum:e})}function qt(e,t){return new _n({check:"length_equals",...g(t),length:e})}function oa(e,t){return new kn({check:"string_format",format:"regex",...g(t),pattern:e})}function aa(e){return new wn({check:"string_format",format:"lowercase",...g(e)})}function ia(e){return new zn({check:"string_format",format:"uppercase",...g(e)})}function sa(e,t){return new jn({check:"string_format",format:"includes",...g(t),includes:e})}function la(e,t){return new Sn({check:"string_format",format:"starts_with",...g(t),prefix:e})}function ca(e,t){return new Nn({check:"string_format",format:"ends_with",...g(t),suffix:e})}function _e(e){return new $n({check:"overwrite",tx:e})}function ua(e){return _e(t=>t.normalize(e))}function da(){return _e(e=>e.trim())}function ma(){return _e(e=>e.toLowerCase())}function pa(){return _e(e=>e.toUpperCase())}function fa(){return _e(e=>_r(e))}function ha(e,t,r){return new e({type:"array",element:t,...g(r)})}function ga(e,t,r){return new e({type:"custom",check:"custom",fn:t,...g(r)})}function va(e){const t=ba(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Ne(n,r.value,t._zod.def));else{const o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(Ne(o))}},e(r.value,r)));return t}function ba(e,t){const r=new B({check:"custom",...g(t)});return r._zod.check=e,r}function Yt(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??je,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function T(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;const a={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,a);const l=e._zod.toJSONSchema?.();if(l)a.schema=l;else{const f={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,f);else{const v=a.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,v,f)}const u=e._zod.parent;u&&(a.ref||(a.ref=u),T(u,t,f),t.seen.get(u).isParent=!0)}const d=t.metadataRegistry.get(e);return d&&Object.assign(a.schema,d),t.io==="input"&&F(e)&&(delete a.schema.examples,delete a.schema.default),t.io==="input"&&a.schema._prefault&&((n=a.schema).default??(n.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Xt(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const a of e.seen.entries()){const l=e.metadataRegistry.get(a[0])?.id;if(l){const d=n.get(l);if(d&&d!==a[0])throw new Error(`Duplicate schema id "${l}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(l,a[0])}}const o=a=>{const l=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const u=e.external.registry.get(a[0])?.id,v=e.external.uri??(I=>I);if(u)return{ref:v(u)};const h=a[1].defId??a[1].schema.id??`schema${e.counter++}`;return a[1].defId=h,{defId:h,ref:`${v("__shared")}#/${l}/${h}`}}if(a[1]===r)return{ref:"#"};const m=`#/${l}/`,f=a[1].schema.id??`__schema${e.counter++}`;return{defId:f,ref:m+f}},i=a=>{if(a[1].schema.$ref)return;const l=a[1],{ref:d,defId:m}=o(a);l.def={...l.schema},m&&(l.defId=m);const f=l.schema;for(const u in f)delete f[u];f.$ref=d};if(e.cycles==="throw")for(const a of e.seen.entries()){const l=a[1];if(l.cycle)throw new Error(`Cycle detected: #/${l.cycle?.join("/")}/<root>
38
-
39
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const a of e.seen.entries()){const l=a[1];if(t===a[0]){i(a);continue}if(e.external){const m=e.external.registry.get(a[0])?.id;if(t!==a[0]&&m){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(l.cycle){i(a);continue}if(l.count>1&&e.reused==="ref"){i(a);continue}}}function Ht(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=a=>{const l=e.seen.get(a);if(l.ref===null)return;const d=l.def??l.schema,m={...d},f=l.ref;if(l.ref=null,f){n(f);const v=e.seen.get(f),h=v.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(h)):Object.assign(d,h),Object.assign(d,m),a._zod.parent===f)for(const b in d)b==="$ref"||b==="allOf"||b in m||delete d[b];if(h.$ref&&v.def)for(const b in d)b==="$ref"||b==="allOf"||b in v.def&&JSON.stringify(d[b])===JSON.stringify(v.def[b])&&delete d[b]}const u=a._zod.parent;if(u&&u!==f){n(u);const v=e.seen.get(u);if(v?.schema.$ref&&(d.$ref=v.schema.$ref,v.def))for(const h in d)h==="$ref"||h==="allOf"||h in v.def&&JSON.stringify(d[h])===JSON.stringify(v.def[h])&&delete d[h]}e.override({zodSchema:a,jsonSchema:d,path:l.path??[]})};for(const a of[...e.seen.entries()].reverse())n(a[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(a)}Object.assign(o,r.def??r.schema);const i=e.external?.defs??{};for(const a of e.seen.entries()){const l=a[1];l.def&&l.defId&&(i[l.defId]=l.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{const a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:Ie(t,"input",e.processors),output:Ie(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function F(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return F(n.element,r);if(n.type==="set")return F(n.valueType,r);if(n.type==="lazy")return F(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return F(n.innerType,r);if(n.type==="intersection")return F(n.left,r)||F(n.right,r);if(n.type==="record"||n.type==="map")return F(n.keyType,r)||F(n.valueType,r);if(n.type==="pipe")return F(n.in,r)||F(n.out,r);if(n.type==="object"){for(const o in n.shape)if(F(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if(F(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if(F(o,r))return!0;return!!(n.rest&&F(n.rest,r))}return!1}const ya=(e,t={})=>r=>{const n=Yt({...r,processors:t});return T(e,n),Xt(n,e),Ht(n,e)},Ie=(e,t,r={})=>n=>{const{libraryOptions:o,target:i}=n??{},a=Yt({...o??{},target:i,io:t,processors:r});return T(e,a),Xt(a,e),Ht(a,e)},xa={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},_a=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:i,maximum:a,format:l,patterns:d,contentEncoding:m}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof a=="number"&&(o.maxLength=a),l&&(o.format=xa[l]??l,o.format===""&&delete o.format,l==="time"&&delete o.format),m&&(o.contentEncoding=m),d&&d.size>0){const f=[...d];f.length===1?o.pattern=f[0].source:f.length>1&&(o.allOf=[...f.map(u=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:u.source}))])}},ka=(e,t,r,n)=>{const o=r,{minimum:i,maximum:a,format:l,multipleOf:d,exclusiveMaximum:m,exclusiveMinimum:f}=e._zod.bag;typeof l=="string"&&l.includes("int")?o.type="integer":o.type="number",typeof f=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=f,o.exclusiveMinimum=!0):o.exclusiveMinimum=f),typeof i=="number"&&(o.minimum=i,typeof f=="number"&&t.target!=="draft-04"&&(f>=i?delete o.minimum:delete o.exclusiveMinimum)),typeof m=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=m,o.exclusiveMaximum=!0):o.exclusiveMaximum=m),typeof a=="number"&&(o.maximum=a,typeof m=="number"&&t.target!=="draft-04"&&(m<=a?delete o.maximum:delete o.exclusiveMaximum)),typeof d=="number"&&(o.multipleOf=d)},wa=(e,t,r,n)=>{r.type="boolean"},za=(e,t,r,n)=>{r.not={}},ja=(e,t,r,n)=>{},Sa=(e,t,r,n)=>{const o=e._zod.def,i=Ot(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},Na=(e,t,r,n)=>{const o=e._zod.def,i=[];for(const a of o.values)if(a===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(a))}else i.push(a);if(i.length!==0)if(i.length===1){const a=i[0];r.type=a===null?"null":typeof a,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[a]:r.const=a}else i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),i.every(a=>typeof a=="boolean")&&(r.type="boolean"),i.every(a=>a===null)&&(r.type="null"),r.enum=i},$a=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Oa=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Za=(e,t,r,n)=>{const o=r,i=e._zod.def,{minimum:a,maximum:l}=e._zod.bag;typeof a=="number"&&(o.minItems=a),typeof l=="number"&&(o.maxItems=l),o.type="array",o.items=T(i.element,t,{...n,path:[...n.path,"items"]})},Ca=(e,t,r,n)=>{const o=r,i=e._zod.def;o.type="object",o.properties={};const a=i.shape;for(const m in a)o.properties[m]=T(a[m],t,{...n,path:[...n.path,"properties",m]});const l=new Set(Object.keys(a)),d=new Set([...l].filter(m=>{const f=i.shape[m]._zod;return t.io==="input"?f.optin===void 0:f.optout===void 0}));d.size>0&&(o.required=Array.from(d)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=T(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Aa=(e,t,r,n)=>{const o=e._zod.def,i=o.inclusive===!1,a=o.options.map((l,d)=>T(l,t,{...n,path:[...n.path,i?"oneOf":"anyOf",d]}));i?r.oneOf=a:r.anyOf=a},Ea=(e,t,r,n)=>{const o=e._zod.def,i=T(o.left,t,{...n,path:[...n.path,"allOf",0]}),a=T(o.right,t,{...n,path:[...n.path,"allOf",1]}),l=m=>"allOf"in m&&Object.keys(m).length===1,d=[...l(i)?i.allOf:[i],...l(a)?a.allOf:[a]];r.allOf=d},Ta=(e,t,r,n)=>{const o=r,i=e._zod.def;o.type="object";const a=i.keyType,d=a._zod.bag?.patterns;if(i.mode==="loose"&&d&&d.size>0){const f=T(i.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(const u of d)o.patternProperties[u.source]=f}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=T(i.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=T(i.valueType,t,{...n,path:[...n.path,"additionalProperties"]});const m=a._zod.values;if(m){const f=[...m].filter(u=>typeof u=="string"||typeof u=="number");f.length>0&&(o.required=f)}},Ia=(e,t,r,n)=>{const o=e._zod.def,i=T(o.innerType,t,n),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},Pa=(e,t,r,n)=>{const o=e._zod.def;T(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},Ra=(e,t,r,n)=>{const o=e._zod.def;T(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Da=(e,t,r,n)=>{const o=e._zod.def;T(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Ua=(e,t,r,n)=>{const o=e._zod.def;T(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},Ma=(e,t,r,n)=>{const o=e._zod.def,i=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;T(i,t,n);const a=t.seen.get(e);a.ref=i},Ja=(e,t,r,n)=>{const o=e._zod.def;T(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},Qt=(e,t,r,n)=>{const o=e._zod.def;T(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},La=p("ZodISODateTime",(e,t)=>{Ln.init(e,t),A.init(e,t)});function Fa(e){return qo(La,e)}const Ba=p("ZodISODate",(e,t)=>{Fn.init(e,t),A.init(e,t)});function Ka(e){return Yo(Ba,e)}const Va=p("ZodISOTime",(e,t)=>{Bn.init(e,t),A.init(e,t)});function Wa(e){return Xo(Va,e)}const Ga=p("ZodISODuration",(e,t)=>{Kn.init(e,t),A.init(e,t)});function qa(e){return Ho(Ga,e)}const Ya=(e,t)=>{Et.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Tr(e,r)},flatten:{value:r=>Er(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Be,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Be,2)}},isEmpty:{get(){return e.issues.length===0}}})},W=p("ZodError",Ya,{Parent:Error}),Xa=Ye(W),Ha=Xe(W),Qa=Re(W),ei=De(W),ti=Rr(W),ri=Dr(W),ni=Ur(W),oi=Mr(W),ai=Jr(W),ii=Lr(W),si=Fr(W),li=Br(W),C=p("ZodType",(e,t)=>(Z.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Ie(e,"input"),output:Ie(e,"output")}}),e.toJSONSchema=ya(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(le(t,{checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),e.with=e.check,e.clone=(r,n)=>ce(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.parse=(r,n)=>Xa(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Qa(e,r,n),e.parseAsync=async(r,n)=>Ha(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>ei(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>ti(e,r,n),e.decode=(r,n)=>ri(e,r,n),e.encodeAsync=async(r,n)=>ni(e,r,n),e.decodeAsync=async(r,n)=>oi(e,r,n),e.safeEncode=(r,n)=>ai(e,r,n),e.safeDecode=(r,n)=>ii(e,r,n),e.safeEncodeAsync=async(r,n)=>si(e,r,n),e.safeDecodeAsync=async(r,n)=>li(e,r,n),e.refine=(r,n)=>e.check(rs(r,n)),e.superRefine=r=>e.check(ns(r)),e.overwrite=r=>e.check(_e(r)),e.optional=()=>zt(e),e.exactOptional=()=>Fi(e),e.nullable=()=>jt(e),e.nullish=()=>zt(jt(e)),e.nonoptional=r=>qi(e,r),e.array=()=>se(e),e.or=r=>nr([e,r]),e.and=r=>Ri(e,r),e.transform=r=>St(e,Ji(r)),e.default=r=>Vi(e,r),e.prefault=r=>Gi(e,r),e.catch=r=>Xi(e,r),e.pipe=r=>St(e,r),e.readonly=()=>es(e),e.describe=r=>{const n=e.clone();return je.add(n,{description:r}),n},Object.defineProperty(e,"description",{get(){return je.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return je.get(e);const n=e.clone();return je.add(n,r[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=r=>r(e),e)),er=p("_ZodString",(e,t)=>{He.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,i)=>_a(e,n,o);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...n)=>e.check(oa(...n)),e.includes=(...n)=>e.check(sa(...n)),e.startsWith=(...n)=>e.check(la(...n)),e.endsWith=(...n)=>e.check(ca(...n)),e.min=(...n)=>e.check(Te(...n)),e.max=(...n)=>e.check(Gt(...n)),e.length=(...n)=>e.check(qt(...n)),e.nonempty=(...n)=>e.check(Te(1,...n)),e.lowercase=n=>e.check(aa(n)),e.uppercase=n=>e.check(ia(n)),e.trim=()=>e.check(da()),e.normalize=(...n)=>e.check(ua(...n)),e.toLowerCase=()=>e.check(ma()),e.toUpperCase=()=>e.check(pa()),e.slugify=()=>e.check(fa())}),ci=p("ZodString",(e,t)=>{He.init(e,t),er.init(e,t),e.email=r=>e.check($o(ui,r)),e.url=r=>e.check(Eo(di,r)),e.jwt=r=>e.check(Go(Si,r)),e.emoji=r=>e.check(To(mi,r)),e.guid=r=>e.check(gt(xt,r)),e.uuid=r=>e.check(Oo(Ce,r)),e.uuidv4=r=>e.check(Zo(Ce,r)),e.uuidv6=r=>e.check(Co(Ce,r)),e.uuidv7=r=>e.check(Ao(Ce,r)),e.nanoid=r=>e.check(Io(pi,r)),e.guid=r=>e.check(gt(xt,r)),e.cuid=r=>e.check(Po(fi,r)),e.cuid2=r=>e.check(Ro(hi,r)),e.ulid=r=>e.check(Do(gi,r)),e.base64=r=>e.check(Ko(wi,r)),e.base64url=r=>e.check(Vo(zi,r)),e.xid=r=>e.check(Uo(vi,r)),e.ksuid=r=>e.check(Mo(bi,r)),e.ipv4=r=>e.check(Jo(yi,r)),e.ipv6=r=>e.check(Lo(xi,r)),e.cidrv4=r=>e.check(Fo(_i,r)),e.cidrv6=r=>e.check(Bo(ki,r)),e.e164=r=>e.check(Wo(ji,r)),e.datetime=r=>e.check(Fa(r)),e.date=r=>e.check(Ka(r)),e.time=r=>e.check(Wa(r)),e.duration=r=>e.check(qa(r))});function y(e){return No(ci,e)}const A=p("ZodStringFormat",(e,t)=>{$.init(e,t),er.init(e,t)}),ui=p("ZodEmail",(e,t)=>{En.init(e,t),A.init(e,t)}),xt=p("ZodGUID",(e,t)=>{Cn.init(e,t),A.init(e,t)}),Ce=p("ZodUUID",(e,t)=>{An.init(e,t),A.init(e,t)}),di=p("ZodURL",(e,t)=>{Tn.init(e,t),A.init(e,t)}),mi=p("ZodEmoji",(e,t)=>{In.init(e,t),A.init(e,t)}),pi=p("ZodNanoID",(e,t)=>{Pn.init(e,t),A.init(e,t)}),fi=p("ZodCUID",(e,t)=>{Rn.init(e,t),A.init(e,t)}),hi=p("ZodCUID2",(e,t)=>{Dn.init(e,t),A.init(e,t)}),gi=p("ZodULID",(e,t)=>{Un.init(e,t),A.init(e,t)}),vi=p("ZodXID",(e,t)=>{Mn.init(e,t),A.init(e,t)}),bi=p("ZodKSUID",(e,t)=>{Jn.init(e,t),A.init(e,t)}),yi=p("ZodIPv4",(e,t)=>{Vn.init(e,t),A.init(e,t)}),xi=p("ZodIPv6",(e,t)=>{Wn.init(e,t),A.init(e,t)}),_i=p("ZodCIDRv4",(e,t)=>{Gn.init(e,t),A.init(e,t)}),ki=p("ZodCIDRv6",(e,t)=>{qn.init(e,t),A.init(e,t)}),wi=p("ZodBase64",(e,t)=>{Yn.init(e,t),A.init(e,t)}),zi=p("ZodBase64URL",(e,t)=>{Hn.init(e,t),A.init(e,t)}),ji=p("ZodE164",(e,t)=>{Qn.init(e,t),A.init(e,t)}),Si=p("ZodJWT",(e,t)=>{to.init(e,t),A.init(e,t)}),tr=p("ZodNumber",(e,t)=>{Ft.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,i)=>ka(e,n,o),e.gt=(n,o)=>e.check(bt(n,o)),e.gte=(n,o)=>e.check(Fe(n,o)),e.min=(n,o)=>e.check(Fe(n,o)),e.lt=(n,o)=>e.check(vt(n,o)),e.lte=(n,o)=>e.check(Le(n,o)),e.max=(n,o)=>e.check(Le(n,o)),e.int=n=>e.check(_t(n)),e.safe=n=>e.check(_t(n)),e.positive=n=>e.check(bt(0,n)),e.nonnegative=n=>e.check(Fe(0,n)),e.negative=n=>e.check(vt(0,n)),e.nonpositive=n=>e.check(Le(0,n)),e.multipleOf=(n,o)=>e.check(yt(n,o)),e.step=(n,o)=>e.check(yt(n,o)),e.finite=()=>e;const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function M(e){return Qo(tr,e)}const Ni=p("ZodNumberFormat",(e,t)=>{ro.init(e,t),tr.init(e,t)});function _t(e){return ea(Ni,e)}const $i=p("ZodBoolean",(e,t)=>{no.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wa(e,r,n)});function J(e){return ta($i,e)}const Oi=p("ZodUnknown",(e,t)=>{oo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ja()});function kt(){return ra(Oi)}const Zi=p("ZodNever",(e,t)=>{ao.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>za(e,r,n)});function Ci(e){return na(Zi,e)}const Ai=p("ZodArray",(e,t)=>{io.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Za(e,r,n,o),e.element=t.element,e.min=(r,n)=>e.check(Te(r,n)),e.nonempty=r=>e.check(Te(1,r)),e.max=(r,n)=>e.check(Gt(r,n)),e.length=(r,n)=>e.check(qt(r,n)),e.unwrap=()=>e.element});function se(e,t){return ha(Ai,e,t)}const Ei=p("ZodObject",(e,t)=>{lo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ca(e,r,n,o),z(e,"shape",()=>t.shape),e.keyof=()=>ue(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:kt()}),e.loose=()=>e.clone({...e._zod.def,catchall:kt()}),e.strict=()=>e.clone({...e._zod.def,catchall:Ci()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>$r(e,r),e.safeExtend=r=>Or(e,r),e.merge=r=>Zr(e,r),e.pick=r=>Sr(e,r),e.omit=r=>Nr(e,r),e.partial=(...r)=>Cr(or,e,r[0]),e.required=(...r)=>Ar(ar,e,r[0])});function R(e,t){const r={type:"object",shape:e??{},...g(t)};return new Ei(r)}const rr=p("ZodUnion",(e,t)=>{Vt.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Aa(e,r,n,o),e.options=t.options});function nr(e,t){return new rr({type:"union",options:e,...g(t)})}const Ti=p("ZodDiscriminatedUnion",(e,t)=>{rr.init(e,t),co.init(e,t)});function Ii(e,t,r){return new Ti({type:"union",options:t,discriminator:e,...g(r)})}const Pi=p("ZodIntersection",(e,t)=>{uo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ea(e,r,n,o)});function Ri(e,t){return new Pi({type:"intersection",left:e,right:t})}const Di=p("ZodRecord",(e,t)=>{mo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ta(e,r,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function Ae(e,t,r){return new Di({type:"record",keyType:e,valueType:t,...g(r)})}const Ve=p("ZodEnum",(e,t)=>{po.init(e,t),C.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Sa(e,n,o),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const i={};for(const a of n)if(r.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Ve({...t,checks:[],...g(o),entries:i})},e.exclude=(n,o)=>{const i={...t.entries};for(const a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new Ve({...t,checks:[],...g(o),entries:i})}});function ue(e,t){const r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Ve({type:"enum",entries:r,...g(t)})}const Ui=p("ZodLiteral",(e,t)=>{fo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Na(e,r,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function wt(e,t){return new Ui({type:"literal",values:Array.isArray(e)?e:[e],...g(t)})}const Mi=p("ZodTransform",(e,t)=>{ho.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Oa(e,r),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Nt(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(Ne(i,r.value,t));else{const a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=e),r.issues.push(Ne(a))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r)):(r.value=o,r)}});function Ji(e){return new Mi({type:"transform",transform:e})}const or=p("ZodOptional",(e,t)=>{Wt.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qt(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function zt(e){return new or({type:"optional",innerType:e})}const Li=p("ZodExactOptional",(e,t)=>{go.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qt(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Fi(e){return new Li({type:"optional",innerType:e})}const Bi=p("ZodNullable",(e,t)=>{vo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ia(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function jt(e){return new Bi({type:"nullable",innerType:e})}const Ki=p("ZodDefault",(e,t)=>{bo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ra(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Vi(e,t){return new Ki({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Ct(t)}})}const Wi=p("ZodPrefault",(e,t)=>{yo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Da(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Gi(e,t){return new Wi({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Ct(t)}})}const ar=p("ZodNonOptional",(e,t)=>{xo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Pa(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function qi(e,t){return new ar({type:"nonoptional",innerType:e,...g(t)})}const Yi=p("ZodCatch",(e,t)=>{_o.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ua(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Xi(e,t){return new Yi({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const Hi=p("ZodPipe",(e,t)=>{ko.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ma(e,r,n,o),e.in=t.in,e.out=t.out});function St(e,t){return new Hi({type:"pipe",in:e,out:t})}const Qi=p("ZodReadonly",(e,t)=>{wo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ja(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function es(e){return new Qi({type:"readonly",innerType:e})}const ts=p("ZodCustom",(e,t)=>{zo.init(e,t),C.init(e,t),e._zod.processJSONSchema=(r,n,o)=>$a(e,r)});function rs(e,t={}){return ga(ts,e,t)}function ns(e){return va(e)}const N={agent:{name:"morpheus",personality:"helpful_dev"},logging:{enabled:!0,level:"info",retention:"14d"},audio:{provider:"google",model:"gemini-2.5-flash-lite",enabled:!0,maxDurationSeconds:300,supportedMimeTypes:["audio/ogg","audio/mp3","audio/mpeg","audio/wav"]},memory:{limit:100},runtime:{async_tasks:{enabled:!0}},llm:{provider:"openai",model:"gpt-4",temperature:.7,context_window:100},channels:{telegram:{enabled:!1,allowedUsers:[]},discord:{enabled:!1,allowedUsers:[]}},ui:{enabled:!0,port:3333}},os=R({provider:ue(["google","openai","openrouter","ollama"]).default(N.audio.provider),model:y().min(1).default(N.audio.model),enabled:J().default(N.audio.enabled),apiKey:y().optional(),base_url:y().optional(),maxDurationSeconds:M().default(N.audio.maxDurationSeconds),supportedMimeTypes:se(y()).default(N.audio.supportedMimeTypes)}),ke=R({provider:ue(["openai","anthropic","openrouter","ollama","gemini"]).default(N.llm.provider),model:y().min(1).default(N.llm.model),temperature:M().min(0).max(1).default(N.llm.temperature),max_tokens:M().int().positive().optional(),api_key:y().optional(),base_url:y().optional(),context_window:M().int().positive().optional()}),as=ke.extend({memory_limit:M().int().positive().optional(),enabled_archived_sessions:J().default(!0),similarity_threshold:M().min(0).max(1).default(.9),evaluation_interval:M().int().min(1).default(1)}),is=ke.extend({working_dir:y().optional(),timeout_ms:M().int().positive().optional(),execution_mode:ue(["sync","async"]).default("async")}),ss=ke.extend({execution_mode:ue(["sync","async"]).default("async")}),ls=ke.extend({execution_mode:ue(["sync","async"]).default("async")}),cs=ke.extend({skills_dir:y().optional()}),us=R({telegram_notify_all:J().optional()}).optional(),ds=R({timezone:y().default("UTC"),check_interval_ms:M().min(6e4).default(6e4),max_active_jobs:M().min(1).max(1e3).default(100)}),ms=R({sandbox_dir:y().optional(),readonly_mode:J().default(!1),allowed_shell_commands:se(y()).default([]),enable_filesystem:J().default(!0),enable_shell:J().default(!0),enable_git:J().default(!0),enable_network:J().default(!0),timeout_ms:M().int().positive().default(3e4)}),ps=R({name:y().min(1).max(64).regex(/^[a-z0-9][a-z0-9_-]*$/,"Smith name must be lowercase alphanumeric with hyphens/underscores"),host:y().min(1),port:M().int().min(1).max(65535).default(7900),auth_token:y().min(1),tls:J().default(!1)}),fs=R({enabled:J().default(!1),execution_mode:ue(["sync","async"]).default("async"),heartbeat_interval_ms:M().int().min(5e3).default(3e4),connection_timeout_ms:M().int().min(1e3).default(1e4),task_timeout_ms:M().int().min(1e3).default(6e4),entries:se(ps).default([])}),hs=R({agent:R({name:y().default(N.agent.name),personality:y().default(N.agent.personality)}).default(N.agent),llm:ke.default(N.llm),sati:as.optional(),neo:ss.optional(),apoc:is.optional(),trinity:ls.optional(),keymaker:cs.optional(),webhooks:us,audio:os.default(N.audio),memory:R({limit:M().int().positive().optional()}).default(N.memory),runtime:R({async_tasks:R({enabled:J().default(N.runtime?.async_tasks.enabled)}).default(N.runtime?.async_tasks??{enabled:!0})}).optional(),chronos:ds.optional(),devkit:ms.optional(),smiths:fs.optional(),verbose_mode:J().default(!0),channels:R({telegram:R({enabled:J().default(!1),token:y().optional(),allowedUsers:se(y()).default([])}).default(N.channels.telegram),discord:R({enabled:J().default(!1),token:y().optional(),allowedUsers:se(y()).default([])}).default(N.channels.discord)}).default(N.channels),ui:R({enabled:J().default(N.ui.enabled),port:M().default(N.ui.port)}).default(N.ui),logging:R({enabled:J().default(N.logging.enabled),level:ue(["debug","info","warn","error"]).default(N.logging.level),retention:y().default(N.logging.retention)}).default(N.logging)}),gs=Ii("transport",[R({transport:wt("stdio"),command:y().min(1,"Command is required for stdio transport"),args:se(y()).optional().default([]),env:Ae(y(),y()).optional().default({}),_comment:y().optional()}),R({transport:wt("http"),url:y().url("Valid URL is required for http transport"),headers:Ae(y(),y()).optional().default({}),args:se(y()).optional().default([]),env:Ae(y(),y()).optional().default({}),_comment:y().optional()})]);Ae(y(),nr([gs,y()]));const vs=[{id:"general",label:"General"},{id:"agents",label:"Agents"},{id:"devkit",label:"DevKit"},{id:"audio",label:"Audio"},{id:"channels",label:"Channels"},{id:"chronos",label:"Chronos"}],bs=[{id:"oracle",label:"Oracle"},{id:"sati",label:"Sati"},{id:"neo",label:"Neo"},{id:"apoc",label:"Apoc"},{id:"trinity",label:"Trinity"}],ze=[{label:"OpenAI",value:"openai"},{label:"Anthropic",value:"anthropic"},{label:"OpenRouter",value:"openrouter"},{label:"Ollama",value:"ollama"},{label:"Google Gemini",value:"gemini"}];function Ns(){const{data:e,error:t}=de("/api/config",V.fetchConfig),{data:r}=de("/api/config/sati",V.getSatiConfig),{data:n}=de("/api/config/apoc",V.getApocConfig),{data:o}=de("/api/config/neo",V.getNeoConfig),{data:i}=de("/api/config/trinity",V.getTrinityConfig),{data:a}=de("/api/config/encryption-status",()=>V.getEncryptionStatus()),{data:l}=de("/api/config/env-overrides",()=>V.getEnvOverrides()),{data:d}=gr(),[m,f]=D.useState(null),[u,v]=D.useState(null),[h,I]=D.useState(null),[b,Q]=D.useState(null),[O,pe]=D.useState(null),[_,P]=D.useState(null),[E,Qe]=D.useState("general"),[te,ir]=D.useState("oracle"),[et,tt]=D.useState(!1),[q,$e]=D.useState({}),[Me,we]=D.useState(null);D.useEffect(()=>{e&&!u&&v(e)},[e]),D.useEffect(()=>{r&&!h&&I(r)},[r]),D.useEffect(()=>{n&&!O?pe(n):!n&&!O&&u&&pe({...u.apoc??u.llm,temperature:u.apoc?.temperature??.2,timeout_ms:u.apoc?.timeout_ms??3e4})},[n,u]),D.useEffect(()=>{o&&!b?Q(o):!o&&!b&&u&&Q({...u.neo??u.llm,temperature:u.neo?.temperature??.2})},[o,u]),D.useEffect(()=>{i&&!_?P(i):!i&&!_&&u&&P({...u.trinity??u.llm,temperature:u.trinity?.temperature??.2})},[i,u]),D.useEffect(()=>{d&&!m&&f(d)},[d]);const rt=JSON.stringify(e)!==JSON.stringify(u)||JSON.stringify(r)!==JSON.stringify(h)||JSON.stringify(o)!==JSON.stringify(b)||JSON.stringify(n)!==JSON.stringify(O)||JSON.stringify(i)!==JSON.stringify(_)||JSON.stringify(d)!==JSON.stringify(m),sr={general:JSON.stringify(e?.agent)!==JSON.stringify(u?.agent)||e?.verbose_mode!==u?.verbose_mode,agents:JSON.stringify(e?.llm)!==JSON.stringify(u?.llm)||JSON.stringify(r)!==JSON.stringify(h)||JSON.stringify(o)!==JSON.stringify(b)||JSON.stringify(n)!==JSON.stringify(O)||JSON.stringify(i)!==JSON.stringify(_),devkit:JSON.stringify(e?.devkit)!==JSON.stringify(u?.devkit),audio:JSON.stringify(e?.audio)!==JSON.stringify(u?.audio),channels:JSON.stringify(e?.channels?.telegram)!==JSON.stringify(u?.channels?.telegram)||JSON.stringify(e?.channels?.discord)!==JSON.stringify(u?.channels?.discord)||JSON.stringify(e?.webhooks)!==JSON.stringify(u?.webhooks),ui:JSON.stringify(e?.ui)!==JSON.stringify(u?.ui),logging:JSON.stringify(e?.logging)!==JSON.stringify(u?.logging),chronos:JSON.stringify(d)!==JSON.stringify(m)},fe=(c,S)=>{if(!a?.apiKeysEncrypted)return null;const{morpheusSecretSet:Y,apiKeysEncrypted:X}=a,G=X[c];return!S?s.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs rounded bg-azure-surface border border-azure-border text-azure-text-secondary dark:bg-matrix-primary/10 dark:border-matrix-primary dark:text-matrix-tertiary",children:"No API key"}):l&&l[lr(c)]?null:Y?G?s.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs rounded bg-emerald-100 border border-emerald-300 text-emerald-800 dark:bg-emerald-900/30 dark:border-emerald-700 dark:text-emerald-400",title:"API key encrypted with AES-256-GCM",children:"🔒 Encrypted"}):s.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs rounded bg-amber-100 border border-amber-300 text-amber-800 dark:bg-amber-900/30 dark:border-amber-700 dark:text-amber-400",title:"Re-save this configuration to encrypt the API key",children:"⚠️ Re-save to encrypt"}):s.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs rounded bg-amber-100 border border-amber-300 text-amber-800 dark:bg-amber-900/30 dark:border-amber-700 dark:text-amber-400",title:"Set MORPHEUS_SECRET to enable encryption",children:"⚠️ Plaintext"})},lr=c=>({oracle:"llm.api_key",sati:"sati.api_key",neo:"neo.api_key",apoc:"apoc.api_key",trinity:"trinity.api_key",audio:"audio.apiKey"})[c],j=c=>!l||!l[c]?null:s.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs rounded bg-blue-100 border border-blue-300 text-blue-800 dark:bg-blue-900/30 dark:border-blue-700 dark:text-blue-400",title:"This field is set by an environment variable and cannot be edited",children:"🔒 Env Var"}),k=c=>!!(l&&l[c]),x=(c,S)=>{if(!u)return;const Y=JSON.parse(JSON.stringify(u));let X=Y;for(let G=0;G<c.length-1;G++)(X[c[G]]===void 0||X[c[G]]===null)&&(X[c[G]]={}),X=X[c[G]];X[c[c.length-1]]=S,v(Y);try{hs.parse(Y),$e({})}catch(G){if(G instanceof hr){const Je={};G.errors.forEach(nt=>{const fr=nt.path.join(".");Je[fr]=nt.message}),$e(Je)}}},re=(c,S)=>{h&&I({...h,[c]:S})},ne=(c,S)=>{O&&pe({...O,[c]:S})},ee=(c,S)=>{b&&Q({...b,[c]:S})},oe=(c,S)=>{_&&P({..._,[c]:S})},cr=()=>{!u||!_||P({..._,provider:u.llm.provider,model:u.llm.model,api_key:u.llm.api_key})},ur=()=>{!u||!h||I({...h,provider:u.llm.provider,model:u.llm.model,api_key:u.llm.api_key})},dr=()=>{!u||!O||pe({...O,provider:u.llm.provider,model:u.llm.model,api_key:u.llm.api_key})},mr=()=>{!u||!b||Q({...b,provider:u.llm.provider,model:u.llm.model,api_key:u.llm.api_key})},pr=async()=>{if(u){tt(!0),we(null);try{const c=await V.updateConfig(u);h&&await V.updateSatiConfig(h),b&&await V.updateNeoConfig(b),O&&await V.updateApocConfig(O),_&&await V.updateTrinityConfig(_),m&&await vr.updateConfig(m),he("/api/config"),he("/api/config/sati"),he("/api/config/neo"),he("/api/config/apoc"),he("/api/config/trinity"),he("/api/config/chronos"),$e({});const S=c._restartRequired||[],Y=S.length>0?`Settings saved and applied. Some changes require restart: ${S.join(", ")}`:"Settings saved and applied successfully.";we({type:"success",message:Y}),setTimeout(()=>we(null),5e3)}catch(c){if(we({type:"error",message:c.message}),c.details&&Array.isArray(c.details)){const S={};c.details.forEach(Y=>{const X=Y.path.join(".");S[X]=Y.message}),$e(S)}}finally{tt(!1)}}};return t?s.jsx("div",{className:"p-8 text-red-500",children:"Failed to load configuration"}):u?s.jsxs("div",{className:"max-w-4xl mx-auto p-0 md:p-6 space-y-6",children:[s.jsxs("div",{className:"flex justify-between items-center flex-wrap gap-3",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-10 h-10 rounded-lg bg-azure-primary/10 dark:bg-matrix-highlight/10 border border-azure-primary/20 dark:border-matrix-highlight/30 flex items-center justify-center",children:s.jsx(br,{className:"w-5 h-5 text-azure-primary dark:text-matrix-highlight"})}),s.jsxs("div",{children:[s.jsx("h1",{className:"text-xl font-bold text-azure-text dark:text-matrix-highlight",children:"Zaion Settings"}),s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-tertiary",children:"Configure agents, models, channels, and runtime behavior."})]})]}),s.jsx("button",{onClick:pr,disabled:!rt||Object.keys(q).length>0||et,className:`px-4 py-2 rounded font-medium transition-colors ${rt&&Object.keys(q).length===0?"bg-azure-primary text-white hover:bg-azure-active dark:bg-matrix-highlight dark:text-black dark:hover:bg-matrix-highlight/90":"bg-azure-border text-azure-text-secondary cursor-not-allowed dark:bg-matrix-primary/50 dark:text-matrix-highlight/50"}`,children:et?"Saving...":"Save Changes"})]}),Me&&s.jsxs("div",{className:`flex items-start justify-between gap-3 p-4 rounded border ${Me.type==="success"?"border-azure-primary text-azure-primary bg-azure-primary/10 dark:border-matrix-highlight dark:text-matrix-highlight dark:bg-matrix-highlight/10":"border-red-500 text-red-500 bg-red-900/10"}`,children:[s.jsx("span",{className:"text-sm",children:Me.message}),s.jsx("button",{type:"button",onClick:()=>we(null),className:"shrink-0 opacity-60 hover:opacity-100 transition-opacity","aria-label":"Dismiss",children:s.jsx(yr,{className:"w-4 h-4"})})]}),s.jsx("div",{className:"overflow-x-auto py-1 hide-scrollbar",children:s.jsx("div",{className:"flex space-x-1 border-b border-azure-border dark:border-matrix-primary pb-px min-w-max",children:vs.map(c=>s.jsxs("button",{onClick:()=>Qe(c.id),className:`px-4 py-2 text-sm font-medium rounded-t-md transition-colors flex-shrink-0 flex items-center gap-1.5 ${E===c.id?"bg-azure-surface/50 text-azure-primary border-t border-x border-azure-border dark:bg-matrix-primary/20 dark:text-matrix-highlight dark:border-t dark:border-x dark:border-matrix-primary":"text-azure-text-secondary hover:text-azure-primary dark:text-matrix-secondary dark:hover:text-matrix-highlight"}`,children:[c.label,sr[c.id]&&s.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-400 shrink-0"})]},c.id))})}),s.jsxs("div",{className:"space-y-6",children:[E==="general"&&s.jsxs(L,{title:"Agent Identity",children:[s.jsx(w,{label:"Agent Name",value:u.agent.name,onChange:c=>x(["agent","name"],c.target.value),error:q["agent.name"]}),s.jsx(w,{label:"Personality",value:u.agent.personality,onChange:c=>x(["agent","personality"],c.target.value),error:q["agent.personality"]}),s.jsx(K,{label:"Verbose Mode",value:u.verbose_mode!==!1?"true":"false",onChange:c=>x(["verbose_mode"],c.target.value==="true"),options:[{value:"true",label:"Enabled (notify tool execution on channels)"},{value:"false",label:"Disabled"}],helperText:"When enabled, channels like Telegram/Discord show which tools are being executed in real-time."})]}),E==="agents"&&s.jsxs("div",{className:"space-y-4",children:[s.jsx("div",{className:"flex space-x-1 border-b border-azure-border dark:border-matrix-primary pb-px",children:bs.map(c=>s.jsx("button",{onClick:()=>ir(c.id),className:`px-4 py-2 text-sm font-medium rounded-t-md transition-colors ${te===c.id?"bg-azure-primary/10 text-azure-primary border-b-2 border-azure-primary dark:bg-matrix-highlight/10 dark:text-matrix-highlight dark:border-matrix-highlight":"text-azure-text-secondary hover:text-azure-primary dark:text-matrix-secondary dark:hover:text-matrix-highlight"}`,children:c.label},c.id))}),te==="oracle"&&s.jsxs(L,{title:"Oracle Agent",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"Main orchestration agent — handles user requests and delegates to subagents"}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Provider"}),j("llm.provider")]}),s.jsx(K,{label:"",value:u.llm.provider,onChange:c=>x(["llm","provider"],c.target.value),options:ze,error:q["llm.provider"],disabled:k("llm.provider")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Model Name"}),j("llm.model")]}),s.jsx(w,{label:"",value:u.llm.model,onChange:c=>x(["llm","model"],c.target.value),disabled:k("llm.model")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Temperature"}),j("llm.temperature")]}),s.jsx(U,{label:"",value:u.llm.temperature,onChange:c=>x(["llm","temperature"],parseFloat(c.target.value)),step:.1,min:0,max:1,error:q["llm.temperature"],disabled:k("llm.temperature")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Max Tokens"}),j("llm.max_tokens")]}),s.jsx(U,{label:"",value:u.llm.max_tokens??"",onChange:c=>x(["llm","max_tokens"],c.target.value?parseInt(c.target.value):void 0),min:1,error:q["llm.max_tokens"],helperText:"Maximum tokens per response. Leave empty for model default.",disabled:k("llm.max_tokens")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Context Window (Messages)"}),j("llm.context_window")]}),s.jsx(U,{label:"",value:u.llm.context_window??100,onChange:c=>x(["llm","context_window"],parseInt(c.target.value)),min:1,step:1,error:q["llm.context_window"],helperText:"Number of past interactions to load into LLM context (e.g., 100).",disabled:k("llm.context_window")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"API Key"}),s.jsxs("div",{className:"flex items-center gap-2",children:[j("llm.api_key"),fe("oracle",u.llm.api_key)]})]}),s.jsx(w,{label:"",type:"password",value:u.llm.api_key||"",onChange:c=>x(["llm","api_key"],c.target.value),placeholder:"sk-...",helperText:"Stored locally.",disabled:k("llm.api_key")}),u.llm.provider==="openrouter"&&s.jsx(w,{label:"Base URL",value:u.llm.base_url||"https://openrouter.ai/api/v1",onChange:c=>x(["llm","base_url"],c.target.value),placeholder:"https://openrouter.ai/api/v1",helperText:"Base URL for OpenRouter API"})]}),te==="sati"&&s.jsxs(L,{title:"Sati Agent",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"Background memory consolidation agent — evaluates conversations and persists important context"}),s.jsxs("div",{className:"mb-4",children:[s.jsx("button",{type:"button",onClick:ur,className:"px-3 py-1.5 text-sm bg-azure-surface border border-azure-border rounded hover:bg-azure-primary/10 dark:bg-matrix-primary/20 dark:border-matrix-primary dark:hover:bg-matrix-highlight/10 text-azure-primary dark:text-matrix-highlight transition-colors",children:"Copy from Oracle Agent"}),s.jsx("p",{className:"text-xs text-azure-text-secondary dark:text-matrix-secondary mt-1",children:"Copy Provider, Model, and API Key from Oracle Agent configuration"})]}),h&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Provider"}),j("sati.provider")]}),s.jsx(K,{label:"",value:h.provider,onChange:c=>re("provider",c.target.value),options:ze,disabled:k("sati.provider")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Model Name"}),j("sati.model")]}),s.jsx(w,{label:"",value:h.model,onChange:c=>re("model",c.target.value),disabled:k("sati.model")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"API Key"}),s.jsxs("div",{className:"flex items-center gap-2",children:[j("sati.api_key"),fe("sati",h.api_key)]})]}),s.jsx(w,{label:"",type:"password",value:h.api_key||"",onChange:c=>re("api_key",c.target.value),placeholder:"sk-...",helperText:"Stored locally.",disabled:k("sati.api_key")}),h.provider==="openrouter"&&s.jsx(w,{label:"Base URL",value:h.base_url||"https://openrouter.ai/api/v1",onChange:c=>re("base_url",c.target.value),placeholder:"https://openrouter.ai/api/v1",helperText:"Base URL for OpenRouter API"}),s.jsx(U,{label:"Memory Limit",value:h.memory_limit??10,onChange:c=>re("memory_limit",parseInt(c.target.value)),min:1,step:1,helperText:"Number of memory items to retrieve from long-term storage."}),s.jsx(U,{label:"Evaluation Interval",value:h.evaluation_interval??1,onChange:c=>re("evaluation_interval",parseInt(c.target.value)),min:1,step:1,helperText:"Oracle turns between memory evaluations. Default: 1 (every turn). *If Evaluation interval is more than context window, this value will be ignored."}),s.jsx(H,{label:"Enable Archived Sessions in Memory Retrieval",checked:h.enabled_archived_sessions??!0,onChange:c=>re("enabled_archived_sessions",c)}),s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center justify-between mb-1",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Similarity Threshold"}),s.jsx("span",{className:"text-sm font-mono text-azure-text-primary dark:text-matrix-highlight",children:(h.similarity_threshold??.9).toFixed(2)})]}),s.jsx("input",{type:"range",min:0,max:1,step:.01,value:h.similarity_threshold??.9,onChange:c=>re("similarity_threshold",parseFloat(c.target.value)),className:`w-full h-1.5 rounded-full appearance-none cursor-pointer
40
- bg-gray-200 dark:bg-matrix-primary/30
41
- accent-azure-primary dark:accent-matrix-highlight`}),s.jsx("p",{className:"mt-1.5 text-xs text-gray-400 dark:text-matrix-secondary",children:"Minimum cosine similarity to consider a memory relevant (0–1). Lower values retrieve more memories, but may increase token consumption."})]})]})]}),te==="neo"&&s.jsxs(L,{title:"Neo Agent",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"MCP + internal tools subagent — executes analytical and operational tasks delegated by Oracle"}),s.jsxs("div",{className:"mb-4",children:[s.jsx("button",{type:"button",onClick:mr,className:"px-3 py-1.5 text-sm bg-azure-surface border border-azure-border rounded hover:bg-azure-primary/10 dark:bg-matrix-primary/20 dark:border-matrix-primary dark:hover:bg-matrix-highlight/10 text-azure-primary dark:text-matrix-highlight transition-colors",children:"Copy from Oracle Agent"}),s.jsx("p",{className:"text-xs text-azure-text-secondary dark:text-matrix-secondary mt-1",children:"Copy Provider, Model, and API Key from Oracle Agent configuration"})]}),b&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Provider"}),j("neo.provider")]}),s.jsx(K,{label:"",value:b.provider,onChange:c=>ee("provider",c.target.value),options:ze,disabled:k("neo.provider")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Model Name"}),j("neo.model")]}),s.jsx(w,{label:"",value:b.model,onChange:c=>ee("model",c.target.value),disabled:k("neo.model")}),s.jsx(w,{label:"Personality",value:b.personality||"analytical_engineer",onChange:c=>ee("personality",c.target.value),placeholder:"analytical_engineer",helperText:"e.g., analytical_engineer, meticulous_auditor, systems_thinker"}),s.jsx(K,{label:"Execution Mode",value:b.execution_mode||"async",onChange:c=>ee("execution_mode",c.target.value),options:[{value:"async",label:"Async (background task)"},{value:"sync",label:"Sync (inline response)"}]}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Temperature"}),j("neo.temperature")]}),s.jsx(U,{label:"",value:b.temperature,onChange:c=>ee("temperature",parseFloat(c.target.value)),step:.1,min:0,max:1,disabled:k("neo.temperature")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Max Tokens"}),j("neo.max_tokens")]}),s.jsx(U,{label:"",value:b.max_tokens??"",onChange:c=>ee("max_tokens",c.target.value?parseInt(c.target.value):void 0),min:1,helperText:"Maximum tokens per response. Leave empty for model default.",disabled:k("neo.max_tokens")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Context Window (Messages)"}),j("neo.context_window")]}),s.jsx(U,{label:"",value:b.context_window??100,onChange:c=>ee("context_window",parseInt(c.target.value)),min:1,step:1,disabled:k("neo.context_window")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"API Key"}),s.jsxs("div",{className:"flex items-center gap-2",children:[j("neo.api_key"),fe("neo",b.api_key)]})]}),s.jsx(w,{label:"",type:"password",value:b.api_key||"",onChange:c=>ee("api_key",c.target.value),placeholder:"sk-...",helperText:"Stored locally.",disabled:k("neo.api_key")}),b.provider==="openrouter"&&s.jsx(w,{label:"Base URL",value:b.base_url||"https://openrouter.ai/api/v1",onChange:c=>ee("base_url",c.target.value),placeholder:"https://openrouter.ai/api/v1",helperText:"Base URL for OpenRouter API"})]})]}),te==="trinity"&&s.jsxs(L,{title:"Trinity Agent",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"Database subagent — interprets natural language queries and executes them against registered databases (PostgreSQL, MySQL, SQLite, MongoDB)"}),s.jsxs("div",{className:"mb-4",children:[s.jsx("button",{type:"button",onClick:cr,className:"px-3 py-1.5 text-sm bg-azure-surface border border-azure-border rounded hover:bg-azure-primary/10 dark:bg-matrix-primary/20 dark:border-matrix-primary dark:hover:bg-matrix-highlight/10 text-azure-primary dark:text-matrix-highlight transition-colors",children:"Copy from Oracle Agent"}),s.jsx("p",{className:"text-xs text-azure-text-secondary dark:text-matrix-secondary mt-1",children:"Copy Provider, Model, and API Key from Oracle Agent configuration"})]}),_&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Provider"}),j("trinity.provider")]}),s.jsx(K,{label:"",value:_.provider,onChange:c=>oe("provider",c.target.value),options:ze,disabled:k("trinity.provider")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Model Name"}),j("trinity.model")]}),s.jsx(w,{label:"",value:_.model,onChange:c=>oe("model",c.target.value),disabled:k("trinity.model")}),s.jsx(w,{label:"Personality",value:_.personality||"data_specialist",onChange:c=>oe("personality",c.target.value),placeholder:"data_specialist",helperText:"e.g., data_specialist, query_optimizer, db_architect"}),s.jsx(K,{label:"Execution Mode",value:_.execution_mode||"async",onChange:c=>oe("execution_mode",c.target.value),options:[{value:"async",label:"Async (background task)"},{value:"sync",label:"Sync (inline response)"}]}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Temperature"}),j("trinity.temperature")]}),s.jsx(U,{label:"",value:_.temperature,onChange:c=>oe("temperature",parseFloat(c.target.value)),step:.1,min:0,max:1,disabled:k("trinity.temperature")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Max Tokens"}),j("trinity.max_tokens")]}),s.jsx(U,{label:"",value:_.max_tokens??"",onChange:c=>oe("max_tokens",c.target.value?parseInt(c.target.value):void 0),min:1,helperText:"Maximum tokens per response. Leave empty for model default.",disabled:k("trinity.max_tokens")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"API Key"}),s.jsxs("div",{className:"flex items-center gap-2",children:[j("trinity.api_key"),fe("trinity",_.api_key)]})]}),s.jsx(w,{label:"",type:"password",value:_.api_key||"",onChange:c=>oe("api_key",c.target.value),placeholder:"sk-...",helperText:"Stored locally.",disabled:k("trinity.api_key")}),_.provider==="openrouter"&&s.jsx(w,{label:"Base URL",value:_.base_url||"https://openrouter.ai/api/v1",onChange:c=>oe("base_url",c.target.value),placeholder:"https://openrouter.ai/api/v1",helperText:"Base URL for OpenRouter API"})]})]}),te==="apoc"&&s.jsxs(L,{title:"Apoc Agent",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"DevTools subagent — executes file, shell, git, network, and system operations on behalf of Oracle"}),s.jsxs("div",{className:"mb-4",children:[s.jsx("button",{type:"button",onClick:dr,className:"px-3 py-1.5 text-sm bg-azure-surface border border-azure-border rounded hover:bg-azure-primary/10 dark:bg-matrix-primary/20 dark:border-matrix-primary dark:hover:bg-matrix-highlight/10 text-azure-primary dark:text-matrix-highlight transition-colors",children:"Copy from Oracle Agent"}),s.jsx("p",{className:"text-xs text-azure-text-secondary dark:text-matrix-secondary mt-1",children:"Copy Provider, Model, and API Key from Oracle Agent configuration"})]}),O&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Provider"}),j("apoc.provider")]}),s.jsx(K,{label:"",value:O.provider,onChange:c=>ne("provider",c.target.value),options:ze,disabled:k("apoc.provider")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Model Name"}),j("apoc.model")]}),s.jsx(w,{label:"",value:O.model,onChange:c=>ne("model",c.target.value),disabled:k("apoc.model")}),s.jsx(w,{label:"Personality",value:O.personality||"pragmatic_dev",onChange:c=>ne("personality",c.target.value),placeholder:"pragmatic_dev",helperText:"e.g., pragmatic_dev, cautious_admin, automation_specialist"}),s.jsx(K,{label:"Execution Mode",value:O.execution_mode||"async",onChange:c=>ne("execution_mode",c.target.value),options:[{value:"async",label:"Async (background task)"},{value:"sync",label:"Sync (inline response)"}]}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Temperature"}),j("apoc.temperature")]}),s.jsx(U,{label:"",value:O.temperature,onChange:c=>ne("temperature",parseFloat(c.target.value)),step:.1,min:0,max:1,disabled:k("apoc.temperature")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"API Key"}),s.jsxs("div",{className:"flex items-center gap-2",children:[j("apoc.api_key"),fe("apoc",O.api_key)]})]}),s.jsx(w,{label:"",type:"password",value:O.api_key||"",onChange:c=>ne("api_key",c.target.value),placeholder:"sk-...",helperText:"Stored locally.",disabled:k("apoc.api_key")}),O.provider==="openrouter"&&s.jsx(w,{label:"Base URL",value:O.base_url||"https://openrouter.ai/api/v1",onChange:c=>ne("base_url",c.target.value),placeholder:"https://openrouter.ai/api/v1",helperText:"Base URL for OpenRouter API"}),s.jsx(U,{label:"Timeout (ms)",value:O.timeout_ms??3e4,onChange:c=>ne("timeout_ms",parseInt(c.target.value)),min:1e3,step:1e3,helperText:"Maximum execution time for shell and system operations in milliseconds."})]})]})]}),E==="devkit"&&s.jsxs(s.Fragment,{children:[s.jsxs(L,{title:"DevKit Security",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"Shared security configuration for DevKit tools used by Apoc and Keymaker. Controls path sandboxing, shell command restrictions, and tool category access."}),s.jsx(w,{label:"Sandbox Directory",value:u.devkit?.sandbox_dir||"",onChange:c=>x(["devkit","sandbox_dir"],c.target.value),placeholder:typeof window<"u"?"(defaults to process.cwd())":"",helperText:"Root directory for all DevKit operations. All file, shell, and git paths are confined here.",disabled:k("devkit.sandbox_dir")}),s.jsx(K,{label:"Read-Only Mode",value:u.devkit?.readonly_mode?"true":"false",onChange:c=>x(["devkit","readonly_mode"],c.target.value==="true"),options:[{value:"false",label:"Disabled (read + write)"},{value:"true",label:"Enabled (read-only, blocks writes/deletes)"}],helperText:"When enabled, blocks all write, delete, and create operations on the filesystem.",disabled:k("devkit.readonly_mode")}),s.jsx(U,{label:"Timeout (ms)",value:u.devkit?.timeout_ms??3e4,onChange:c=>x(["devkit","timeout_ms"],parseInt(c.target.value)),min:1e3,step:1e3,helperText:"Default timeout for shell and system operations in milliseconds.",disabled:k("devkit.timeout_ms")})]}),s.jsxs(L,{title:"Tool Categories",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"Enable or disable entire categories of DevKit tools."}),s.jsx(H,{label:"Filesystem (read, write, list, copy, move, delete files)",checked:u.devkit?.enable_filesystem!==!1,onChange:c=>x(["devkit","enable_filesystem"],c)}),s.jsx(H,{label:"Shell (run_command, run_script, which)",checked:u.devkit?.enable_shell!==!1,onChange:c=>x(["devkit","enable_shell"],c)}),s.jsx(H,{label:"Git (status, diff, commit, push, pull, clone, branch)",checked:u.devkit?.enable_git!==!1,onChange:c=>x(["devkit","enable_git"],c)}),s.jsx(H,{label:"Network (http_request, ping, dns_lookup, download_file)",checked:u.devkit?.enable_network!==!1,onChange:c=>x(["devkit","enable_network"],c)})]}),s.jsxs(L,{title:"Shell Command Allowlist",children:[s.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary mb-4",children:"Restrict which shell commands Apoc and Keymaker can execute. Leave empty to allow all commands (default)."}),s.jsx(w,{label:"Allowed Commands",value:(u.devkit?.allowed_shell_commands||[]).join(", "),onChange:c=>x(["devkit","allowed_shell_commands"],c.target.value.split(",").map(S=>S.trim()).filter(Boolean)),placeholder:"e.g. node, npm, git, python, cargo",helperText:"Comma-separated list of allowed binary names. Empty = all commands allowed.",disabled:k("devkit.allowed_shell_commands")})]})]}),E==="audio"&&s.jsxs(L,{title:"Audio Transcription",children:[s.jsx(H,{label:"Enable Audio",checked:u.audio.enabled,onChange:c=>x(["audio","enabled"],c)}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Provider"}),j("audio.provider")]}),s.jsx(K,{label:"",value:u.audio.provider||"google",onChange:c=>x(["audio","provider"],c.target.value),options:[{label:"Google Gemini",value:"google"},{label:"OpenAI (Whisper)",value:"openai"},{label:"OpenRouter (multimodal)",value:"openrouter"},{label:"Ollama (Whisper local)",value:"ollama"}],error:q["audio.provider"],disabled:k("audio.provider")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Model"}),j("audio.model")]}),s.jsx(w,{label:"",value:u.audio.model,onChange:c=>x(["audio","model"],c.target.value),placeholder:"e.g. whisper-1, gemini-2.5-flash-lite...",helperText:"Model to use for audio transcription.",error:q["audio.model"],disabled:k("audio.model")}),u.audio.provider==="ollama"&&s.jsx(w,{label:"Base URL",value:u.audio.base_url||"",onChange:c=>x(["audio","base_url"],c.target.value),placeholder:"http://localhost:11434",helperText:"Ollama base URL. Requires a Whisper model loaded (ollama pull whisper)."}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"API Key"}),s.jsxs("div",{className:"flex items-center gap-2",children:[j("audio.apiKey"),fe("audio",u.audio.apiKey)]})]}),s.jsx(w,{label:"",type:"password",value:u.audio.apiKey||"",onChange:c=>x(["audio","apiKey"],c.target.value),placeholder:"If different from LLM key...",helperText:"Leave empty to use LLM API key if using the same provider.",disabled:k("audio.apiKey")}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("label",{className:"block text-sm font-medium text-azure-text-primary dark:text-matrix-secondary",children:"Max Duration (Seconds)"}),j("audio.maxDurationSeconds")]}),s.jsx(U,{label:"",value:u.audio.maxDurationSeconds,onChange:c=>x(["audio","maxDurationSeconds"],parseInt(c.target.value)),min:1,disabled:k("audio.maxDurationSeconds")}),s.jsx(w,{label:"Supported Mime Types",value:u.audio.supportedMimeTypes.join(", "),onChange:c=>x(["audio","supportedMimeTypes"],c.target.value.split(",").map(S=>S.trim()).filter(Boolean)),helperText:"Comma separated list (e.g. audio/ogg, audio/mp3)"})]}),E==="channels"&&s.jsxs(s.Fragment,{children:[s.jsxs(L,{title:"Telegram",children:[s.jsx(H,{label:"Enable Telegram",checked:u.channels.telegram.enabled,onChange:c=>x(["channels","telegram","enabled"],c)}),u.channels.telegram.enabled&&s.jsxs("div",{className:"space-y-4 mt-4 pl-4 border-l border-matrix-primary",children:[s.jsx(w,{label:"Bot Token",type:"password",value:u.channels.telegram.token||"",onChange:c=>x(["channels","telegram","token"],c.target.value)}),s.jsx(w,{label:"Allowed Users (comma separated)",value:u.channels.telegram.allowedUsers.join(", "),onChange:c=>x(["channels","telegram","allowedUsers"],c.target.value.split(",").map(S=>S.trim()).filter(Boolean)),helperText:"User IDs allowed to interact with the bot"})]})]}),s.jsxs(L,{title:"Discord",children:[s.jsx(H,{label:"Enable Discord",checked:u.channels.discord.enabled,onChange:c=>x(["channels","discord","enabled"],c)}),u.channels.discord.enabled&&s.jsxs("div",{className:"space-y-4 mt-4 pl-4 border-l border-matrix-primary",children:[s.jsx(w,{label:"Bot Token",type:"password",value:u.channels.discord.token||"",onChange:c=>x(["channels","discord","token"],c.target.value)}),s.jsx(w,{label:"Allowed Users (comma separated)",value:(u.channels.discord.allowedUsers??[]).join(", "),onChange:c=>x(["channels","discord","allowedUsers"],c.target.value.split(",").map(S=>S.trim()).filter(Boolean)),helperText:"Discord user IDs allowed to interact with the bot"})]})]})]}),E==="ui"&&s.jsxs(L,{title:"Dashboard",children:[s.jsx(H,{label:"Enable Web UI",checked:u.ui.enabled,onChange:c=>x(["ui","enabled"],c)}),s.jsx(U,{label:"Port",value:u.ui.port,onChange:c=>x(["ui","port"],parseInt(c.target.value)),disabled:!0,helperText:"Port changes require daemon restart."})]}),E==="logging"&&s.jsxs(L,{title:"Logging",children:[s.jsx(H,{label:"Enable Logging",checked:u.logging.enabled,onChange:c=>x(["logging","enabled"],c)}),s.jsx(K,{label:"Log Level",value:u.logging.level,onChange:c=>x(["logging","level"],c.target.value),options:[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warning",value:"warn"},{label:"Error",value:"error"}]})]}),E==="chronos"&&m&&s.jsxs(L,{title:"Chronos — Temporal Intent Engine",children:[s.jsx(K,{label:"Timezone",value:m.timezone,onChange:c=>f({...m,timezone:c.target.value}),options:[{label:"UTC",value:"UTC"},{label:"America/New_York",value:"America/New_York"},{label:"America/Chicago",value:"America/Chicago"},{label:"America/Denver",value:"America/Denver"},{label:"America/Los_Angeles",value:"America/Los_Angeles"},{label:"America/Sao_Paulo",value:"America/Sao_Paulo"},{label:"America/Buenos_Aires",value:"America/Buenos_Aires"},{label:"America/Bogota",value:"America/Bogota"},{label:"America/Lima",value:"America/Lima"},{label:"America/Santiago",value:"America/Santiago"},{label:"America/Mexico_City",value:"America/Mexico_City"},{label:"America/Toronto",value:"America/Toronto"},{label:"America/Vancouver",value:"America/Vancouver"},{label:"Europe/London",value:"Europe/London"},{label:"Europe/Paris",value:"Europe/Paris"},{label:"Europe/Berlin",value:"Europe/Berlin"},{label:"Europe/Madrid",value:"Europe/Madrid"},{label:"Europe/Rome",value:"Europe/Rome"},{label:"Europe/Amsterdam",value:"Europe/Amsterdam"},{label:"Europe/Brussels",value:"Europe/Brussels"},{label:"Europe/Zurich",value:"Europe/Zurich"},{label:"Europe/Lisbon",value:"Europe/Lisbon"},{label:"Europe/Warsaw",value:"Europe/Warsaw"},{label:"Europe/Stockholm",value:"Europe/Stockholm"},{label:"Europe/Helsinki",value:"Europe/Helsinki"},{label:"Europe/Moscow",value:"Europe/Moscow"},{label:"Asia/Dubai",value:"Asia/Dubai"},{label:"Asia/Kolkata",value:"Asia/Kolkata"},{label:"Asia/Bangkok",value:"Asia/Bangkok"},{label:"Asia/Singapore",value:"Asia/Singapore"},{label:"Asia/Hong_Kong",value:"Asia/Hong_Kong"},{label:"Asia/Shanghai",value:"Asia/Shanghai"},{label:"Asia/Tokyo",value:"Asia/Tokyo"},{label:"Asia/Seoul",value:"Asia/Seoul"},{label:"Australia/Sydney",value:"Australia/Sydney"},{label:"Australia/Melbourne",value:"Australia/Melbourne"},{label:"Pacific/Auckland",value:"Pacific/Auckland"},{label:"Africa/Cairo",value:"Africa/Cairo"},{label:"Africa/Johannesburg",value:"Africa/Johannesburg"}]}),s.jsx(U,{label:"Check Interval (seconds)",value:Math.round(m.check_interval_ms/1e3),onChange:c=>f({...m,check_interval_ms:Number(c.target.value)*1e3}),min:60}),s.jsx(U,{label:"Max Active Jobs",value:m.max_active_jobs,onChange:c=>f({...m,max_active_jobs:Number(c.target.value)}),min:1,max:1e3})]})]})]}):s.jsx("div",{className:"p-8 text-azure-primary dark:text-matrix-highlight",children:"Loading settings..."})}export{Ns as default};
@@ -1,7 +0,0 @@
1
- import{j as e,m as n}from"./vendor-motion-C3CZ8ZlO.js";import{r as s}from"./vendor-react-DikRIOlj.js";import{u as Z}from"./vendor-utils-D4NnWbOU.js";import{s as l}from"./skills-B5DnmnHW.js";import{D as O,e as K,j as F}from"./index-BxVeRyTh.js";import{W as y,aj as u,O as b,a1 as V,F as W,Q as L,U as I,Z as q,a2 as A,a3 as B,X as H,ak as M}from"./vendor-icons-BVuQI-6R.js";const U={hidden:{opacity:0},show:{opacity:1,transition:{staggerChildren:.05}}},g={hidden:{opacity:0,y:8},show:{opacity:1,y:0}};function Q({skill:r,onToggle:i,onView:d}){return e.jsxs(n.div,{variants:g,className:`rounded-lg border flex flex-col transition-all ${r.enabled?"border-azure-primary/50 dark:border-matrix-primary bg-white dark:bg-black":"border-azure-border dark:border-matrix-primary/30 bg-azure-surface/50 dark:bg-black"}`,children:[e.jsxs("div",{className:"p-4 flex items-start gap-3 flex-1",children:[e.jsx("div",{className:`w-9 h-9 rounded-lg flex items-center justify-center shrink-0 ${r.enabled?"bg-azure-primary/10 dark:bg-matrix-highlight/10":"bg-azure-surface dark:bg-zinc-900"}`,children:e.jsx(y,{className:`w-4 h-4 ${r.enabled?"text-azure-primary dark:text-matrix-highlight":"text-azure-text-secondary dark:text-matrix-tertiary"}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h3",{className:`font-semibold truncate ${r.enabled?"text-azure-text dark:text-matrix-highlight":"text-azure-text-secondary dark:text-matrix-secondary"}`,children:r.name}),r.version&&e.jsxs("span",{className:"text-[10px] font-mono text-azure-text-secondary dark:text-matrix-tertiary bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary/40 rounded px-1.5 py-0.5 shrink-0",children:["v",r.version]}),!r.enabled&&e.jsx("span",{className:"text-[10px] font-medium text-zinc-400 dark:text-zinc-500 bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-700 rounded px-1.5 py-0.5 shrink-0",children:"disabled"})]}),e.jsx("p",{className:`text-sm mt-1.5 line-clamp-2 leading-relaxed ${r.enabled?"text-azure-text-secondary dark:text-matrix-secondary":"text-azure-text-secondary/70 dark:text-matrix-tertiary"}`,children:r.description}),r.tags&&r.tags.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1.5 mt-3",children:r.tags.map(t=>e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-[10px] font-medium rounded border border-azure-primary/20 dark:border-matrix-primary/40 bg-azure-primary/5 dark:bg-matrix-primary/10 text-azure-primary dark:text-matrix-secondary",children:[e.jsx(L,{className:"w-2.5 h-2.5"}),t]},t))})]})]}),e.jsxs("div",{className:"px-4 py-3 border-t border-azure-border dark:border-matrix-primary/30 flex items-center justify-between gap-2",children:[r.author?e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-azure-text-secondary dark:text-matrix-tertiary min-w-0",children:[e.jsx(I,{className:"w-3 h-3 shrink-0"}),e.jsx("span",{className:"truncate",children:r.author})]}):e.jsx("div",{}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("button",{onClick:d,className:"p-1.5 rounded border border-azure-border dark:border-matrix-primary/50 text-azure-text-secondary dark:text-matrix-tertiary hover:text-azure-primary dark:hover:text-matrix-highlight hover:border-azure-primary dark:hover:border-matrix-highlight transition-colors",title:"View details",children:e.jsx(q,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:i,className:`p-1.5 rounded border transition-colors ${r.enabled?"border-emerald-300 dark:border-emerald-700/60 text-emerald-500 dark:text-emerald-400 hover:bg-emerald-50 dark:hover:bg-emerald-900/20":"border-azure-border dark:border-matrix-primary/40 text-zinc-400 dark:text-zinc-600 hover:text-azure-text dark:hover:text-matrix-secondary hover:border-azure-border dark:hover:border-matrix-primary"}`,title:r.enabled?"Disable skill":"Enable skill",children:r.enabled?e.jsx(A,{className:"w-4 h-4"}):e.jsx(B,{className:"w-4 h-4"})})]})]})]})}function X({skill:r,open:i,onOpenChange:d}){return!i||!r?null:e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm",onClick:()=>d(!1)}),e.jsxs("div",{className:"relative bg-white dark:bg-black border border-azure-border dark:border-matrix-primary rounded-lg shadow-xl w-full max-w-2xl max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 px-5 py-4 border-b border-azure-border dark:border-matrix-primary shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("div",{className:"w-9 h-9 rounded-lg bg-azure-primary/10 dark:bg-matrix-highlight/10 flex items-center justify-center shrink-0",children:e.jsx(y,{className:"w-4 h-4 text-azure-primary dark:text-matrix-highlight"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h2",{className:"text-base font-semibold text-azure-text dark:text-matrix-highlight truncate",children:r.name}),r.version&&e.jsxs("span",{className:"text-[10px] font-mono text-azure-text-secondary dark:text-matrix-tertiary bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary/40 rounded px-1.5 py-0.5 shrink-0",children:["v",r.version]})]}),r.author&&e.jsxs("div",{className:"flex items-center gap-1 mt-0.5 text-xs text-azure-text-secondary dark:text-matrix-tertiary",children:[e.jsx(I,{className:"w-3 h-3 shrink-0"}),r.author]})]})]}),e.jsx("button",{onClick:()=>d(!1),className:"p-1.5 rounded text-azure-text-secondary dark:text-matrix-tertiary hover:text-azure-text dark:hover:text-matrix-highlight hover:bg-azure-surface dark:hover:bg-zinc-900 transition-colors shrink-0",children:e.jsx(H,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"overflow-y-auto flex-1 p-5 space-y-5",children:[r.description&&e.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-secondary leading-relaxed",children:r.description}),e.jsx("div",{className:"flex flex-col gap-2",children:e.jsxs("div",{className:"flex items-start gap-2 text-xs text-azure-text-secondary dark:text-matrix-tertiary",children:[e.jsx(M,{className:"w-3.5 h-3.5 shrink-0 mt-0.5"}),e.jsx("span",{className:"break-all font-mono text-azure-text dark:text-matrix-secondary bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary/40 rounded px-2 py-0.5",children:r.path})]})}),r.tags&&r.tags.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary mb-2",children:"Tags"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:r.tags.map(t=>e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-[10px] font-medium rounded border border-azure-primary/20 dark:border-matrix-primary/40 bg-azure-primary/5 dark:bg-matrix-primary/10 text-azure-primary dark:text-matrix-secondary",children:[e.jsx(L,{className:"w-2.5 h-2.5"}),t]},t))})]}),r.examples&&r.examples.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary mb-2",children:"Examples"}),e.jsx("ul",{className:"space-y-1.5",children:r.examples.map((t,x)=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-azure-text-secondary dark:text-matrix-secondary bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary/30 rounded px-3 py-2",children:[e.jsxs("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary font-mono text-xs mt-0.5 shrink-0",children:[x+1,"."]}),t]},x))})]}),r.content&&e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary mb-2",children:"SKILL.md"}),e.jsx("pre",{className:"rounded-lg bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary/40 p-4 text-xs text-azure-text-secondary dark:text-matrix-secondary overflow-auto max-h-72 whitespace-pre-wrap leading-relaxed font-mono",children:r.content})]})]})]})]})}function ae(){const[r,i]=s.useState(null),[d,t]=s.useState(!1),[x,N]=s.useState(!1),[o,v]=s.useState(!1),[c,k]=s.useState(null),[w,f]=s.useState(null),j=s.useRef(null),{data:S,mutate:z,isLoading:D}=Z("/skills",()=>l.fetchSkills(),{refreshInterval:1e4}),m=S?.skills??[],E=S?.enabled??0,R=async()=>{await l.reloadSkills(),z()},T=async a=>{a.enabled?await l.disableSkill(a.name):await l.enableSkill(a.name),z()},$=async a=>{t(!0);try{const p=await l.fetchSkill(a.name);i(p)}finally{t(!1)}},P=async a=>{const p=a.target.files?.[0];if(p){k(null),f(null),v(!0);try{const h=await l.uploadSkill(p);f(`Skill "${h.skill.name}" uploaded successfully!`),z(),j.current&&(j.current.value="")}catch(h){k({error:h.message||"Upload failed",details:h.details})}finally{v(!1)}}},C=()=>{k(null),f(null),N(!0)};return e.jsxs(n.div,{variants:U,initial:"hidden",animate:"show",className:"space-y-6",children:[e.jsxs(n.div,{variants:g,className:"flex items-center justify-between flex-wrap gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-azure-primary/10 dark:bg-matrix-highlight/10 border border-azure-primary/20 dark:border-matrix-highlight/30 flex items-center justify-center",children:e.jsx(y,{className:"w-5 h-5 text-azure-primary dark:text-matrix-highlight"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-bold text-azure-text dark:text-matrix-highlight",children:"Skills"}),e.jsxs("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-tertiary",children:[m.length," skill",m.length!==1?"s":"",", ",E," enabled"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:C,className:"flex items-center gap-2 px-4 py-2 rounded-lg border border-azure-primary dark:border-matrix-primary text-azure-primary dark:text-matrix-primary font-medium hover:bg-azure-primary/10 dark:hover:bg-matrix-primary/10 transition-colors",children:[e.jsx(u,{className:"w-4 h-4"}),"Upload"]}),e.jsxs("button",{onClick:R,className:"flex items-center gap-2 px-4 py-2 rounded-lg bg-azure-primary dark:bg-matrix-primary text-white dark:text-black font-medium hover:opacity-90 transition-opacity",children:[e.jsx(b,{className:"w-4 h-4"}),"Reload"]})]})]}),D?e.jsxs(n.div,{variants:g,className:"text-center py-12",children:[e.jsx(b,{className:"w-8 h-8 animate-spin mx-auto text-azure-text-secondary dark:text-matrix-dim"}),e.jsx("p",{className:"mt-2 text-azure-text-secondary dark:text-matrix-dim",children:"Loading skills..."})]}):m.length===0?e.jsxs(n.div,{variants:g,className:"rounded-lg border border-dashed border-azure-border dark:border-matrix-primary p-8 text-center",children:[e.jsx(y,{className:"w-12 h-12 mx-auto text-azure-text-tertiary dark:text-matrix-dim"}),e.jsx("h3",{className:"mt-4 text-lg font-medium text-azure-text-primary dark:text-matrix-highlight",children:"No skills found"}),e.jsxs("p",{className:"mt-2 text-azure-text-secondary dark:text-matrix-secondary max-w-md mx-auto",children:["Upload a skill ZIP or add skills manually to"," ",e.jsx("code",{className:"bg-azure-hover dark:bg-zinc-800 px-1 rounded",children:"~/.morpheus/skills/"}),". Each skill folder must contain a"," ",e.jsx("code",{className:"bg-azure-hover dark:bg-zinc-800 px-1 rounded",children:"SKILL.md"})," file with frontmatter."]}),e.jsxs("button",{onClick:C,className:"mt-4 inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-azure-primary dark:bg-matrix-primary text-white dark:text-black font-medium hover:opacity-90 transition-opacity",children:[e.jsx(u,{className:"w-4 h-4"}),"Upload Skill"]})]}):e.jsx(n.div,{variants:U,initial:"hidden",animate:"show",className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:m.map(a=>e.jsx(Q,{skill:a,onToggle:()=>T(a),onView:()=>$(a)},a.name))}),e.jsx(X,{skill:r,open:!!r,onOpenChange:a=>!a&&i(null)}),e.jsxs(O,{open:x,onOpenChange:N,children:[e.jsx(K,{children:e.jsx(F,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(u,{className:"w-5 h-5"}),"Upload Skill"]})})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("p",{className:"text-azure-text-secondary dark:text-matrix-secondary text-sm",children:["Upload a ZIP file containing your skill folder. The ZIP must have exactly one folder at root level with a valid ",e.jsx("code",{className:"bg-azure-hover dark:bg-zinc-800 px-1 rounded",children:"SKILL.md"})," file."]}),e.jsxs("div",{className:"border-2 border-dashed border-azure-border dark:border-matrix-primary rounded-lg p-6",children:[e.jsx("input",{ref:j,type:"file",accept:".zip,application/zip,application/x-zip-compressed",onChange:P,disabled:o,className:"hidden",id:"skill-upload-input"}),e.jsxs("label",{htmlFor:"skill-upload-input",className:`flex flex-col items-center gap-2 cursor-pointer ${o?"opacity-50 cursor-not-allowed":""}`,children:[o?e.jsx(b,{className:"w-8 h-8 animate-spin text-azure-primary dark:text-matrix-primary"}):e.jsx(u,{className:"w-8 h-8 text-azure-text-tertiary dark:text-matrix-dim"}),e.jsx("span",{className:"text-azure-text-secondary dark:text-matrix-secondary",children:o?"Uploading...":"Click to select ZIP file"})]})]}),c&&e.jsxs("div",{className:"flex items-start gap-2 p-3 rounded-lg bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800",children:[e.jsx(V,{className:"w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-red-800 dark:text-red-200",children:c.error}),c.details&&e.jsx("p",{className:"text-xs text-red-600 dark:text-red-300 mt-1",children:c.details})]})]}),w&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800",children:[e.jsx(W,{className:"w-5 h-5 text-green-600 dark:text-green-400"}),e.jsx("p",{className:"text-sm text-green-800 dark:text-green-200",children:w})]}),e.jsxs("div",{className:"rounded-lg bg-azure-hover dark:bg-zinc-900 p-3",children:[e.jsx("h4",{className:"text-sm font-medium text-azure-text-primary dark:text-matrix-highlight mb-2",children:"ZIP Structure Example"}),e.jsx("pre",{className:"text-xs text-azure-text-secondary dark:text-matrix-secondary",children:`my-skill.zip
2
- └── my-skill/
3
- ├── SKILL.md (required)
4
- ├── scripts/ (optional)
5
- │ └── script.js
6
- └── examples/ (optional)
7
- └── output.txt`})]})]})]}),d&&e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",children:e.jsx(b,{className:"w-8 h-8 animate-spin text-white"})})]})}export{ae as SkillsPage};
@@ -1 +0,0 @@
1
- import{j as e}from"./vendor-motion-C3CZ8ZlO.js";import{r as x}from"./vendor-react-DikRIOlj.js";import{u as F}from"./vendor-utils-D4NnWbOU.js";import{c as b,S as X,N as v}from"./config-D0DePxKu.js";import{S as Y,T as w}from"./SelectInput-KVLsnfra.js";import{j as J,a1 as C,H as S,O as Q,al as O,a5 as D,ab as V,am as I,ac as Z,an as ee,ao as te,ap as re,w as ae,z as se,l as ie,aq as ne,h as le,ad as de,G as oe,X as ce}from"./vendor-icons-BVuQI-6R.js";import"./index-BxVeRyTh.js";const xe={name:"",host:"",port:7900,auth_token:"",tls:!1};function me(t){const l=Math.floor(t/86400),i=Math.floor(t%86400/3600),o=Math.floor(t%3600/60);return l>0?`${l}d ${i}h`:i>0?`${i}h ${o}m`:`${o}m`}function he(t,l){const i=t>=1024?`${(t/1024).toFixed(1)}GB`:`${Math.round(t)}MB`,o=l>=1024?`${(l/1024).toFixed(1)}GB`:`${Math.round(l)}MB`;return`${i} / ${o}`}function ue({state:t}){return t==="online"?e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-emerald-500 bg-emerald-500/10 border border-emerald-500/30 rounded-full px-2 py-0.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse"}),"online"]}):t==="connecting"?e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-amber-500 bg-amber-500/10 border border-amber-500/30 rounded-full px-2 py-0.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-500 animate-pulse"}),"connecting"]}):t==="error"?e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-red-500 bg-red-500/10 border border-red-500/30 rounded-full px-2 py-0.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),"error"]}):e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-zinc-500 bg-zinc-500/10 border border-zinc-500/30 rounded-full px-2 py-0.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-zinc-500"}),"offline"]})}function ge({cap:t}){const i={filesystem:"text-blue-400 bg-blue-400/10 border-blue-400/30",shell:"text-yellow-400 bg-yellow-400/10 border-yellow-400/30",git:"text-orange-400 bg-orange-400/10 border-orange-400/30",browser:"text-purple-400 bg-purple-400/10 border-purple-400/30",network:"text-cyan-400 bg-cyan-400/10 border-cyan-400/30",packages:"text-green-400 bg-green-400/10 border-green-400/30",processes:"text-pink-400 bg-pink-400/10 border-pink-400/30",system:"text-indigo-400 bg-indigo-400/10 border-indigo-400/30"}[t]??"text-zinc-400 bg-zinc-400/10 border-zinc-400/30";return e.jsx("span",{className:`text-[10px] font-medium border rounded px-1.5 py-0.5 ${i}`,children:t})}function be({status:t,entry:l,onPing:i,onEdit:o,onDelete:a}){const[d,h]=x.useState(!1),s=t.state==="online";return e.jsxs("div",{className:`rounded-lg border bg-white dark:bg-black transition-all ${s?"border-emerald-500/40 dark:border-emerald-500/30":t.state==="error"?"border-red-500/40 dark:border-red-500/30":t.state==="connecting"?"border-amber-500/40 dark:border-amber-500/30":"border-azure-border dark:border-matrix-primary"}`,children:[e.jsxs("div",{className:"p-4 bg-azure-surface/50 dark:bg-zinc-950/50",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("div",{className:`w-9 h-9 rounded-lg flex items-center justify-center shrink-0 ${s?"bg-emerald-500/10":"bg-zinc-100 dark:bg-zinc-900"}`,children:e.jsx(te,{className:`w-4 h-4 ${s?"text-emerald-500":"text-zinc-400 dark:text-matrix-tertiary"}`})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"font-semibold text-azure-text dark:text-matrix-highlight truncate",children:t.name}),e.jsx(ue,{state:t.state}),l?.tls&&e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] text-emerald-500 bg-emerald-500/10 border border-emerald-500/30 rounded px-1.5 py-0.5",children:[e.jsx(re,{className:"w-2.5 h-2.5"}),"TLS"]})]}),e.jsxs("div",{className:"text-xs text-azure-text-secondary dark:text-matrix-tertiary mt-0.5",children:[t.host,":",t.port]})]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("button",{onClick:()=>i(t.name),className:"p-1.5 rounded border border-azure-border dark:border-matrix-primary text-azure-text-secondary dark:text-matrix-secondary hover:text-azure-primary dark:hover:text-matrix-highlight hover:border-azure-primary dark:hover:border-matrix-highlight transition-colors",title:"Ping",children:e.jsx(I,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>o(l??{name:t.name,host:t.host,port:t.port,auth_token:"",tls:!1}),className:"p-1.5 rounded border border-azure-border dark:border-matrix-primary text-azure-text-secondary dark:text-matrix-secondary hover:text-azure-primary dark:hover:text-matrix-highlight hover:border-azure-primary dark:hover:border-matrix-highlight transition-colors",title:"Edit",children:e.jsx(ae,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>a(t.name),className:"p-1.5 rounded border border-red-200 dark:border-red-800/50 text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20 hover:text-red-500 transition-colors",title:"Remove",children:e.jsx(se,{className:"w-3.5 h-3.5"})})]})]}),t.error&&e.jsxs("div",{className:"mt-3 flex items-start gap-2 text-xs text-red-500 bg-red-500/10 border border-red-500/20 rounded p-2",children:[e.jsx(C,{className:"w-3.5 h-3.5 shrink-0 mt-0.5"}),e.jsx("span",{children:t.error})]}),s&&t.stats&&e.jsx("div",{className:"mt-3 space-y-2",children:e.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1 text-xs",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary",children:"OS"}),e.jsx("span",{className:"text-azure-text dark:text-matrix-secondary font-mono",children:t.stats.os})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary",children:"Hostname"}),e.jsx("span",{className:"text-azure-text dark:text-matrix-secondary font-mono truncate max-w-[120px]",children:t.stats.hostname})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary flex items-center gap-1",children:[e.jsx(ie,{className:"w-3 h-3"})," CPU"]}),e.jsxs("span",{className:"text-azure-text dark:text-matrix-secondary font-mono",children:[t.stats.cpu_percent.toFixed(1),"%"]})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary flex items-center gap-1",children:[e.jsx(ne,{className:"w-3 h-3"})," RAM"]}),e.jsx("span",{className:"text-azure-text dark:text-matrix-secondary font-mono",children:he(t.stats.memory_used_mb,t.stats.memory_total_mb)})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary flex items-center gap-1",children:[e.jsx(le,{className:"w-3 h-3"})," Uptime"]}),e.jsx("span",{className:"text-azure-text dark:text-matrix-secondary font-mono",children:me(t.stats.uptime_seconds)})]}),t.config?.sandbox_dir&&e.jsxs("div",{className:"flex justify-between col-span-2",children:[e.jsx("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary shrink-0",children:"Sandbox"}),e.jsx("span",{className:"text-azure-text dark:text-matrix-secondary font-mono truncate text-right ml-2",children:t.config.sandbox_dir})]}),t.config&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary",children:"Read-only"}),e.jsx("span",{className:`font-medium ${t.config.readonly_mode?"text-amber-500":"text-emerald-500"}`,children:t.config.readonly_mode?"yes":"no"})]})]})}),!s&&t.lastSeen&&e.jsxs("div",{className:"mt-2 text-xs text-azure-text-secondary dark:text-matrix-tertiary",children:["Last seen: ",new Date(t.lastSeen).toLocaleString()]})]}),t.capabilities.length>0&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>h(!d),className:"w-full flex items-center justify-between px-4 py-2 border-t border-azure-border dark:border-matrix-primary/30 text-xs text-azure-text-secondary dark:text-matrix-tertiary hover:text-azure-text dark:hover:text-matrix-secondary hover:bg-azure-surface/50 dark:hover:bg-zinc-900/50 transition-colors",children:[e.jsxs("span",{children:["Capabilities (",t.capabilities.length,")"]}),d?e.jsx(de,{className:"w-3.5 h-3.5"}):e.jsx(oe,{className:"w-3.5 h-3.5"})]}),d&&e.jsxs("div",{className:"px-4 pb-4 pt-3 border-t border-azure-border dark:border-matrix-primary/30 bg-azure-surface/30 dark:bg-zinc-900/30",children:[e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.capabilities.map(m=>e.jsx(ge,{cap:m},m))}),t.lastSeen&&e.jsxs("div",{className:"text-xs text-azure-text-secondary dark:text-matrix-tertiary mt-3",children:["Last seen: ",new Date(t.lastSeen).toLocaleString()]})]})]})]})}function H({title:t,initial:l,isEdit:i,onSave:o,onClose:a,saving:d,error:h}){const[s,m]=x.useState(l),[j,p]=x.useState(null),f=()=>{if(!s.name.trim()){p("Name is required.");return}if(!s.host.trim()){p("Host is required.");return}if(!i&&!s.auth_token.trim()){p("Auth token is required.");return}p(null),o(s)};return e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm z-50 flex items-center justify-center p-4",children:e.jsxs("div",{className:"bg-white dark:bg-black border border-azure-border dark:border-matrix-primary rounded-lg shadow-xl w-full max-w-md",children:[e.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-azure-border dark:border-matrix-primary",children:[e.jsxs("h2",{className:"text-base font-semibold text-azure-text dark:text-matrix-highlight flex items-center gap-2",children:[e.jsx(S,{className:"w-4 h-4"}),t]}),e.jsx("button",{onClick:a,className:"text-azure-text-secondary dark:text-matrix-tertiary hover:text-azure-text dark:hover:text-matrix-highlight transition-colors",children:e.jsx(ce,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"p-5 space-y-3",children:[(j||h)&&e.jsxs("div",{className:"flex items-start gap-2 text-sm text-red-500 bg-red-500/10 border border-red-500/20 rounded p-3",children:[e.jsx(C,{className:"w-4 h-4 shrink-0 mt-0.5"}),e.jsx("span",{children:j||h})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx("div",{className:"col-span-2",children:e.jsx(w,{label:"Name",value:s.name,onChange:c=>m({...s,name:c.target.value}),disabled:i,helperText:i?"Name cannot be changed after creation.":"Unique identifier (lowercase, hyphens ok)."})}),e.jsx(w,{label:"Host",value:s.host,onChange:c=>m({...s,host:c.target.value}),placeholder:"localhost"}),e.jsx(v,{label:"Port",value:s.port,onChange:c=>m({...s,port:Number(c.target.value)}),min:1,max:65535}),e.jsx("div",{className:"col-span-2",children:e.jsx(w,{label:"Auth Token",value:s.auth_token,onChange:c=>m({...s,auth_token:c.target.value}),placeholder:i?"Leave blank to keep existing token":"Shared secret",helperText:i?"Leave blank to keep the current token.":void 0})})]}),e.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[e.jsx("input",{type:"checkbox",id:"smith-tls",checked:s.tls??!1,onChange:c=>m({...s,tls:c.target.checked}),className:"w-4 h-4 accent-azure-primary dark:accent-matrix-highlight"}),e.jsxs("label",{htmlFor:"smith-tls",className:"text-sm text-azure-text-secondary dark:text-matrix-secondary cursor-pointer",children:["Use TLS (",e.jsx("code",{className:"text-xs font-mono",children:"wss://"}),")"]})]})]}),e.jsxs("div",{className:"flex justify-end gap-2 px-5 py-4 border-t border-azure-border dark:border-matrix-primary",children:[e.jsx("button",{onClick:a,className:"px-4 py-2 rounded text-sm text-azure-text-secondary dark:text-matrix-tertiary hover:text-azure-text dark:hover:text-matrix-highlight transition-colors",children:"Cancel"}),e.jsx("button",{onClick:f,disabled:d,className:"px-4 py-2 rounded text-sm font-medium bg-azure-primary text-white hover:bg-azure-active dark:bg-matrix-highlight dark:text-black dark:hover:bg-matrix-highlight/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:d?"Saving…":i?"Update Smith":"Add Smith"})]})]})})}function ze(){const{data:t,mutate:l}=F("/api/smiths",b.getSmithsList,{refreshInterval:1e4}),{data:i,mutate:o}=F("/api/smiths/config",b.getSmithsConfig),[a,d]=x.useState(null),[h,s]=x.useState(!1),[m,j]=x.useState(!1),[p,f]=x.useState(!1),[c,z]=x.useState(null),[_,k]=x.useState(!1),[$,u]=x.useState(null),[N,T]=x.useState(null),[U,M]=x.useState(!1);i&&!a&&d(i);const g=(r,n)=>{T({type:r,message:n}),setTimeout(()=>T(null),4e3)},q=async r=>{try{const n=await b.pingSmith(r);g("success",`Ping ${r}: ${n.latency_ms}ms`)}catch(n){g("error",`Ping failed: ${n.message}`)}},B=async r=>{if(confirm(`Remove Smith "${r}" from the registry?`))try{await b.removeSmith(r),l(),o(),d(null),g("success",`Smith "${r}" removed.`)}catch(n){g("error",`Failed to remove: ${n.message}`)}},G=async r=>{if(a){if(a.entries.some(n=>n.name===r.name)){u(`Smith "${r.name}" already exists.`);return}k(!0),u(null);try{const n={...a,entries:[...a.entries,r]};await b.updateSmithsConfig(n),f(!1),d(null),l(),o(),g("success",`Smith "${r.name}" added.`)}catch(n){u(n.message)}finally{k(!1)}}},W=async r=>{if(a){k(!0),u(null);try{const n={...a,entries:a.entries.map(R=>R.name===r.name?r:R)};await b.updateSmithsConfig(n),z(null),d(null),l(),o(),g("success",`Smith "${r.name}" updated.`)}catch(n){u(n.message)}finally{k(!1)}}},K=async()=>{if(a){j(!0);try{await b.updateSmithsConfig(a),l(),o(),g("success","Settings saved."),s(!1)}catch(r){g("error",r.message)}finally{j(!1)}}},y=t?.smiths??[],L=y.filter(r=>r.state==="online").length,P=y.filter(r=>r.state==="offline"||r.state==="error").length,A=y.filter(r=>r.state==="connecting").length,E={};return(a??i)?.entries?.forEach(r=>{E[r.name]=r}),e.jsxs("div",{className:"space-y-6",children:[N&&e.jsxs("div",{className:`fixed top-4 right-4 z-50 flex items-center gap-2 px-4 py-3 rounded-lg shadow-xl text-sm border ${N.type==="success"?"bg-emerald-50 dark:bg-emerald-900/30 border-emerald-300 dark:border-emerald-500/50 text-emerald-700 dark:text-emerald-400":"bg-red-50 dark:bg-red-900/30 border-red-300 dark:border-red-500/50 text-red-700 dark:text-red-400"}`,children:[N.type==="success"?e.jsx(J,{className:"w-4 h-4"}):e.jsx(C,{className:"w-4 h-4"}),N.message]}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-azure-primary/10 dark:bg-matrix-highlight/10 border border-azure-primary/20 dark:border-matrix-highlight/30 flex items-center justify-center",children:e.jsx(S,{className:"w-5 h-5 text-azure-primary dark:text-matrix-highlight"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-bold text-azure-text dark:text-matrix-highlight",children:"Smiths"}),e.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-tertiary",children:"Remote DevKit agents via WebSocket"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{onClick:async()=>{M(!0),await Promise.all([l(),o(),new Promise(r=>setTimeout(r,500))]),M(!1)},className:"p-2 rounded border border-azure-border dark:border-matrix-primary text-azure-text-secondary dark:text-matrix-secondary hover:text-azure-primary dark:hover:text-matrix-highlight transition-colors",title:"Refresh",children:e.jsx(Q,{className:`w-4 h-4 transition-transform ${U?"animate-spin":""}`})}),e.jsxs("button",{onClick:()=>{s(!h),!a&&i&&d(i)},className:`flex items-center gap-1.5 px-3 py-2 rounded border text-sm transition-colors ${h?"bg-azure-primary/10 border-azure-primary dark:bg-matrix-highlight/10 dark:border-matrix-highlight text-azure-primary dark:text-matrix-highlight":"border-azure-border dark:border-matrix-primary text-azure-text-secondary dark:text-matrix-secondary hover:text-azure-primary dark:hover:text-matrix-highlight"}`,children:[e.jsx(O,{className:"w-4 h-4"}),"Settings"]}),e.jsxs("button",{onClick:()=>{f(!0),u(null)},className:"flex items-center gap-1.5 px-3 py-2 rounded bg-azure-primary text-white hover:bg-azure-active dark:bg-matrix-highlight dark:text-black dark:hover:bg-matrix-highlight/90 text-sm font-medium transition-colors",children:[e.jsx(D,{className:"w-4 h-4"}),"Add Smith"]})]})]}),t&&e.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-sm",children:[e.jsx("span",{className:"text-azure-text-secondary dark:text-matrix-tertiary",children:"Total"}),e.jsx("span",{className:"font-semibold text-azure-text dark:text-matrix-secondary",children:t.total})]}),L>0&&e.jsxs("div",{className:"flex items-center gap-1.5 text-sm",children:[e.jsx(V,{className:"w-3.5 h-3.5 text-emerald-500"}),e.jsxs("span",{className:"font-semibold text-emerald-500",children:[L," online"]})]}),A>0&&e.jsxs("div",{className:"flex items-center gap-1.5 text-sm",children:[e.jsx(I,{className:"w-3.5 h-3.5 text-amber-500"}),e.jsxs("span",{className:"font-semibold text-amber-500",children:[A," connecting"]})]}),P>0&&e.jsxs("div",{className:"flex items-center gap-1.5 text-sm",children:[e.jsx(Z,{className:"w-3.5 h-3.5 text-zinc-400 dark:text-matrix-tertiary"}),e.jsxs("span",{className:"font-semibold text-zinc-500 dark:text-matrix-tertiary",children:[P," offline"]})]}),!t.enabled&&e.jsxs("div",{className:"flex items-center gap-1.5 text-sm text-amber-500 bg-amber-500/10 border border-amber-500/30 rounded-full px-2.5 py-0.5",children:[e.jsx(ee,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:"Smiths subsystem disabled"})]})]}),h&&a&&e.jsxs("div",{className:"rounded-lg border border-azure-border dark:border-matrix-primary bg-white dark:bg-black p-5 space-y-4",children:[e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("h2",{className:"text-sm font-semibold text-azure-text dark:text-matrix-highlight flex items-center gap-2",children:[e.jsx(O,{className:"w-4 h-4"}),"Global Settings"]})}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsx("div",{className:"sm:col-span-2",children:e.jsx(X,{label:"Enable Smiths",checked:a.enabled,onChange:r=>d({...a,enabled:r}),helperText:"Master switch — disabling stops all Smith connections."})}),e.jsx(Y,{label:"Execution Mode",value:a.execution_mode,onChange:r=>d({...a,execution_mode:r.target.value}),options:[{label:"Sync — inline result",value:"sync"},{label:"Async — background task",value:"async"}]}),e.jsx(v,{label:"Heartbeat Interval (s)",value:Math.round(a.heartbeat_interval_ms/1e3),onChange:r=>d({...a,heartbeat_interval_ms:Number(r.target.value)*1e3}),min:5}),e.jsx(v,{label:"Connection Timeout (s)",value:Math.round(a.connection_timeout_ms/1e3),onChange:r=>d({...a,connection_timeout_ms:Number(r.target.value)*1e3}),min:1}),e.jsx(v,{label:"Task Timeout (s)",value:Math.round(a.task_timeout_ms/1e3),onChange:r=>d({...a,task_timeout_ms:Number(r.target.value)*1e3}),min:5})]}),e.jsx("div",{className:"flex justify-end pt-1",children:e.jsx("button",{onClick:K,disabled:m,className:"px-4 py-2 rounded text-sm font-medium bg-azure-primary text-white hover:bg-azure-active dark:bg-matrix-highlight dark:text-black dark:hover:bg-matrix-highlight/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:m?"Saving…":"Save Settings"})})]}),y.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary flex items-center justify-center mb-4",children:e.jsx(S,{className:"w-7 h-7 text-azure-text-secondary dark:text-matrix-tertiary"})}),e.jsx("h3",{className:"text-base font-semibold text-azure-text dark:text-matrix-highlight mb-1",children:"No Smiths configured"}),e.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-tertiary mb-4",children:"Add a remote agent to delegate DevKit tasks to isolated environments."}),e.jsxs("button",{onClick:()=>{f(!0),u(null)},className:"flex items-center gap-2 px-4 py-2 rounded bg-azure-primary text-white hover:bg-azure-active dark:bg-matrix-highlight dark:text-black text-sm font-medium transition-colors",children:[e.jsx(D,{className:"w-4 h-4"}),"Add First Smith"]})]}):e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:y.map(r=>e.jsx(be,{status:r,entry:E[r.name],onPing:q,onEdit:n=>{z({...n,auth_token:""}),u(null)},onDelete:B},r.name))}),p&&e.jsx(H,{title:"Add Smith",initial:xe,onSave:G,onClose:()=>f(!1),saving:_,error:$}),c&&e.jsx(H,{title:"Edit Smith",initial:c,isEdit:!0,onSave:W,onClose:()=>z(null),saving:_,error:$})]})}export{ze as SmithsPage};
@@ -1 +0,0 @@
1
- import{j as e,m as n}from"./vendor-motion-C3CZ8ZlO.js";import{r as s}from"./vendor-react-DikRIOlj.js";import{u as S}from"./vendor-utils-D4NnWbOU.js";import{t as m}from"./index-BxVeRyTh.js";import{P as L}from"./Pagination-JsiwxVNQ.js";import{g as D,O,Z as B,aa as E,p as M,q as _,r as W,h as X,X as q,a1 as U}from"./vendor-icons-BVuQI-6R.js";const V={hidden:{opacity:0},show:{opacity:1,transition:{staggerChildren:.05}}},u={hidden:{opacity:0,y:8},show:{opacity:1,y:0}},Z={pending:"Pending",running:"Running",completed:"Completed",failed:"Failed",cancelled:"Cancelled"};function F({status:r}){const t="inline-flex items-center gap-1 text-xs font-medium rounded-full px-2 py-0.5 border";return r==="completed"?e.jsxs("span",{className:`${t} text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20 border-emerald-200 dark:border-emerald-700/50`,children:[e.jsx(M,{className:"w-3 h-3"}),"Completed"]}):r==="failed"?e.jsxs("span",{className:`${t} text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-700/50`,children:[e.jsx(_,{className:"w-3 h-3"}),"Failed"]}):r==="running"?e.jsxs("span",{className:`${t} text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-700/50`,children:[e.jsx(W,{className:"w-3 h-3 animate-spin"}),"Running"]}):r==="cancelled"?e.jsxs("span",{className:`${t} text-zinc-500 dark:text-zinc-400 bg-zinc-100 dark:bg-zinc-900 border-zinc-200 dark:border-zinc-700`,children:[e.jsx(_,{className:"w-3 h-3"}),"Cancelled"]}):e.jsxs("span",{className:`${t} text-yellow-600 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-700/50`,children:[e.jsx(X,{className:"w-3 h-3"}),"Pending"]})}function R({agent:r}){return e.jsx("span",{className:"inline-flex items-center text-[10px] font-medium font-mono rounded px-1.5 py-0.5 border border-azure-primary/20 dark:border-matrix-primary/40 bg-azure-primary/5 dark:bg-matrix-primary/10 text-azure-primary dark:text-matrix-secondary uppercase",children:r})}function T({channel:r}){return e.jsx("span",{className:"inline-flex items-center text-[10px] font-medium rounded px-1.5 py-0.5 border border-zinc-200 dark:border-zinc-700 bg-zinc-100 dark:bg-zinc-900 text-zinc-500 dark:text-zinc-400 uppercase",children:r})}const P=r=>r?new Date(r).toLocaleString(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"—",A=r=>r?new Date(r).toLocaleString():"—";function G({task:r,onClose:t,onCancel:c,onRetry:j}){const d=r.status==="pending"||r.status==="running",h=r.status==="failed";return e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm",onClick:t}),e.jsxs("div",{className:"relative bg-white dark:bg-black border border-azure-border dark:border-matrix-primary rounded-lg shadow-xl w-full max-w-2xl max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 px-5 py-4 border-b border-azure-border dark:border-matrix-primary shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("div",{className:"w-9 h-9 rounded-lg bg-azure-primary/10 dark:bg-matrix-highlight/10 flex items-center justify-center shrink-0",children:e.jsx(D,{className:"w-4 h-4 text-azure-primary dark:text-matrix-highlight"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h2",{className:"text-base font-semibold text-azure-text dark:text-matrix-highlight",children:"Task Details"}),e.jsx(F,{status:r.status})]}),e.jsx("p",{className:"text-xs font-mono text-azure-text-secondary dark:text-matrix-tertiary mt-0.5 truncate",children:r.id})]})]}),e.jsx("button",{onClick:t,className:"p-1.5 rounded text-azure-text-secondary dark:text-matrix-tertiary hover:text-azure-text dark:hover:text-matrix-highlight hover:bg-azure-surface dark:hover:bg-zinc-900 transition-colors shrink-0",children:e.jsx(q,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"overflow-y-auto flex-1 p-5 space-y-5",children:[e.jsx("div",{className:"grid grid-cols-2 gap-x-6 gap-y-2 text-sm",children:[{label:"Agent",value:e.jsx(R,{agent:r.agent})},{label:"Channel",value:e.jsx(T,{channel:r.origin_channel})},{label:"Attempts",value:`${r.attempt_count} / ${r.max_attempts}`},{label:"Session",value:e.jsx("span",{className:"font-mono text-xs",children:r.session_id})},{label:"Created",value:A(r.created_at)},{label:"Finished",value:A(r.finished_at)}].map(({label:i,value:k})=>e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("span",{className:"text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary",children:i}),e.jsx("span",{className:"text-azure-text dark:text-matrix-secondary",children:k})]},i))}),e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary mb-2",children:"Input"}),e.jsx("pre",{className:"rounded-lg bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary/40 p-4 text-xs text-azure-text-secondary dark:text-matrix-secondary overflow-auto max-h-48 whitespace-pre-wrap leading-relaxed font-mono",children:r.input})]}),r.output&&e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary mb-2",children:"Output"}),e.jsx("pre",{className:"rounded-lg bg-azure-surface dark:bg-zinc-900 border border-azure-border dark:border-matrix-primary/40 p-4 text-xs text-azure-text-secondary dark:text-matrix-secondary overflow-auto max-h-64 whitespace-pre-wrap leading-relaxed font-mono",children:r.output})]}),r.error&&e.jsxs("div",{children:[e.jsxs("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-red-500 mb-2 flex items-center gap-1",children:[e.jsx(U,{className:"w-3 h-3"})," Error"]}),e.jsx("pre",{className:"rounded-lg bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-800/50 p-4 text-xs text-red-600 dark:text-red-400 overflow-auto max-h-48 whitespace-pre-wrap leading-relaxed font-mono",children:r.error})]})]}),(d||h)&&e.jsxs("div",{className:"flex justify-end gap-2 px-5 py-4 border-t border-azure-border dark:border-matrix-primary shrink-0",children:[d&&e.jsx("button",{onClick:c,className:"px-4 py-2 rounded text-sm border border-red-300 dark:border-red-700/60 text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors",children:"Cancel Task"}),h&&e.jsx("button",{onClick:j,className:"px-4 py-2 rounded text-sm font-medium bg-azure-primary text-white hover:bg-azure-active dark:bg-matrix-highlight dark:text-black dark:hover:bg-matrix-highlight/90 transition-colors",children:"Retry Task"})]})]})]})}const H={Pending:"text-yellow-600 dark:text-yellow-400",Running:"text-blue-600 dark:text-blue-400",Completed:"text-emerald-600 dark:text-emerald-400",Failed:"text-red-600 dark:text-red-400",Cancelled:"text-zinc-500 dark:text-zinc-400",Total:"text-azure-text dark:text-matrix-highlight"};function o({label:r,value:t}){return e.jsxs("div",{className:"rounded-lg border border-azure-border dark:border-matrix-primary bg-white dark:bg-black px-4 py-3",children:[e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary",children:r}),e.jsx("p",{className:`text-2xl font-bold mt-0.5 ${H[r]??"text-azure-text dark:text-matrix-secondary"}`,children:t})]})}function ae(){const[r,t]=s.useState(""),[c,j]=s.useState(""),[d,h]=s.useState(""),[i,k]=s.useState(""),[p,b]=s.useState(null),[v,f]=s.useState(1),[N,$]=s.useState(20),z=s.useMemo(()=>({status:r||void 0,agent:c||void 0,origin_channel:d||void 0,session_id:i.trim()||void 0,page:v,per_page:N}),[r,c,d,i,v,N]),g=()=>f(1),{data:l}=S("/tasks/stats",()=>m.stats(),{refreshInterval:5e3}),{data:x,mutate:w}=S(["/tasks",z],()=>m.list(z),{refreshInterval:3e3}),C=x?.data??[],y="px-3 py-2 rounded border border-azure-border dark:border-matrix-primary bg-white dark:bg-black text-azure-text dark:text-matrix-secondary text-sm focus:outline-none focus:border-azure-primary dark:focus:border-matrix-highlight";return e.jsxs(n.div,{variants:V,initial:"hidden",animate:"show",className:"space-y-6",children:[e.jsxs(n.div,{variants:u,className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-azure-primary/10 dark:bg-matrix-highlight/10 border border-azure-primary/20 dark:border-matrix-highlight/30 flex items-center justify-center",children:e.jsx(D,{className:"w-5 h-5 text-azure-primary dark:text-matrix-highlight"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-bold text-azure-text dark:text-matrix-highlight",children:"Tasks"}),e.jsx("p",{className:"text-sm text-azure-text-secondary dark:text-matrix-tertiary",children:"Async tasks delegated by Oracle and processed by workers."})]})]}),e.jsxs(n.div,{variants:u,className:"grid grid-cols-3 md:grid-cols-6 gap-3",children:[e.jsx(o,{label:"Pending",value:l?.pending??0}),e.jsx(o,{label:"Running",value:l?.running??0}),e.jsx(o,{label:"Completed",value:l?.completed??0}),e.jsx(o,{label:"Failed",value:l?.failed??0}),e.jsx(o,{label:"Cancelled",value:l?.cancelled??0}),e.jsx(o,{label:"Total",value:l?.total??0})]}),e.jsxs(n.div,{variants:u,className:"rounded-lg border border-azure-border dark:border-matrix-primary p-4 bg-white dark:bg-black grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3",children:[e.jsxs("select",{className:y,value:r,onChange:a=>{t(a.target.value||""),g()},children:[e.jsx("option",{value:"",children:"All status"}),Object.entries(Z).map(([a,I])=>e.jsx("option",{value:a,children:I},a))]}),e.jsxs("select",{className:y,value:c,onChange:a=>{j(a.target.value||""),g()},children:[e.jsx("option",{value:"",children:"All agents"}),e.jsx("option",{value:"apoc",children:"Apoc"}),e.jsx("option",{value:"neo",children:"Neo"}),e.jsx("option",{value:"smith",children:"Smith"}),e.jsx("option",{value:"trinit",children:"Trinity"})]}),e.jsxs("select",{className:y,value:d,onChange:a=>{h(a.target.value||""),g()},children:[e.jsx("option",{value:"",children:"All channels"}),e.jsx("option",{value:"telegram",children:"Telegram"}),e.jsx("option",{value:"discord",children:"Discord"}),e.jsx("option",{value:"ui",children:"UI"}),e.jsx("option",{value:"api",children:"API"}),e.jsx("option",{value:"webhook",children:"Webhook"}),e.jsx("option",{value:"cli",children:"CLI"})]}),e.jsx("input",{className:`${y} placeholder:text-azure-text-secondary/50 dark:placeholder:text-matrix-secondary/40`,value:i,onChange:a=>{k(a.target.value),g()},placeholder:"Filter by session ID"})]}),e.jsx(n.div,{variants:u,className:"rounded-lg border border-azure-border dark:border-matrix-primary overflow-hidden",children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm min-w-[820px]",children:[e.jsx("thead",{className:"bg-azure-surface dark:bg-zinc-900 border-b border-azure-border dark:border-matrix-primary",children:e.jsx("tr",{children:[{label:"ID",cls:"w-24"},{label:"Status",cls:"w-32"},{label:"Agent",cls:"w-24"},{label:"Channel",cls:"w-24"},{label:"Session",cls:"w-28"},{label:"Attempts",cls:"w-20"},{label:"Created",cls:"w-36"},{label:"Finished",cls:"w-36"},{label:"",cls:"w-16"}].map(a=>e.jsx("th",{className:`text-left px-4 py-3 text-[10px] font-semibold uppercase tracking-wider text-azure-text-secondary dark:text-matrix-tertiary ${a.cls}`,children:a.label},a.label))})}),e.jsx("tbody",{children:C.length===0?e.jsx("tr",{children:e.jsxs("td",{colSpan:9,className:"px-4 py-12 text-center text-azure-text-secondary dark:text-matrix-tertiary",children:[e.jsx(O,{className:"w-5 h-5 mx-auto mb-2 opacity-40"}),"No tasks found."]})}):C.map(a=>e.jsxs("tr",{className:"border-b border-azure-border dark:border-matrix-primary/30 hover:bg-azure-surface/60 dark:hover:bg-zinc-900/50 transition-colors",children:[e.jsx("td",{className:"px-4 py-3 font-mono text-xs text-azure-text-secondary dark:text-matrix-tertiary",children:a.id.slice(0,8)}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(F,{status:a.status})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(R,{agent:a.agent})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(T,{channel:a.origin_channel})}),e.jsx("td",{className:"px-4 py-3 font-mono text-xs text-azure-text-secondary dark:text-matrix-tertiary",children:a.session_id?a.session_id.slice(0,10):"—"}),e.jsxs("td",{className:"px-4 py-3 text-center text-azure-text-secondary dark:text-matrix-secondary text-xs",children:[a.attempt_count,"/",a.max_attempts]}),e.jsx("td",{className:"px-4 py-3 text-xs text-azure-text-secondary dark:text-matrix-secondary whitespace-nowrap",children:P(a.created_at)}),e.jsx("td",{className:"px-4 py-3 text-xs text-azure-text-secondary dark:text-matrix-secondary whitespace-nowrap",children:P(a.finished_at)}),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>b(a),className:"p-1.5 rounded border border-azure-border dark:border-matrix-primary/50 text-azure-text-secondary dark:text-matrix-tertiary hover:text-azure-primary dark:hover:text-matrix-highlight hover:border-azure-primary dark:hover:border-matrix-highlight transition-colors",title:"View details",children:e.jsx(B,{className:"w-3.5 h-3.5"})}),(a.status==="pending"||a.status==="running")&&e.jsx("button",{onClick:async()=>{await m.cancel(a.id),w()},className:"p-1.5 rounded border border-red-200 dark:border-red-800/50 text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20 hover:text-red-500 transition-colors",title:"Cancel task",children:e.jsx(E,{className:"w-3.5 h-3.5"})})]})})]},a.id))})]})})}),x&&x.total_pages>1&&e.jsx(n.div,{variants:u,children:e.jsx("div",{className:"rounded-lg border border-azure-border dark:border-matrix-primary bg-white dark:bg-black",children:e.jsx(L,{page:v,totalPages:x.total_pages,perPage:N,total:x.total,onPageChange:f,onPerPageChange:a=>{$(a),f(1)}})})}),p&&e.jsx(G,{task:p,onClose:()=>b(null),onCancel:async()=>{await m.cancel(p.id),b(null),w()},onRetry:async()=>{await m.retry(p.id),b(null),w()}})]})}export{ae as TasksPage};