granclaw 0.0.1-beta.57 → 0.0.1-beta.58
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.
|
@@ -87,7 +87,7 @@ Esto eliminará permanentemente:
|
|
|
87
87
|
• Memoria de sesión de Claude
|
|
88
88
|
• Archivos del espacio de trabajo
|
|
89
89
|
|
|
90
|
-
Esta acción no se puede deshacer.`,guardian:"Guardián",comingSoon:"Próximamente",guardianBlurb1:"Configura un agente guardián para controlar lo que puede hacer tu agente principal.",guardianBlurb2:"Define restricciones, bloquea acciones y exige aprobación antes de operaciones sensibles.",guardianChatBlurb:"Chat del guardián.<br />Configura restricciones aquí.",guardianDisconnected:"○ desconectado",errorCreditLimit:"La clave API ha alcanzado su límite de gasto. Recarga créditos o aumenta el límite de la clave en el panel de tu proveedor.",errorRateLimit:"Límite de solicitudes excedido. El proveedor está limitando las peticiones — intenta de nuevo en unos segundos.",errorAuth:"Autenticación fallida. La clave API puede ser inválida o estar expirada — revisa Configuración.",errorNoProvider:"Sin proveedor configurado. Ve a Configuración para agregar uno.",errorNoKey:"Falta la clave API del proveedor. Ve a Configuración para reconfigurar.",errorTimeout:"El agente tardó demasiado en responder. Intenta de nuevo o simplifica tu solicitud.",errorGeneric:"Algo salió mal: {message}"},fM={sessionExpiredLabel:"toma de control",sessionExpired:"Sesión expirada",sessionExpiredBlurb:"Este enlace de toma de control ya fue usado o expiró.",completeLabel:"completo",controlReturned:"Control devuelto al agente",closeTab:"Puedes cerrar esta pestaña.",connecting:"conectando…",agentNeedsHelp:"El agente necesita tu ayuda",liveLabel:"en vivo",waitingStream:"esperando transmisión del navegador…",whatDidYouDo:"¿Qué hiciste?",optional:"(opcional)",describeActionPlaceholder:"Describe tu acción para el agente…",returning:"Devolviendo…",completed:"Completado"},pM={columns:{backlog:"PENDIENTE",inProgress:"EN PROGRESO",scheduled:"PROGRAMADO",toReview:"EN REVISIÓN",done:"COMPLETADO"},statusLabels:{backlog:"Pendiente",inProgress:"En progreso",scheduled:"Programado",toReview:"En revisión",done:"Completado"},editedBy:"editado por {name}",relativeNow:"ahora",relativeMinutes:"hace {n}m",relativeHours:"hace {n}h",relativeDays:"hace {n}d",titlePlaceholder:"Título de tarea…",descPlaceholder:"Descripción (markdown)…",add:"Agregar",cancel:"Cancelar"},gM={saving:"guardando…",close:"Cerrar",status:"Estado",sourceLabel:"fuente",editedByLabel:"editado por",created:"creado",updated:"actualizado",description:"Descripción",descPlaceholder:"Agregar una descripción…",save:"Guardar",cancel:"Cancelar",descEmpty:"Sin descripción — clic para agregar",commentsLabel:"Comentarios ({count})",noComments:"Sin comentarios aún",addComment:"Agregar comentario",commentPlaceholder:"Escribe un comentario… (markdown soportado)",publishComment:"Publicar comentario",publishing:"Publicando…",dangerZone:"Zona peligrosa",deleteTask:"[PELIGROSO] Eliminar tarea",deleting:"eliminando…",deleteConfirm:'¿Eliminar tarea "{title}"? Esta acción no se puede deshacer.'},mM={backToRuns:"← Volver a ejecuciones",loading:"Cargando…",waitingResponse:"Esperando respuesta…",triggering:"Iniciando…",runNow:"Ejecutar ahora",runHistory:"Historial de ejecuciones",noRuns:"Sin ejecuciones aún.",loadingList:"Cargando programados…",emptyIcon:"⏰",emptyText:"Sin programados aún. Pídele al agente que configure tareas recurrentes.",title:"Programados",activeCountOne:"{count} activo",activeCountOther:"{count} activos",next:"Próximo: {time}",last:"Último: {time}",pause:"Pausar",resume:"Reanudar",delete:"Eliminar",deleteConfirm:'¿Eliminar programado "{name}"?'},vM={title:"Flujos de trabajo",emptyText:"Sin flujos de trabajo aún. Pídele al agente que cree uno via chat.",running:"Ejecutando…",run:"Ejecutar",createdOn:"{id} · Creado {date}",back:"← Volver a flujos",run_button:"Ejecutar",stepsTitle:"Pasos ({count})",conditionsOne:"{count} condición",conditionsOther:"{count} condiciones",stepType:"Tipo: {type}",stepTimeout:"Límite de tiempo: {seconds}s",stepId:"ID: {id}",runHistoryTitle:"Historial de ejecuciones ({count})",noRuns:"Sin ejecuciones aún."},xM={loading:"Cargando ejecución…",back:"← Volver al flujo",runLabel:"Ejecución —",errorPrefix:"Error:",input:"Entrada",output:"Salida"},yM={loading:"Cargando monitor…",title:"Monitor",idle:"inactivo",claudeSessionsOne:"{count} sesión claude",claudeSessionsOther:"{count} sesiones claude",processes:"Procesos",agentProcess:"Proceso del Agente",guardianProcess:"Guardián (Big Brother)",browserDaemon:"Demonio de Navegador",activeClaudeSessions:"Sesiones Claude Activas — {count}",jobQueue:"Cola de trabajos — {processing} en proceso, {pending} en espera",noActiveJobs:"Sin trabajos activos",processing:"procesando",queued:"en cola",terminate:"Terminar",cancel:"Cancelar",runningWorkflows:"Flujos de trabajo en ejecución",cpu:"CPU",mem:"MEM",rss:"RSS",uptime:"Tiempo activo"},bM={title:"Integraciones",blurb:"Conecta servicios externos. Cada integración almacena un token como secreto y se activa automáticamente.",moreSoon:"Más integraciones próximamente. Para otras claves API y credenciales, usa la sección de Secretos en la barra lateral.",connected:"Conectado",disconnect:"Desconectar",connect:"Conectar",saveAndConnect:"Guardar y conectar",saving:"Guardando…",cancel:"Cancelar",newPrefix:"Nuevo {label}",pasteNewToken:"Pega el nuevo token",updateToken:"Actualizar token",rotateToken:"Rotar token",errorSave:"Error al guardar — revisa la consola",disconnectConfirm:"¿Desconectar {name}? El agente dejará de usarlo inmediatamente.",telegramDescription:"Recibe y responde mensajes a través de un bot de Telegram.",telegramHelp:"Crea un bot mediante @BotFather en Telegram, luego pega el token aquí.",telegramTokenLabel:"Token del bot"},_M={loading:"Escaneando sesiones…",title:"Uso",totalTokens:"Tokens totales",cachedSuffix:"{amount} en caché",sessions:"Sesiones",modelsCount:"{count} modelos",estCost:"Costo est.",periodDays:"Período de {days} días",avgDay:"Prom/Día",sessionsPerDay:"{count} sesiones/día",dailyTokenUsage:"Uso diario de tokens",noUsageData:"Sin datos de uso",dailyCost:"Costo estimado diario",noCostData:"Sin datos de costo",byModel:"Por modelo",modelSessionsBlurb:"{sessions} sesiones · {input} entrada · {output} salida",tokenBreakdown:"Desglose de tokens",inputTokens:"Tokens de entrada",outputTokens:"Tokens de salida",cacheRead:"Lectura de caché",cacheWrite:"Escritura de caché",toolInvocations:"Invocaciones de herramientas",dailyBreakdown:"Desglose diario",date:"Fecha",tableSessions:"Sesiones",tableInput:"Entrada",tableOutput:"Salida",tableCache:"Caché",tableCost:"Costo"},wM={searchPlaceholder:"Buscar registros…",apply:"Aplicar",live:"En vivo",loading:"cargando…",noResults:'sin resultados para "{query}"',noEntries:"sin entradas de registro",loadOlder:"Cargar {count} entradas anteriores…"},kM={views:{chat:"Chat",tasks:"Tareas",browser:"Navegador",files:"Archivos",workflows:"Flujos de trabajo",schedules:"Programados",monitor:"Monitor",usage:"Uso",logs:"Registros",integrations:"Integraciones",guardian:"Guardián"},comingSoon:"Pronto",secrets:"Secretos",noSecrets:"Sin secretos configurados",updating:"Actualizando {name}",newValue:"nuevo valor",save:"Guardar",secretNamePlaceholder:"NOMBRE",secretValuePlaceholder:"valor",guardrails:"Restricciones",guardrailsBlurb:"Configurado via chat guardián",exportAgent:"📦 Exportar agente",exportTitle:"Descargar una copia de seguridad completa del espacio de trabajo del agente como zip",wipeAgent:"🗑 Borrar agente",wiping:"borrando…"},SM={workspace:"espacio-de-trabajo",savingLabel:"guardando…",saveButton:"Guardar",emptyDir:"Directorio vacío"},CM={common:lM,shell:uM,dashboard:cM,settings:dM,chat:hM,takeover:fM,tasks:pM,taskDetail:gM,schedules:mM,workflows:vM,runDetail:xM,monitor:yM,integrations:bM,usage:_M,logs:wM,agentSettings:kM,files:SM},Ey={en:aM,es:CM},Hk="granclaw:lang";function EM(){if(typeof window>"u")return"en";try{const t=window.localStorage.getItem(Hk);if(t==="en"||t==="es")return t}catch{}return(typeof navigator<"u"?navigator.language:"").toLowerCase().startsWith("es")?"es":"en"}function Py(e,t){const n=t.split(".");let r=e;for(const i of n)if(r&&typeof r=="object"&&i in r)r=r[i];else return;return typeof r=="string"?r:void 0}function PM(e,t){return t?e.replace(/\{(\w+)\}/g,(n,r)=>{const i=t[r];return i==null?`{${r}}`:String(i)}):e}const Wk=N.createContext(null);function NM({children:e}){const[t,n]=N.useState(()=>EM()),r=N.useCallback(o=>{n(o);try{window.localStorage.setItem(Hk,o)}catch{}},[]);N.useEffect(()=>{try{document.documentElement.lang=t}catch{}},[t]);const i=N.useCallback((o,a)=>{const l=Ey[t],u=Py(l,o)??Py(Ey.en,o)??o;return PM(u,a)},[t]),s=N.useMemo(()=>({lang:t,setLang:r,t:i}),[t,r,i]);return f.jsx(Wk.Provider,{value:s,children:e})}function Ce(){const e=N.useContext(Wk);if(!e)throw new Error("useT must be used inside <LanguageProvider>");return e}function jM({className:e}){const{lang:t,setLang:n}=Ce();return f.jsx("div",{className:`flex items-center gap-0.5 rounded-full bg-surface-container/40 p-[2px] ${e??""}`,children:["en","es"].map(r=>f.jsx("button",{onClick:()=>n(r),className:`px-2 py-[2px] rounded-full text-[10px] font-mono uppercase tracking-wider transition-colors ${t===r?"bg-primary/30 text-primary":"text-on-surface-variant/70 hover:text-on-surface"}`,"aria-pressed":t===r,children:r},r))})}function TM(){const e=Zi(),t=es(),n=e.pathname.includes("/chat"),{t:r}=Ce();return f.jsxs("div",{className:"flex h-screen flex-col overflow-hidden bg-surface",children:[f.jsxs("header",{className:"flex h-11 flex-shrink-0 items-center justify-between border-b border-outline-variant/20 bg-surface-low px-3 sm:px-5",children:[f.jsxs("button",{onClick:()=>t("/dashboard"),className:"flex items-center gap-2 hover:opacity-80 transition-opacity min-w-0",children:[f.jsx("img",{src:"/granclaw-logo.png",alt:"GranClaw",className:"h-6 w-6 rounded flex-shrink-0"}),f.jsx("span",{className:"font-display font-semibold text-on-surface tracking-tight truncate",children:"GranClaw"}),f.jsxs("span",{className:"text-xs font-mono text-on-surface/60 flex-shrink-0",children:["v","0.0.1-beta.57"]})]}),f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[f.jsx(jM,{}),f.jsxs("span",{className:"flex items-center gap-1.5 rounded-full bg-secondary-container/20 px-2 sm:px-3 py-1 text-xs font-mono text-secondary flex-shrink-0",children:[f.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-secondary animate-pulse flex-shrink-0"}),f.jsx("span",{className:"hidden sm:inline",children:r("shell.systemPrefix")}),r("shell.onlineSuffix")]})]})]}),f.jsx("main",{className:`flex-1 overflow-auto min-w-0 ${n?"":"p-3 sm:p-5"}`,children:f.jsx(NN,{})})]})}const oe="";async function Ny(){const e=await fetch(`${oe}/agents`);if(!e.ok)throw new Error(`fetchAgents: ${e.status}`);return e.json()}async function MM(e,t,n,r,i){const s=await fetch(`${oe}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,name:t,model:n,provider:r,...i?{workspaceDir:i}:{}})});if(!s.ok){const o=await s.json().catch(()=>({error:s.statusText}));throw new Error(o.error)}}async function RM(e){const t=await fetch(`${oe}/agents/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(`deleteAgent: ${t.status}`)}async function jy(e){const t=await fetch(`${oe}/agents/${e}`);if(!t.ok)throw new Error(`fetchAgent: ${t.status}`);return t.json()}async function Ty(e,t="ui"){const n=await fetch(`${oe}/agents/${e}/messages?channelId=${t}&sortBy=asc&limit=200`);if(!n.ok)throw new Error(`fetchMessages: ${n.status}`);return n.json()}async function AM(e){const t=await fetch(`${oe}/agents/${e}/reset`,{method:"DELETE"});if(!t.ok)throw new Error(`resetAgent: ${t.status}`)}async function DM(e,t=""){const n=await fetch(`${oe}/agents/${e}/files?path=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`fetchFiles: ${n.status}`);return(await n.json()).entries}async function IM(e,t){const n=await fetch(`${oe}/agents/${e}/files/read?path=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`readFile: ${n.status}`);return(await n.json()).content}async function OM(e,t,n){const r=await fetch(`${oe}/agents/${e}/files/write?path=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:n})});if(!r.ok)throw new Error(`writeFile: ${r.status}`)}async function LM(e){const t=await fetch(`${oe}/agents/${e}/secrets`);if(!t.ok)throw new Error(`fetchSecrets: ${t.status}`);return t.json()}async function kp(e,t,n){const r=await fetch(`${oe}/agents/${e}/secrets`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,value:n})});if(!r.ok)throw new Error(`addSecret: ${r.status}`)}async function Vk(e,t){const n=await fetch(`${oe}/agents/${e}/secrets/${encodeURIComponent(t)}`,{method:"DELETE"});if(!n.ok)throw new Error(`deleteSecret: ${n.status}`)}async function FM(e,t){const r=await fetch(`${oe}/agents/${e}/tasks`);if(!r.ok)throw new Error(`fetchTasks: ${r.status}`);return r.json()}async function $M(e,t){const n=await fetch(`${oe}/agents/${e}/tasks/${t}`);if(!n.ok)throw new Error(`fetchTask: ${n.status}`);return n.json()}async function zM(e,t){const n=await fetch(`${oe}/agents/${e}/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Error(`createTask: ${n.status}`);return n.json()}async function My(e,t,n){const r=await fetch(`${oe}/agents/${e}/tasks/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`updateTask: ${r.status}`);return r.json()}async function BM(e,t){const n=await fetch(`${oe}/agents/${e}/tasks/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`deleteTask: ${n.status}`)}async function HM(e,t,n){const r=await fetch(`${oe}/agents/${e}/tasks/${t}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:n})});if(!r.ok)throw new Error(`addTaskComment: ${r.status}`);return r.json()}async function WM(e){const t=await fetch(`${oe}/agents/${e}/browser-sessions`);if(!t.ok)throw new Error(`fetchBrowserSessions: ${t.status}`);return t.json()}async function Uk(e,t){const n=await fetch(`${oe}/agents/${e}/browser-sessions/${t}`);if(!n.ok)throw new Error(`fetchBrowserSession: ${n.status}`);return n.json()}function VM(e,t){return`${oe}/agents/${e}/browser-sessions/${t}/video`}function qk(e,t){const n=window.location;return`${n.protocol==="https:"?"wss:":"ws:"}//${n.host}/browser-live/${e}/${t}`}function UM(e){return`${oe}/agents/${e}/export`}async function Ry(e,t){const n=new URL(`${oe}/agents/import`,window.location.origin);t!=null&&t.id&&n.searchParams.set("id",t.id);const r=await fetch(n.toString().replace(window.location.origin,""),{method:"POST",headers:{"Content-Type":"application/zip"},body:e});if(!r.ok){const i=await r.json().catch(()=>({error:r.statusText}));throw new Error(i.error)}return r.json()}async function Ay(e,t){const n=await fetch(`${oe}/agents/${e}/monitor/jobs/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`killJob: ${n.status}`)}async function qM(e){const t=await fetch(`${oe}/agents/${e}/monitor`);if(!t.ok)throw new Error(`fetchMonitor: ${t.status}`);return t.json()}async function GM(e,t=30){const n=await fetch(`${oe}/agents/${e}/usage?days=${t}`);if(!n.ok)throw new Error(`fetchUsage: ${n.status}`);return n.json()}async function KM(e){const t=await fetch(`${oe}/agents/${e}/schedules`);if(!t.ok)throw new Error(`fetchSchedules: ${t.status}`);return t.json()}async function YM(e,t,n){const r=await fetch(`${oe}/agents/${e}/schedules/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`updateSchedule: ${r.status}`);return r.json()}async function XM(e,t){const n=await fetch(`${oe}/agents/${e}/schedules/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`deleteSchedule: ${n.status}`)}async function JM(e,t){const n=await fetch(`${oe}/agents/${e}/schedules/${t}/trigger`,{method:"POST"});if(!n.ok)throw new Error(`triggerSchedule: ${n.status}`);return n.json()}async function QM(e,t){const n=await fetch(`${oe}/agents/${e}/schedules/${t}/runs`);if(!n.ok)throw new Error(`fetchScheduleRuns: ${n.status}`);return n.json()}async function ZM(e,t){const n=await fetch(`${oe}/agents/${e}/messages?channelId=${encodeURIComponent(t)}&sortBy=asc&limit=200`);if(!n.ok)throw new Error(`fetchScheduleRunMessages: ${n.status}`);return n.json()}async function eR(e){const t=await fetch(`${oe}/agents/${e}/workflows`);if(!t.ok)throw new Error(`fetchWorkflows: ${t.status}`);return t.json()}async function tR(e,t){const n=await fetch(`${oe}/agents/${e}/workflows/${t}`);if(!n.ok)throw new Error(`fetchWorkflow: ${n.status}`);return n.json()}async function mh(e,t){const n=await fetch(`${oe}/agents/${e}/workflows/${t}/runs`);if(!n.ok)throw new Error(`fetchWorkflowRuns: ${n.status}`);return n.json()}async function nR(e,t,n){const r=await fetch(`${oe}/agents/${e}/workflows/${t}/runs/${n}`);if(!r.ok)throw new Error(`fetchWorkflowRun: ${r.status}`);return r.json()}async function rR(e,t){const n=await fetch(`${oe}/agents/${e}/workflows/${t}/run`,{method:"POST"});if(!n.ok)throw new Error(`triggerWorkflowRun: ${n.status}`);return n.json()}async function iR(e){const t=new URLSearchParams;e!=null&&e.agentId&&t.set("agentId",e.agentId),e!=null&&e.type&&t.set("type",e.type),e!=null&&e.search&&t.set("search",e.search),(e==null?void 0:e.limit)!=null&&t.set("limit",String(e.limit)),(e==null?void 0:e.offset)!=null&&t.set("offset",String(e.offset));const n=await fetch(`${oe}/logs?${t}`);if(!n.ok)throw new Error(`fetchLogs: ${n.status}`);return n.json()}async function Gk(){const e=await fetch(`${oe}/settings/provider`);if(!e.ok)throw new Error("Failed to fetch provider settings");return e.json()}async function Kk(){try{const e=await fetch(`${oe}/settings/app`);return e.ok?e.json():{showWorkspaceDirConfig:!0,showBraveSearchConfig:!0}}catch{return{showWorkspaceDirConfig:!0,showBraveSearchConfig:!0}}}async function Dy(e,t,n){if(!(await fetch(`${oe}/settings/provider`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,model:t,apiKey:n})})).ok)throw new Error("Failed to save provider settings")}async function sR(e){if(!(await fetch(`${oe}/settings/providers/${encodeURIComponent(e)}`,{method:"DELETE"})).ok)throw new Error("Failed to remove provider")}async function oR(){const e=await fetch(`${oe}/settings/search`);return e.ok?e.json():{provider:"brave",configured:!1}}async function aR(e,t){const n=await fetch(`${oe}/settings/search`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:t})});if(!n.ok)throw new Error(`Failed to save search settings: ${n.status}`)}async function lR(){const e=await fetch(`${oe}/settings/search`,{method:"DELETE"});if(!e.ok&&e.status!==204&&e.status!==404)throw new Error(`Failed to clear search settings: ${e.status}`)}const uR={google:[{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash — fast + smart (recommended)"},{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro — most capable"},{value:"gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite — cheapest"},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash — preview"},{value:"gemini-3.1-pro-preview",label:"Gemini 3.1 Pro — preview"}],openai:[{value:"gpt-4.1",label:"GPT-4.1 — recommended, 1M ctx"},{value:"gpt-4.1-mini",label:"GPT-4.1 Mini — fast, efficient"},{value:"gpt-4.1-nano",label:"GPT-4.1 Nano — cheapest"}],anthropic:[{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6 — recommended"},{value:"claude-opus-4-6",label:"Claude Opus 4.6 — most capable"},{value:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5 — fastest"}],groq:[{value:"openai/gpt-oss-120b",label:"GPT-OSS 120B — flagship, ~500 tok/s"},{value:"openai/gpt-oss-20b",label:"GPT-OSS 20B — fast, efficient"},{value:"llama-3.3-70b-versatile",label:"Llama 3.3 70B — versatile"},{value:"llama-3.1-8b-instant",label:"Llama 3.1 8B — fastest/cheapest"}],openrouter:[{value:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash — best price/perf ($0.30/$2.50 /M)"},{value:"google/gemini-3-flash-preview",label:"Gemini 3 Flash — fast, 1M ctx ($0.50/$3 /M)"},{value:"google/gemini-3.1-pro-preview",label:"Gemini 3.1 Pro — frontier ($2/$12 /M)"},{value:"deepseek/deepseek-v3.2",label:"DeepSeek V3.2 — cheap output ($0.26/$0.38 /M)"},{value:"xiaomi/mimo-v2-pro",label:"MiMo V2 Pro — agentic, 1T params ($1/$3 /M)"},{value:"qwen/qwen3.6-plus",label:"Qwen 3.6 Plus — throughput leader ($0.33/$1.95 /M)"},{value:"minimax/minimax-m2.7",label:"MiniMax M2.7 — agentic ($0.30/$1.20 /M)"},{value:"x-ai/grok-4",label:"Grok 4 — reasoning, 256k ctx ($3/$15 /M)"}],freetier:[{value:"google/gemini-3-flash-preview",label:"Gemini 3 Flash — fast, 1M ctx"}]},Yk=[{value:"google",label:"Google Gemini"},{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"openrouter",label:"OpenRouter"}];function ad(e){return uR[e]??[]}function Sp(e){var t;return((t=ad(e)[0])==null?void 0:t.value)??""}const va="inline-flex items-center justify-center gap-2 bg-primary text-on-primary px-5 py-2.5 text-sm font-label font-semibold uppercase tracking-widest rounded shadow-sm transition-all hover:bg-surface-tint hover:shadow-md active:scale-[0.98] disabled:opacity-40 disabled:pointer-events-none",cR="inline-flex items-center justify-center gap-2 border border-outline-variant text-on-surface px-5 py-2.5 text-sm font-label font-semibold uppercase tracking-widest rounded transition-all hover:bg-surface-container hover:border-outline active:scale-[0.98] disabled:opacity-40 disabled:pointer-events-none",Xk="inline-flex items-center justify-center gap-1.5 text-on-surface-variant px-2.5 py-1.5 text-xs font-label font-medium uppercase tracking-wider rounded transition-colors hover:bg-surface-container hover:text-on-surface disabled:opacity-40 disabled:pointer-events-none",dR="inline-flex items-center justify-center gap-1.5 text-error px-2.5 py-1.5 text-xs font-label font-medium uppercase tracking-wider rounded transition-colors hover:bg-error/10 disabled:opacity-40 disabled:pointer-events-none",Eu="w-full bg-surface-container-lowest text-on-surface placeholder:text-on-surface-variant border border-outline-variant rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-colors",Iy=Eu.replace("text-sm","text-sm font-mono"),Ja="bg-surface-container-lowest border border-outline-variant/40 rounded-xl shadow-callout",Bs="inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-label font-medium uppercase tracking-wider",Cp=`${Bs} bg-surface-container border border-outline-variant/40 text-on-surface-variant`,Jk=`${Bs} bg-success/10 border border-success/20 text-success`,hR=`${Bs} bg-warning/10 border border-warning/20 text-warning`;function fR({agent:e,onDelete:t}){const n=es(),{t:r}=Ce(),i=e.status==="active",s=e.busy===!0;return f.jsxs("div",{onClick:()=>n(`/agents/${e.id}/chat`),className:"group flex items-center gap-4 rounded-xl bg-surface-container-lowest border border-outline-variant/40 p-4 cursor-pointer transition-all hover:border-primary/40 hover:shadow-callout",children:[f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[f.jsx("span",{className:"font-headline text-lg font-bold text-on-surface",children:e.name}),s?f.jsxs("span",{"data-testid":"busy-badge",className:"inline-flex items-center gap-1 rounded-full bg-secondary/15 border border-secondary/30 px-2 py-0.5 text-[10px] font-label font-semibold uppercase tracking-wider text-secondary",children:[f.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-secondary animate-pulse"}),"busy"]}):f.jsx("span",{className:i?Jk:Cp,children:e.status})]}),f.jsxs("div",{className:"flex items-center gap-3 mt-1",children:[f.jsx("span",{className:"font-mono text-[10px] text-primary/70",children:e.model}),f.jsxs("span",{className:"font-mono text-[10px] text-on-surface-variant/60 hidden sm:inline",children:["id: ",e.id]})]})]}),f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[f.jsx("div",{className:"hidden sm:flex flex-wrap gap-1",children:e.allowedTools.slice(0,3).map(o=>f.jsx("span",{className:"font-mono text-[9px] text-on-surface-variant bg-surface-container rounded px-1.5 py-0.5",children:o},o))}),f.jsx("button",{onClick:o=>{o.stopPropagation(),t()},className:`${dR} sm:opacity-0 sm:group-hover:opacity-100`,children:r("dashboard.delete")})]})]})}function pR(){const{t:e}=Ce(),[t,n]=N.useState([]),[r,i]=N.useState(!0),[s,o]=N.useState(null),[a,l]=N.useState({showWorkspaceDirConfig:!0,showBraveSearchConfig:!0}),[u,c]=N.useState(!1),[d,h]=N.useState(""),[p,g]=N.useState(""),[m,y]=N.useState(""),[v,x]=N.useState(""),[b,S]=N.useState(""),[k,w]=N.useState(!1),[E,P]=N.useState(!1),[T,C]=N.useState(null),M=N.useRef(null);async function R(_){var W,j;const U=(W=_.target.files)==null?void 0:W[0];if(U){P(!0),C(null);try{let te;try{te=await Ry(U)}catch(le){const ie=le instanceof Error?le.message:String(le);if(ie.includes("already exists")){const H=(j=prompt(`${ie}
|
|
90
|
+
Esta acción no se puede deshacer.`,guardian:"Guardián",comingSoon:"Próximamente",guardianBlurb1:"Configura un agente guardián para controlar lo que puede hacer tu agente principal.",guardianBlurb2:"Define restricciones, bloquea acciones y exige aprobación antes de operaciones sensibles.",guardianChatBlurb:"Chat del guardián.<br />Configura restricciones aquí.",guardianDisconnected:"○ desconectado",errorCreditLimit:"La clave API ha alcanzado su límite de gasto. Recarga créditos o aumenta el límite de la clave en el panel de tu proveedor.",errorRateLimit:"Límite de solicitudes excedido. El proveedor está limitando las peticiones — intenta de nuevo en unos segundos.",errorAuth:"Autenticación fallida. La clave API puede ser inválida o estar expirada — revisa Configuración.",errorNoProvider:"Sin proveedor configurado. Ve a Configuración para agregar uno.",errorNoKey:"Falta la clave API del proveedor. Ve a Configuración para reconfigurar.",errorTimeout:"El agente tardó demasiado en responder. Intenta de nuevo o simplifica tu solicitud.",errorGeneric:"Algo salió mal: {message}"},fM={sessionExpiredLabel:"toma de control",sessionExpired:"Sesión expirada",sessionExpiredBlurb:"Este enlace de toma de control ya fue usado o expiró.",completeLabel:"completo",controlReturned:"Control devuelto al agente",closeTab:"Puedes cerrar esta pestaña.",connecting:"conectando…",agentNeedsHelp:"El agente necesita tu ayuda",liveLabel:"en vivo",waitingStream:"esperando transmisión del navegador…",whatDidYouDo:"¿Qué hiciste?",optional:"(opcional)",describeActionPlaceholder:"Describe tu acción para el agente…",returning:"Devolviendo…",completed:"Completado"},pM={columns:{backlog:"PENDIENTE",inProgress:"EN PROGRESO",scheduled:"PROGRAMADO",toReview:"EN REVISIÓN",done:"COMPLETADO"},statusLabels:{backlog:"Pendiente",inProgress:"En progreso",scheduled:"Programado",toReview:"En revisión",done:"Completado"},editedBy:"editado por {name}",relativeNow:"ahora",relativeMinutes:"hace {n}m",relativeHours:"hace {n}h",relativeDays:"hace {n}d",titlePlaceholder:"Título de tarea…",descPlaceholder:"Descripción (markdown)…",add:"Agregar",cancel:"Cancelar"},gM={saving:"guardando…",close:"Cerrar",status:"Estado",sourceLabel:"fuente",editedByLabel:"editado por",created:"creado",updated:"actualizado",description:"Descripción",descPlaceholder:"Agregar una descripción…",save:"Guardar",cancel:"Cancelar",descEmpty:"Sin descripción — clic para agregar",commentsLabel:"Comentarios ({count})",noComments:"Sin comentarios aún",addComment:"Agregar comentario",commentPlaceholder:"Escribe un comentario… (markdown soportado)",publishComment:"Publicar comentario",publishing:"Publicando…",dangerZone:"Zona peligrosa",deleteTask:"[PELIGROSO] Eliminar tarea",deleting:"eliminando…",deleteConfirm:'¿Eliminar tarea "{title}"? Esta acción no se puede deshacer.'},mM={backToRuns:"← Volver a ejecuciones",loading:"Cargando…",waitingResponse:"Esperando respuesta…",triggering:"Iniciando…",runNow:"Ejecutar ahora",runHistory:"Historial de ejecuciones",noRuns:"Sin ejecuciones aún.",loadingList:"Cargando programados…",emptyIcon:"⏰",emptyText:"Sin programados aún. Pídele al agente que configure tareas recurrentes.",title:"Programados",activeCountOne:"{count} activo",activeCountOther:"{count} activos",next:"Próximo: {time}",last:"Último: {time}",pause:"Pausar",resume:"Reanudar",delete:"Eliminar",deleteConfirm:'¿Eliminar programado "{name}"?'},vM={title:"Flujos de trabajo",emptyText:"Sin flujos de trabajo aún. Pídele al agente que cree uno via chat.",running:"Ejecutando…",run:"Ejecutar",createdOn:"{id} · Creado {date}",back:"← Volver a flujos",run_button:"Ejecutar",stepsTitle:"Pasos ({count})",conditionsOne:"{count} condición",conditionsOther:"{count} condiciones",stepType:"Tipo: {type}",stepTimeout:"Límite de tiempo: {seconds}s",stepId:"ID: {id}",runHistoryTitle:"Historial de ejecuciones ({count})",noRuns:"Sin ejecuciones aún."},xM={loading:"Cargando ejecución…",back:"← Volver al flujo",runLabel:"Ejecución —",errorPrefix:"Error:",input:"Entrada",output:"Salida"},yM={loading:"Cargando monitor…",title:"Monitor",idle:"inactivo",claudeSessionsOne:"{count} sesión claude",claudeSessionsOther:"{count} sesiones claude",processes:"Procesos",agentProcess:"Proceso del Agente",guardianProcess:"Guardián (Big Brother)",browserDaemon:"Demonio de Navegador",activeClaudeSessions:"Sesiones Claude Activas — {count}",jobQueue:"Cola de trabajos — {processing} en proceso, {pending} en espera",noActiveJobs:"Sin trabajos activos",processing:"procesando",queued:"en cola",terminate:"Terminar",cancel:"Cancelar",runningWorkflows:"Flujos de trabajo en ejecución",cpu:"CPU",mem:"MEM",rss:"RSS",uptime:"Tiempo activo"},bM={title:"Integraciones",blurb:"Conecta servicios externos. Cada integración almacena un token como secreto y se activa automáticamente.",moreSoon:"Más integraciones próximamente. Para otras claves API y credenciales, usa la sección de Secretos en la barra lateral.",connected:"Conectado",disconnect:"Desconectar",connect:"Conectar",saveAndConnect:"Guardar y conectar",saving:"Guardando…",cancel:"Cancelar",newPrefix:"Nuevo {label}",pasteNewToken:"Pega el nuevo token",updateToken:"Actualizar token",rotateToken:"Rotar token",errorSave:"Error al guardar — revisa la consola",disconnectConfirm:"¿Desconectar {name}? El agente dejará de usarlo inmediatamente.",telegramDescription:"Recibe y responde mensajes a través de un bot de Telegram.",telegramHelp:"Crea un bot mediante @BotFather en Telegram, luego pega el token aquí.",telegramTokenLabel:"Token del bot"},_M={loading:"Escaneando sesiones…",title:"Uso",totalTokens:"Tokens totales",cachedSuffix:"{amount} en caché",sessions:"Sesiones",modelsCount:"{count} modelos",estCost:"Costo est.",periodDays:"Período de {days} días",avgDay:"Prom/Día",sessionsPerDay:"{count} sesiones/día",dailyTokenUsage:"Uso diario de tokens",noUsageData:"Sin datos de uso",dailyCost:"Costo estimado diario",noCostData:"Sin datos de costo",byModel:"Por modelo",modelSessionsBlurb:"{sessions} sesiones · {input} entrada · {output} salida",tokenBreakdown:"Desglose de tokens",inputTokens:"Tokens de entrada",outputTokens:"Tokens de salida",cacheRead:"Lectura de caché",cacheWrite:"Escritura de caché",toolInvocations:"Invocaciones de herramientas",dailyBreakdown:"Desglose diario",date:"Fecha",tableSessions:"Sesiones",tableInput:"Entrada",tableOutput:"Salida",tableCache:"Caché",tableCost:"Costo"},wM={searchPlaceholder:"Buscar registros…",apply:"Aplicar",live:"En vivo",loading:"cargando…",noResults:'sin resultados para "{query}"',noEntries:"sin entradas de registro",loadOlder:"Cargar {count} entradas anteriores…"},kM={views:{chat:"Chat",tasks:"Tareas",browser:"Navegador",files:"Archivos",workflows:"Flujos de trabajo",schedules:"Programados",monitor:"Monitor",usage:"Uso",logs:"Registros",integrations:"Integraciones",guardian:"Guardián"},comingSoon:"Pronto",secrets:"Secretos",noSecrets:"Sin secretos configurados",updating:"Actualizando {name}",newValue:"nuevo valor",save:"Guardar",secretNamePlaceholder:"NOMBRE",secretValuePlaceholder:"valor",guardrails:"Restricciones",guardrailsBlurb:"Configurado via chat guardián",exportAgent:"📦 Exportar agente",exportTitle:"Descargar una copia de seguridad completa del espacio de trabajo del agente como zip",wipeAgent:"🗑 Borrar agente",wiping:"borrando…"},SM={workspace:"espacio-de-trabajo",savingLabel:"guardando…",saveButton:"Guardar",emptyDir:"Directorio vacío"},CM={common:lM,shell:uM,dashboard:cM,settings:dM,chat:hM,takeover:fM,tasks:pM,taskDetail:gM,schedules:mM,workflows:vM,runDetail:xM,monitor:yM,integrations:bM,usage:_M,logs:wM,agentSettings:kM,files:SM},Ey={en:aM,es:CM},Hk="granclaw:lang";function EM(){if(typeof window>"u")return"en";try{const t=window.localStorage.getItem(Hk);if(t==="en"||t==="es")return t}catch{}return(typeof navigator<"u"?navigator.language:"").toLowerCase().startsWith("es")?"es":"en"}function Py(e,t){const n=t.split(".");let r=e;for(const i of n)if(r&&typeof r=="object"&&i in r)r=r[i];else return;return typeof r=="string"?r:void 0}function PM(e,t){return t?e.replace(/\{(\w+)\}/g,(n,r)=>{const i=t[r];return i==null?`{${r}}`:String(i)}):e}const Wk=N.createContext(null);function NM({children:e}){const[t,n]=N.useState(()=>EM()),r=N.useCallback(o=>{n(o);try{window.localStorage.setItem(Hk,o)}catch{}},[]);N.useEffect(()=>{try{document.documentElement.lang=t}catch{}},[t]);const i=N.useCallback((o,a)=>{const l=Ey[t],u=Py(l,o)??Py(Ey.en,o)??o;return PM(u,a)},[t]),s=N.useMemo(()=>({lang:t,setLang:r,t:i}),[t,r,i]);return f.jsx(Wk.Provider,{value:s,children:e})}function Ce(){const e=N.useContext(Wk);if(!e)throw new Error("useT must be used inside <LanguageProvider>");return e}function jM({className:e}){const{lang:t,setLang:n}=Ce();return f.jsx("div",{className:`flex items-center gap-0.5 rounded-full bg-surface-container/40 p-[2px] ${e??""}`,children:["en","es"].map(r=>f.jsx("button",{onClick:()=>n(r),className:`px-2 py-[2px] rounded-full text-[10px] font-mono uppercase tracking-wider transition-colors ${t===r?"bg-primary/30 text-primary":"text-on-surface-variant/70 hover:text-on-surface"}`,"aria-pressed":t===r,children:r},r))})}function TM(){const e=Zi(),t=es(),n=e.pathname.includes("/chat"),{t:r}=Ce();return f.jsxs("div",{className:"flex h-screen flex-col overflow-hidden bg-surface",children:[f.jsxs("header",{className:"flex h-11 flex-shrink-0 items-center justify-between border-b border-outline-variant/20 bg-surface-low px-3 sm:px-5",children:[f.jsxs("button",{onClick:()=>t("/dashboard"),className:"flex items-center gap-2 hover:opacity-80 transition-opacity min-w-0",children:[f.jsx("img",{src:"/granclaw-logo.png",alt:"GranClaw",className:"h-6 w-6 rounded flex-shrink-0"}),f.jsx("span",{className:"font-display font-semibold text-on-surface tracking-tight truncate",children:"GranClaw"}),f.jsxs("span",{className:"text-xs font-mono text-on-surface/60 flex-shrink-0",children:["v","0.0.1-beta.58"]})]}),f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[f.jsx(jM,{}),f.jsxs("span",{className:"flex items-center gap-1.5 rounded-full bg-secondary-container/20 px-2 sm:px-3 py-1 text-xs font-mono text-secondary flex-shrink-0",children:[f.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-secondary animate-pulse flex-shrink-0"}),f.jsx("span",{className:"hidden sm:inline",children:r("shell.systemPrefix")}),r("shell.onlineSuffix")]})]})]}),f.jsx("main",{className:`flex-1 overflow-auto min-w-0 ${n?"":"p-3 sm:p-5"}`,children:f.jsx(NN,{})})]})}const oe="";async function Ny(){const e=await fetch(`${oe}/agents`);if(!e.ok)throw new Error(`fetchAgents: ${e.status}`);return e.json()}async function MM(e,t,n,r,i){const s=await fetch(`${oe}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,name:t,model:n,provider:r,...i?{workspaceDir:i}:{}})});if(!s.ok){const o=await s.json().catch(()=>({error:s.statusText}));throw new Error(o.error)}}async function RM(e){const t=await fetch(`${oe}/agents/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(`deleteAgent: ${t.status}`)}async function jy(e){const t=await fetch(`${oe}/agents/${e}`);if(!t.ok)throw new Error(`fetchAgent: ${t.status}`);return t.json()}async function Ty(e,t="ui"){const n=await fetch(`${oe}/agents/${e}/messages?channelId=${t}&sortBy=asc&limit=200`);if(!n.ok)throw new Error(`fetchMessages: ${n.status}`);return n.json()}async function AM(e){const t=await fetch(`${oe}/agents/${e}/reset`,{method:"DELETE"});if(!t.ok)throw new Error(`resetAgent: ${t.status}`)}async function DM(e,t=""){const n=await fetch(`${oe}/agents/${e}/files?path=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`fetchFiles: ${n.status}`);return(await n.json()).entries}async function IM(e,t){const n=await fetch(`${oe}/agents/${e}/files/read?path=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`readFile: ${n.status}`);return(await n.json()).content}async function OM(e,t,n){const r=await fetch(`${oe}/agents/${e}/files/write?path=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:n})});if(!r.ok)throw new Error(`writeFile: ${r.status}`)}async function LM(e){const t=await fetch(`${oe}/agents/${e}/secrets`);if(!t.ok)throw new Error(`fetchSecrets: ${t.status}`);return t.json()}async function kp(e,t,n){const r=await fetch(`${oe}/agents/${e}/secrets`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,value:n})});if(!r.ok)throw new Error(`addSecret: ${r.status}`)}async function Vk(e,t){const n=await fetch(`${oe}/agents/${e}/secrets/${encodeURIComponent(t)}`,{method:"DELETE"});if(!n.ok)throw new Error(`deleteSecret: ${n.status}`)}async function FM(e,t){const r=await fetch(`${oe}/agents/${e}/tasks`);if(!r.ok)throw new Error(`fetchTasks: ${r.status}`);return r.json()}async function $M(e,t){const n=await fetch(`${oe}/agents/${e}/tasks/${t}`);if(!n.ok)throw new Error(`fetchTask: ${n.status}`);return n.json()}async function zM(e,t){const n=await fetch(`${oe}/agents/${e}/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Error(`createTask: ${n.status}`);return n.json()}async function My(e,t,n){const r=await fetch(`${oe}/agents/${e}/tasks/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`updateTask: ${r.status}`);return r.json()}async function BM(e,t){const n=await fetch(`${oe}/agents/${e}/tasks/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`deleteTask: ${n.status}`)}async function HM(e,t,n){const r=await fetch(`${oe}/agents/${e}/tasks/${t}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:n})});if(!r.ok)throw new Error(`addTaskComment: ${r.status}`);return r.json()}async function WM(e){const t=await fetch(`${oe}/agents/${e}/browser-sessions`);if(!t.ok)throw new Error(`fetchBrowserSessions: ${t.status}`);return t.json()}async function Uk(e,t){const n=await fetch(`${oe}/agents/${e}/browser-sessions/${t}`);if(!n.ok)throw new Error(`fetchBrowserSession: ${n.status}`);return n.json()}function VM(e,t){return`${oe}/agents/${e}/browser-sessions/${t}/video`}function qk(e,t){const n=window.location;return`${n.protocol==="https:"?"wss:":"ws:"}//${n.host}/browser-live/${e}/${t}`}function UM(e){return`${oe}/agents/${e}/export`}async function Ry(e,t){const n=new URL(`${oe}/agents/import`,window.location.origin);t!=null&&t.id&&n.searchParams.set("id",t.id);const r=await fetch(n.toString().replace(window.location.origin,""),{method:"POST",headers:{"Content-Type":"application/zip"},body:e});if(!r.ok){const i=await r.json().catch(()=>({error:r.statusText}));throw new Error(i.error)}return r.json()}async function Ay(e,t){const n=await fetch(`${oe}/agents/${e}/monitor/jobs/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`killJob: ${n.status}`)}async function qM(e){const t=await fetch(`${oe}/agents/${e}/monitor`);if(!t.ok)throw new Error(`fetchMonitor: ${t.status}`);return t.json()}async function GM(e,t=30){const n=await fetch(`${oe}/agents/${e}/usage?days=${t}`);if(!n.ok)throw new Error(`fetchUsage: ${n.status}`);return n.json()}async function KM(e){const t=await fetch(`${oe}/agents/${e}/schedules`);if(!t.ok)throw new Error(`fetchSchedules: ${t.status}`);return t.json()}async function YM(e,t,n){const r=await fetch(`${oe}/agents/${e}/schedules/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`updateSchedule: ${r.status}`);return r.json()}async function XM(e,t){const n=await fetch(`${oe}/agents/${e}/schedules/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`deleteSchedule: ${n.status}`)}async function JM(e,t){const n=await fetch(`${oe}/agents/${e}/schedules/${t}/trigger`,{method:"POST"});if(!n.ok)throw new Error(`triggerSchedule: ${n.status}`);return n.json()}async function QM(e,t){const n=await fetch(`${oe}/agents/${e}/schedules/${t}/runs`);if(!n.ok)throw new Error(`fetchScheduleRuns: ${n.status}`);return n.json()}async function ZM(e,t){const n=await fetch(`${oe}/agents/${e}/messages?channelId=${encodeURIComponent(t)}&sortBy=asc&limit=200`);if(!n.ok)throw new Error(`fetchScheduleRunMessages: ${n.status}`);return n.json()}async function eR(e){const t=await fetch(`${oe}/agents/${e}/workflows`);if(!t.ok)throw new Error(`fetchWorkflows: ${t.status}`);return t.json()}async function tR(e,t){const n=await fetch(`${oe}/agents/${e}/workflows/${t}`);if(!n.ok)throw new Error(`fetchWorkflow: ${n.status}`);return n.json()}async function mh(e,t){const n=await fetch(`${oe}/agents/${e}/workflows/${t}/runs`);if(!n.ok)throw new Error(`fetchWorkflowRuns: ${n.status}`);return n.json()}async function nR(e,t,n){const r=await fetch(`${oe}/agents/${e}/workflows/${t}/runs/${n}`);if(!r.ok)throw new Error(`fetchWorkflowRun: ${r.status}`);return r.json()}async function rR(e,t){const n=await fetch(`${oe}/agents/${e}/workflows/${t}/run`,{method:"POST"});if(!n.ok)throw new Error(`triggerWorkflowRun: ${n.status}`);return n.json()}async function iR(e){const t=new URLSearchParams;e!=null&&e.agentId&&t.set("agentId",e.agentId),e!=null&&e.type&&t.set("type",e.type),e!=null&&e.search&&t.set("search",e.search),(e==null?void 0:e.limit)!=null&&t.set("limit",String(e.limit)),(e==null?void 0:e.offset)!=null&&t.set("offset",String(e.offset));const n=await fetch(`${oe}/logs?${t}`);if(!n.ok)throw new Error(`fetchLogs: ${n.status}`);return n.json()}async function Gk(){const e=await fetch(`${oe}/settings/provider`);if(!e.ok)throw new Error("Failed to fetch provider settings");return e.json()}async function Kk(){try{const e=await fetch(`${oe}/settings/app`);return e.ok?e.json():{showWorkspaceDirConfig:!0,showBraveSearchConfig:!0}}catch{return{showWorkspaceDirConfig:!0,showBraveSearchConfig:!0}}}async function Dy(e,t,n){if(!(await fetch(`${oe}/settings/provider`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,model:t,apiKey:n})})).ok)throw new Error("Failed to save provider settings")}async function sR(e){if(!(await fetch(`${oe}/settings/providers/${encodeURIComponent(e)}`,{method:"DELETE"})).ok)throw new Error("Failed to remove provider")}async function oR(){const e=await fetch(`${oe}/settings/search`);return e.ok?e.json():{provider:"brave",configured:!1}}async function aR(e,t){const n=await fetch(`${oe}/settings/search`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:t})});if(!n.ok)throw new Error(`Failed to save search settings: ${n.status}`)}async function lR(){const e=await fetch(`${oe}/settings/search`,{method:"DELETE"});if(!e.ok&&e.status!==204&&e.status!==404)throw new Error(`Failed to clear search settings: ${e.status}`)}const uR={google:[{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash — fast + smart (recommended)"},{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro — most capable"},{value:"gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite — cheapest"},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash — preview"},{value:"gemini-3.1-pro-preview",label:"Gemini 3.1 Pro — preview"}],openai:[{value:"gpt-4.1",label:"GPT-4.1 — recommended, 1M ctx"},{value:"gpt-4.1-mini",label:"GPT-4.1 Mini — fast, efficient"},{value:"gpt-4.1-nano",label:"GPT-4.1 Nano — cheapest"}],anthropic:[{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6 — recommended"},{value:"claude-opus-4-6",label:"Claude Opus 4.6 — most capable"},{value:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5 — fastest"}],groq:[{value:"openai/gpt-oss-120b",label:"GPT-OSS 120B — flagship, ~500 tok/s"},{value:"openai/gpt-oss-20b",label:"GPT-OSS 20B — fast, efficient"},{value:"llama-3.3-70b-versatile",label:"Llama 3.3 70B — versatile"},{value:"llama-3.1-8b-instant",label:"Llama 3.1 8B — fastest/cheapest"}],openrouter:[{value:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash — best price/perf ($0.30/$2.50 /M)"},{value:"google/gemini-3-flash-preview",label:"Gemini 3 Flash — fast, 1M ctx ($0.50/$3 /M)"},{value:"google/gemini-3.1-pro-preview",label:"Gemini 3.1 Pro — frontier ($2/$12 /M)"},{value:"deepseek/deepseek-v3.2",label:"DeepSeek V3.2 — cheap output ($0.26/$0.38 /M)"},{value:"xiaomi/mimo-v2-pro",label:"MiMo V2 Pro — agentic, 1T params ($1/$3 /M)"},{value:"qwen/qwen3.6-plus",label:"Qwen 3.6 Plus — throughput leader ($0.33/$1.95 /M)"},{value:"minimax/minimax-m2.7",label:"MiniMax M2.7 — agentic ($0.30/$1.20 /M)"},{value:"x-ai/grok-4",label:"Grok 4 — reasoning, 256k ctx ($3/$15 /M)"}],freetier:[{value:"google/gemini-3-flash-preview",label:"Gemini 3 Flash — fast, 1M ctx"}]},Yk=[{value:"google",label:"Google Gemini"},{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"openrouter",label:"OpenRouter"}];function ad(e){return uR[e]??[]}function Sp(e){var t;return((t=ad(e)[0])==null?void 0:t.value)??""}const va="inline-flex items-center justify-center gap-2 bg-primary text-on-primary px-5 py-2.5 text-sm font-label font-semibold uppercase tracking-widest rounded shadow-sm transition-all hover:bg-surface-tint hover:shadow-md active:scale-[0.98] disabled:opacity-40 disabled:pointer-events-none",cR="inline-flex items-center justify-center gap-2 border border-outline-variant text-on-surface px-5 py-2.5 text-sm font-label font-semibold uppercase tracking-widest rounded transition-all hover:bg-surface-container hover:border-outline active:scale-[0.98] disabled:opacity-40 disabled:pointer-events-none",Xk="inline-flex items-center justify-center gap-1.5 text-on-surface-variant px-2.5 py-1.5 text-xs font-label font-medium uppercase tracking-wider rounded transition-colors hover:bg-surface-container hover:text-on-surface disabled:opacity-40 disabled:pointer-events-none",dR="inline-flex items-center justify-center gap-1.5 text-error px-2.5 py-1.5 text-xs font-label font-medium uppercase tracking-wider rounded transition-colors hover:bg-error/10 disabled:opacity-40 disabled:pointer-events-none",Eu="w-full bg-surface-container-lowest text-on-surface placeholder:text-on-surface-variant border border-outline-variant rounded-lg px-3 py-2 text-sm focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-colors",Iy=Eu.replace("text-sm","text-sm font-mono"),Ja="bg-surface-container-lowest border border-outline-variant/40 rounded-xl shadow-callout",Bs="inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-label font-medium uppercase tracking-wider",Cp=`${Bs} bg-surface-container border border-outline-variant/40 text-on-surface-variant`,Jk=`${Bs} bg-success/10 border border-success/20 text-success`,hR=`${Bs} bg-warning/10 border border-warning/20 text-warning`;function fR({agent:e,onDelete:t}){const n=es(),{t:r}=Ce(),i=e.status==="active",s=e.busy===!0;return f.jsxs("div",{onClick:()=>n(`/agents/${e.id}/chat`),className:"group flex items-center gap-4 rounded-xl bg-surface-container-lowest border border-outline-variant/40 p-4 cursor-pointer transition-all hover:border-primary/40 hover:shadow-callout",children:[f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[f.jsx("span",{className:"font-headline text-lg font-bold text-on-surface",children:e.name}),s?f.jsxs("span",{"data-testid":"busy-badge",className:"inline-flex items-center gap-1 rounded-full bg-secondary/15 border border-secondary/30 px-2 py-0.5 text-[10px] font-label font-semibold uppercase tracking-wider text-secondary",children:[f.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-secondary animate-pulse"}),"busy"]}):f.jsx("span",{className:i?Jk:Cp,children:e.status})]}),f.jsxs("div",{className:"flex items-center gap-3 mt-1",children:[f.jsx("span",{className:"font-mono text-[10px] text-primary/70",children:e.model}),f.jsxs("span",{className:"font-mono text-[10px] text-on-surface-variant/60 hidden sm:inline",children:["id: ",e.id]})]})]}),f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[f.jsx("div",{className:"hidden sm:flex flex-wrap gap-1",children:e.allowedTools.slice(0,3).map(o=>f.jsx("span",{className:"font-mono text-[9px] text-on-surface-variant bg-surface-container rounded px-1.5 py-0.5",children:o},o))}),f.jsx("button",{onClick:o=>{o.stopPropagation(),t()},className:`${dR} sm:opacity-0 sm:group-hover:opacity-100`,children:r("dashboard.delete")})]})]})}function pR(){const{t:e}=Ce(),[t,n]=N.useState([]),[r,i]=N.useState(!0),[s,o]=N.useState(null),[a,l]=N.useState({showWorkspaceDirConfig:!0,showBraveSearchConfig:!0}),[u,c]=N.useState(!1),[d,h]=N.useState(""),[p,g]=N.useState(""),[m,y]=N.useState(""),[v,x]=N.useState(""),[b,S]=N.useState(""),[k,w]=N.useState(!1),[E,P]=N.useState(!1),[T,C]=N.useState(null),M=N.useRef(null);async function R(_){var W,j;const U=(W=_.target.files)==null?void 0:W[0];if(U){P(!0),C(null);try{let te;try{te=await Ry(U)}catch(le){const ie=le instanceof Error?le.message:String(le);if(ie.includes("already exists")){const H=(j=prompt(`${ie}
|
|
91
91
|
|
|
92
92
|
Enter a new id for the imported agent:`,""))==null?void 0:j.trim();if(!H){P(!1);return}te=await Ry(U,{id:H})}else throw le}await L(),V(`/agents/${te.id}/chat`)}catch(te){C(te instanceof Error?te.message:e("dashboard.importFailed"))}finally{P(!1),M.current&&(M.current.value="")}}}const L=()=>{Promise.all([Ny(),Gk(),Kk()]).then(([_,U,W])=>{var j;if(n(_),o(U),l(W),!m){const te=(j=U.providers)==null?void 0:j[0];te&&(y(te.provider),x(te.model))}}).catch(console.error).finally(()=>i(!1))};N.useEffect(()=>{L();const _=setInterval(()=>{Ny().then(n).catch(()=>{})},2e3);return()=>clearInterval(_)},[]);const V=es(),O=(s==null?void 0:s.providers)??[],J=m?ad(m):[];function Q(_){y(_),x(Sp(_))}async function D(){if(!(!d.trim()||!p.trim())){w(!0),C(null);try{const _=d.trim();await MM(_,p.trim(),v,m||void 0,b.trim()||void 0),V(`/agents/${_}/chat`)}catch(_){C(_ instanceof Error?_.message:e("common.errorCreate")),w(!1)}}}async function F(_,U){confirm(e("dashboard.deleteConfirm",{name:U,id:_}))&&(await RM(_),L())}return r?f.jsx("div",{className:"font-mono text-xs text-on-surface-variant p-8",children:e("dashboard.loadingAgents")}):s&&!s.configured&&t.length===0?f.jsx("div",{className:"max-w-3xl mx-auto py-16 px-4",children:f.jsxs("div",{className:"text-center",children:[f.jsxs("h1",{className:"font-headline text-4xl font-bold text-on-surface mb-4",children:[e("dashboard.getStartedWith")," ",f.jsx("span",{className:"highlight-marker",children:"GranClaw"})]}),f.jsx("p",{className:"font-mono text-xs text-on-surface-variant mb-8",children:e("dashboard.configureProviderBlurb")}),f.jsx(hx,{to:"/settings",className:va,children:e("dashboard.configureProvider")})]})}):f.jsxs("div",{className:"max-w-4xl mx-auto py-6 sm:py-8 px-4",children:[s&&!s.configured&&f.jsxs("div",{className:"rounded-xl bg-warning/10 border border-warning/30 px-4 py-3 mb-6 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2",children:[f.jsx("p",{className:"font-mono text-[11px] text-warning",children:e("dashboard.noProviderWarning")}),f.jsx(hx,{to:"/settings",className:"font-label text-[11px] font-semibold uppercase tracking-widest text-primary hover:text-surface-tint flex-shrink-0",children:e("dashboard.configureArrow")})]}),f.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4 mb-6 sm:mb-8",children:[f.jsxs("div",{children:[f.jsx("h1",{className:"font-headline text-3xl sm:text-4xl font-bold text-on-surface",children:e("dashboard.title")}),f.jsx("p",{className:"font-mono text-[11px] text-on-surface-variant mt-1",children:e(t.length===1?"dashboard.agentsCountOne":"dashboard.agentsCountOther",{count:t.length})})]}),f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[f.jsx("input",{ref:M,type:"file",accept:".zip,application/zip",onChange:R,className:"hidden"}),f.jsx("button",{onClick:()=>{var _;return(_=M.current)==null?void 0:_.click()},disabled:E||!(s!=null&&s.configured),className:cR,title:e("dashboard.importTitle"),children:e(E?"dashboard.importing":"dashboard.import")}),f.jsx("button",{onClick:()=>c(_=>!_),disabled:!(s!=null&&s.configured),className:va,children:e(u?"dashboard.cancel":"dashboard.newAgent")})]})]}),u&&f.jsxs("div",{className:`${Ja} p-5 mb-6 space-y-3`,children:[f.jsx("p",{className:"font-label text-[10px] font-semibold uppercase tracking-widest text-on-surface-variant",children:e("dashboard.createNewAgent")}),f.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:[f.jsx("input",{className:Iy,placeholder:e("dashboard.agentIdPlaceholder"),value:d,onChange:_=>h(_.target.value.toLowerCase().replace(/[^a-z0-9-]/g,""))}),f.jsx("input",{className:Eu,placeholder:e("dashboard.displayNamePlaceholder"),value:p,onChange:_=>g(_.target.value)})]}),f.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:[f.jsx("select",{className:`${Eu} appearance-none`,value:m,onChange:_=>Q(_.target.value),children:O.map(_=>f.jsx("option",{value:_.provider,children:_.label??_.provider},_.provider))}),f.jsx("select",{className:`${Eu} appearance-none`,value:v,onChange:_=>x(_.target.value),children:J.map(_=>f.jsx("option",{value:_.value,children:_.label},_.value))})]}),a.showWorkspaceDirConfig&&f.jsx("input",{className:Iy,placeholder:e("dashboard.workspacePlaceholder",{id:d||e("dashboard.workspacePlaceholderDefault")}),value:b,onChange:_=>S(_.target.value)}),f.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[f.jsx("button",{onClick:D,disabled:k||!d.trim()||!p.trim()||!v,className:va,children:e(k?"dashboard.creating":"dashboard.create")}),T&&f.jsx("span",{className:"font-mono text-[10px] text-error",children:T})]})]}),f.jsx("div",{className:"space-y-3",children:t.length===0?f.jsxs("div",{className:"text-center py-16",children:[f.jsx("span",{className:"text-3xl opacity-30",children:"🤖"}),f.jsx("p",{className:"font-mono text-[11px] text-on-surface-variant mt-3",children:e("dashboard.noAgents")})]}):t.map(_=>f.jsx(fR,{agent:_,onDelete:()=>F(_.id,_.name)},_.id))})]})}function gR(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const mR=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,vR=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,xR={};function Oy(e,t){return(xR.jsx?vR:mR).test(e)}const yR=/[ \t\n\f\r]/g;function bR(e){return typeof e=="object"?e.type==="text"?Ly(e.value):!1:Ly(e)}function Ly(e){return e.replace(yR,"")===""}class fl{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}fl.prototype.normal={};fl.prototype.property={};fl.prototype.space=void 0;function Qk(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new fl(n,r,t)}function Ep(e){return e.toLowerCase()}class Yt{constructor(t,n){this.attribute=n,this.property=t}}Yt.prototype.attribute="";Yt.prototype.booleanish=!1;Yt.prototype.boolean=!1;Yt.prototype.commaOrSpaceSeparated=!1;Yt.prototype.commaSeparated=!1;Yt.prototype.defined=!1;Yt.prototype.mustUseProperty=!1;Yt.prototype.number=!1;Yt.prototype.overloadedBoolean=!1;Yt.prototype.property="";Yt.prototype.spaceSeparated=!1;Yt.prototype.space=void 0;let _R=0;const ce=ts(),et=ts(),Pp=ts(),B=ts(),Me=ts(),Hs=ts(),Qt=ts();function ts(){return 2**++_R}const Np=Object.freeze(Object.defineProperty({__proto__:null,boolean:ce,booleanish:et,commaOrSpaceSeparated:Qt,commaSeparated:Hs,number:B,overloadedBoolean:Pp,spaceSeparated:Me},Symbol.toStringTag,{value:"Module"})),vh=Object.keys(Np);class fm extends Yt{constructor(t,n,r,i){let s=-1;if(super(t,n),Fy(this,"space",i),typeof r=="number")for(;++s<vh.length;){const o=vh[s];Fy(this,vh[s],(r&Np[o])===Np[o])}}}fm.prototype.defined=!0;function Fy(e,t,n){n&&(e[t]=n)}function ho(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const s=new fm(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(s.mustUseProperty=!0),t[r]=s,n[Ep(r)]=r,n[Ep(s.attribute)]=r}return new fl(t,n,e.space)}const Zk=ho({properties:{ariaActiveDescendant:null,ariaAtomic:et,ariaAutoComplete:null,ariaBusy:et,ariaChecked:et,ariaColCount:B,ariaColIndex:B,ariaColSpan:B,ariaControls:Me,ariaCurrent:null,ariaDescribedBy:Me,ariaDetails:null,ariaDisabled:et,ariaDropEffect:Me,ariaErrorMessage:null,ariaExpanded:et,ariaFlowTo:Me,ariaGrabbed:et,ariaHasPopup:null,ariaHidden:et,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Me,ariaLevel:B,ariaLive:null,ariaModal:et,ariaMultiLine:et,ariaMultiSelectable:et,ariaOrientation:null,ariaOwns:Me,ariaPlaceholder:null,ariaPosInSet:B,ariaPressed:et,ariaReadOnly:et,ariaRelevant:null,ariaRequired:et,ariaRoleDescription:Me,ariaRowCount:B,ariaRowIndex:B,ariaRowSpan:B,ariaSelected:et,ariaSetSize:B,ariaSort:null,ariaValueMax:B,ariaValueMin:B,ariaValueNow:B,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function eS(e,t){return t in e?e[t]:t}function tS(e,t){return eS(e,t.toLowerCase())}const wR=ho({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Hs,acceptCharset:Me,accessKey:Me,action:null,allow:null,allowFullScreen:ce,allowPaymentRequest:ce,allowUserMedia:ce,alt:null,as:null,async:ce,autoCapitalize:null,autoComplete:Me,autoFocus:ce,autoPlay:ce,blocking:Me,capture:null,charSet:null,checked:ce,cite:null,className:Me,cols:B,colSpan:null,content:null,contentEditable:et,controls:ce,controlsList:Me,coords:B|Hs,crossOrigin:null,data:null,dateTime:null,decoding:null,default:ce,defer:ce,dir:null,dirName:null,disabled:ce,download:Pp,draggable:et,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:ce,formTarget:null,headers:Me,height:B,hidden:Pp,high:B,href:null,hrefLang:null,htmlFor:Me,httpEquiv:Me,id:null,imageSizes:null,imageSrcSet:null,inert:ce,inputMode:null,integrity:null,is:null,isMap:ce,itemId:null,itemProp:Me,itemRef:Me,itemScope:ce,itemType:Me,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:ce,low:B,manifest:null,max:null,maxLength:B,media:null,method:null,min:null,minLength:B,multiple:ce,muted:ce,name:null,nonce:null,noModule:ce,noValidate:ce,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:ce,optimum:B,pattern:null,ping:Me,placeholder:null,playsInline:ce,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:ce,referrerPolicy:null,rel:Me,required:ce,reversed:ce,rows:B,rowSpan:B,sandbox:Me,scope:null,scoped:ce,seamless:ce,selected:ce,shadowRootClonable:ce,shadowRootDelegatesFocus:ce,shadowRootMode:null,shape:null,size:B,sizes:null,slot:null,span:B,spellCheck:et,src:null,srcDoc:null,srcLang:null,srcSet:null,start:B,step:null,style:null,tabIndex:B,target:null,title:null,translate:null,type:null,typeMustMatch:ce,useMap:null,value:et,width:B,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Me,axis:null,background:null,bgColor:null,border:B,borderColor:null,bottomMargin:B,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:ce,declare:ce,event:null,face:null,frame:null,frameBorder:null,hSpace:B,leftMargin:B,link:null,longDesc:null,lowSrc:null,marginHeight:B,marginWidth:B,noResize:ce,noHref:ce,noShade:ce,noWrap:ce,object:null,profile:null,prompt:null,rev:null,rightMargin:B,rules:null,scheme:null,scrolling:et,standby:null,summary:null,text:null,topMargin:B,valueType:null,version:null,vAlign:null,vLink:null,vSpace:B,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:ce,disableRemotePlayback:ce,prefix:null,property:null,results:B,security:null,unselectable:null},space:"html",transform:tS}),kR=ho({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Qt,accentHeight:B,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:B,amplitude:B,arabicForm:null,ascent:B,attributeName:null,attributeType:null,azimuth:B,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:B,by:null,calcMode:null,capHeight:B,className:Me,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:B,diffuseConstant:B,direction:null,display:null,dur:null,divisor:B,dominantBaseline:null,download:ce,dx:null,dy:null,edgeMode:null,editable:null,elevation:B,enableBackground:null,end:null,event:null,exponent:B,externalResourcesRequired:null,fill:null,fillOpacity:B,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Hs,g2:Hs,glyphName:Hs,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:B,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:B,horizOriginX:B,horizOriginY:B,id:null,ideographic:B,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:B,k:B,k1:B,k2:B,k3:B,k4:B,kernelMatrix:Qt,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:B,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:B,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:B,overlineThickness:B,paintOrder:null,panose1:null,path:null,pathLength:B,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Me,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:B,pointsAtY:B,pointsAtZ:B,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Qt,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Qt,rev:Qt,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Qt,requiredFeatures:Qt,requiredFonts:Qt,requiredFormats:Qt,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:B,specularExponent:B,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:B,strikethroughThickness:B,string:null,stroke:null,strokeDashArray:Qt,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:B,strokeOpacity:B,strokeWidth:null,style:null,surfaceScale:B,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Qt,tabIndex:B,tableValues:null,target:null,targetX:B,targetY:B,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Qt,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:B,underlineThickness:B,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:B,values:null,vAlphabetic:B,vMathematical:B,vectorEffect:null,vHanging:B,vIdeographic:B,version:null,vertAdvY:B,vertOriginX:B,vertOriginY:B,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:B,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:eS}),nS=ho({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),rS=ho({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:tS}),iS=ho({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),SR={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},CR=/[A-Z]/g,$y=/-[a-z]/g,ER=/^data[-\w.:]+$/i;function PR(e,t){const n=Ep(t);let r=t,i=Yt;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&ER.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace($y,jR);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!$y.test(s)){let o=s.replace(CR,NR);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=fm}return new i(r,t)}function NR(e){return"-"+e.toLowerCase()}function jR(e){return e.charAt(1).toUpperCase()}const TR=Qk([Zk,wR,nS,rS,iS],"html"),pm=Qk([Zk,kR,nS,rS,iS],"svg");function MR(e){return e.join(" ").trim()}var gm={},zy=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,RR=/\n/g,AR=/^\s*/,DR=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,IR=/^:\s*/,OR=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,LR=/^[;\s]*/,FR=/^\s+|\s+$/g,$R=`
|
|
93
93
|
`,By="/",Hy="*",Mi="",zR="comment",BR="declaration";function HR(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(g){var m=g.match(RR);m&&(n+=m.length);var y=g.lastIndexOf($R);r=~y?g.length-y:r+g.length}function s(){var g={line:n,column:r};return function(m){return m.position=new o(g),u(),m}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function a(g){var m=new Error(t.source+":"+n+":"+r+": "+g);if(m.reason=g,m.filename=t.source,m.line=n,m.column=r,m.source=e,!t.silent)throw m}function l(g){var m=g.exec(e);if(m){var y=m[0];return i(y),e=e.slice(y.length),m}}function u(){l(AR)}function c(g){var m;for(g=g||[];m=d();)m!==!1&&g.push(m);return g}function d(){var g=s();if(!(By!=e.charAt(0)||Hy!=e.charAt(1))){for(var m=2;Mi!=e.charAt(m)&&(Hy!=e.charAt(m)||By!=e.charAt(m+1));)++m;if(m+=2,Mi===e.charAt(m-1))return a("End of comment missing");var y=e.slice(2,m-2);return r+=2,i(y),e=e.slice(m),r+=2,g({type:zR,comment:y})}}function h(){var g=s(),m=l(DR);if(m){if(d(),!l(IR))return a("property missing ':'");var y=l(OR),v=g({type:BR,property:Wy(m[0].replace(zy,Mi)),value:y?Wy(y[0].replace(zy,Mi)):Mi});return l(LR),v}}function p(){var g=[];c(g);for(var m;m=h();)m!==!1&&(g.push(m),c(g));return g}return u(),p()}function Wy(e){return e?e.replace(FR,Mi):Mi}var WR=HR,VR=Fu&&Fu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gm,"__esModule",{value:!0});gm.default=qR;const UR=VR(WR);function qR(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,UR.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:a}=s;i?t(o,a,s):a&&(n=n||{},n[o]=a)}),n}var ld={};Object.defineProperty(ld,"__esModule",{value:!0});ld.camelCase=void 0;var GR=/^--[a-zA-Z0-9_-]+$/,KR=/-([a-z])/g,YR=/^[^-]+$/,XR=/^-(webkit|moz|ms|o|khtml)-/,JR=/^-(ms)-/,QR=function(e){return!e||YR.test(e)||GR.test(e)},ZR=function(e,t){return t.toUpperCase()},Vy=function(e,t){return"".concat(t,"-")},eA=function(e,t){return t===void 0&&(t={}),QR(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(JR,Vy):e=e.replace(XR,Vy),e.replace(KR,ZR))};ld.camelCase=eA;var tA=Fu&&Fu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},nA=tA(gm),rA=ld;function jp(e,t){var n={};return!e||typeof e!="string"||(0,nA.default)(e,function(r,i){r&&i&&(n[(0,rA.camelCase)(r,t)]=i)}),n}jp.default=jp;var iA=jp;const sA=tg(iA),sS=oS("end"),mm=oS("start");function oS(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function oA(e){const t=mm(e),n=sS(e);if(t&&n)return{start:t,end:n}}function xa(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Uy(e.position):"start"in e||"end"in e?Uy(e):"line"in e||"column"in e?Tp(e):""}function Tp(e){return qy(e&&e.line)+":"+qy(e&&e.column)}function Uy(e){return Tp(e&&e.start)+"-"+Tp(e&&e.end)}function qy(e){return e&&typeof e=="number"?e:1}class Nt extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const a=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=xa(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Nt.prototype.file="";Nt.prototype.name="";Nt.prototype.reason="";Nt.prototype.message="";Nt.prototype.stack="";Nt.prototype.column=void 0;Nt.prototype.line=void 0;Nt.prototype.ancestors=void 0;Nt.prototype.cause=void 0;Nt.prototype.fatal=void 0;Nt.prototype.place=void 0;Nt.prototype.ruleId=void 0;Nt.prototype.source=void 0;const vm={}.hasOwnProperty,aA=new Map,lA=/[A-Z]/g,uA=new Set(["table","tbody","thead","tfoot","tr"]),cA=new Set(["td","th"]),aS="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function dA(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=yA(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=xA(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?pm:TR,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=lS(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function lS(e,t,n){if(t.type==="element")return hA(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return fA(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return gA(e,t,n);if(t.type==="mdxjsEsm")return pA(e,t);if(t.type==="root")return mA(e,t,n);if(t.type==="text")return vA(e,t)}function hA(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=pm,e.schema=i),e.ancestors.push(t);const s=cS(e,t.tagName,!1),o=bA(e,t);let a=ym(e,t);return uA.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!bR(l):!0})),uS(e,o,s,t),xm(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function fA(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}Qa(e,t.position)}function pA(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Qa(e,t.position)}function gA(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=pm,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:cS(e,t.name,!0),o=_A(e,t),a=ym(e,t);return uS(e,o,s,t),xm(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function mA(e,t,n){const r={};return xm(r,ym(e,t)),e.create(t,e.Fragment,r,n)}function vA(e,t){return t.value}function uS(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function xm(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function xA(e,t,n){return r;function r(i,s,o,a){const u=Array.isArray(o.children)?n:t;return a?u(s,o,a):u(s,o)}}function yA(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=mm(r);return t(i,s,o,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function bA(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&vm.call(t.properties,i)){const s=wA(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&cA.has(t.tagName)?r=a:n[o]=a}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function _A(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const a=o.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else Qa(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,s=e.evaluater.evaluateExpression(a.expression)}else Qa(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function ym(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:aA;for(;++r<t.children.length;){const s=t.children[r];let o;if(e.passKeys){const l=s.type==="element"?s.tagName:s.type==="mdxJsxFlowElement"||s.type==="mdxJsxTextElement"?s.name:void 0;if(l){const u=i.get(l)||0;o=l+"-"+u,i.set(l,u+1)}}const a=lS(e,s,o);a!==void 0&&n.push(a)}return n}function wA(e,t,n){const r=PR(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?gR(n):MR(n)),r.property==="style"){let i=typeof n=="object"?n:kA(e,String(n));return e.stylePropertyNameCase==="css"&&(i=SA(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&r.space?SR[r.property]||r.property:r.attribute,n]}}function kA(e,t){try{return sA(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,i=new Nt("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=e.filePath||void 0,i.url=aS+"#cannot-parse-style-attribute",i}}function cS(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let s=-1,o;for(;++s<i.length;){const a=Oy(i[s])?{type:"Identifier",name:i[s]}:{type:"Literal",value:i[s]};o=o?{type:"MemberExpression",object:o,property:a,computed:!!(s&&a.type==="Literal"),optional:!1}:a}r=o}else r=Oy(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const i=r.value;return vm.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(r);Qa(e)}function Qa(e,t){const n=new Nt("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=aS+"#cannot-handle-mdx-estrees-without-createevaluater",n}function SA(e){const t={};let n;for(n in e)vm.call(e,n)&&(t[CA(n)]=e[n]);return t}function CA(e){let t=e.replace(lA,EA);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function EA(e){return"-"+e.toLowerCase()}const xh={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},PA={};function bm(e,t){const n=PA,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return dS(e,r,i)}function dS(e,t,n){if(NA(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Gy(e.children,t,n)}return Array.isArray(e)?Gy(e,t,n):""}function Gy(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=dS(e[i],t,n);return r.join("")}function NA(e){return!!(e&&typeof e=="object")}const Ky=document.createElement("i");function _m(e){const t="&"+e+";";Ky.innerHTML=t;const n=Ky.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function an(e,t,n,r){const i=e.length;let s=0,o;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s<r.length;)o=r.slice(s,s+1e4),o.unshift(t,0),e.splice(...o),s+=1e4,t+=1e4}function mn(e,t){return e.length>0?(an(e,e.length,0,t),e):t}const Yy={}.hasOwnProperty;function hS(e){const t={};let n=-1;for(;++n<e.length;)jA(t,e[n]);return t}function jA(e,t){let n;for(n in t){const i=(Yy.call(e,n)?e[n]:void 0)||(e[n]={}),s=t[n];let o;if(s)for(o in s){Yy.call(i,o)||(i[o]=[]);const a=s[o];TA(i[o],Array.isArray(a)?a:a?[a]:[])}}}function TA(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);an(e,0,0,r)}function fS(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Dn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const It=pi(/[A-Za-z]/),St=pi(/[\dA-Za-z]/),MA=pi(/[#-'*+\--9=?A-Z^-~]/);function Pc(e){return e!==null&&(e<32||e===127)}const Mp=pi(/\d/),RA=pi(/[\dA-Fa-f]/),AA=pi(/[!-/:-@[-`{-~]/);function se(e){return e!==null&&e<-2}function Te(e){return e!==null&&(e<0||e===32)}function fe(e){return e===-2||e===-1||e===32}const ud=pi(new RegExp("\\p{P}|\\p{S}","u")),Ki=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function fo(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const s=e.charCodeAt(n);let o="";if(s===37&&St(e.charCodeAt(n+1))&&St(e.charCodeAt(n+2)))i=2;else if(s<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(s))||(o=String.fromCharCode(s));else if(s>55295&&s<57344){const a=e.charCodeAt(n+1);s<56320&&a>56319&&a<57344?(o=String.fromCharCode(s,a),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function ye(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(l){return fe(l)?(e.enter(n),a(l)):t(l)}function a(l){return fe(l)&&s++<i?(e.consume(l),a):(e.exit(n),t(l))}}const DA={tokenize:IA};function IA(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),ye(e,t,"linePrefix")}function i(a){return e.enter("paragraph"),s(a)}function s(a){const l=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=l),n=l,o(a)}function o(a){if(a===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(a);return}return se(a)?(e.consume(a),e.exit("chunkText"),s):(e.consume(a),o)}}const OA={tokenize:LA},Xy={tokenize:FA};function LA(e){const t=this,n=[];let r=0,i,s,o;return a;function a(b){if(r<n.length){const S=n[r];return t.containerState=S[1],e.attempt(S[0].continuation,l,u)(b)}return u(b)}function l(b){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&x();const S=t.events.length;let k=S,w;for(;k--;)if(t.events[k][0]==="exit"&&t.events[k][1].type==="chunkFlow"){w=t.events[k][1].end;break}v(r);let E=S;for(;E<t.events.length;)t.events[E][1].end={...w},E++;return an(t.events,k+1,0,t.events.slice(S)),t.events.length=E,u(b)}return a(b)}function u(b){if(r===n.length){if(!i)return h(b);if(i.currentConstruct&&i.currentConstruct.concrete)return g(b);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Xy,c,d)(b)}function c(b){return i&&x(),v(r),h(b)}function d(b){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,g(b)}function h(b){return t.containerState={},e.attempt(Xy,p,g)(b)}function p(b){return r++,n.push([t.currentConstruct,t.containerState]),h(b)}function g(b){if(b===null){i&&x(),v(0),e.consume(b);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:s}),m(b)}function m(b){if(b===null){y(e.exit("chunkFlow"),!0),v(0),e.consume(b);return}return se(b)?(e.consume(b),y(e.exit("chunkFlow")),r=0,t.interrupt=void 0,a):(e.consume(b),m)}function y(b,S){const k=t.sliceStream(b);if(S&&k.push(null),b.previous=s,s&&(s.next=b),s=b,i.defineSkip(b.start),i.write(k),t.parser.lazy[b.start.line]){let w=i.events.length;for(;w--;)if(i.events[w][1].start.offset<o&&(!i.events[w][1].end||i.events[w][1].end.offset>o))return;const E=t.events.length;let P=E,T,C;for(;P--;)if(t.events[P][0]==="exit"&&t.events[P][1].type==="chunkFlow"){if(T){C=t.events[P][1].end;break}T=!0}for(v(r),w=E;w<t.events.length;)t.events[w][1].end={...C},w++;an(t.events,P+1,0,t.events.slice(E)),t.events.length=w}}function v(b){let S=n.length;for(;S-- >b;){const k=n[S];t.containerState=k[1],k[0].exit.call(t,e)}n.length=b}function x(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function FA(e,t,n){return ye(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function no(e){if(e===null||Te(e)||Ki(e))return 1;if(ud(e))return 2}function cd(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const s=e[i].resolveAll;s&&!r.includes(s)&&(t=s(t,n),r.push(s))}return t}const Rp={name:"attention",resolveAll:$A,tokenize:zA};function $A(e,t){let n=-1,r,i,s,o,a,l,u,c;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;l=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const d={...e[r][1].end},h={...e[n][1].start};Jy(d,-l),Jy(h,l),o={type:l>1?"strongSequence":"emphasisSequence",start:d,end:{...e[r][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[r][1].end={...o.start},e[n][1].start={...a.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=mn(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=mn(u,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),u=mn(u,cd(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=mn(u,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(c=2,u=mn(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):c=0,an(e,r-1,n-r+3,u),n=r+u.length-c-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function zA(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=no(r);let s;return o;function o(l){return s=l,e.enter("attentionSequence"),a(l)}function a(l){if(l===s)return e.consume(l),a;const u=e.exit("attentionSequence"),c=no(l),d=!c||c===2&&i||n.includes(l),h=!i||i===2&&c||n.includes(r);return u._open=!!(s===42?d:d&&(i||!h)),u._close=!!(s===42?h:h&&(c||!d)),t(l)}}function Jy(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const BA={name:"autolink",tokenize:HA};function HA(e,t,n){let r=0;return i;function i(p){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),s}function s(p){return It(p)?(e.consume(p),o):p===64?n(p):u(p)}function o(p){return p===43||p===45||p===46||St(p)?(r=1,a(p)):u(p)}function a(p){return p===58?(e.consume(p),r=0,l):(p===43||p===45||p===46||St(p))&&r++<32?(e.consume(p),a):(r=0,u(p))}function l(p){return p===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):p===null||p===32||p===60||Pc(p)?n(p):(e.consume(p),l)}function u(p){return p===64?(e.consume(p),c):MA(p)?(e.consume(p),u):n(p)}function c(p){return St(p)?d(p):n(p)}function d(p){return p===46?(e.consume(p),r=0,c):p===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(p),e.exit("autolinkMarker"),e.exit("autolink"),t):h(p)}function h(p){if((p===45||St(p))&&r++<63){const g=p===45?h:d;return e.consume(p),g}return n(p)}}const pl={partial:!0,tokenize:WA};function WA(e,t,n){return r;function r(s){return fe(s)?ye(e,i,"linePrefix")(s):i(s)}function i(s){return s===null||se(s)?t(s):n(s)}}const pS={continuation:{tokenize:UA},exit:qA,name:"blockQuote",tokenize:VA};function VA(e,t,n){const r=this;return i;function i(o){if(o===62){const a=r.containerState;return a.open||(e.enter("blockQuote",{_container:!0}),a.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(o),e.exit("blockQuoteMarker"),s}return n(o)}function s(o){return fe(o)?(e.enter("blockQuotePrefixWhitespace"),e.consume(o),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(o))}}function UA(e,t,n){const r=this;return i;function i(o){return fe(o)?ye(e,s,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):s(o)}function s(o){return e.attempt(pS,t,n)(o)}}function qA(e){e.exit("blockQuote")}const gS={name:"characterEscape",tokenize:GA};function GA(e,t,n){return r;function r(s){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(s),e.exit("escapeMarker"),i}function i(s){return AA(s)?(e.enter("characterEscapeValue"),e.consume(s),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(s)}}const mS={name:"characterReference",tokenize:KA};function KA(e,t,n){const r=this;let i=0,s,o;return a;function a(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),l}function l(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),s=31,o=St,c(d))}function u(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),s=6,o=RA,c):(e.enter("characterReferenceValue"),s=7,o=Mp,c(d))}function c(d){if(d===59&&i){const h=e.exit("characterReferenceValue");return o===St&&!_m(r.sliceSerialize(h))?n(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return o(d)&&i++<s?(e.consume(d),c):n(d)}}const Qy={partial:!0,tokenize:XA},Zy={concrete:!0,name:"codeFenced",tokenize:YA};function YA(e,t,n){const r=this,i={partial:!0,tokenize:k};let s=0,o=0,a;return l;function l(w){return u(w)}function u(w){const E=r.events[r.events.length-1];return s=E&&E[1].type==="linePrefix"?E[2].sliceSerialize(E[1],!0).length:0,a=w,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),c(w)}function c(w){return w===a?(o++,e.consume(w),c):o<3?n(w):(e.exit("codeFencedFenceSequence"),fe(w)?ye(e,d,"whitespace")(w):d(w))}function d(w){return w===null||se(w)?(e.exit("codeFencedFence"),r.interrupt?t(w):e.check(Qy,m,S)(w)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),h(w))}function h(w){return w===null||se(w)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),d(w)):fe(w)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),ye(e,p,"whitespace")(w)):w===96&&w===a?n(w):(e.consume(w),h)}function p(w){return w===null||se(w)?d(w):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),g(w))}function g(w){return w===null||se(w)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),d(w)):w===96&&w===a?n(w):(e.consume(w),g)}function m(w){return e.attempt(i,S,y)(w)}function y(w){return e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),v}function v(w){return s>0&&fe(w)?ye(e,x,"linePrefix",s+1)(w):x(w)}function x(w){return w===null||se(w)?e.check(Qy,m,S)(w):(e.enter("codeFlowValue"),b(w))}function b(w){return w===null||se(w)?(e.exit("codeFlowValue"),x(w)):(e.consume(w),b)}function S(w){return e.exit("codeFenced"),t(w)}function k(w,E,P){let T=0;return C;function C(O){return w.enter("lineEnding"),w.consume(O),w.exit("lineEnding"),M}function M(O){return w.enter("codeFencedFence"),fe(O)?ye(w,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):R(O)}function R(O){return O===a?(w.enter("codeFencedFenceSequence"),L(O)):P(O)}function L(O){return O===a?(T++,w.consume(O),L):T>=o?(w.exit("codeFencedFenceSequence"),fe(O)?ye(w,V,"whitespace")(O):V(O)):P(O)}function V(O){return O===null||se(O)?(w.exit("codeFencedFence"),E(O)):P(O)}}}function XA(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const yh={name:"codeIndented",tokenize:QA},JA={partial:!0,tokenize:ZA};function QA(e,t,n){const r=this;return i;function i(u){return e.enter("codeIndented"),ye(e,s,"linePrefix",5)(u)}function s(u){const c=r.events[r.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?l(u):se(u)?e.attempt(JA,o,l)(u):(e.enter("codeFlowValue"),a(u))}function a(u){return u===null||se(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),a)}function l(u){return e.exit("codeIndented"),t(u)}}function ZA(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):se(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):ye(e,s,"linePrefix",5)(o)}function s(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):se(o)?i(o):n(o)}}const eD={name:"codeText",previous:nD,resolve:tD,tokenize:rD};function tD(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function nD(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function rD(e,t,n){let r=0,i,s;return o;function o(d){return e.enter("codeText"),e.enter("codeTextSequence"),a(d)}function a(d){return d===96?(e.consume(d),r++,a):(e.exit("codeTextSequence"),l(d))}function l(d){return d===null?n(d):d===32?(e.enter("space"),e.consume(d),e.exit("space"),l):d===96?(s=e.enter("codeTextSequence"),i=0,c(d)):se(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),l):(e.enter("codeTextData"),u(d))}function u(d){return d===null||d===32||d===96||se(d)?(e.exit("codeTextData"),l(d)):(e.consume(d),u)}function c(d){return d===96?(e.consume(d),i++,c):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(d)):(s.type="codeTextData",u(d))}}class iD{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&Do(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Do(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Do(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);Do(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Do(this.left,n.reverse())}}}function Do(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function vS(e){const t={};let n=-1,r,i,s,o,a,l,u;const c=new iD(e);for(;++n<c.length;){for(;n in t;)n=t[n];if(r=c.get(n),n&&r[1].type==="chunkFlow"&&c.get(n-1)[1].type==="listItemPrefix"&&(l=r[1]._tokenizer.events,s=0,s<l.length&&l[s][1].type==="lineEndingBlank"&&(s+=2),s<l.length&&l[s][1].type==="content"))for(;++s<l.length&&l[s][1].type!=="content";)l[s][1].type==="chunkText"&&(l[s][1]._isInFirstContentOfListItem=!0,s++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,sD(c,n)),n=t[n],u=!0);else if(r[1]._container){for(s=n,i=void 0;s--;)if(o=c.get(s),o[1].type==="lineEnding"||o[1].type==="lineEndingBlank")o[0]==="enter"&&(i&&(c.get(i)[1].type="lineEndingBlank"),o[1].type="lineEnding",i=s);else if(!(o[1].type==="linePrefix"||o[1].type==="listItemIndent"))break;i&&(r[1].end={...c.get(i)[1].start},a=c.slice(i,n),a.unshift(r),c.splice(i,n-i+1,a))}}return an(e,0,Number.POSITIVE_INFINITY,c.slice(0)),!u}function sD(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const s=[];let o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));const a=o.events,l=[],u={};let c,d,h=-1,p=n,g=0,m=0;const y=[m];for(;p;){for(;e.get(++i)[1]!==p;);s.push(i),p._tokenizer||(c=r.sliceStream(p),p.next||c.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(c),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++h<a.length;)a[h][0]==="exit"&&a[h-1][0]==="enter"&&a[h][1].type===a[h-1][1].type&&a[h][1].start.line!==a[h][1].end.line&&(m=h+1,y.push(m),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):y.pop(),h=y.length;h--;){const v=a.slice(y[h],y[h+1]),x=s.pop();l.push([x,x+v.length-1]),e.splice(x,2,v)}for(l.reverse(),h=-1;++h<l.length;)u[g+l[h][0]]=g+l[h][1],g+=l[h][1]-l[h][0]-1;return u}const oD={resolve:lD,tokenize:uD},aD={partial:!0,tokenize:cD};function lD(e){return vS(e),e}function uD(e,t){let n;return r;function r(a){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(a)}function i(a){return a===null?s(a):se(a)?e.check(aD,o,s)(a):(e.consume(a),i)}function s(a){return e.exit("chunkContent"),e.exit("content"),t(a)}function o(a){return e.consume(a),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function cD(e,t,n){const r=this;return i;function i(o){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),ye(e,s,"linePrefix")}function s(o){if(o===null||se(o))return n(o);const a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function xS(e,t,n,r,i,s,o,a,l){const u=l||Number.POSITIVE_INFINITY;let c=0;return d;function d(v){return v===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(v),e.exit(s),h):v===null||v===32||v===41||Pc(v)?n(v):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),m(v))}function h(v){return v===62?(e.enter(s),e.consume(v),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(v))}function p(v){return v===62?(e.exit("chunkString"),e.exit(a),h(v)):v===null||v===60||se(v)?n(v):(e.consume(v),v===92?g:p)}function g(v){return v===60||v===62||v===92?(e.consume(v),p):p(v)}function m(v){return!c&&(v===null||v===41||Te(v))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(v)):c<u&&v===40?(e.consume(v),c++,m):v===41?(e.consume(v),c--,m):v===null||v===32||v===40||Pc(v)?n(v):(e.consume(v),v===92?y:m)}function y(v){return v===40||v===41||v===92?(e.consume(v),m):m(v)}}function yS(e,t,n,r,i,s){const o=this;let a=0,l;return u;function u(p){return e.enter(r),e.enter(i),e.consume(p),e.exit(i),e.enter(s),c}function c(p){return a>999||p===null||p===91||p===93&&!l||p===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(s),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):se(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||se(p)||a++>999?(e.exit("chunkString"),c(p)):(e.consume(p),l||(l=!fe(p)),p===92?h:d)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,d):d(p)}}function bS(e,t,n,r,i,s){let o;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,l):n(h)}function l(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),u(h))}function u(h){return h===o?(e.exit(s),l(o)):h===null?n(h):se(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),ye(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(h))}function c(h){return h===o||h===null||se(h)?(e.exit("chunkString"),u(h)):(e.consume(h),h===92?d:c)}function d(h){return h===o||h===92?(e.consume(h),c):c(h)}}function ya(e,t){let n;return r;function r(i){return se(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):fe(i)?ye(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const dD={name:"definition",tokenize:fD},hD={partial:!0,tokenize:pD};function fD(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return yS.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=Dn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):n(p)}function l(p){return Te(p)?ya(e,u)(p):u(p)}function u(p){return xS(e,c,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function c(p){return e.attempt(hD,d,d)(p)}function d(p){return fe(p)?ye(e,h,"whitespace")(p):h(p)}function h(p){return p===null||se(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function pD(e,t,n){return r;function r(a){return Te(a)?ya(e,i)(a):n(a)}function i(a){return bS(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return fe(a)?ye(e,o,"whitespace")(a):o(a)}function o(a){return a===null||se(a)?t(a):n(a)}}const gD={name:"hardBreakEscape",tokenize:mD};function mD(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return se(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const vD={name:"headingAtx",resolve:xD,tokenize:yD};function xD(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},an(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function yD(e,t,n){let r=0;return i;function i(c){return e.enter("atxHeading"),s(c)}function s(c){return e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&r++<6?(e.consume(c),o):c===null||Te(c)?(e.exit("atxHeadingSequence"),a(c)):n(c)}function a(c){return c===35?(e.enter("atxHeadingSequence"),l(c)):c===null||se(c)?(e.exit("atxHeading"),t(c)):fe(c)?ye(e,a,"whitespace")(c):(e.enter("atxHeadingText"),u(c))}function l(c){return c===35?(e.consume(c),l):(e.exit("atxHeadingSequence"),a(c))}function u(c){return c===null||c===35||Te(c)?(e.exit("atxHeadingText"),a(c)):(e.consume(c),u)}}const bD=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],e0=["pre","script","style","textarea"],_D={concrete:!0,name:"htmlFlow",resolveTo:SD,tokenize:CD},wD={partial:!0,tokenize:PD},kD={partial:!0,tokenize:ED};function SD(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function CD(e,t,n){const r=this;let i,s,o,a,l;return u;function u(j){return c(j)}function c(j){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(j),d}function d(j){return j===33?(e.consume(j),h):j===47?(e.consume(j),s=!0,m):j===63?(e.consume(j),i=3,r.interrupt?t:_):It(j)?(e.consume(j),o=String.fromCharCode(j),y):n(j)}function h(j){return j===45?(e.consume(j),i=2,p):j===91?(e.consume(j),i=5,a=0,g):It(j)?(e.consume(j),i=4,r.interrupt?t:_):n(j)}function p(j){return j===45?(e.consume(j),r.interrupt?t:_):n(j)}function g(j){const te="CDATA[";return j===te.charCodeAt(a++)?(e.consume(j),a===te.length?r.interrupt?t:R:g):n(j)}function m(j){return It(j)?(e.consume(j),o=String.fromCharCode(j),y):n(j)}function y(j){if(j===null||j===47||j===62||Te(j)){const te=j===47,le=o.toLowerCase();return!te&&!s&&e0.includes(le)?(i=1,r.interrupt?t(j):R(j)):bD.includes(o.toLowerCase())?(i=6,te?(e.consume(j),v):r.interrupt?t(j):R(j)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(j):s?x(j):b(j))}return j===45||St(j)?(e.consume(j),o+=String.fromCharCode(j),y):n(j)}function v(j){return j===62?(e.consume(j),r.interrupt?t:R):n(j)}function x(j){return fe(j)?(e.consume(j),x):C(j)}function b(j){return j===47?(e.consume(j),C):j===58||j===95||It(j)?(e.consume(j),S):fe(j)?(e.consume(j),b):C(j)}function S(j){return j===45||j===46||j===58||j===95||St(j)?(e.consume(j),S):k(j)}function k(j){return j===61?(e.consume(j),w):fe(j)?(e.consume(j),k):b(j)}function w(j){return j===null||j===60||j===61||j===62||j===96?n(j):j===34||j===39?(e.consume(j),l=j,E):fe(j)?(e.consume(j),w):P(j)}function E(j){return j===l?(e.consume(j),l=null,T):j===null||se(j)?n(j):(e.consume(j),E)}function P(j){return j===null||j===34||j===39||j===47||j===60||j===61||j===62||j===96||Te(j)?k(j):(e.consume(j),P)}function T(j){return j===47||j===62||fe(j)?b(j):n(j)}function C(j){return j===62?(e.consume(j),M):n(j)}function M(j){return j===null||se(j)?R(j):fe(j)?(e.consume(j),M):n(j)}function R(j){return j===45&&i===2?(e.consume(j),J):j===60&&i===1?(e.consume(j),Q):j===62&&i===4?(e.consume(j),U):j===63&&i===3?(e.consume(j),_):j===93&&i===5?(e.consume(j),F):se(j)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(wD,W,L)(j)):j===null||se(j)?(e.exit("htmlFlowData"),L(j)):(e.consume(j),R)}function L(j){return e.check(kD,V,W)(j)}function V(j){return e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),O}function O(j){return j===null||se(j)?L(j):(e.enter("htmlFlowData"),R(j))}function J(j){return j===45?(e.consume(j),_):R(j)}function Q(j){return j===47?(e.consume(j),o="",D):R(j)}function D(j){if(j===62){const te=o.toLowerCase();return e0.includes(te)?(e.consume(j),U):R(j)}return It(j)&&o.length<8?(e.consume(j),o+=String.fromCharCode(j),D):R(j)}function F(j){return j===93?(e.consume(j),_):R(j)}function _(j){return j===62?(e.consume(j),U):j===45&&i===2?(e.consume(j),_):R(j)}function U(j){return j===null||se(j)?(e.exit("htmlFlowData"),W(j)):(e.consume(j),U)}function W(j){return e.exit("htmlFlow"),t(j)}}function ED(e,t,n){const r=this;return i;function i(o){return se(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function PD(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(pl,t,n)}}const ND={name:"htmlText",tokenize:jD};function jD(e,t,n){const r=this;let i,s,o;return a;function a(_){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(_),l}function l(_){return _===33?(e.consume(_),u):_===47?(e.consume(_),k):_===63?(e.consume(_),b):It(_)?(e.consume(_),P):n(_)}function u(_){return _===45?(e.consume(_),c):_===91?(e.consume(_),s=0,g):It(_)?(e.consume(_),x):n(_)}function c(_){return _===45?(e.consume(_),p):n(_)}function d(_){return _===null?n(_):_===45?(e.consume(_),h):se(_)?(o=d,Q(_)):(e.consume(_),d)}function h(_){return _===45?(e.consume(_),p):d(_)}function p(_){return _===62?J(_):_===45?h(_):d(_)}function g(_){const U="CDATA[";return _===U.charCodeAt(s++)?(e.consume(_),s===U.length?m:g):n(_)}function m(_){return _===null?n(_):_===93?(e.consume(_),y):se(_)?(o=m,Q(_)):(e.consume(_),m)}function y(_){return _===93?(e.consume(_),v):m(_)}function v(_){return _===62?J(_):_===93?(e.consume(_),v):m(_)}function x(_){return _===null||_===62?J(_):se(_)?(o=x,Q(_)):(e.consume(_),x)}function b(_){return _===null?n(_):_===63?(e.consume(_),S):se(_)?(o=b,Q(_)):(e.consume(_),b)}function S(_){return _===62?J(_):b(_)}function k(_){return It(_)?(e.consume(_),w):n(_)}function w(_){return _===45||St(_)?(e.consume(_),w):E(_)}function E(_){return se(_)?(o=E,Q(_)):fe(_)?(e.consume(_),E):J(_)}function P(_){return _===45||St(_)?(e.consume(_),P):_===47||_===62||Te(_)?T(_):n(_)}function T(_){return _===47?(e.consume(_),J):_===58||_===95||It(_)?(e.consume(_),C):se(_)?(o=T,Q(_)):fe(_)?(e.consume(_),T):J(_)}function C(_){return _===45||_===46||_===58||_===95||St(_)?(e.consume(_),C):M(_)}function M(_){return _===61?(e.consume(_),R):se(_)?(o=M,Q(_)):fe(_)?(e.consume(_),M):T(_)}function R(_){return _===null||_===60||_===61||_===62||_===96?n(_):_===34||_===39?(e.consume(_),i=_,L):se(_)?(o=R,Q(_)):fe(_)?(e.consume(_),R):(e.consume(_),V)}function L(_){return _===i?(e.consume(_),i=void 0,O):_===null?n(_):se(_)?(o=L,Q(_)):(e.consume(_),L)}function V(_){return _===null||_===34||_===39||_===60||_===61||_===96?n(_):_===47||_===62||Te(_)?T(_):(e.consume(_),V)}function O(_){return _===47||_===62||Te(_)?T(_):n(_)}function J(_){return _===62?(e.consume(_),e.exit("htmlTextData"),e.exit("htmlText"),t):n(_)}function Q(_){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(_),e.exit("lineEnding"),D}function D(_){return fe(_)?ye(e,F,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(_):F(_)}function F(_){return e.enter("htmlTextData"),o(_)}}const wm={name:"labelEnd",resolveAll:AD,resolveTo:DD,tokenize:ID},TD={tokenize:OD},MD={tokenize:LD},RD={tokenize:FD};function AD(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const i=r.type==="labelImage"?4:2;r.type="data",t+=i}}return e.length!==n.length&&an(e,0,e.length,n),e}function DD(e,t){let n=e.length,r=0,i,s,o,a;for(;n--;)if(i=e[n][1],s){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(o){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(s=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(o=n);const l={type:e[s][1].type==="labelLink"?"link":"image",start:{...e[s][1].start},end:{...e[e.length-1][1].end}},u={type:"label",start:{...e[s][1].start},end:{...e[o][1].end}},c={type:"labelText",start:{...e[s+r+2][1].end},end:{...e[o-2][1].start}};return a=[["enter",l,t],["enter",u,t]],a=mn(a,e.slice(s+1,s+r+3)),a=mn(a,[["enter",c,t]]),a=mn(a,cd(t.parser.constructs.insideSpan.null,e.slice(s+r+4,o-3),t)),a=mn(a,[["exit",c,t],e[o-2],e[o-1],["exit",u,t]]),a=mn(a,e.slice(o+1)),a=mn(a,[["exit",l,t]]),an(e,s,e.length,a),e}function ID(e,t,n){const r=this;let i=r.events.length,s,o;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){s=r.events[i][1];break}return a;function a(h){return s?s._inactive?d(h):(o=r.parser.defined.includes(Dn(r.sliceSerialize({start:s.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelEnd"),l):n(h)}function l(h){return h===40?e.attempt(TD,c,o?c:d)(h):h===91?e.attempt(MD,c,o?u:d)(h):o?c(h):d(h)}function u(h){return e.attempt(RD,c,d)(h)}function c(h){return t(h)}function d(h){return s._balanced=!0,n(h)}}function OD(e,t,n){return r;function r(d){return e.enter("resource"),e.enter("resourceMarker"),e.consume(d),e.exit("resourceMarker"),i}function i(d){return Te(d)?ya(e,s)(d):s(d)}function s(d){return d===41?c(d):xS(e,o,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(d)}function o(d){return Te(d)?ya(e,l)(d):c(d)}function a(d){return n(d)}function l(d){return d===34||d===39||d===40?bS(e,u,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(d):c(d)}function u(d){return Te(d)?ya(e,c)(d):c(d)}function c(d){return d===41?(e.enter("resourceMarker"),e.consume(d),e.exit("resourceMarker"),e.exit("resource"),t):n(d)}}function LD(e,t,n){const r=this;return i;function i(a){return yS.call(r,e,s,o,"reference","referenceMarker","referenceString")(a)}function s(a){return r.parser.defined.includes(Dn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(a):n(a)}function o(a){return n(a)}}function FD(e,t,n){return r;function r(s){return e.enter("reference"),e.enter("referenceMarker"),e.consume(s),e.exit("referenceMarker"),i}function i(s){return s===93?(e.enter("referenceMarker"),e.consume(s),e.exit("referenceMarker"),e.exit("reference"),t):n(s)}}const $D={name:"labelStartImage",resolveAll:wm.resolveAll,tokenize:zD};function zD(e,t,n){const r=this;return i;function i(a){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(a),e.exit("labelImageMarker"),s}function s(a){return a===91?(e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelImage"),o):n(a)}function o(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const BD={name:"labelStartLink",resolveAll:wm.resolveAll,tokenize:HD};function HD(e,t,n){const r=this;return i;function i(o){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelLink"),s}function s(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(o):t(o)}}const bh={name:"lineEnding",tokenize:WD};function WD(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),ye(e,t,"linePrefix")}}const Pu={name:"thematicBreak",tokenize:VD};function VD(e,t,n){let r=0,i;return s;function s(u){return e.enter("thematicBreak"),o(u)}function o(u){return i=u,a(u)}function a(u){return u===i?(e.enter("thematicBreakSequence"),l(u)):r>=3&&(u===null||se(u))?(e.exit("thematicBreak"),t(u)):n(u)}function l(u){return u===i?(e.consume(u),r++,l):(e.exit("thematicBreakSequence"),fe(u)?ye(e,a,"whitespace")(u):a(u))}}const zt={continuation:{tokenize:KD},exit:XD,name:"list",tokenize:GD},UD={partial:!0,tokenize:JD},qD={partial:!0,tokenize:YD};function GD(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Mp(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(Pu,n,u)(p):u(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return n(p)}function l(p){return Mp(p)&&++o<10?(e.consume(p),l):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),u(p)):n(p)}function u(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(pl,r.interrupt?n:c,e.attempt(UD,h,d))}function c(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function d(p){return fe(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function KD(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(pl,i,s);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ye(e,t,"listItemIndent",r.containerState.size+1)(a)}function s(a){return r.containerState.furtherBlankLines||!fe(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(qD,t,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,ye(e,e.attempt(zt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function YD(e,t,n){const r=this;return ye(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function XD(e){e.exit(this.containerState.type)}function JD(e,t,n){const r=this;return ye(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!fe(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const t0={name:"setextUnderline",resolveTo:QD,tokenize:ZD};function QD(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function ZD(e,t,n){const r=this;let i;return s;function s(u){let c=r.events.length,d;for(;c--;)if(r.events[c][1].type!=="lineEnding"&&r.events[c][1].type!=="linePrefix"&&r.events[c][1].type!=="content"){d=r.events[c][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||d)?(e.enter("setextHeadingLine"),i=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),a(u)}function a(u){return u===i?(e.consume(u),a):(e.exit("setextHeadingLineSequence"),fe(u)?ye(e,l,"lineSuffix")(u):l(u))}function l(u){return u===null||se(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const eI={tokenize:tI};function tI(e){const t=this,n=e.attempt(pl,r,e.attempt(this.parser.constructs.flowInitial,i,ye(e,e.attempt(this.parser.constructs.flow,i,e.attempt(oD,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const nI={resolveAll:wS()},rI=_S("string"),iI=_S("text");function _S(e){return{resolveAll:wS(e==="text"?sI:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,a);return o;function o(c){return u(c)?s(c):a(c)}function a(c){if(c===null){n.consume(c);return}return n.enter("data"),n.consume(c),l}function l(c){return u(c)?(n.exit("data"),s(c)):(n.consume(c),l)}function u(c){if(c===null)return!0;const d=i[c];let h=-1;if(d)for(;++h<d.length;){const p=d[h];if(!p.previous||p.previous.call(r,r.previous))return!0}return!1}}}function wS(e){return t;function t(n,r){let i=-1,s;for(;++i<=n.length;)s===void 0?n[i]&&n[i][1].type==="data"&&(s=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==s+2&&(n[s][1].end=n[i-1][1].end,n.splice(s+2,i-s-2),i=s+2),s=void 0);return e?e(n,r):n}}function sI(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],i=t.sliceStream(r);let s=i.length,o=-1,a=0,l;for(;s--;){const u=i[s];if(typeof u=="string"){for(o=u.length;u.charCodeAt(o-1)===32;)a++,o--;if(o)break;o=-1}else if(u===-2)l=!0,a++;else if(u!==-1){s++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(a=0),a){const u={type:n===e.length||l||a<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:s?o:r.start._bufferIndex+o,_index:r.start._index+s,line:r.end.line,column:r.end.column-a,offset:r.end.offset-a},end:{...r.end}};r.end={...u.start},r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(n,0,["enter",u,t],["exit",u,t]),n+=2)}n++}return e}const oI={42:zt,43:zt,45:zt,48:zt,49:zt,50:zt,51:zt,52:zt,53:zt,54:zt,55:zt,56:zt,57:zt,62:pS},aI={91:dD},lI={[-2]:yh,[-1]:yh,32:yh},uI={35:vD,42:Pu,45:[t0,Pu],60:_D,61:t0,95:Pu,96:Zy,126:Zy},cI={38:mS,92:gS},dI={[-5]:bh,[-4]:bh,[-3]:bh,33:$D,38:mS,42:Rp,60:[BA,ND],91:BD,92:[gD,gS],93:wm,95:Rp,96:eD},hI={null:[Rp,nI]},fI={null:[42,95]},pI={null:[]},gI=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:fI,contentInitial:aI,disable:pI,document:oI,flow:uI,flowInitial:lI,insideSpan:hI,string:cI,text:dI},Symbol.toStringTag,{value:"Module"}));function mI(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const i={},s=[];let o=[],a=[];const l={attempt:E(k),check:E(w),consume:x,enter:b,exit:S,interrupt:E(w,{interrupt:!0})},u={code:null,containerState:{},defineSkip:m,events:[],now:g,parser:e,previous:null,sliceSerialize:h,sliceStream:p,write:d};let c=t.tokenize.call(u,l);return t.resolveAll&&s.push(t),u;function d(M){return o=mn(o,M),y(),o[o.length-1]!==null?[]:(P(t,0),u.events=cd(s,u.events,u),u.events)}function h(M,R){return xI(p(M),R)}function p(M){return vI(o,M)}function g(){const{_bufferIndex:M,_index:R,line:L,column:V,offset:O}=r;return{_bufferIndex:M,_index:R,line:L,column:V,offset:O}}function m(M){i[M.line]=M.column,C()}function y(){let M;for(;r._index<o.length;){const R=o[r._index];if(typeof R=="string")for(M=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===M&&r._bufferIndex<R.length;)v(R.charCodeAt(r._bufferIndex));else v(R)}}function v(M){c=c(M)}function x(M){se(M)?(r.line++,r.column=1,r.offset+=M===-3?2:1,C()):M!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),u.previous=M}function b(M,R){const L=R||{};return L.type=M,L.start=g(),u.events.push(["enter",L,u]),a.push(L),L}function S(M){const R=a.pop();return R.end=g(),u.events.push(["exit",R,u]),R}function k(M,R){P(M,R.from)}function w(M,R){R.restore()}function E(M,R){return L;function L(V,O,J){let Q,D,F,_;return Array.isArray(V)?W(V):"tokenize"in V?W([V]):U(V);function U(ie){return H;function H(z){const re=z!==null&&ie[z],de=z!==null&&ie.null,Se=[...Array.isArray(re)?re:re?[re]:[],...Array.isArray(de)?de:de?[de]:[]];return W(Se)(z)}}function W(ie){return Q=ie,D=0,ie.length===0?J:j(ie[D])}function j(ie){return H;function H(z){return _=T(),F=ie,ie.partial||(u.currentConstruct=ie),ie.name&&u.parser.constructs.disable.null.includes(ie.name)?le():ie.tokenize.call(R?Object.assign(Object.create(u),R):u,l,te,le)(z)}}function te(ie){return M(F,_),O}function le(ie){return _.restore(),++D<Q.length?j(Q[D]):J}}}function P(M,R){M.resolveAll&&!s.includes(M)&&s.push(M),M.resolve&&an(u.events,R,u.events.length-R,M.resolve(u.events.slice(R),u)),M.resolveTo&&(u.events=M.resolveTo(u.events,u))}function T(){const M=g(),R=u.previous,L=u.currentConstruct,V=u.events.length,O=Array.from(a);return{from:V,restore:J};function J(){r=M,u.previous=R,u.currentConstruct=L,u.events.length=V,a=O,C()}}function C(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function vI(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,s=t.end._bufferIndex;let o;if(n===i)o=[e[n].slice(r,s)];else{if(o=e.slice(n,i),r>-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function xI(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const s=e[n];let o;if(typeof s=="string")o=s;else switch(s){case-5:{o="\r";break}case-4:{o=`
|
package/dist/frontend/index.html
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
} catch (_) { /* SSR / blocked storage — ignore */ }
|
|
28
28
|
})();
|
|
29
29
|
</script>
|
|
30
|
-
<script type="module" crossorigin src="/assets/index-
|
|
30
|
+
<script type="module" crossorigin src="/assets/index-CERtbP53.js"></script>
|
|
31
31
|
<link rel="stylesheet" crossorigin href="/assets/index-Bk8kmOwH.css">
|
|
32
32
|
</head>
|
|
33
33
|
<body class="bg-background text-on-surface">
|