fourth-spark 0.6.7 → 0.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fourth-spark",
3
- "version": "0.6.7",
3
+ "version": "0.6.8",
4
4
  "description": "AI Agent Platform — multi-repo agent management based on OpenCode",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -397,7 +397,7 @@ Please change the parent <Route path="${v}"> to <Route path="${v==="/"?"*":`${v}
397
397
  *
398
398
  * This source code is licensed under the ISC license.
399
399
  * See the LICENSE file in the root directory of this source tree.
400
- */const XA=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],LE=Oe("zap",XA);function jE(e){var t,a,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(t=0;t<l;t++)e[t]&&(a=jE(e[t]))&&(s&&(s+=" "),s+=a)}else for(a in e)e[a]&&(s&&(s+=" "),s+=a);return s}function me(){for(var e,t,a=0,s="",l=arguments.length;a<l;a++)(e=arguments[a])&&(t=jE(e))&&(s&&(s+=" "),s+=t);return s}const Kb=e=>{let t;const a=new Set,s=(m,x)=>{const b=typeof m=="function"?m(t):m;if(!Object.is(b,t)){const y=t;t=x??(typeof b!="object"||b===null)?b:Object.assign({},t,b),a.forEach(T=>T(t,y))}},l=()=>t,f={setState:s,getState:l,getInitialState:()=>h,subscribe:m=>(a.add(m),()=>a.delete(m))},h=t=e(s,l,f);return f},ZA=(e=>e?Kb(e):Kb),WA=e=>e;function JA(e,t=WA){const a=Gu.useSyncExternalStore(e.subscribe,Gu.useCallback(()=>t(e.getState()),[e,t]),Gu.useCallback(()=>t(e.getInitialState()),[e,t]));return Gu.useDebugValue(a),a}const Vb=e=>{const t=ZA(e),a=s=>JA(t,s);return Object.assign(a,t),a},zs=(e=>e?Vb(e):Vb),om="fs-theme";function BE(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Qb(e){return e==="system"?BE():e}function Xb(e){e==="system"?document.documentElement.removeAttribute("data-theme"):document.documentElement.setAttribute("data-theme",e)}const Hm=zs((e,t)=>({preference:localStorage.getItem(om)??"system",resolved:Qb(localStorage.getItem(om)??"system"),setPreference(a){const s=Qb(a);localStorage.setItem(om,a),Xb(a),e({preference:a,resolved:s})},cycle(){const a=["system","light","dark"],s=a[(a.indexOf(t().preference)+1)%a.length];t().setPreference(s)},init(){Xb(t().preference);const a=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>{const{preference:l}=t();if(l==="system"){const o=BE();e({resolved:o})}};return a.addEventListener("change",s),()=>a.removeEventListener("change",s)}})),gc="fourth-spark-server-url";function PE(){if(typeof window>"u")return!1;const t=window.Capacitor;return typeof(t==null?void 0:t.isNativePlatform)=="function"&&t.isNativePlatform()}function UE(){return localStorage.getItem(gc)??""}function e3(e){const t=e.replace(/\/+$/,"");t?localStorage.setItem(gc,t):localStorage.removeItem(gc)}function Fm(){return localStorage.getItem(gc)??""}class Hs extends Error{constructor(a,s){super(a);rn(this,"status");this.name="ApiError",this.status=s}}async function Ce(e,t){let a;try{a=await fetch(UE()+e,{...t,headers:{Accept:"application/json",...t!=null&&t.body?{"Content-Type":"application/json"}:{},...t==null?void 0:t.headers}})}catch(l){throw new Hs(l instanceof Error?l.message:"Network request failed",0)}if(!a.ok){const l=await a.text().catch(()=>"");throw new Hs(l.trim()||`${a.status} ${a.statusText}`,a.status)}if(a.status===204)return;const s=await a.text();if(s)return JSON.parse(s)}function Mn(e,...t){if(Array.isArray(e))return e;if(e&&typeof e=="object"){const a=e;for(const s of[...t,"data","items"])if(Array.isArray(a[s]))return a[s]}return[]}async function t3(){return Mn(await Ce("/api/repos"),"repos")}async function n3(e,t,a){return Ce("/api/repos",{method:"POST",body:JSON.stringify({name:e,gitUrl:t,localPath:a})})}async function a3(e){return Ce("/api/repos/resolve",{method:"POST",body:JSON.stringify({localPath:e})})}async function r3(e){await Ce(`/api/repos/${encodeURIComponent(e)}`,{method:"DELETE"})}async function s3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/start`,{method:"POST"})}async function i3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/stop`,{method:"POST"})}async function l3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/branches`)}async function o3(e,t){return Ce(`/api/repos/${encodeURIComponent(e)}/checkout`,{method:"POST",body:JSON.stringify({branch:t})})}async function u3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/pull`,{method:"POST"})}function We(e){return`/api/repos/${encodeURIComponent(e)}`}async function c3(e){return Mn(await Ce(`${We(e)}/sessions`),"sessions")}async function d3(e,t,a,s,l,o,d){return Ce(`${We(e)}/sessions`,{method:"POST",body:JSON.stringify({message:t,agent:a,model:s,variant:l,issueId:o,customAgentId:d})})}async function f3(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`)}async function m3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"DELETE"})}async function h3(e,t,a,s,l){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/prompt`,{method:"POST",body:JSON.stringify({content:a,agent:s,model:l})})}async function p3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/abort`,{method:"POST"})}function g3(e){const t=e,a=t.info;if(a&&typeof a.id=="string"){const s=Array.isArray(t.parts)?t.parts:void 0;return{...a,...s?{parts:s}:{}}}return t}async function b3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/messages`),"messages").map(g3)}async function x3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/todos`),"todos")}async function HE(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/status`)}async function Zb(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`)}async function Wb(e){return Ce(`${We(e)}/sessions/all-links`)}async function E3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"POST",body:JSON.stringify({type:a,targetId:s})})}async function y3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"DELETE",body:JSON.stringify({type:a,targetId:s})})}async function FE(){return Mn(await Ce("/api/custom-agents"))}async function zE(e){return Ce("/api/custom-agents",{method:"POST",body:JSON.stringify(e)})}async function qE(e,t){return Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function YE(e){await Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"DELETE"})}async function Jb(e){return Ce(`/api/custom-agents/${encodeURIComponent(e)}/export`)}async function T3(e){return Ce("/api/custom-agents/import",{method:"POST",body:JSON.stringify(e)})}async function _3(e){return Mn(await Ce(`${We(e)}/custom-agents`))}async function N3(e,t){return Ce(`${We(e)}/custom-agents`,{method:"POST",body:JSON.stringify(t)})}async function Th(e){return Mn(await Ce(`${We(e)}/models`))}async function S3(){return Mn(await Ce("/api/prompt-fragments"))}async function v3(e){return Ce("/api/prompt-fragments",{method:"POST",body:JSON.stringify(e)})}async function A3(e,t){return Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function C3(e){await Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"DELETE"})}async function ex(e){return Mn(await Ce(`${We(e)}/tags`))}async function tx(e,t){return Mn(await Ce(`${We(e)}/milestones`))}async function nx(e,t="open"){return Mn(await Ce(`${We(e)}/issues?state=${encodeURIComponent(t)}`),"issues")}async function w3(e,t="all"){return Ce(`${We(e)}/issues/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function k3(e,t,a){return Ce(`${We(e)}/issues`,{method:"POST",body:JSON.stringify({title:t,body:a})})}async function R3(e,t,a){await Ce(`${We(e)}/issues/${t}/children`,{method:"POST",body:JSON.stringify({childNumber:a})})}async function $E(e,t,a){return Ce(`${We(e)}/issues/${t}`,{method:"PATCH",body:JSON.stringify(a)})}async function ax(e,t){return Mn(await Ce(`${We(e)}/issues/${t}/pulls`))}async function O3(e,t,a,s=!1){await Ce(`${We(e)}/issues/${t}/pulls/${a}/merge`,{method:"POST",body:JSON.stringify({closeIssue:s})})}async function rx(e,t="open"){return Mn(await Ce(`${We(e)}/pulls?state=${encodeURIComponent(t)}`))}async function I3(e,t="all"){return Ce(`${We(e)}/pulls/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function M3(e,t){await Ce(`${We(e)}/pulls/${t}/merge`,{method:"POST"})}async function GE(e,t){return Mn(await Ce(`${We(e)}/pulls/${t}/issues`))}async function D3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues`,{method:"POST",body:JSON.stringify({issueNumber:a})})}async function L3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues/${a}`,{method:"DELETE"})}async function j3(e,t){return Ce(`${We(e)}/pulls/${t}/comments`)}async function B3(e,t){return Ce(`${We(e)}/issues/${t}/comments`)}async function sx(e,t,a){return Ce(`${We(e)}/issues/${t}/comments`,{method:"POST",body:JSON.stringify({body:a})})}async function P3(e,t,a){return Ce(`${We(e)}/issues/${t}/polish`,{method:"POST",body:JSON.stringify({draft:a})})}async function ix(e,t){return Ce(`${We(e)}/issues/${t}/draft`)}async function U3(e,t,a){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({title:a})})}async function H3(){return Ce("/api/agents-md")}async function F3(e){await Ce("/api/agents-md",{method:"PUT",body:JSON.stringify({content:e})})}async function z3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`)}async function q3(e,t){await Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`,{method:"PUT",body:JSON.stringify({content:t})})}function Y3(e){return`${UE()}${We(e)}/events`}async function $3(e){return Ce(`${We(e)}/sessions/status`)}async function _h(){return Ce("/api/settings")}async function G3(e,t){await Ce(`/api/settings/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify({value:t})})}async function K3(){return Mn(await Ce("/api/git-hosts"),"gitHosts")}async function V3(e,t,a,s="gitea"){return Ce("/api/git-hosts",{method:"POST",body:JSON.stringify({host:e,name:t,token:a,platform:s})})}async function Q3(e){await Ce(`/api/git-hosts/${encodeURIComponent(e)}`,{method:"DELETE"})}async function X3(){return Ce("/api/usage")}async function Z3(e){return Ce("/api/usage/switch",{method:"POST",body:JSON.stringify({accountId:e})})}async function W3(e,t="ios"){await Ce("/api/push/register",{method:"POST",body:JSON.stringify({token:e,platform:t})})}const ts="fs-active-repo",qe=zs((e,t)=>({repos:[],activeRepoId:localStorage.getItem(ts),loading:!1,loadError:null,loadRepos:async()=>{e({loading:!0,loadError:null});try{const a=await t3(),s=t().activeRepoId,l=s&&a.some(d=>d.id===s);e({repos:a,loading:!1,activeRepoId:l?s:a.length>0?a[0].id:null});const o=t().activeRepoId;o?localStorage.setItem(ts,o):localStorage.removeItem(ts)}catch(a){e({loading:!1,loadError:a instanceof Error?a.message:"Failed to load repos"})}},setActiveRepo:a=>{e({activeRepoId:a}),a?localStorage.setItem(ts,a):localStorage.removeItem(ts)},addRepo:async(a,s,l)=>{try{const o=await n3(a,s,l);return e(d=>({repos:[...d.repos,o],activeRepoId:o.id})),localStorage.setItem(ts,o.id),o}catch(o){return e({loadError:o instanceof Error?o.message:"Failed to add repo"}),null}},removeRepo:async a=>{try{await r3(a)}catch{}e(s=>{const l=s.repos.filter(d=>d.id!==a),o=s.activeRepoId===a?l.length>0?l[0].id:null:s.activeRepoId;return o?localStorage.setItem(ts,o):localStorage.removeItem(ts),{repos:l,activeRepoId:o}})},updateRepoBranch:(a,s)=>{e(l=>({repos:l.repos.map(o=>o.id===a?{...o,branch:s}:o)}))}})),Da=e=>{var t;return((t=e.repos.find(a=>a.id===e.activeRepoId))==null?void 0:t.name)??null},KE=[{segment:"repos",icon:Cv,label:"仓库管理",global:!0},{segment:"run",icon:Bc,label:"运行面板",global:!1},{segment:"issues",icon:fo,label:"Issues",global:!1},{segment:"pulls",icon:mo,label:"PRs",global:!1},{segment:"settings",icon:DA,label:"设置",global:!0}];function VE(e,t,a){return t?`/${e}`:a?`/${encodeURIComponent(a)}/${e}`:`/${e}`}function J3({repoId:e,currentBranch:t}){const a=qe(v=>v.updateRepoBranch),[s,l]=A.useState(!1),[o,d]=A.useState(null),[f,h]=A.useState(!1),[m,x]=A.useState(null),[b,y]=A.useState(null),T=A.useRef(null),N=A.useCallback(()=>{l(!1),y(null)},[]);A.useEffect(()=>{if(!s)return;const v=M=>{T.current&&!T.current.contains(M.target)&&N()};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[s,N]);const S=async()=>{if(s){N();return}l(!0),h(!0),y(null);try{d(await l3(e))}catch{y("加载分支失败")}finally{h(!1)}},C=async v=>{if(!(v===t||m)){x(v),y(null);try{const M=await o3(e,v);a(e,M.branch),N()}catch(M){y(M instanceof Error?M.message:"切换失败")}finally{x(null)}}};return t?c.jsxs("div",{ref:T,className:"relative",children:[c.jsxs("button",{type:"button",onClick:S,className:"flex items-center gap-1 rounded-md bg-elevated px-2 py-1 text-xs text-fg-3 transition-colors hover:bg-blue-500/10 hover:text-blue-600",children:[c.jsx(Dc,{className:"h-3 w-3"}),t,c.jsx(ss,{className:me("h-3 w-3 transition-transform",s&&"rotate-180")})]}),s&&c.jsxs("div",{className:"absolute right-0 top-full z-50 mt-1 w-56 overflow-hidden rounded-lg border border-line bg-surface shadow-lg",children:[f?c.jsx("div",{className:"flex items-center justify-center py-4",children:c.jsx(_r,{className:"h-4 w-4 animate-spin text-fg-4"})}):o?c.jsxs("div",{className:"max-h-64 overflow-y-auto py-1",children:[o.local.map(v=>c.jsxs("button",{type:"button",disabled:m!==null,onClick:()=>C(v),className:me("flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors",v===t?"font-medium text-blue-600":"text-fg-2 hover:bg-elevated"),children:[v===t?c.jsx(Na,{className:"h-3 w-3 shrink-0"}):m===v?c.jsx(_r,{className:"h-3 w-3 shrink-0 animate-spin"}):c.jsx("span",{className:"h-3 w-3 shrink-0"}),c.jsx("span",{className:"truncate",children:v})]},v)),o.remote.length>0&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"mx-3 my-1 border-t border-line"}),c.jsx("div",{className:"px-3 py-1 text-[10px] font-medium uppercase tracking-wider text-fg-4",children:"Remote"}),o.remote.map(v=>c.jsxs("button",{type:"button",disabled:m!==null,onClick:()=>C(v),className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-fg-2 transition-colors hover:bg-elevated",children:[m===v?c.jsx(_r,{className:"h-3 w-3 shrink-0 animate-spin"}):c.jsx("span",{className:"h-3 w-3 shrink-0"}),c.jsx("span",{className:"truncate",children:v})]},`remote-${v}`))]})]}):null,b&&c.jsx("div",{className:"border-t border-line px-3 py-2 text-xs text-red-500",children:b})]})]}):null}function eC(){const[e,t]=A.useState(null);return A.useEffect(()=>{const a=()=>fetch("/api/health").then(o=>o.json()).then(o=>{o.latestVersion&&o.latestVersion!=="0.6.7"&&t(o.latestVersion)}).catch(()=>{});a();const s=setInterval(a,30*6e4),l=()=>a();return window.addEventListener("focus",l),()=>{clearInterval(s),window.removeEventListener("focus",l)}},[]),e}function tC(){const e=Sa(),t=oa(),a=qe(b=>b.repos),s=qe(b=>b.activeRepoId),l=qe(b=>b.setActiveRepo),o=Hm(b=>b.preference),d=Hm(b=>b.cycle),f=o==="light"?PA:o==="dark"?TA:EA,h=a.find(b=>b.id===s),m=eC(),x=b=>{var N;if(!b)return;l(b);const y=a.find(S=>S.id===b);if(!y)return;const T=((N=t.pathname.match(/\/(run|issues|pulls)/))==null?void 0:N[1])??"run";e(`/${encodeURIComponent(y.name)}/${T}`)};return c.jsx("header",{className:"shrink-0 border-b border-line bg-surface pt-[var(--safe-top)]",children:c.jsxs("div",{className:"flex h-12 items-center justify-between px-4",children:[c.jsxs("div",{className:"flex items-center gap-2.5",children:[c.jsx(LE,{className:"h-5 w-5 text-blue-500"}),c.jsx("span",{className:"text-sm font-bold tracking-tight text-fg",children:"Fourth Spark"}),c.jsxs("span",{className:"rounded bg-elevated px-1.5 py-0.5 text-[10px] font-medium tabular-nums text-fg-4",children:["v","0.6.7"]}),m&&c.jsxs("span",{className:"text-[10px] text-amber-500",children:["→ v",m," 可用,运行 ",c.jsx("code",{className:"rounded bg-amber-500/10 px-1 font-mono",children:"fourth-spark upgrade"})," 更新"]})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[a.length>0&&c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("select",{value:s??"",onChange:b=>x(b.target.value),className:"rounded-md border border-line bg-base px-2.5 py-1 text-xs text-fg-2 focus:border-blue-500 focus:outline-none",children:a.map(b=>c.jsx("option",{value:b.id,children:b.name},b.id))}),h&&s&&c.jsx(J3,{repoId:s,currentBranch:h.branch})]}),c.jsx("a",{href:"https://github.com/kinminghao/fourth-spark",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",className:"flex h-8 w-8 items-center justify-center rounded-md text-fg-4 transition-colors hover:bg-elevated hover:text-fg-2",children:c.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"currentColor",children:c.jsx("path",{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"})})}),c.jsx("button",{type:"button",onClick:d,"aria-label":`主题: ${o}`,className:"flex h-8 w-8 items-center justify-center rounded-md text-fg-4 transition-colors hover:bg-elevated hover:text-fg-2",children:c.jsx(f,{className:"h-4 w-4"})})]})]})})}function nC(){const e=qe(Da);return c.jsx("nav",{className:"hidden w-48 shrink-0 flex-col border-r border-line bg-surface py-2 md:flex",children:KE.map(t=>c.jsxs(bh,{to:VE(t.segment,t.global,e),className:({isActive:a})=>me("mx-2 flex items-center gap-2.5 rounded-md px-3 py-2 text-sm transition-colors",a?"bg-blue-500/10 font-medium text-blue-600":"text-fg-3 hover:bg-elevated hover:text-fg"),children:[c.jsx(t.icon,{className:"h-4 w-4 shrink-0"}),t.label]},t.segment))})}function aC(){const e=qe(Da);return c.jsx("nav",{className:"fixed bottom-0 left-0 right-0 z-30 border-t border-line bg-surface pb-[var(--safe-bottom)] md:hidden",children:c.jsx("div",{className:"flex h-14 items-center justify-around",children:KE.map(t=>c.jsx(bh,{to:VE(t.segment,t.global,e),"aria-label":t.label,className:({isActive:a})=>me("flex h-10 w-10 items-center justify-center rounded-md transition-colors",a?"bg-blue-500/10 text-blue-600":"text-fg-3 hover:bg-elevated hover:text-fg"),children:c.jsx(t.icon,{className:"h-5 w-5 shrink-0"})},t.segment))})})}function rC(){return c.jsxs("div",{className:"flex h-full flex-col overflow-hidden bg-base text-fg",children:[c.jsx(tC,{}),c.jsxs("div",{className:"flex min-h-0 flex-1",children:[c.jsx(nC,{}),c.jsx("main",{className:"flex min-w-0 flex-1 flex-col overflow-hidden pb-[calc(3.5rem_+_var(--safe-bottom))] md:pb-0",children:c.jsx(AS,{})})]}),c.jsx(aC,{})]})}function sC({onClose:e}){const[t,a]=A.useState(""),[s,l]=A.useState(""),[o,d]=A.useState(""),[f,h]=A.useState(!1),[m,x]=A.useState(""),b=qe(C=>C.addRepo),y=s.trim()!==""&&o.trim()!==""&&t.trim()!==""&&!f,T=async C=>{const v=C.trim();if(v){h(!0),x("");try{const M=await a3(v);M.name&&!s.trim()&&l(M.name),M.gitUrl&&!o.trim()&&d(M.gitUrl)}catch(M){const k=M instanceof Error?M.message:"无法解析路径";try{const q=JSON.parse(k);x(q.error??k)}catch{x(k)}}h(!1)}},N=A.useRef(T);N.current=T,A.useEffect(()=>{const C=t.trim();if(!C)return;const v=setTimeout(()=>{N.current(C)},500);return()=>clearTimeout(v)},[t]);const S=async()=>{if(!y)return;x(""),await b(s.trim(),o.trim(),t.trim())&&e()};return c.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:e,children:c.jsxs("div",{className:"w-full max-w-md rounded-xl border border-line bg-surface p-6 shadow-2xl",onClick:C=>C.stopPropagation(),children:[c.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[c.jsx("h2",{className:"text-base font-semibold text-fg",children:"添加仓库"}),c.jsx("button",{type:"button",onClick:e,className:"rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:c.jsx(Tt,{className:"h-4 w-4"})})]}),c.jsxs("div",{className:"flex flex-col gap-4",children:[c.jsxs("div",{className:"flex flex-col gap-1.5",children:[c.jsx("label",{htmlFor:"m-path",className:"text-xs font-medium text-fg-3",children:"本地路径"}),c.jsx("input",{id:"m-path",value:t,onChange:C=>a(C.target.value),onBlur:C=>void T(C.target.value),placeholder:"/Users/you/code/repo",autoFocus:!0,className:"w-full rounded-lg border border-line bg-base px-3 py-2 font-mono text-sm text-fg placeholder:text-fg-5 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20"}),c.jsx("span",{className:"text-[11px] text-fg-5",children:f?"正在读取 Git 信息…":"输入路径后自动读取仓库信息"})]}),c.jsxs("div",{className:"flex flex-col gap-1.5",children:[c.jsx("label",{htmlFor:"m-name",className:"text-xs font-medium text-fg-3",children:"名称"}),c.jsx("input",{id:"m-name",value:s,onChange:C=>l(C.target.value),placeholder:"my-project",className:"w-full rounded-lg border border-line bg-base px-3 py-2 text-sm text-fg placeholder:text-fg-5 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20"})]}),c.jsxs("div",{className:"flex flex-col gap-1.5",children:[c.jsx("label",{htmlFor:"m-git",className:"text-xs font-medium text-fg-3",children:"Git 远程地址"}),c.jsx("input",{id:"m-git",value:o,onChange:C=>d(C.target.value),placeholder:"https://github.com/org/repo.git",className:"w-full rounded-lg border border-line bg-base px-3 py-2 font-mono text-xs text-fg placeholder:text-fg-5 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20"})]}),m&&c.jsx("p",{className:"rounded-md bg-red-500/10 px-3 py-2 text-xs text-red-500",children:m}),c.jsxs("div",{className:"mt-1 flex items-center justify-end gap-2",children:[c.jsx("button",{type:"button",onClick:e,className:"rounded-lg border border-line px-4 py-2 text-sm text-fg-3 transition-colors hover:bg-elevated hover:text-fg",children:"取消"}),c.jsx("button",{type:"button",onClick:S,disabled:!y,className:"rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-500 disabled:cursor-not-allowed disabled:bg-fg-6 disabled:text-fg-4",children:"添加仓库"})]})]})]})})}function iC({repoId:e,repoName:t,onClose:a}){const[s,l]=A.useState(""),[o,d]=A.useState(""),[f,h]=A.useState(!0),[m,x]=A.useState(!1),[b,y]=A.useState(null);A.useEffect(()=>{z3(e).then(S=>{l(S.content),d(S.content),h(!1)}).catch(S=>{y(S instanceof Error?S.message:String(S)),h(!1)})},[e]);const T=async()=>{x(!0),y(null);try{await q3(e,s),d(s)}catch(S){y(S instanceof Error?S.message:String(S))}x(!1)},N=s!==o;return c.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:a,children:c.jsxs("div",{className:"flex w-full max-w-2xl flex-col rounded-xl border border-line bg-surface p-6 shadow-2xl",onClick:S=>S.stopPropagation(),children:[c.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsxs("h2",{className:"text-base font-semibold text-fg",children:[t," — AGENTS.md"]}),c.jsx("p",{className:"mt-0.5 text-xs text-fg-4",children:"仅对此仓库生效,修改后 opencode 热加载即时生效。"})]}),c.jsx("button",{type:"button",onClick:a,className:"shrink-0 rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:c.jsx(Tt,{className:"h-4 w-4"})})]}),b&&c.jsxs("div",{className:"mb-3 flex items-start gap-2 rounded-lg bg-red-500/10 px-3 py-2 text-xs text-red-400",children:[c.jsx(ia,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),c.jsx("span",{className:"min-w-0 break-words",children:b})]}),f?c.jsxs("div",{className:"flex flex-col items-center gap-2.5 py-16 text-fg-5",children:[c.jsx(_r,{className:"h-5 w-5 fs-spin"}),c.jsx("p",{className:"text-xs",children:"加载中…"})]}):c.jsx("textarea",{value:s,onChange:S=>l(S.target.value),spellCheck:!1,className:"h-96 w-full resize-y rounded-lg border border-line bg-base px-4 py-3 font-mono text-sm leading-relaxed text-fg placeholder:text-fg-6 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20",placeholder:`# AGENTS.md
400
+ */const XA=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],LE=Oe("zap",XA);function jE(e){var t,a,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(t=0;t<l;t++)e[t]&&(a=jE(e[t]))&&(s&&(s+=" "),s+=a)}else for(a in e)e[a]&&(s&&(s+=" "),s+=a);return s}function me(){for(var e,t,a=0,s="",l=arguments.length;a<l;a++)(e=arguments[a])&&(t=jE(e))&&(s&&(s+=" "),s+=t);return s}const Kb=e=>{let t;const a=new Set,s=(m,x)=>{const b=typeof m=="function"?m(t):m;if(!Object.is(b,t)){const y=t;t=x??(typeof b!="object"||b===null)?b:Object.assign({},t,b),a.forEach(T=>T(t,y))}},l=()=>t,f={setState:s,getState:l,getInitialState:()=>h,subscribe:m=>(a.add(m),()=>a.delete(m))},h=t=e(s,l,f);return f},ZA=(e=>e?Kb(e):Kb),WA=e=>e;function JA(e,t=WA){const a=Gu.useSyncExternalStore(e.subscribe,Gu.useCallback(()=>t(e.getState()),[e,t]),Gu.useCallback(()=>t(e.getInitialState()),[e,t]));return Gu.useDebugValue(a),a}const Vb=e=>{const t=ZA(e),a=s=>JA(t,s);return Object.assign(a,t),a},zs=(e=>e?Vb(e):Vb),om="fs-theme";function BE(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Qb(e){return e==="system"?BE():e}function Xb(e){e==="system"?document.documentElement.removeAttribute("data-theme"):document.documentElement.setAttribute("data-theme",e)}const Hm=zs((e,t)=>({preference:localStorage.getItem(om)??"system",resolved:Qb(localStorage.getItem(om)??"system"),setPreference(a){const s=Qb(a);localStorage.setItem(om,a),Xb(a),e({preference:a,resolved:s})},cycle(){const a=["system","light","dark"],s=a[(a.indexOf(t().preference)+1)%a.length];t().setPreference(s)},init(){Xb(t().preference);const a=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>{const{preference:l}=t();if(l==="system"){const o=BE();e({resolved:o})}};return a.addEventListener("change",s),()=>a.removeEventListener("change",s)}})),gc="fourth-spark-server-url";function PE(){if(typeof window>"u")return!1;const t=window.Capacitor;return typeof(t==null?void 0:t.isNativePlatform)=="function"&&t.isNativePlatform()}function UE(){return localStorage.getItem(gc)??""}function e3(e){const t=e.replace(/\/+$/,"");t?localStorage.setItem(gc,t):localStorage.removeItem(gc)}function Fm(){return localStorage.getItem(gc)??""}class Hs extends Error{constructor(a,s){super(a);rn(this,"status");this.name="ApiError",this.status=s}}async function Ce(e,t){let a;try{a=await fetch(UE()+e,{...t,headers:{Accept:"application/json",...t!=null&&t.body?{"Content-Type":"application/json"}:{},...t==null?void 0:t.headers}})}catch(l){throw new Hs(l instanceof Error?l.message:"Network request failed",0)}if(!a.ok){const l=await a.text().catch(()=>"");throw new Hs(l.trim()||`${a.status} ${a.statusText}`,a.status)}if(a.status===204)return;const s=await a.text();if(s)return JSON.parse(s)}function Mn(e,...t){if(Array.isArray(e))return e;if(e&&typeof e=="object"){const a=e;for(const s of[...t,"data","items"])if(Array.isArray(a[s]))return a[s]}return[]}async function t3(){return Mn(await Ce("/api/repos"),"repos")}async function n3(e,t,a){return Ce("/api/repos",{method:"POST",body:JSON.stringify({name:e,gitUrl:t,localPath:a})})}async function a3(e){return Ce("/api/repos/resolve",{method:"POST",body:JSON.stringify({localPath:e})})}async function r3(e){await Ce(`/api/repos/${encodeURIComponent(e)}`,{method:"DELETE"})}async function s3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/start`,{method:"POST"})}async function i3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/stop`,{method:"POST"})}async function l3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/branches`)}async function o3(e,t){return Ce(`/api/repos/${encodeURIComponent(e)}/checkout`,{method:"POST",body:JSON.stringify({branch:t})})}async function u3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/pull`,{method:"POST"})}function We(e){return`/api/repos/${encodeURIComponent(e)}`}async function c3(e){return Mn(await Ce(`${We(e)}/sessions`),"sessions")}async function d3(e,t,a,s,l,o,d){return Ce(`${We(e)}/sessions`,{method:"POST",body:JSON.stringify({message:t,agent:a,model:s,variant:l,issueId:o,customAgentId:d})})}async function f3(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`)}async function m3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"DELETE"})}async function h3(e,t,a,s,l){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/prompt`,{method:"POST",body:JSON.stringify({content:a,agent:s,model:l})})}async function p3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/abort`,{method:"POST"})}function g3(e){const t=e,a=t.info;if(a&&typeof a.id=="string"){const s=Array.isArray(t.parts)?t.parts:void 0;return{...a,...s?{parts:s}:{}}}return t}async function b3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/messages`),"messages").map(g3)}async function x3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/todos`),"todos")}async function HE(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/status`)}async function Zb(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`)}async function Wb(e){return Ce(`${We(e)}/sessions/all-links`)}async function E3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"POST",body:JSON.stringify({type:a,targetId:s})})}async function y3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"DELETE",body:JSON.stringify({type:a,targetId:s})})}async function FE(){return Mn(await Ce("/api/custom-agents"))}async function zE(e){return Ce("/api/custom-agents",{method:"POST",body:JSON.stringify(e)})}async function qE(e,t){return Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function YE(e){await Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"DELETE"})}async function Jb(e){return Ce(`/api/custom-agents/${encodeURIComponent(e)}/export`)}async function T3(e){return Ce("/api/custom-agents/import",{method:"POST",body:JSON.stringify(e)})}async function _3(e){return Mn(await Ce(`${We(e)}/custom-agents`))}async function N3(e,t){return Ce(`${We(e)}/custom-agents`,{method:"POST",body:JSON.stringify(t)})}async function Th(e){return Mn(await Ce(`${We(e)}/models`))}async function S3(){return Mn(await Ce("/api/prompt-fragments"))}async function v3(e){return Ce("/api/prompt-fragments",{method:"POST",body:JSON.stringify(e)})}async function A3(e,t){return Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function C3(e){await Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"DELETE"})}async function ex(e){return Mn(await Ce(`${We(e)}/tags`))}async function tx(e,t){return Mn(await Ce(`${We(e)}/milestones`))}async function nx(e,t="open"){return Mn(await Ce(`${We(e)}/issues?state=${encodeURIComponent(t)}`),"issues")}async function w3(e,t="all"){return Ce(`${We(e)}/issues/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function k3(e,t,a){return Ce(`${We(e)}/issues`,{method:"POST",body:JSON.stringify({title:t,body:a})})}async function R3(e,t,a){await Ce(`${We(e)}/issues/${t}/children`,{method:"POST",body:JSON.stringify({childNumber:a})})}async function $E(e,t,a){return Ce(`${We(e)}/issues/${t}`,{method:"PATCH",body:JSON.stringify(a)})}async function ax(e,t){return Mn(await Ce(`${We(e)}/issues/${t}/pulls`))}async function O3(e,t,a,s=!1){await Ce(`${We(e)}/issues/${t}/pulls/${a}/merge`,{method:"POST",body:JSON.stringify({closeIssue:s})})}async function rx(e,t="open"){return Mn(await Ce(`${We(e)}/pulls?state=${encodeURIComponent(t)}`))}async function I3(e,t="all"){return Ce(`${We(e)}/pulls/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function M3(e,t){await Ce(`${We(e)}/pulls/${t}/merge`,{method:"POST"})}async function GE(e,t){return Mn(await Ce(`${We(e)}/pulls/${t}/issues`))}async function D3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues`,{method:"POST",body:JSON.stringify({issueNumber:a})})}async function L3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues/${a}`,{method:"DELETE"})}async function j3(e,t){return Ce(`${We(e)}/pulls/${t}/comments`)}async function B3(e,t){return Ce(`${We(e)}/issues/${t}/comments`)}async function sx(e,t,a){return Ce(`${We(e)}/issues/${t}/comments`,{method:"POST",body:JSON.stringify({body:a})})}async function P3(e,t,a){return Ce(`${We(e)}/issues/${t}/polish`,{method:"POST",body:JSON.stringify({draft:a})})}async function ix(e,t){return Ce(`${We(e)}/issues/${t}/draft`)}async function U3(e,t,a){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({title:a})})}async function H3(){return Ce("/api/agents-md")}async function F3(e){await Ce("/api/agents-md",{method:"PUT",body:JSON.stringify({content:e})})}async function z3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`)}async function q3(e,t){await Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`,{method:"PUT",body:JSON.stringify({content:t})})}function Y3(e){return`${UE()}${We(e)}/events`}async function $3(e){return Ce(`${We(e)}/sessions/status`)}async function _h(){return Ce("/api/settings")}async function G3(e,t){await Ce(`/api/settings/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify({value:t})})}async function K3(){return Mn(await Ce("/api/git-hosts"),"gitHosts")}async function V3(e,t,a,s="gitea"){return Ce("/api/git-hosts",{method:"POST",body:JSON.stringify({host:e,name:t,token:a,platform:s})})}async function Q3(e){await Ce(`/api/git-hosts/${encodeURIComponent(e)}`,{method:"DELETE"})}async function X3(){return Ce("/api/usage")}async function Z3(e){return Ce("/api/usage/switch",{method:"POST",body:JSON.stringify({accountId:e})})}async function W3(e,t="ios"){await Ce("/api/push/register",{method:"POST",body:JSON.stringify({token:e,platform:t})})}const ts="fs-active-repo",qe=zs((e,t)=>({repos:[],activeRepoId:localStorage.getItem(ts),loading:!1,loadError:null,loadRepos:async()=>{e({loading:!0,loadError:null});try{const a=await t3(),s=t().activeRepoId,l=s&&a.some(d=>d.id===s);e({repos:a,loading:!1,activeRepoId:l?s:a.length>0?a[0].id:null});const o=t().activeRepoId;o?localStorage.setItem(ts,o):localStorage.removeItem(ts)}catch(a){e({loading:!1,loadError:a instanceof Error?a.message:"Failed to load repos"})}},setActiveRepo:a=>{e({activeRepoId:a}),a?localStorage.setItem(ts,a):localStorage.removeItem(ts)},addRepo:async(a,s,l)=>{try{const o=await n3(a,s,l);return e(d=>({repos:[...d.repos,o],activeRepoId:o.id})),localStorage.setItem(ts,o.id),o}catch(o){return e({loadError:o instanceof Error?o.message:"Failed to add repo"}),null}},removeRepo:async a=>{try{await r3(a)}catch{}e(s=>{const l=s.repos.filter(d=>d.id!==a),o=s.activeRepoId===a?l.length>0?l[0].id:null:s.activeRepoId;return o?localStorage.setItem(ts,o):localStorage.removeItem(ts),{repos:l,activeRepoId:o}})},updateRepoBranch:(a,s)=>{e(l=>({repos:l.repos.map(o=>o.id===a?{...o,branch:s}:o)}))}})),Da=e=>{var t;return((t=e.repos.find(a=>a.id===e.activeRepoId))==null?void 0:t.name)??null},KE=[{segment:"repos",icon:Cv,label:"仓库管理",global:!0},{segment:"run",icon:Bc,label:"运行面板",global:!1},{segment:"issues",icon:fo,label:"Issues",global:!1},{segment:"pulls",icon:mo,label:"PRs",global:!1},{segment:"settings",icon:DA,label:"设置",global:!0}];function VE(e,t,a){return t?`/${e}`:a?`/${encodeURIComponent(a)}/${e}`:`/${e}`}function J3({repoId:e,currentBranch:t}){const a=qe(v=>v.updateRepoBranch),[s,l]=A.useState(!1),[o,d]=A.useState(null),[f,h]=A.useState(!1),[m,x]=A.useState(null),[b,y]=A.useState(null),T=A.useRef(null),N=A.useCallback(()=>{l(!1),y(null)},[]);A.useEffect(()=>{if(!s)return;const v=M=>{T.current&&!T.current.contains(M.target)&&N()};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[s,N]);const S=async()=>{if(s){N();return}l(!0),h(!0),y(null);try{d(await l3(e))}catch{y("加载分支失败")}finally{h(!1)}},C=async v=>{if(!(v===t||m)){x(v),y(null);try{const M=await o3(e,v);a(e,M.branch),N()}catch(M){y(M instanceof Error?M.message:"切换失败")}finally{x(null)}}};return t?c.jsxs("div",{ref:T,className:"relative",children:[c.jsxs("button",{type:"button",onClick:S,className:"flex items-center gap-1 rounded-md bg-elevated px-2 py-1 text-xs text-fg-3 transition-colors hover:bg-blue-500/10 hover:text-blue-600",children:[c.jsx(Dc,{className:"h-3 w-3"}),t,c.jsx(ss,{className:me("h-3 w-3 transition-transform",s&&"rotate-180")})]}),s&&c.jsxs("div",{className:"absolute right-0 top-full z-50 mt-1 w-56 overflow-hidden rounded-lg border border-line bg-surface shadow-lg",children:[f?c.jsx("div",{className:"flex items-center justify-center py-4",children:c.jsx(_r,{className:"h-4 w-4 animate-spin text-fg-4"})}):o?c.jsxs("div",{className:"max-h-64 overflow-y-auto py-1",children:[o.local.map(v=>c.jsxs("button",{type:"button",disabled:m!==null,onClick:()=>C(v),className:me("flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors",v===t?"font-medium text-blue-600":"text-fg-2 hover:bg-elevated"),children:[v===t?c.jsx(Na,{className:"h-3 w-3 shrink-0"}):m===v?c.jsx(_r,{className:"h-3 w-3 shrink-0 animate-spin"}):c.jsx("span",{className:"h-3 w-3 shrink-0"}),c.jsx("span",{className:"truncate",children:v})]},v)),o.remote.length>0&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"mx-3 my-1 border-t border-line"}),c.jsx("div",{className:"px-3 py-1 text-[10px] font-medium uppercase tracking-wider text-fg-4",children:"Remote"}),o.remote.map(v=>c.jsxs("button",{type:"button",disabled:m!==null,onClick:()=>C(v),className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-fg-2 transition-colors hover:bg-elevated",children:[m===v?c.jsx(_r,{className:"h-3 w-3 shrink-0 animate-spin"}):c.jsx("span",{className:"h-3 w-3 shrink-0"}),c.jsx("span",{className:"truncate",children:v})]},`remote-${v}`))]})]}):null,b&&c.jsx("div",{className:"border-t border-line px-3 py-2 text-xs text-red-500",children:b})]})]}):null}function eC(){const[e,t]=A.useState(null);return A.useEffect(()=>{const a=()=>fetch("/api/health").then(o=>o.json()).then(o=>{o.latestVersion&&o.latestVersion!=="0.6.8"&&t(o.latestVersion)}).catch(()=>{});a();const s=setInterval(a,30*6e4),l=()=>a();return window.addEventListener("focus",l),()=>{clearInterval(s),window.removeEventListener("focus",l)}},[]),e}function tC(){const e=Sa(),t=oa(),a=qe(b=>b.repos),s=qe(b=>b.activeRepoId),l=qe(b=>b.setActiveRepo),o=Hm(b=>b.preference),d=Hm(b=>b.cycle),f=o==="light"?PA:o==="dark"?TA:EA,h=a.find(b=>b.id===s),m=eC(),x=b=>{var N;if(!b)return;l(b);const y=a.find(S=>S.id===b);if(!y)return;const T=((N=t.pathname.match(/\/(run|issues|pulls)/))==null?void 0:N[1])??"run";e(`/${encodeURIComponent(y.name)}/${T}`)};return c.jsx("header",{className:"shrink-0 border-b border-line bg-surface pt-[var(--safe-top)]",children:c.jsxs("div",{className:"flex h-12 items-center justify-between px-4",children:[c.jsxs("div",{className:"flex items-center gap-2.5",children:[c.jsx(LE,{className:"h-5 w-5 text-blue-500"}),c.jsx("span",{className:"text-sm font-bold tracking-tight text-fg",children:"Fourth Spark"}),c.jsxs("span",{className:"rounded bg-elevated px-1.5 py-0.5 text-[10px] font-medium tabular-nums text-fg-4",children:["v","0.6.8"]}),m&&c.jsxs("span",{className:"text-[10px] text-amber-500",children:["→ v",m," 可用,运行 ",c.jsx("code",{className:"rounded bg-amber-500/10 px-1 font-mono",children:"fourth-spark upgrade"})," 更新"]})]}),c.jsxs("div",{className:"flex items-center gap-3",children:[a.length>0&&c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("select",{value:s??"",onChange:b=>x(b.target.value),className:"rounded-md border border-line bg-base px-2.5 py-1 text-xs text-fg-2 focus:border-blue-500 focus:outline-none",children:a.map(b=>c.jsx("option",{value:b.id,children:b.name},b.id))}),h&&s&&c.jsx(J3,{repoId:s,currentBranch:h.branch})]}),c.jsx("a",{href:"https://github.com/kinminghao/fourth-spark",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",className:"flex h-8 w-8 items-center justify-center rounded-md text-fg-4 transition-colors hover:bg-elevated hover:text-fg-2",children:c.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"currentColor",children:c.jsx("path",{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"})})}),c.jsx("button",{type:"button",onClick:d,"aria-label":`主题: ${o}`,className:"flex h-8 w-8 items-center justify-center rounded-md text-fg-4 transition-colors hover:bg-elevated hover:text-fg-2",children:c.jsx(f,{className:"h-4 w-4"})})]})]})})}function nC(){const e=qe(Da);return c.jsx("nav",{className:"hidden w-48 shrink-0 flex-col border-r border-line bg-surface py-2 md:flex",children:KE.map(t=>c.jsxs(bh,{to:VE(t.segment,t.global,e),className:({isActive:a})=>me("mx-2 flex items-center gap-2.5 rounded-md px-3 py-2 text-sm transition-colors",a?"bg-blue-500/10 font-medium text-blue-600":"text-fg-3 hover:bg-elevated hover:text-fg"),children:[c.jsx(t.icon,{className:"h-4 w-4 shrink-0"}),t.label]},t.segment))})}function aC(){const e=qe(Da);return c.jsx("nav",{className:"fixed bottom-0 left-0 right-0 z-30 border-t border-line bg-surface pb-[var(--safe-bottom)] md:hidden",children:c.jsx("div",{className:"flex h-14 items-center justify-around",children:KE.map(t=>c.jsx(bh,{to:VE(t.segment,t.global,e),"aria-label":t.label,className:({isActive:a})=>me("flex h-10 w-10 items-center justify-center rounded-md transition-colors",a?"bg-blue-500/10 text-blue-600":"text-fg-3 hover:bg-elevated hover:text-fg"),children:c.jsx(t.icon,{className:"h-5 w-5 shrink-0"})},t.segment))})})}function rC(){return c.jsxs("div",{className:"flex h-full flex-col overflow-hidden bg-base text-fg",children:[c.jsx(tC,{}),c.jsxs("div",{className:"flex min-h-0 flex-1",children:[c.jsx(nC,{}),c.jsx("main",{className:"flex min-w-0 flex-1 flex-col overflow-hidden pb-[calc(3.5rem_+_var(--safe-bottom))] md:pb-0",children:c.jsx(AS,{})})]}),c.jsx(aC,{})]})}function sC({onClose:e}){const[t,a]=A.useState(""),[s,l]=A.useState(""),[o,d]=A.useState(""),[f,h]=A.useState(!1),[m,x]=A.useState(""),b=qe(C=>C.addRepo),y=s.trim()!==""&&o.trim()!==""&&t.trim()!==""&&!f,T=async C=>{const v=C.trim();if(v){h(!0),x("");try{const M=await a3(v);M.name&&!s.trim()&&l(M.name),M.gitUrl&&!o.trim()&&d(M.gitUrl)}catch(M){const k=M instanceof Error?M.message:"无法解析路径";try{const q=JSON.parse(k);x(q.error??k)}catch{x(k)}}h(!1)}},N=A.useRef(T);N.current=T,A.useEffect(()=>{const C=t.trim();if(!C)return;const v=setTimeout(()=>{N.current(C)},500);return()=>clearTimeout(v)},[t]);const S=async()=>{if(!y)return;x(""),await b(s.trim(),o.trim(),t.trim())&&e()};return c.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:e,children:c.jsxs("div",{className:"w-full max-w-md rounded-xl border border-line bg-surface p-6 shadow-2xl",onClick:C=>C.stopPropagation(),children:[c.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[c.jsx("h2",{className:"text-base font-semibold text-fg",children:"添加仓库"}),c.jsx("button",{type:"button",onClick:e,className:"rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:c.jsx(Tt,{className:"h-4 w-4"})})]}),c.jsxs("div",{className:"flex flex-col gap-4",children:[c.jsxs("div",{className:"flex flex-col gap-1.5",children:[c.jsx("label",{htmlFor:"m-path",className:"text-xs font-medium text-fg-3",children:"本地路径"}),c.jsx("input",{id:"m-path",value:t,onChange:C=>a(C.target.value),onBlur:C=>void T(C.target.value),placeholder:"/Users/you/code/repo",autoFocus:!0,className:"w-full rounded-lg border border-line bg-base px-3 py-2 font-mono text-sm text-fg placeholder:text-fg-5 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20"}),c.jsx("span",{className:"text-[11px] text-fg-5",children:f?"正在读取 Git 信息…":"输入路径后自动读取仓库信息"})]}),c.jsxs("div",{className:"flex flex-col gap-1.5",children:[c.jsx("label",{htmlFor:"m-name",className:"text-xs font-medium text-fg-3",children:"名称"}),c.jsx("input",{id:"m-name",value:s,onChange:C=>l(C.target.value),placeholder:"my-project",className:"w-full rounded-lg border border-line bg-base px-3 py-2 text-sm text-fg placeholder:text-fg-5 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20"})]}),c.jsxs("div",{className:"flex flex-col gap-1.5",children:[c.jsx("label",{htmlFor:"m-git",className:"text-xs font-medium text-fg-3",children:"Git 远程地址"}),c.jsx("input",{id:"m-git",value:o,onChange:C=>d(C.target.value),placeholder:"https://github.com/org/repo.git",className:"w-full rounded-lg border border-line bg-base px-3 py-2 font-mono text-xs text-fg placeholder:text-fg-5 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20"})]}),m&&c.jsx("p",{className:"rounded-md bg-red-500/10 px-3 py-2 text-xs text-red-500",children:m}),c.jsxs("div",{className:"mt-1 flex items-center justify-end gap-2",children:[c.jsx("button",{type:"button",onClick:e,className:"rounded-lg border border-line px-4 py-2 text-sm text-fg-3 transition-colors hover:bg-elevated hover:text-fg",children:"取消"}),c.jsx("button",{type:"button",onClick:S,disabled:!y,className:"rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-500 disabled:cursor-not-allowed disabled:bg-fg-6 disabled:text-fg-4",children:"添加仓库"})]})]})]})})}function iC({repoId:e,repoName:t,onClose:a}){const[s,l]=A.useState(""),[o,d]=A.useState(""),[f,h]=A.useState(!0),[m,x]=A.useState(!1),[b,y]=A.useState(null);A.useEffect(()=>{z3(e).then(S=>{l(S.content),d(S.content),h(!1)}).catch(S=>{y(S instanceof Error?S.message:String(S)),h(!1)})},[e]);const T=async()=>{x(!0),y(null);try{await q3(e,s),d(s)}catch(S){y(S instanceof Error?S.message:String(S))}x(!1)},N=s!==o;return c.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:a,children:c.jsxs("div",{className:"flex w-full max-w-2xl flex-col rounded-xl border border-line bg-surface p-6 shadow-2xl",onClick:S=>S.stopPropagation(),children:[c.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsxs("h2",{className:"text-base font-semibold text-fg",children:[t," — AGENTS.md"]}),c.jsx("p",{className:"mt-0.5 text-xs text-fg-4",children:"仅对此仓库生效,修改后 opencode 热加载即时生效。"})]}),c.jsx("button",{type:"button",onClick:a,className:"shrink-0 rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:c.jsx(Tt,{className:"h-4 w-4"})})]}),b&&c.jsxs("div",{className:"mb-3 flex items-start gap-2 rounded-lg bg-red-500/10 px-3 py-2 text-xs text-red-400",children:[c.jsx(ia,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),c.jsx("span",{className:"min-w-0 break-words",children:b})]}),f?c.jsxs("div",{className:"flex flex-col items-center gap-2.5 py-16 text-fg-5",children:[c.jsx(_r,{className:"h-5 w-5 fs-spin"}),c.jsx("p",{className:"text-xs",children:"加载中…"})]}):c.jsx("textarea",{value:s,onChange:S=>l(S.target.value),spellCheck:!1,className:"h-96 w-full resize-y rounded-lg border border-line bg-base px-4 py-3 font-mono text-sm leading-relaxed text-fg placeholder:text-fg-6 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20",placeholder:`# AGENTS.md
401
401
 
402
402
  在此编写该仓库的 Agent 指令…`}),c.jsxs("div",{className:"mt-4 flex items-center justify-end gap-2",children:[c.jsx("button",{type:"button",onClick:a,className:"rounded-lg border border-line px-4 py-2 text-sm text-fg-3 transition-colors hover:bg-elevated hover:text-fg",children:"关闭"}),c.jsxs("button",{type:"button",onClick:()=>void T(),disabled:m||!N,className:"flex items-center gap-1.5 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-500 disabled:opacity-40",children:[c.jsx(yh,{className:"h-3.5 w-3.5"}),m?"保存中…":"保存"]})]})]})})}function lC(){const e=qe(k=>k.repos),t=qe(k=>k.activeRepoId),a=qe(k=>k.setActiveRepo),s=qe(k=>k.removeRepo),l=qe(k=>k.loadRepos),[o,d]=A.useState(!1),[f,h]=A.useState(null),[m,x]=A.useState(null),[b,y]=A.useState(null),[T,N]=A.useState(null),[S,C]=A.useState(null),v=async(k,q)=>{x(k);try{q?await i3(k):await s3(k),await l()}catch{}x(null)},M=async k=>{y(k),N(null);try{await u3(k),await l()}catch(q){let Q="拉取失败";if(q instanceof Hs)try{Q=JSON.parse(q.message).error??q.message}catch{Q=q.message}N(Q)}y(null)};return c.jsxs("div",{className:"flex-1 overflow-y-auto p-6",children:[c.jsxs("div",{className:"mx-auto max-w-4xl",children:[c.jsxs("div",{className:"mb-6 flex items-center justify-between gap-3",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsx("h1",{className:"text-lg font-semibold text-fg",children:"仓库管理"}),c.jsx("p",{className:"mt-0.5 text-sm text-fg-4",children:"管理代码仓库,每个仓库对应一个独立的 Agent 运行环境"})]}),c.jsxs("button",{type:"button",onClick:()=>d(!0),className:"flex shrink-0 items-center gap-1.5 rounded-lg bg-blue-600 px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-500 md:px-4",children:[c.jsx(Sr,{className:"h-4 w-4"}),c.jsx("span",{className:"hidden md:inline",children:"添加仓库"})]})]}),T&&c.jsxs("div",{className:"mb-4 flex items-center justify-between gap-3 rounded-lg border border-red-500/30 bg-red-500/5 px-4 py-2.5 text-sm text-red-600",children:[c.jsx("span",{children:T}),c.jsx("button",{type:"button",onClick:()=>N(null),className:"shrink-0 rounded p-0.5 transition-colors hover:bg-red-500/10",children:c.jsx(Tt,{className:"h-3.5 w-3.5"})})]}),e.length===0?c.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-xl border border-dashed border-line-hard py-16 text-center",children:[c.jsx("div",{className:"rounded-full bg-elevated p-3",children:c.jsx(Sr,{className:"h-6 w-6 text-fg-4"})}),c.jsx("p",{className:"text-sm font-medium text-fg-3",children:"暂无代码仓库"}),c.jsx("p",{className:"text-xs text-fg-5",children:"添加一个本地仓库开始使用"}),c.jsx("button",{type:"button",onClick:()=>d(!0),className:"mt-2 rounded-lg border border-line px-4 py-2 text-sm text-fg-3 transition-colors hover:bg-elevated hover:text-fg",children:"添加仓库"})]}):c.jsx(c.Fragment,{children:c.jsx("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:e.map(k=>{const q=k.id===t;return c.jsxs("div",{className:me("rounded-xl border p-4 transition-colors",q?"border-blue-500/40 bg-blue-500/5":"border-line"),children:[c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsxs("button",{type:"button",onClick:()=>a(k.id),className:"flex min-w-0 items-center gap-2 text-left",children:[q?c.jsx(fo,{className:"h-4 w-4 shrink-0 text-blue-500"}):c.jsx(jv,{className:"h-4 w-4 shrink-0 text-fg-5"}),c.jsx("span",{className:me("truncate font-medium",q?"text-fg":"text-fg-2"),children:k.name})]}),c.jsxs("span",{className:me("inline-flex shrink-0 items-center gap-1.5 rounded-full px-2 py-0.5 text-xs font-medium",k.running?"bg-emerald-500/10 text-emerald-600":"bg-fg-6/30 text-fg-4"),children:[c.jsx("span",{className:me("h-1.5 w-1.5 rounded-full",k.running?"bg-emerald-500":"bg-fg-5")}),k.running?"运行中":"已停止"]})]}),c.jsxs("dl",{className:"mt-3 space-y-1 font-mono text-xs text-fg-4",children:[c.jsxs("div",{className:"flex gap-2",children:[c.jsx("dt",{className:"shrink-0 text-fg-5",children:"Git"}),c.jsx("dd",{className:"min-w-0 truncate",children:k.gitUrl})]}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx("dt",{className:"shrink-0 text-fg-5",children:"路径"}),c.jsxs("dd",{className:"flex min-w-0 items-center gap-1.5",children:[c.jsx("span",{className:"truncate",children:k.localPath}),c.jsx("button",{type:"button",onClick:()=>void navigator.clipboard.writeText(k.localPath),title:"复制路径",className:"shrink-0 rounded p-0.5 text-fg-5 transition-colors hover:text-fg-3",children:c.jsx(fc,{className:"h-3 w-3"})})]})]}),k.running&&k.port&&c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("dt",{className:"shrink-0 text-fg-5",children:"直连"}),c.jsxs("dd",{className:"flex min-w-0 items-center gap-1.5",children:[c.jsxs("a",{href:`http://127.0.0.1:${k.port}`,target:"_blank",rel:"noopener noreferrer",className:"truncate text-blue-500 hover:underline",children:["127.0.0.1:",k.port]}),c.jsx("button",{type:"button",onClick:()=>void navigator.clipboard.writeText(`http://127.0.0.1:${k.port}`),title:"复制链接",className:"shrink-0 rounded p-0.5 text-fg-5 transition-colors hover:text-fg-3",children:c.jsx(fc,{className:"h-3 w-3"})})]})]})]}),c.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[c.jsxs("button",{type:"button",onClick:()=>C({id:k.id,name:k.name}),className:"flex h-8 shrink-0 items-center justify-center gap-1.5 rounded-md border border-line px-2.5 text-xs font-medium text-fg-4 transition-colors hover:bg-elevated hover:text-fg-2",children:[c.jsx(kE,{className:"h-3 w-3"}),"配置"]}),c.jsx("button",{type:"button",onClick:()=>void M(k.id),disabled:b===k.id,className:"flex h-8 shrink-0 items-center justify-center gap-1.5 rounded-md border border-blue-500/30 px-2.5 text-xs font-medium text-blue-600 transition-colors hover:bg-blue-500/10 disabled:opacity-50",children:b===k.id?c.jsx("span",{className:"inline-block h-3.5 w-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}):c.jsxs(c.Fragment,{children:[c.jsx(gv,{className:"h-3 w-3"}),"拉取"]})}),c.jsx("button",{type:"button",onClick:()=>void v(k.id,k.running),disabled:m===k.id,className:me("flex h-8 flex-1 items-center justify-center gap-1.5 rounded-md border text-xs font-medium transition-colors disabled:opacity-50",k.running?"border-amber-500/30 text-amber-600 hover:bg-amber-500/10":"border-emerald-500/30 text-emerald-600 hover:bg-emerald-500/10"),children:m===k.id?c.jsx("span",{className:"inline-block h-3.5 w-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}):k.running?c.jsxs(c.Fragment,{children:[c.jsx(IE,{className:"h-3 w-3 fill-current"}),"停止"]}):c.jsxs(c.Fragment,{children:[c.jsx(Bc,{className:"h-3 w-3 fill-current"}),"启动"]})}),f===k.id?c.jsxs(c.Fragment,{children:[c.jsx("button",{type:"button",onClick:()=>{s(k.id),h(null)},className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-red-500/30 text-red-500 transition-colors hover:bg-red-500/10",children:c.jsx(Na,{className:"h-3.5 w-3.5"})}),c.jsx("button",{type:"button",onClick:()=>h(null),className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-line text-fg-4 transition-colors hover:bg-elevated",children:c.jsx(Tt,{className:"h-3.5 w-3.5"})})]}):c.jsx("button",{type:"button",onClick:()=>h(k.id),className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-line text-fg-5 transition-colors hover:bg-red-500/10 hover:text-red-500",children:c.jsx(ji,{className:"h-3.5 w-3.5"})})]})]},k.id)})})}),c.jsxs("p",{className:"mt-3 text-xs text-fg-5",children:[e.length," 个仓库"]})]}),o&&c.jsx(sC,{onClose:()=>d(!1)}),S&&c.jsx(iC,{repoId:S.id,repoName:S.name,onClose:()=>C(null)})]})}const oC=new Set(["tool","tool-use","tool_use","tool-call","tool_call","tool-result","tool_result"]),uC=new Set(["thinking","reasoning","reason"]),cC=new Set(["text","output_text","message"]);function Nh(e){var a;const t=((a=e.type)==null?void 0:a.toLowerCase())??"";return oC.has(t)||e.toolName!=null||e.tool!=null?"tool":uC.has(t)?"thinking":cC.has(t)||e.content!=null||e.text!=null?"text":"other"}function bc(e){return e.content??e.text??""}function QE(e){return e.toolName??e.tool??"tool"}function Pc(e){var t;return e.input??((t=e.state)==null?void 0:t.input)}function Sh(e){var t;return e.output??((t=e.state)==null?void 0:t.output)}function vh(e){var a,s,l;const t=(s=(a=e.state)==null?void 0:a.status)==null?void 0:s.toLowerCase();return t==="completed"||t==="done"||t==="success"?"completed":t==="error"||t==="failed"||((l=e.state)==null?void 0:l.error)!=null?"error":t==="pending"||t==="queued"?"pending":t==="running"||t==="in_progress"?"running":Sh(e)!=null?"completed":"running"}function lx(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Bi(e){const t=e==null?void 0:e.toLowerCase();return t==="in_progress"||t==="in-progress"||t==="active"?"in_progress":t==="completed"||t==="done"||t==="complete"?"completed":t==="cancelled"||t==="canceled"?"cancelled":"pending"}function dC(e){return e.filter(t=>Bi(t.status)==="completed").length}function ho(e){const t=QE(e).toLowerCase();return t==="question"||t==="mcp_question"}function fC(e){const t=Pc(e);if(!t||typeof t!="object")return null;const a=t;return Array.isArray(a.questions)?a.questions:null}function xc(e){if(!ho(e))return!1;const t=vh(e);return t==="pending"||t==="running"}const mC=/\bses_[a-zA-Z0-9]+/;function hC(e){var l;const t=Pc(e);if(t&&typeof t=="object"){const o=t;if(typeof o.task_id=="string"&&o.task_id.startsWith("ses_"))return o.task_id}const a=(l=e.state)==null?void 0:l.metadata;if(a){const o=a.session_id??a.sessionId;if(typeof o=="string"&&o.startsWith("ses_"))return o}const s=Sh(e);if(typeof s=="string"){const o=mC.exec(s);if(o)return o[0]}if(s&&typeof s=="object"){const o=s,d=o.session_id??o.sessionId??o.task_id;if(typeof d=="string"&&d.startsWith("ses_"))return d}return null}let pC=0;const Yt=zs(e=>({toasts:[],addToast:(t,a="info",s,l)=>{const o=(l==null?void 0:l.id)??`toast-${++pC}-${Date.now()}`;e(d=>d.toasts.some(f=>f.id===o)?d:{toasts:[...d.toasts,{id:o,message:t,variant:a,sessionId:s,persistent:l==null?void 0:l.persistent}]}),l!=null&&l.persistent||setTimeout(()=>{e(d=>({toasts:d.toasts.filter(f=>f.id!==o)}))},4e3)},removeToast:t=>{e(a=>({toasts:a.toasts.filter(s=>s.id!==t)}))}}));function XE(e){return`question-${e}`}function um(e,t){const a=t.find(l=>l.id===e),s=(a==null?void 0:a.title)||e.slice(-8);Yt.getState().addToast(`${s} — 等待回复`,"warning",e,{id:XE(e),persistent:!0})}function gC(e){var t;for(const a of e)if((t=a.parts)!=null&&t.some(s=>ho(s)&&xc(s)))return!0;return!1}const po=[],Ec=[],ox=[],Is={};function ux(e){return e.id??e.callID}function Ra(){return qe.getState().activeRepoId}const Be=zs((e,t)=>({sessions:[],activeSessionId:null,messages:{},todos:{},sessionStatuses:{},errorReasons:{},queuedMessageIds:{},sessionLinks:{},allSessionLinks:{},loadingSessions:!1,loadError:null,sendError:null,loadSessions:async()=>{const a=Ra();if(!a){e({sessions:[],loadingSessions:!1});return}e({loadingSessions:!0,loadError:null});try{const[s,l]=await Promise.all([c3(a),Wb(a).catch(()=>null)]),o={sessions:s,loadingSessions:!1};l&&(o.allSessionLinks=l),e(o)}catch(s){e({loadingSessions:!1,loadError:s instanceof Error?s.message:"Failed to load sessions"})}},createSession:async(a,s,l,o,d,f)=>{const h=Ra();if(!h)return null;e({sendError:null});try{const m=await d3(h,a,s,l,o,d,f);return e(x=>({sessions:[m,...x.sessions.filter(b=>b.id!==m.id)],activeSessionId:m.id,messages:{...x.messages,[m.id]:[]}})),t().setSessionStatus(m.id,"busy"),m}catch(m){return e({sendError:m instanceof Error?m.message:"Failed to create session"}),null}},setActiveSession:async a=>{Ra()&&(e({activeSessionId:a,sendError:null}),await t().refreshSessionData(a))},refreshSessionData:async a=>{const s=Ra();if(!s)return;const[l,o,d,f,h]=await Promise.allSettled([b3(s,a),x3(s,a),HE(s,a),f3(s,a),Zb(s,a)]);e(m=>{const x={};if(l.status==="fulfilled"&&(x.messages={...m.messages,[a]:l.value}),o.status==="fulfilled"&&(x.todos={...m.todos,[a]:o.value}),d.status==="fulfilled"&&(x.sessionStatuses={...m.sessionStatuses,[a]:d.value.type}),f.status==="fulfilled"){const b=f.value;x.sessions=m.sessions.map(y=>y.id===a?{...y,...b}:y)}return h.status==="fulfilled"&&(x.sessionLinks={...m.sessionLinks,[a]:h.value}),x}),l.status==="fulfilled"&&gC(l.value)&&um(a,t().sessions)},refreshSessionLinks:async a=>{const s=Ra();if(s)try{const[l,o]=await Promise.all([Zb(s,a),Wb(s).catch(()=>null)]);e(d=>{const f={sessionLinks:{...d.sessionLinks,[a]:l}};return o&&(f.allSessionLinks=o),f})}catch{}},addLink:async(a,s,l)=>{const o=Ra();if(!o)return!1;try{return await E3(o,a,s,l),await t().refreshSessionLinks(a),!0}catch{return!1}},removeLink:async(a,s,l)=>{const o=Ra();if(!o)return!1;try{return await y3(o,a,s,l),await t().refreshSessionLinks(a),!0}catch{return!1}},deleteSession:async a=>{const s=Ra();if(s)try{await m3(s,a)}catch{}delete Is[a],e(l=>{const{[a]:o,...d}=l.messages,{[a]:f,...h}=l.todos,{[a]:m,...x}=l.sessionStatuses,{[a]:b,...y}=l.errorReasons,{[a]:T,...N}=l.queuedMessageIds,{[a]:S,...C}=l.sessionLinks,{[a]:v,...M}=l.allSessionLinks;return{sessions:l.sessions.filter(k=>k.id!==a),messages:d,todos:h,sessionStatuses:x,errorReasons:y,queuedMessageIds:N,sessionLinks:C,allSessionLinks:M,activeSessionId:l.activeSessionId===a?null:l.activeSessionId}})},sendMessage:async(a,s)=>{const l=Ra(),o=t().activeSessionId;if(!l||!o)return;const d=t().sessions.find(h=>h.id===o),f=t().sessionStatuses[o]==="busy";e({sendError:null}),f||t().setSessionStatus(o,"busy");try{await h3(l,o,a,d==null?void 0:d.agent,s),f&&(Is[o]=(Is[o]||0)+1)}catch(h){e({sendError:h instanceof Error?h.message:"Failed to send message"}),f||t().setSessionStatus(o,"idle")}},abortSession:async()=>{const a=Ra(),s=t().activeSessionId;if(!(!a||!s)){try{await p3(a,s)}catch{}t().setSessionStatus(s,"idle")}},clearSessions:()=>{for(const a of Object.keys(Is))delete Is[a];e({sessions:[],activeSessionId:null,messages:{},todos:{},sessionStatuses:{},errorReasons:{},queuedMessageIds:{},sessionLinks:{},allSessionLinks:{},loadError:null,sendError:null})},updateMessage:(a,s)=>{var l;e(o=>{const d=o.messages[a]??[],f=d.findIndex(x=>x.id===s.id);let h,m=o.queuedMessageIds;if(f>=0){const x={...d[f],...s};(!s.parts||s.parts.length===0)&&d[f].parts&&(x.parts=d[f].parts),h=[...d],h[f]=x}else{h=[...d,s];const x=Is[a]||0;if(s.role==="user"&&x>0){const b=[...m[a]??[]];b.push(s.id),m={...m,[a]:b},Is[a]=x-1}else if(s.role==="assistant"){const b=m[a];b&&b.length>0&&(m={...m,[a]:b.slice(1)})}}return{messages:{...o.messages,[a]:h},queuedMessageIds:m}}),(l=s.parts)!=null&&l.some(o=>ho(o)&&xc(o))&&um(a,t().sessions)},updateMessagePart:(a,s,l)=>{e(o=>{const d=o.messages[a]??[],f=d.findIndex(N=>N.id===s),h=f>=0?d[f]:{id:s,role:"assistant"},m=h.parts?[...h.parts]:[],x=ux(l),b=x!=null?m.findIndex(N=>ux(N)===x):-1;b>=0?m[b]={...m[b],...l}:m.push(l);const y={...h,parts:m},T=f>=0?[...d]:[...d,y];return f>=0&&(T[f]=y),{messages:{...o.messages,[a]:T}}}),ho(l)&&xc(l)&&um(a,t().sessions)},appendMessagePartDelta:(a,s,l,o)=>{e(d=>{const f=d.messages[a]??[],h=f.findIndex(N=>N.id===s),m=h>=0?f[h]:{id:s,role:"assistant"},x=m.parts?[...m.parts]:[],b=x.findIndex(N=>N.id===l);if(b>=0){const N=x[b],S=bc(N)+o;x[b]=N.content!=null?{...N,content:S}:{...N,text:S}}else x.push({id:l,type:"text",text:o});const y={...m,parts:x},T=h>=0?[...f]:[...f,y];return h>=0&&(T[h]=y),{messages:{...d.messages,[a]:T}}})},updateTodos:(a,s)=>{e(l=>({todos:{...l.todos,[a]:s}}))},updateSessionInfo:a=>{e(s=>s.sessions.some(o=>o.id===a.id)?{sessions:s.sessions.map(o=>o.id===a.id?{...o,...a}:o)}:{sessions:[a,...s.sessions]})},setSessionStatus:(a,s,l)=>{const o=t().sessionStatuses[a];if(o!==s){const d=t().sessions.find(h=>h.id===a),f=(d==null?void 0:d.title)||a.slice(-8);if(s==="idle"&&o!==void 0&&o!=="idle")Yt.getState().removeToast(XE(a)),Yt.getState().addToast(`${f} — 完成`,"success",a);else if(s==="busy"&&(o===void 0||o==="idle"))Yt.getState().addToast(`${f} — 开始运行`,"info",a);else if(s==="retry")Yt.getState().addToast(`${f} — 进入重试`,"warning",a);else if(s==="error"){const h=l?`${f} — 错误: ${l}`:`${f} — 发生错误`;Yt.getState().addToast(h,"error",a)}}e(d=>{const f=l?{...d.errorReasons,[a]:l}:s!=="error"?(()=>{const{[a]:h,...m}=d.errorReasons;return m})():d.errorReasons;return{sessionStatuses:{...d.sessionStatuses,[a]:s},errorReasons:f}})},bulkSetStatuses:a=>{e({sessionStatuses:{...t().sessionStatuses,...a}})},renameSession:async(a,s)=>{const l=Ra();if(l){e(o=>({sessions:o.sessions.map(d=>d.id===a?{...d,title:s}:d)}));try{await U3(l,a,s)}catch{await t().loadSessions()}}}})),Ue=zs((e,t)=>({issues:[],tags:[],tagFilterMode:new Map,milestones:[],selectedMilestoneId:null,loaded:!1,syncing:!1,selectedIssueId:null,previewIssueId:null,matchingParentId:null,matchingCandidateId:null,pendingDraft:null,clearIssues:()=>e({issues:[],tags:[],tagFilterMode:new Map,milestones:[],selectedMilestoneId:null,loaded:!1,selectedIssueId:null,previewIssueId:null,matchingParentId:null,matchingCandidateId:null,pendingDraft:null}),setSelectedIssue:a=>e({selectedIssueId:a}),setPreviewIssue:a=>e({previewIssueId:a}),setPendingDraft:a=>e({pendingDraft:a}),enterMatchMode:a=>e({matchingParentId:a,matchingCandidateId:null,previewIssueId:null}),exitMatchMode:()=>{const a=t().matchingParentId;e({matchingParentId:null,matchingCandidateId:null,previewIssueId:a})},setMatchCandidate:a=>e({matchingCandidateId:a}),linkChild:async(a,s)=>{var o;const l=qe.getState().activeRepoId;if(!l)return!1;try{await R3(l,a,s);const d=(o=t().issues.find(f=>f.number===a))==null?void 0:o.id;return d&&e(f=>({issues:f.issues.map(h=>h.number===s?{...h,parentId:d}:h),matchingCandidateId:null})),!0}catch{return!1}},updateIssueState:async(a,s)=>{const l=qe.getState().activeRepoId;if(!l)return!1;try{const o=await $E(l,a,{state:s});return e(d=>({issues:d.issues.map(f=>f.number===a?{...f,state:o.state}:f)})),!0}catch{return!1}},loadIssues:async()=>{const a=qe.getState().activeRepoId;if(!a){e({issues:[],loaded:!0});return}try{const s=await nx(a,"all");e({issues:s,loaded:!0})}catch{e({loaded:!0})}},syncIssues:async()=>{const a=qe.getState().activeRepoId;if(a){e({syncing:!0});try{await w3(a);const[s,l,o]=await Promise.all([nx(a,"all"),ex(a),tx(a)]);e({issues:s,tags:l,milestones:o,syncing:!1})}catch(s){e({syncing:!1});let l="同步 Issue 失败";if(s instanceof Hs)try{const o=JSON.parse(s.message);o.error&&(l=o.error)}catch{s.message&&(l=s.message)}Yt.getState().addToast(l,"error")}}},createIssue:async(a,s)=>{const l=qe.getState().activeRepoId;if(!l)return null;try{const o=await k3(l,a,s);return e(d=>({issues:[o,...d.issues]})),o}catch{return null}},loadTags:async()=>{const a=qe.getState().activeRepoId;if(!a){e({tags:[]});return}try{const s=await ex(a);e({tags:s})}catch{}},cycleTagFilter:a=>{e(s=>{const l=new Map(s.tagFilterMode),o=l.get(a);return o?o==="include"?l.set(a,"exclude"):l.delete(a):l.set(a,"include"),{tagFilterMode:l}})},clearTagFilter:()=>e({tagFilterMode:new Map}),loadMilestones:async()=>{const a=qe.getState().activeRepoId;if(!a){e({milestones:[]});return}try{const s=await tx(a);e({milestones:s})}catch{}},setMilestoneFilter:a=>e({selectedMilestoneId:a})}));function cx(e){const t=[],a=String(e||"");let s=a.indexOf(","),l=0,o=!1;for(;!o;){s===-1&&(s=a.length,o=!0);const d=a.slice(l,s).trim();(d||!o)&&t.push(d),l=s+1,s=a.indexOf(",",l)}return t}function ZE(e,t){const a={};return(e[e.length-1]===""?[...e,""]:e).join((a.padRight?" ":"")+","+(a.padLeft===!1?"":" ")).trim()}const bC=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,xC=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,EC={};function dx(e,t){return(EC.jsx?xC:bC).test(e)}const yC=/[ \t\n\f\r]/g;function TC(e){return typeof e=="object"?e.type==="text"?fx(e.value):!1:fx(e)}function fx(e){return e.replace(yC,"")===""}class _o{constructor(t,a,s){this.normal=a,this.property=t,s&&(this.space=s)}}_o.prototype.normal={};_o.prototype.property={};_o.prototype.space=void 0;function WE(e,t){const a={},s={};for(const l of e)Object.assign(a,l.property),Object.assign(s,l.normal);return new _o(a,s,t)}function go(e){return e.toLowerCase()}class Kn{constructor(t,a){this.attribute=a,this.property=t}}Kn.prototype.attribute="";Kn.prototype.booleanish=!1;Kn.prototype.boolean=!1;Kn.prototype.commaOrSpaceSeparated=!1;Kn.prototype.commaSeparated=!1;Kn.prototype.defined=!1;Kn.prototype.mustUseProperty=!1;Kn.prototype.number=!1;Kn.prototype.overloadedBoolean=!1;Kn.prototype.property="";Kn.prototype.spaceSeparated=!1;Kn.prototype.space=void 0;let _C=0;const Ke=qs(),sn=qs(),zm=qs(),ye=qs(),kt=qs(),Bs=qs(),ra=qs();function qs(){return 2**++_C}const qm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ke,booleanish:sn,commaOrSpaceSeparated:ra,commaSeparated:Bs,number:ye,overloadedBoolean:zm,spaceSeparated:kt},Symbol.toStringTag,{value:"Module"})),cm=Object.keys(qm);class Ah extends Kn{constructor(t,a,s,l){let o=-1;if(super(t,a),mx(this,"space",l),typeof s=="number")for(;++o<cm.length;){const d=cm[o];mx(this,cm[o],(s&qm[d])===qm[d])}}}Ah.prototype.defined=!0;function mx(e,t,a){a&&(e[t]=a)}function $i(e){const t={},a={};for(const[s,l]of Object.entries(e.properties)){const o=new Ah(s,e.transform(e.attributes||{},s),l,e.space);e.mustUseProperty&&e.mustUseProperty.includes(s)&&(o.mustUseProperty=!0),t[s]=o,a[go(s)]=s,a[go(o.attribute)]=s}return new _o(t,a,e.space)}const JE=$i({properties:{ariaActiveDescendant:null,ariaAtomic:sn,ariaAutoComplete:null,ariaBusy:sn,ariaChecked:sn,ariaColCount:ye,ariaColIndex:ye,ariaColSpan:ye,ariaControls:kt,ariaCurrent:null,ariaDescribedBy:kt,ariaDetails:null,ariaDisabled:sn,ariaDropEffect:kt,ariaErrorMessage:null,ariaExpanded:sn,ariaFlowTo:kt,ariaGrabbed:sn,ariaHasPopup:null,ariaHidden:sn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:kt,ariaLevel:ye,ariaLive:null,ariaModal:sn,ariaMultiLine:sn,ariaMultiSelectable:sn,ariaOrientation:null,ariaOwns:kt,ariaPlaceholder:null,ariaPosInSet:ye,ariaPressed:sn,ariaReadOnly:sn,ariaRelevant:null,ariaRequired:sn,ariaRoleDescription:kt,ariaRowCount:ye,ariaRowIndex:ye,ariaRowSpan:ye,ariaSelected:sn,ariaSetSize:ye,ariaSort:null,ariaValueMax:ye,ariaValueMin:ye,ariaValueNow:ye,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function ey(e,t){return t in e?e[t]:t}function ty(e,t){return ey(e,t.toLowerCase())}const NC=$i({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Bs,acceptCharset:kt,accessKey:kt,action:null,allow:null,allowFullScreen:Ke,allowPaymentRequest:Ke,allowUserMedia:Ke,alpha:Ke,alt:null,as:null,async:Ke,autoCapitalize:null,autoComplete:kt,autoFocus:Ke,autoPlay:Ke,blocking:kt,capture:null,charSet:null,checked:Ke,cite:null,className:kt,closedBy:null,colorSpace:null,cols:ye,colSpan:ye,command:null,commandFor:null,content:null,contentEditable:sn,controls:Ke,controlsList:kt,coords:ye|Bs,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Ke,defer:Ke,dir:null,dirName:null,disabled:Ke,download:zm,draggable:sn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Ke,formTarget:null,headers:kt,height:ye,hidden:zm,high:ye,href:null,hrefLang:null,htmlFor:kt,httpEquiv:kt,id:null,imageSizes:null,imageSrcSet:null,inert:Ke,inputMode:null,integrity:null,is:null,isMap:Ke,itemId:null,itemProp:kt,itemRef:kt,itemScope:Ke,itemType:kt,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Ke,low:ye,manifest:null,max:null,maxLength:ye,media:null,method:null,min:null,minLength:ye,multiple:Ke,muted:Ke,name:null,nonce:null,noModule:Ke,noValidate:Ke,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:Ke,optimum:ye,pattern:null,ping:kt,placeholder:null,playsInline:Ke,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Ke,referrerPolicy:null,rel:kt,required:Ke,reversed:Ke,rows:ye,rowSpan:ye,sandbox:kt,scope:null,scoped:Ke,seamless:Ke,selected:Ke,shadowRootClonable:Ke,shadowRootCustomElementRegistry:Ke,shadowRootDelegatesFocus:Ke,shadowRootMode:null,shadowRootSerializable:Ke,shape:null,size:ye,sizes:null,slot:null,span:ye,spellCheck:sn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:ye,step:null,style:null,tabIndex:ye,target:null,title:null,translate:null,type:null,typeMustMatch:Ke,useMap:null,value:sn,width:ye,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:kt,axis:null,background:null,bgColor:null,border:ye,borderColor:null,bottomMargin:ye,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Ke,declare:Ke,event:null,face:null,frame:null,frameBorder:null,hSpace:ye,leftMargin:ye,link:null,longDesc:null,lowSrc:null,marginHeight:ye,marginWidth:ye,noResize:Ke,noHref:Ke,noShade:Ke,noWrap:Ke,object:null,profile:null,prompt:null,rev:null,rightMargin:ye,rules:null,scheme:null,scrolling:sn,standby:null,summary:null,text:null,topMargin:ye,valueType:null,version:null,vAlign:null,vLink:null,vSpace:ye,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Ke,disablePictureInPicture:Ke,disableRemotePlayback:Ke,exportParts:Bs,part:kt,prefix:null,property:null,results:ye,security:null,unselectable:null},space:"html",transform:ty}),SC=$i({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",maskType:"mask-type",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:ra,accentHeight:ye,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:ye,amplitude:ye,arabicForm:null,ascent:ye,attributeName:null,attributeType:null,azimuth:ye,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:ye,by:null,calcMode:null,capHeight:ye,className:kt,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:ye,diffuseConstant:ye,direction:null,display:null,dur:null,divisor:ye,dominantBaseline:null,download:Ke,dx:null,dy:null,edgeMode:null,editable:null,elevation:ye,enableBackground:null,end:null,event:null,exponent:ye,externalResourcesRequired:null,fill:null,fillOpacity:ye,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:Bs,g2:Bs,glyphName:Bs,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:ye,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:ye,horizOriginX:ye,horizOriginY:ye,id:null,ideographic:ye,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:ye,k:ye,k1:ye,k2:ye,k3:ye,k4:ye,kernelMatrix:ra,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:ye,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:ye,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:ye,overlineThickness:ye,paintOrder:null,panose1:null,path:null,pathLength:ye,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:kt,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:ye,pointsAtY:ye,pointsAtZ:ye,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ra,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ra,rev:ra,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ra,requiredFeatures:ra,requiredFonts:ra,requiredFormats:ra,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:ye,specularExponent:ye,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:ye,strikethroughThickness:ye,string:null,stroke:null,strokeDashArray:ra,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:ye,strokeOpacity:ye,strokeWidth:null,style:null,surfaceScale:ye,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ra,tabIndex:ye,tableValues:null,target:null,targetX:ye,targetY:ye,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ra,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:ye,underlineThickness:ye,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:ye,values:null,vAlphabetic:ye,vMathematical:ye,vectorEffect:null,vHanging:ye,vIdeographic:ye,version:null,vertAdvY:ye,vertOriginX:ye,vertOriginY:ye,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:ye,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:ey}),ny=$i({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()}}),ay=$i({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:ty}),ry=$i({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),vC={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"},AC=/[A-Z]/g,hx=/-[a-z]/g,CC=/^data[-\w.:]+$/i;function Uc(e,t){const a=go(t);let s=t,l=Kn;if(a in e.normal)return e.property[e.normal[a]];if(a.length>4&&a.slice(0,4)==="data"&&CC.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(hx,kC);s="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!hx.test(o)){let d=o.replace(AC,wC);d.charAt(0)!=="-"&&(d="-"+d),t="data"+d}}l=Ah}return new l(s,t)}function wC(e){return"-"+e.toLowerCase()}function kC(e){return e.charAt(1).toUpperCase()}const No=WE([JE,NC,ny,ay,ry],"html"),us=WE([JE,SC,ny,ay,ry],"svg");function px(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function sy(e){return e.join(" ").trim()}var Ri={},dm,gx;function RC(){if(gx)return dm;gx=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,a=/^\s*/,s=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,l=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,d=/^[;\s]*/,f=/^\s+|\s+$/g,h=`
403
403
  `,m="/",x="*",b="",y="comment",T="declaration";function N(C,v){if(typeof C!="string")throw new TypeError("First argument must be a string");if(!C)return[];v=v||{};var M=1,k=1;function q(Z){var te=Z.match(t);te&&(M+=te.length);var V=Z.lastIndexOf(h);k=~V?Z.length-V:k+Z.length}function Q(){var Z={line:M,column:k};return function(te){return te.position=new D(Z),se(),te}}function D(Z){this.start=Z,this.end={line:M,column:k},this.source=v.source}D.prototype.content=C;function L(Z){var te=new Error(v.source+":"+M+":"+k+": "+Z);if(te.reason=Z,te.filename=v.source,te.line=M,te.column=k,te.source=C,!v.silent)throw te}function K(Z){var te=Z.exec(C);if(te){var V=te[0];return q(V),C=C.slice(V.length),te}}function se(){K(a)}function B(Z){var te;for(Z=Z||[];te=U();)te!==!1&&Z.push(te);return Z}function U(){var Z=Q();if(!(m!=C.charAt(0)||x!=C.charAt(1))){for(var te=2;b!=C.charAt(te)&&(x!=C.charAt(te)||m!=C.charAt(te+1));)++te;if(te+=2,b===C.charAt(te-1))return L("End of comment missing");var V=C.slice(2,te-2);return k+=2,q(V),C=C.slice(te),k+=2,Z({type:y,comment:V})}}function ee(){var Z=Q(),te=K(s);if(te){if(U(),!K(l))return L("property missing ':'");var V=K(o),$=Z({type:T,property:S(te[0].replace(e,b)),value:V?S(V[0].replace(e,b)):b});return K(d),$}}function ie(){var Z=[];B(Z);for(var te;te=ee();)te!==!1&&(Z.push(te),B(Z));return Z}return se(),ie()}function S(C){return C?C.replace(f,b):b}return dm=N,dm}var bx;function OC(){if(bx)return Ri;bx=1;var e=Ri&&Ri.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.default=a;const t=e(RC());function a(s,l){let o=null;if(!s||typeof s!="string")return o;const d=(0,t.default)(s),f=typeof l=="function";return d.forEach(h=>{if(h.type!=="declaration")return;const{property:m,value:x}=h;f?l(m,x,h):x&&(o=o||{},o[m]=x)}),o}return Ri}var Gl={},xx;function IC(){if(xx)return Gl;xx=1,Object.defineProperty(Gl,"__esModule",{value:!0}),Gl.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,a=/^[^-]+$/,s=/^-(webkit|moz|ms|o|khtml)-/,l=/^-(ms)-/,o=function(m){return!m||a.test(m)||e.test(m)},d=function(m,x){return x.toUpperCase()},f=function(m,x){return"".concat(x,"-")},h=function(m,x){return x===void 0&&(x={}),o(m)?m:(m=m.toLowerCase(),x.reactCompat?m=m.replace(l,f):m=m.replace(s,f),m.replace(t,d))};return Gl.camelCase=h,Gl}var Kl,Ex;function MC(){if(Ex)return Kl;Ex=1;var e=Kl&&Kl.__importDefault||function(l){return l&&l.__esModule?l:{default:l}},t=e(OC()),a=IC();function s(l,o){var d={};return!l||typeof l!="string"||(0,t.default)(l,function(f,h){f&&h&&(d[(0,a.camelCase)(f,o)]=h)}),d}return s.default=s,Kl=s,Kl}var DC=MC();const LC=kc(DC),Hc=iy("end"),Qa=iy("start");function iy(e){return t;function t(a){const s=a&&a.position&&a.position[e]||{};if(typeof s.line=="number"&&s.line>0&&typeof s.column=="number"&&s.column>0)return{line:s.line,column:s.column,offset:typeof s.offset=="number"&&s.offset>-1?s.offset:void 0}}}function jC(e){const t=Qa(e),a=Hc(e);if(t&&a)return{start:t,end:a}}function to(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?yx(e.position):"start"in e||"end"in e?yx(e):"line"in e||"column"in e?Ym(e):""}function Ym(e){return Tx(e&&e.line)+":"+Tx(e&&e.column)}function yx(e){return Ym(e&&e.start)+"-"+Ym(e&&e.end)}function Tx(e){return e&&typeof e=="number"?e:1}class vn extends Error{constructor(t,a,s){super(),typeof a=="string"&&(s=a,a=void 0);let l="",o={},d=!1;if(a&&("line"in a&&"column"in a?o={place:a}:"start"in a&&"end"in a?o={place:a}:"type"in a?o={ancestors:[a],place:a.position}:o={...a}),typeof t=="string"?l=t:!o.cause&&t&&(d=!0,l=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof s=="string"){const h=s.indexOf(":");h===-1?o.ruleId=s:(o.source=s.slice(0,h),o.ruleId=s.slice(h+1))}if(!o.place&&o.ancestors&&o.ancestors){const h=o.ancestors[o.ancestors.length-1];h&&(o.place=h.position)}const f=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=f?f.column:void 0,this.fatal=void 0,this.file="",this.message=l,this.line=f?f.line:void 0,this.name=to(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=d&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}vn.prototype.file="";vn.prototype.name="";vn.prototype.reason="";vn.prototype.message="";vn.prototype.stack="";vn.prototype.column=void 0;vn.prototype.line=void 0;vn.prototype.ancestors=void 0;vn.prototype.cause=void 0;vn.prototype.fatal=void 0;vn.prototype.place=void 0;vn.prototype.ruleId=void 0;vn.prototype.source=void 0;const Ch={}.hasOwnProperty,BC=new Map,PC=/[A-Z]/g,UC=new Set(["table","tbody","thead","tfoot","tr"]),HC=new Set(["td","th"]),ly="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function FC(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const a=t.filePath||void 0;let s;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");s=QC(a,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");s=VC(a,t.jsx,t.jsxs)}const l={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:s,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:a,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?us:No,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=oy(l,e,void 0);return o&&typeof o!="string"?o:l.create(e,l.Fragment,{children:o||void 0},void 0)}function oy(e,t,a){if(t.type==="element")return zC(e,t,a);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return qC(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return $C(e,t,a);if(t.type==="mdxjsEsm")return YC(e,t);if(t.type==="root")return GC(e,t,a);if(t.type==="text")return KC(e,t)}function zC(e,t,a){const s=e.schema;let l=s;t.tagName.toLowerCase()==="svg"&&s.space==="html"&&(l=us,e.schema=l),e.ancestors.push(t);const o=cy(e,t.tagName,!1),d=XC(e,t);let f=kh(e,t);return UC.has(t.tagName)&&(f=f.filter(function(h){return typeof h=="string"?!TC(h):!0})),uy(e,d,o,t),wh(d,f),e.ancestors.pop(),e.schema=s,e.create(t,o,d,a)}function qC(e,t){if(t.data&&t.data.estree&&e.evaluater){const s=t.data.estree.body[0];return s.type,e.evaluater.evaluateExpression(s.expression)}bo(e,t.position)}function YC(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);bo(e,t.position)}function $C(e,t,a){const s=e.schema;let l=s;t.name==="svg"&&s.space==="html"&&(l=us,e.schema=l),e.ancestors.push(t);const o=t.name===null?e.Fragment:cy(e,t.name,!0),d=ZC(e,t),f=kh(e,t);return uy(e,d,o,t),wh(d,f),e.ancestors.pop(),e.schema=s,e.create(t,o,d,a)}function GC(e,t,a){const s={};return wh(s,kh(e,t)),e.create(t,e.Fragment,s,a)}function KC(e,t){return t.value}function uy(e,t,a,s){typeof a!="string"&&a!==e.Fragment&&e.passNode&&(t.node=s)}function wh(e,t){if(t.length>0){const a=t.length>1?t:t[0];a&&(e.children=a)}}function VC(e,t,a){return s;function s(l,o,d,f){const m=Array.isArray(d.children)?a:t;return f?m(o,d,f):m(o,d)}}function QC(e,t){return a;function a(s,l,o,d){const f=Array.isArray(o.children),h=Qa(s);return t(l,o,d,f,{columnNumber:h?h.column-1:void 0,fileName:e,lineNumber:h?h.line:void 0},void 0)}}function XC(e,t){const a={};let s,l;for(l in t.properties)if(l!=="children"&&Ch.call(t.properties,l)){const o=WC(e,l,t.properties[l]);if(o){const[d,f]=o;e.tableCellAlignToStyle&&d==="align"&&typeof f=="string"&&HC.has(t.tagName)?s=f:a[d]=f}}if(s){const o=a.style||(a.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=s}return a}function ZC(e,t){const a={};for(const s of t.attributes)if(s.type==="mdxJsxExpressionAttribute")if(s.data&&s.data.estree&&e.evaluater){const o=s.data.estree.body[0];o.type;const d=o.expression;d.type;const f=d.properties[0];f.type,Object.assign(a,e.evaluater.evaluateExpression(f.argument))}else bo(e,t.position);else{const l=s.name;let o;if(s.value&&typeof s.value=="object")if(s.value.data&&s.value.data.estree&&e.evaluater){const f=s.value.data.estree.body[0];f.type,o=e.evaluater.evaluateExpression(f.expression)}else bo(e,t.position);else o=s.value===null?!0:s.value;a[l]=o}return a}function kh(e,t){const a=[];let s=-1;const l=e.passKeys?new Map:BC;for(;++s<t.children.length;){const o=t.children[s];let d;if(e.passKeys){const h=o.type==="element"?o.tagName:o.type==="mdxJsxFlowElement"||o.type==="mdxJsxTextElement"?o.name:void 0;if(h){const m=l.get(h)||0;d=h+"-"+m,l.set(h,m+1)}}const f=oy(e,o,d);f!==void 0&&a.push(f)}return a}function WC(e,t,a){const s=Uc(e.schema,t);if(!(a==null||typeof a=="number"&&Number.isNaN(a))){if(Array.isArray(a)&&(a=s.commaSeparated?ZE(a):sy(a)),s.property==="style"){let l=typeof a=="object"?a:JC(e,String(a));return e.stylePropertyNameCase==="css"&&(l=ew(l)),["style",l]}return[e.elementAttributeNameCase==="react"&&s.space?vC[s.property]||s.property:s.attribute,a]}}function JC(e,t){try{return LC(t,{reactCompat:!0})}catch(a){if(e.ignoreInvalidStyle)return{};const s=a,l=new vn("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:s,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw l.file=e.filePath||void 0,l.url=ly+"#cannot-parse-style-attribute",l}}function cy(e,t,a){let s;if(!a)s={type:"Literal",value:t};else if(t.includes(".")){const l=t.split(".");let o=-1,d;for(;++o<l.length;){const f=dx(l[o])?{type:"Identifier",name:l[o]}:{type:"Literal",value:l[o]};d=d?{type:"MemberExpression",object:d,property:f,computed:!!(o&&f.type==="Literal"),optional:!1}:f}s=d}else s=dx(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(s.type==="Literal"){const l=s.value;return Ch.call(e.components,l)?e.components[l]:l}if(e.evaluater)return e.evaluater.evaluateExpression(s);bo(e)}function bo(e,t){const a=new vn("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw a.file=e.filePath||void 0,a.url=ly+"#cannot-handle-mdx-estrees-without-createevaluater",a}function ew(e){const t={};let a;for(a in e)Ch.call(e,a)&&(t[tw(a)]=e[a]);return t}function tw(e){let t=e.replace(PC,nw);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function nw(e){return"-"+e.toLowerCase()}const fm={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"]},aw={};function Rh(e,t){const a=aw,s=typeof a.includeImageAlt=="boolean"?a.includeImageAlt:!0,l=typeof a.includeHtml=="boolean"?a.includeHtml:!0;return dy(e,s,l)}function dy(e,t,a){if(rw(e)){if("value"in e)return e.type==="html"&&!a?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return _x(e.children,t,a)}return Array.isArray(e)?_x(e,t,a):""}function _x(e,t,a){const s=[];let l=-1;for(;++l<e.length;)s[l]=dy(e[l],t,a);return s.join("")}function rw(e){return!!(e&&typeof e=="object")}const Nx=document.createElement("i");function Oh(e){const t="&"+e+";";Nx.innerHTML=t;const a=Nx.textContent;return a.charCodeAt(a.length-1)===59&&e!=="semi"||a===t?!1:a}function sa(e,t,a,s){const l=e.length;let o=0,d;if(t<0?t=-t>l?0:l+t:t=t>l?l:t,a=a>0?a:0,s.length<1e4)d=Array.from(s),d.unshift(t,a),e.splice(...d);else for(a&&e.splice(t,a);o<s.length;)d=s.slice(o,o+1e4),d.unshift(t,0),e.splice(...d),o+=1e4,t+=1e4}function ya(e,t){return e.length>0?(sa(e,e.length,0,t),e):t}const Sx={}.hasOwnProperty;function fy(e){const t={};let a=-1;for(;++a<e.length;)sw(t,e[a]);return t}function sw(e,t){let a;for(a in t){const l=(Sx.call(e,a)?e[a]:void 0)||(e[a]={}),o=t[a];let d;if(o)for(d in o){Sx.call(l,d)||(l[d]=[]);const f=o[d];iw(l[d],Array.isArray(f)?f:f?[f]:[])}}}function iw(e,t){let a=-1;const s=[];for(;++a<t.length;)(t[a].add==="after"?e:s).push(t[a]);sa(e,0,0,s)}function my(e,t){const a=Number.parseInt(e,t);return a<9||a===11||a>13&&a<32||a>126&&a<160||a>55295&&a<57344||a>64975&&a<65008||(a&65535)===65535||(a&65535)===65534||a>1114111?"�":String.fromCodePoint(a)}function Ia(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const In=cs(/[A-Za-z]/),Sn=cs(/[\dA-Za-z]/),lw=cs(/[#-'*+\--9=?A-Z^-~]/);function yc(e){return e!==null&&(e<32||e===127)}const $m=cs(/\d/),ow=cs(/[\dA-Fa-f]/),uw=cs(/[!-/:-@[-`{-~]/);function He(e){return e!==null&&e<-2}function Rt(e){return e!==null&&(e<0||e===32)}function rt(e){return e===-2||e===-1||e===32}const Fc=cs(new RegExp("\\p{P}|\\p{S}","u")),Fs=cs(/\s/);function cs(e){return t;function t(a){return a!==null&&a>-1&&e.test(String.fromCharCode(a))}}function Gi(e){const t=[];let a=-1,s=0,l=0;for(;++a<e.length;){const o=e.charCodeAt(a);let d="";if(o===37&&Sn(e.charCodeAt(a+1))&&Sn(e.charCodeAt(a+2)))l=2;else if(o<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(o))||(d=String.fromCharCode(o));else if(o>55295&&o<57344){const f=e.charCodeAt(a+1);o<56320&&f>56319&&f<57344?(d=String.fromCharCode(o,f),l=1):d="�"}else d=String.fromCharCode(o);d&&(t.push(e.slice(s,a),encodeURIComponent(d)),s=a+l+1,d=""),l&&(a+=l,l=0)}return t.join("")+e.slice(s)}function ct(e,t,a,s){const l=s?s-1:Number.POSITIVE_INFINITY;let o=0;return d;function d(h){return rt(h)?(e.enter(a),f(h)):t(h)}function f(h){return rt(h)&&o++<l?(e.consume(h),f):(e.exit(a),t(h))}}const cw={tokenize:dw};function dw(e){const t=e.attempt(this.parser.constructs.contentInitial,s,l);let a;return t;function s(f){if(f===null){e.consume(f);return}return e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),ct(e,t,"linePrefix")}function l(f){return e.enter("paragraph"),o(f)}function o(f){const h=e.enter("chunkText",{contentType:"text",previous:a});return a&&(a.next=h),a=h,d(f)}function d(f){if(f===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(f);return}return He(f)?(e.consume(f),e.exit("chunkText"),o):(e.consume(f),d)}}const fw={tokenize:mw},vx={tokenize:hw};function mw(e){const t=this,a=[];let s=0,l,o,d;return f;function f(k){if(s<a.length){const q=a[s];return t.containerState=q[1],e.attempt(q[0].continuation,h,m)(k)}return m(k)}function h(k){if(s++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,l&&M();const q=t.events.length;let Q=q,D;for(;Q--;)if(t.events[Q][0]==="exit"&&t.events[Q][1].type==="chunkFlow"){D=t.events[Q][1].end;break}v(s);let L=q;for(;L<t.events.length;)t.events[L][1].end={...D},L++;return sa(t.events,Q+1,0,t.events.slice(q)),t.events.length=L,m(k)}return f(k)}function m(k){if(s===a.length){if(!l)return y(k);if(l.currentConstruct&&l.currentConstruct.concrete)return N(k);t.interrupt=!!(l.currentConstruct&&!l._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(vx,x,b)(k)}function x(k){return l&&M(),v(s),y(k)}function b(k){return t.parser.lazy[t.now().line]=s!==a.length,d=t.now().offset,N(k)}function y(k){return t.containerState={},e.attempt(vx,T,N)(k)}function T(k){return s++,a.push([t.currentConstruct,t.containerState]),y(k)}function N(k){if(k===null){l&&M(),v(0),e.consume(k);return}return l=l||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:l,contentType:"flow",previous:o}),S(k)}function S(k){if(k===null){C(e.exit("chunkFlow"),!0),v(0),e.consume(k);return}return He(k)?(e.consume(k),C(e.exit("chunkFlow")),s=0,t.interrupt=void 0,f):(e.consume(k),S)}function C(k,q){const Q=t.sliceStream(k);if(q&&Q.push(null),k.previous=o,o&&(o.next=k),o=k,l.defineSkip(k.start),l.write(Q),t.parser.lazy[k.start.line]){let D=l.events.length;for(;D--;)if(l.events[D][1].start.offset<d&&(!l.events[D][1].end||l.events[D][1].end.offset>d))return;const L=t.events.length;let K=L,se,B;for(;K--;)if(t.events[K][0]==="exit"&&t.events[K][1].type==="chunkFlow"){if(se){B=t.events[K][1].end;break}se=!0}for(v(s),D=L;D<t.events.length;)t.events[D][1].end={...B},D++;sa(t.events,K+1,0,t.events.slice(L)),t.events.length=D}}function v(k){let q=a.length;for(;q-- >k;){const Q=a[q];t.containerState=Q[1],Q[0].exit.call(t,e)}a.length=k}function M(){l.write([null]),o=void 0,l=void 0,t.containerState._closeFlow=void 0}}function hw(e,t,a){return ct(e,e.attempt(this.parser.constructs.document,t,a),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Pi(e){if(e===null||Rt(e)||Fs(e))return 1;if(Fc(e))return 2}function zc(e,t,a){const s=[];let l=-1;for(;++l<e.length;){const o=e[l].resolveAll;o&&!s.includes(o)&&(t=o(t,a),s.push(o))}return t}const Gm={name:"attention",resolveAll:pw,tokenize:gw};function pw(e,t){let a=-1,s,l,o,d,f,h,m,x;for(;++a<e.length;)if(e[a][0]==="enter"&&e[a][1].type==="attentionSequence"&&e[a][1]._close){for(s=a;s--;)if(e[s][0]==="exit"&&e[s][1].type==="attentionSequence"&&e[s][1]._open&&t.sliceSerialize(e[s][1]).charCodeAt(0)===t.sliceSerialize(e[a][1]).charCodeAt(0)){if((e[s][1]._close||e[a][1]._open)&&(e[a][1].end.offset-e[a][1].start.offset)%3&&!((e[s][1].end.offset-e[s][1].start.offset+e[a][1].end.offset-e[a][1].start.offset)%3))continue;h=e[s][1].end.offset-e[s][1].start.offset>1&&e[a][1].end.offset-e[a][1].start.offset>1?2:1;const b={...e[s][1].end},y={...e[a][1].start};Ax(b,-h),Ax(y,h),d={type:h>1?"strongSequence":"emphasisSequence",start:b,end:{...e[s][1].end}},f={type:h>1?"strongSequence":"emphasisSequence",start:{...e[a][1].start},end:y},o={type:h>1?"strongText":"emphasisText",start:{...e[s][1].end},end:{...e[a][1].start}},l={type:h>1?"strong":"emphasis",start:{...d.start},end:{...f.end}},e[s][1].end={...d.start},e[a][1].start={...f.end},m=[],e[s][1].end.offset-e[s][1].start.offset&&(m=ya(m,[["enter",e[s][1],t],["exit",e[s][1],t]])),m=ya(m,[["enter",l,t],["enter",d,t],["exit",d,t],["enter",o,t]]),m=ya(m,zc(t.parser.constructs.insideSpan.null,e.slice(s+1,a),t)),m=ya(m,[["exit",o,t],["enter",f,t],["exit",f,t],["exit",l,t]]),e[a][1].end.offset-e[a][1].start.offset?(x=2,m=ya(m,[["enter",e[a][1],t],["exit",e[a][1],t]])):x=0,sa(e,s-1,a-s+3,m),a=s+m.length-x-2;break}}for(a=-1;++a<e.length;)e[a][1].type==="attentionSequence"&&(e[a][1].type="data");return e}function gw(e,t){const a=this.parser.constructs.attentionMarkers.null,s=this.previous,l=Pi(s);let o;return d;function d(h){return o=h,e.enter("attentionSequence"),f(h)}function f(h){if(h===o)return e.consume(h),f;const m=e.exit("attentionSequence"),x=Pi(h),b=!x||x===2&&l||a.includes(h),y=!l||l===2&&x||a.includes(s);return m._open=!!(o===42?b:b&&(l||!y)),m._close=!!(o===42?y:y&&(x||!b)),t(h)}}function Ax(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const bw={name:"autolink",tokenize:xw};function xw(e,t,a){let s=0;return l;function l(T){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(T),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),o}function o(T){return In(T)?(e.consume(T),d):T===64?a(T):m(T)}function d(T){return T===43||T===45||T===46||Sn(T)?(s=1,f(T)):m(T)}function f(T){return T===58?(e.consume(T),s=0,h):(T===43||T===45||T===46||Sn(T))&&s++<32?(e.consume(T),f):(s=0,m(T))}function h(T){return T===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(T),e.exit("autolinkMarker"),e.exit("autolink"),t):T===null||T===32||T===60||yc(T)?a(T):(e.consume(T),h)}function m(T){return T===64?(e.consume(T),x):lw(T)?(e.consume(T),m):a(T)}function x(T){return Sn(T)?b(T):a(T)}function b(T){return T===46?(e.consume(T),s=0,x):T===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(T),e.exit("autolinkMarker"),e.exit("autolink"),t):y(T)}function y(T){if((T===45||Sn(T))&&s++<63){const N=T===45?y:b;return e.consume(T),N}return a(T)}}const So={partial:!0,tokenize:Ew};function Ew(e,t,a){return s;function s(o){return rt(o)?ct(e,l,"linePrefix")(o):l(o)}function l(o){return o===null||He(o)?t(o):a(o)}}const hy={continuation:{tokenize:Tw},exit:_w,name:"blockQuote",tokenize:yw};function yw(e,t,a){const s=this;return l;function l(d){if(d===62){const f=s.containerState;return f.open||(e.enter("blockQuote",{_container:!0}),f.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(d),e.exit("blockQuoteMarker"),o}return a(d)}function o(d){return rt(d)?(e.enter("blockQuotePrefixWhitespace"),e.consume(d),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(d))}}function Tw(e,t,a){const s=this;return l;function l(d){return rt(d)?ct(e,o,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d):o(d)}function o(d){return e.attempt(hy,t,a)(d)}}function _w(e){e.exit("blockQuote")}const py={name:"characterEscape",tokenize:Nw};function Nw(e,t,a){return s;function s(o){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(o),e.exit("escapeMarker"),l}function l(o){return uw(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):a(o)}}const gy={name:"characterReference",tokenize:Sw};function Sw(e,t,a){const s=this;let l=0,o,d;return f;function f(b){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(b),e.exit("characterReferenceMarker"),h}function h(b){return b===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(b),e.exit("characterReferenceMarkerNumeric"),m):(e.enter("characterReferenceValue"),o=31,d=Sn,x(b))}function m(b){return b===88||b===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(b),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,d=ow,x):(e.enter("characterReferenceValue"),o=7,d=$m,x(b))}function x(b){if(b===59&&l){const y=e.exit("characterReferenceValue");return d===Sn&&!Oh(s.sliceSerialize(y))?a(b):(e.enter("characterReferenceMarker"),e.consume(b),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return d(b)&&l++<o?(e.consume(b),x):a(b)}}const Cx={partial:!0,tokenize:Aw},wx={concrete:!0,name:"codeFenced",tokenize:vw};function vw(e,t,a){const s=this,l={partial:!0,tokenize:Q};let o=0,d=0,f;return h;function h(D){return m(D)}function m(D){const L=s.events[s.events.length-1];return o=L&&L[1].type==="linePrefix"?L[2].sliceSerialize(L[1],!0).length:0,f=D,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),x(D)}function x(D){return D===f?(d++,e.consume(D),x):d<3?a(D):(e.exit("codeFencedFenceSequence"),rt(D)?ct(e,b,"whitespace")(D):b(D))}function b(D){return D===null||He(D)?(e.exit("codeFencedFence"),s.interrupt?t(D):e.check(Cx,S,q)(D)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),y(D))}function y(D){return D===null||He(D)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),b(D)):rt(D)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),ct(e,T,"whitespace")(D)):D===96&&D===f?a(D):(e.consume(D),y)}function T(D){return D===null||He(D)?b(D):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),N(D))}function N(D){return D===null||He(D)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),b(D)):D===96&&D===f?a(D):(e.consume(D),N)}function S(D){return e.attempt(l,q,C)(D)}function C(D){return e.enter("lineEnding"),e.consume(D),e.exit("lineEnding"),v}function v(D){return o>0&&rt(D)?ct(e,M,"linePrefix",o+1)(D):M(D)}function M(D){return D===null||He(D)?e.check(Cx,S,q)(D):(e.enter("codeFlowValue"),k(D))}function k(D){return D===null||He(D)?(e.exit("codeFlowValue"),M(D)):(e.consume(D),k)}function q(D){return e.exit("codeFenced"),t(D)}function Q(D,L,K){let se=0;return B;function B(te){return D.enter("lineEnding"),D.consume(te),D.exit("lineEnding"),U}function U(te){return D.enter("codeFencedFence"),rt(te)?ct(D,ee,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(te):ee(te)}function ee(te){return te===f?(D.enter("codeFencedFenceSequence"),ie(te)):K(te)}function ie(te){return te===f?(se++,D.consume(te),ie):se>=d?(D.exit("codeFencedFenceSequence"),rt(te)?ct(D,Z,"whitespace")(te):Z(te)):K(te)}function Z(te){return te===null||He(te)?(D.exit("codeFencedFence"),L(te)):K(te)}}}function Aw(e,t,a){const s=this;return l;function l(d){return d===null?a(d):(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),o)}function o(d){return s.parser.lazy[s.now().line]?a(d):t(d)}}const mm={name:"codeIndented",tokenize:ww},Cw={partial:!0,tokenize:kw};function ww(e,t,a){const s=this;return l;function l(m){return e.enter("codeIndented"),ct(e,o,"linePrefix",5)(m)}function o(m){const x=s.events[s.events.length-1];return x&&x[1].type==="linePrefix"&&x[2].sliceSerialize(x[1],!0).length>=4?d(m):a(m)}function d(m){return m===null?h(m):He(m)?e.attempt(Cw,d,h)(m):(e.enter("codeFlowValue"),f(m))}function f(m){return m===null||He(m)?(e.exit("codeFlowValue"),d(m)):(e.consume(m),f)}function h(m){return e.exit("codeIndented"),t(m)}}function kw(e,t,a){const s=this;return l;function l(d){return s.parser.lazy[s.now().line]?a(d):He(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),l):ct(e,o,"linePrefix",5)(d)}function o(d){const f=s.events[s.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?t(d):He(d)?l(d):a(d)}}const Rw={name:"codeText",previous:Iw,resolve:Ow,tokenize:Mw};function Ow(e){let t=e.length-4,a=3,s,l;if((e[a][1].type==="lineEnding"||e[a][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(s=a;++s<t;)if(e[s][1].type==="codeTextData"){e[a][1].type="codeTextPadding",e[t][1].type="codeTextPadding",a+=2,t-=2;break}}for(s=a-1,t++;++s<=t;)l===void 0?s!==t&&e[s][1].type!=="lineEnding"&&(l=s):(s===t||e[s][1].type==="lineEnding")&&(e[l][1].type="codeTextData",s!==l+2&&(e[l][1].end=e[s-1][1].end,e.splice(l+2,s-l-2),t-=s-l-2,s=l+2),l=void 0);return e}function Iw(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Mw(e,t,a){let s=0,l,o;return d;function d(b){return e.enter("codeText"),e.enter("codeTextSequence"),f(b)}function f(b){return b===96?(e.consume(b),s++,f):(e.exit("codeTextSequence"),h(b))}function h(b){return b===null?a(b):b===32?(e.enter("space"),e.consume(b),e.exit("space"),h):b===96?(o=e.enter("codeTextSequence"),l=0,x(b)):He(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),h):(e.enter("codeTextData"),m(b))}function m(b){return b===null||b===32||b===96||He(b)?(e.exit("codeTextData"),h(b)):(e.consume(b),m)}function x(b){return b===96?(e.consume(b),l++,x):l===s?(e.exit("codeTextSequence"),e.exit("codeText"),t(b)):(o.type="codeTextData",m(b))}}class Dw{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,a){const s=a??Number.POSITIVE_INFINITY;return s<this.left.length?this.left.slice(t,s):t>this.left.length?this.right.slice(this.right.length-s+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-s+this.left.length).reverse())}splice(t,a,s){const l=a||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-l,Number.POSITIVE_INFINITY);return s&&Vl(this.left,s),o.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),Vl(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Vl(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 a=this.left.splice(t,Number.POSITIVE_INFINITY);Vl(this.right,a.reverse())}else{const a=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Vl(this.left,a.reverse())}}}function Vl(e,t){let a=0;if(t.length<1e4)e.push(...t);else for(;a<t.length;)e.push(...t.slice(a,a+1e4)),a+=1e4}function by(e){const t={};let a=-1,s,l,o,d,f,h,m;const x=new Dw(e);for(;++a<x.length;){for(;a in t;)a=t[a];if(s=x.get(a),a&&s[1].type==="chunkFlow"&&x.get(a-1)[1].type==="listItemPrefix"&&(h=s[1]._tokenizer.events,o=0,o<h.length&&h[o][1].type==="lineEndingBlank"&&(o+=2),o<h.length&&h[o][1].type==="content"))for(;++o<h.length&&h[o][1].type!=="content";)h[o][1].type==="chunkText"&&(h[o][1]._isInFirstContentOfListItem=!0,o++);if(s[0]==="enter")s[1].contentType&&(Object.assign(t,Lw(x,a)),a=t[a],m=!0);else if(s[1]._container){for(o=a,l=void 0;o--;)if(d=x.get(o),d[1].type==="lineEnding"||d[1].type==="lineEndingBlank")d[0]==="enter"&&(l&&(x.get(l)[1].type="lineEndingBlank"),d[1].type="lineEnding",l=o);else if(!(d[1].type==="linePrefix"||d[1].type==="listItemIndent"))break;l&&(s[1].end={...x.get(l)[1].start},f=x.slice(l,a),f.unshift(s),x.splice(l,a-l+1,f))}}return sa(e,0,Number.POSITIVE_INFINITY,x.slice(0)),!m}function Lw(e,t){const a=e.get(t)[1],s=e.get(t)[2];let l=t-1;const o=[];let d=a._tokenizer;d||(d=s.parser[a.contentType](a.start),a._contentTypeTextTrailing&&(d._contentTypeTextTrailing=!0));const f=d.events,h=[],m={};let x,b,y=-1,T=a,N=0,S=0;const C=[S];for(;T;){for(;e.get(++l)[1]!==T;);o.push(l),T._tokenizer||(x=s.sliceStream(T),T.next||x.push(null),b&&d.defineSkip(T.start),T._isInFirstContentOfListItem&&(d._gfmTasklistFirstContentOfListItem=!0),d.write(x),T._isInFirstContentOfListItem&&(d._gfmTasklistFirstContentOfListItem=void 0)),b=T,T=T.next}for(T=a;++y<f.length;)f[y][0]==="exit"&&f[y-1][0]==="enter"&&f[y][1].type===f[y-1][1].type&&f[y][1].start.line!==f[y][1].end.line&&(S=y+1,C.push(S),T._tokenizer=void 0,T.previous=void 0,T=T.next);for(d.events=[],T?(T._tokenizer=void 0,T.previous=void 0):C.pop(),y=C.length;y--;){const v=f.slice(C[y],C[y+1]),M=o.pop();h.push([M,M+v.length-1]),e.splice(M,2,v)}for(h.reverse(),y=-1;++y<h.length;)m[N+h[y][0]]=N+h[y][1],N+=h[y][1]-h[y][0]-1;return m}const jw={resolve:Pw,tokenize:Uw},Bw={partial:!0,tokenize:Hw};function Pw(e){return by(e),e}function Uw(e,t){let a;return s;function s(f){return e.enter("content"),a=e.enter("chunkContent",{contentType:"content"}),l(f)}function l(f){return f===null?o(f):He(f)?e.check(Bw,d,o)(f):(e.consume(f),l)}function o(f){return e.exit("chunkContent"),e.exit("content"),t(f)}function d(f){return e.consume(f),e.exit("chunkContent"),a.next=e.enter("chunkContent",{contentType:"content",previous:a}),a=a.next,l}}function Hw(e,t,a){const s=this;return l;function l(d){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),ct(e,o,"linePrefix")}function o(d){if(d===null||He(d))return a(d);const f=s.events[s.events.length-1];return!s.parser.constructs.disable.null.includes("codeIndented")&&f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?t(d):e.interrupt(s.parser.constructs.flow,a,t)(d)}}function xy(e,t,a,s,l,o,d,f,h){const m=h||Number.POSITIVE_INFINITY;let x=0;return b;function b(v){return v===60?(e.enter(s),e.enter(l),e.enter(o),e.consume(v),e.exit(o),y):v===null||v===32||v===41||yc(v)?a(v):(e.enter(s),e.enter(d),e.enter(f),e.enter("chunkString",{contentType:"string"}),S(v))}function y(v){return v===62?(e.enter(o),e.consume(v),e.exit(o),e.exit(l),e.exit(s),t):(e.enter(f),e.enter("chunkString",{contentType:"string"}),T(v))}function T(v){return v===62?(e.exit("chunkString"),e.exit(f),y(v)):v===null||v===60||He(v)?a(v):(e.consume(v),v===92?N:T)}function N(v){return v===60||v===62||v===92?(e.consume(v),T):T(v)}function S(v){return!x&&(v===null||v===41||Rt(v))?(e.exit("chunkString"),e.exit(f),e.exit(d),e.exit(s),t(v)):x<m&&v===40?(e.consume(v),x++,S):v===41?(e.consume(v),x--,S):v===null||v===32||v===40||yc(v)?a(v):(e.consume(v),v===92?C:S)}function C(v){return v===40||v===41||v===92?(e.consume(v),S):S(v)}}function Ey(e,t,a,s,l,o){const d=this;let f=0,h;return m;function m(T){return e.enter(s),e.enter(l),e.consume(T),e.exit(l),e.enter(o),x}function x(T){return f>999||T===null||T===91||T===93&&!h||T===94&&!f&&"_hiddenFootnoteSupport"in d.parser.constructs?a(T):T===93?(e.exit(o),e.enter(l),e.consume(T),e.exit(l),e.exit(s),t):He(T)?(e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),x):(e.enter("chunkString",{contentType:"string"}),b(T))}function b(T){return T===null||T===91||T===93||He(T)||f++>999?(e.exit("chunkString"),x(T)):(e.consume(T),h||(h=!rt(T)),T===92?y:b)}function y(T){return T===91||T===92||T===93?(e.consume(T),f++,b):b(T)}}function yy(e,t,a,s,l,o){let d;return f;function f(y){return y===34||y===39||y===40?(e.enter(s),e.enter(l),e.consume(y),e.exit(l),d=y===40?41:y,h):a(y)}function h(y){return y===d?(e.enter(l),e.consume(y),e.exit(l),e.exit(s),t):(e.enter(o),m(y))}function m(y){return y===d?(e.exit(o),h(d)):y===null?a(y):He(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),ct(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),x(y))}function x(y){return y===d||y===null||He(y)?(e.exit("chunkString"),m(y)):(e.consume(y),y===92?b:x)}function b(y){return y===d||y===92?(e.consume(y),x):x(y)}}function no(e,t){let a;return s;function s(l){return He(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),a=!0,s):rt(l)?ct(e,s,a?"linePrefix":"lineSuffix")(l):t(l)}}const Fw={name:"definition",tokenize:qw},zw={partial:!0,tokenize:Yw};function qw(e,t,a){const s=this;let l;return o;function o(T){return e.enter("definition"),d(T)}function d(T){return Ey.call(s,e,f,a,"definitionLabel","definitionLabelMarker","definitionLabelString")(T)}function f(T){return l=Ia(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)),T===58?(e.enter("definitionMarker"),e.consume(T),e.exit("definitionMarker"),h):a(T)}function h(T){return Rt(T)?no(e,m)(T):m(T)}function m(T){return xy(e,x,a,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(T)}function x(T){return e.attempt(zw,b,b)(T)}function b(T){return rt(T)?ct(e,y,"whitespace")(T):y(T)}function y(T){return T===null||He(T)?(e.exit("definition"),s.parser.defined.push(l),t(T)):a(T)}}function Yw(e,t,a){return s;function s(f){return Rt(f)?no(e,l)(f):a(f)}function l(f){return yy(e,o,a,"definitionTitle","definitionTitleMarker","definitionTitleString")(f)}function o(f){return rt(f)?ct(e,d,"whitespace")(f):d(f)}function d(f){return f===null||He(f)?t(f):a(f)}}const $w={name:"hardBreakEscape",tokenize:Gw};function Gw(e,t,a){return s;function s(o){return e.enter("hardBreakEscape"),e.consume(o),l}function l(o){return He(o)?(e.exit("hardBreakEscape"),t(o)):a(o)}}const Kw={name:"headingAtx",resolve:Vw,tokenize:Qw};function Vw(e,t){let a=e.length-2,s=3,l,o;return e[s][1].type==="whitespace"&&(s+=2),a-2>s&&e[a][1].type==="whitespace"&&(a-=2),e[a][1].type==="atxHeadingSequence"&&(s===a-1||a-4>s&&e[a-2][1].type==="whitespace")&&(a-=s+1===a?2:4),a>s&&(l={type:"atxHeadingText",start:e[s][1].start,end:e[a][1].end},o={type:"chunkText",start:e[s][1].start,end:e[a][1].end,contentType:"text"},sa(e,s,a-s+1,[["enter",l,t],["enter",o,t],["exit",o,t],["exit",l,t]])),e}function Qw(e,t,a){let s=0;return l;function l(x){return e.enter("atxHeading"),o(x)}function o(x){return e.enter("atxHeadingSequence"),d(x)}function d(x){return x===35&&s++<6?(e.consume(x),d):x===null||Rt(x)?(e.exit("atxHeadingSequence"),f(x)):a(x)}function f(x){return x===35?(e.enter("atxHeadingSequence"),h(x)):x===null||He(x)?(e.exit("atxHeading"),t(x)):rt(x)?ct(e,f,"whitespace")(x):(e.enter("atxHeadingText"),m(x))}function h(x){return x===35?(e.consume(x),h):(e.exit("atxHeadingSequence"),f(x))}function m(x){return x===null||x===35||Rt(x)?(e.exit("atxHeadingText"),f(x)):(e.consume(x),m)}}const Xw=["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"],kx=["pre","script","style","textarea"],Zw={concrete:!0,name:"htmlFlow",resolveTo:ek,tokenize:tk},Ww={partial:!0,tokenize:ak},Jw={partial:!0,tokenize:nk};function ek(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 tk(e,t,a){const s=this;let l,o,d,f,h;return m;function m(O){return x(O)}function x(O){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(O),b}function b(O){return O===33?(e.consume(O),y):O===47?(e.consume(O),o=!0,S):O===63?(e.consume(O),l=3,s.interrupt?t:P):In(O)?(e.consume(O),d=String.fromCharCode(O),C):a(O)}function y(O){return O===45?(e.consume(O),l=2,T):O===91?(e.consume(O),l=5,f=0,N):In(O)?(e.consume(O),l=4,s.interrupt?t:P):a(O)}function T(O){return O===45?(e.consume(O),s.interrupt?t:P):a(O)}function N(O){const ge="CDATA[";return O===ge.charCodeAt(f++)?(e.consume(O),f===ge.length?s.interrupt?t:ee:N):a(O)}function S(O){return In(O)?(e.consume(O),d=String.fromCharCode(O),C):a(O)}function C(O){if(O===null||O===47||O===62||Rt(O)){const ge=O===47,ve=d.toLowerCase();return!ge&&!o&&kx.includes(ve)?(l=1,s.interrupt?t(O):ee(O)):Xw.includes(d.toLowerCase())?(l=6,ge?(e.consume(O),v):s.interrupt?t(O):ee(O)):(l=7,s.interrupt&&!s.parser.lazy[s.now().line]?a(O):o?M(O):k(O))}return O===45||Sn(O)?(e.consume(O),d+=String.fromCharCode(O),C):a(O)}function v(O){return O===62?(e.consume(O),s.interrupt?t:ee):a(O)}function M(O){return rt(O)?(e.consume(O),M):B(O)}function k(O){return O===47?(e.consume(O),B):O===58||O===95||In(O)?(e.consume(O),q):rt(O)?(e.consume(O),k):B(O)}function q(O){return O===45||O===46||O===58||O===95||Sn(O)?(e.consume(O),q):Q(O)}function Q(O){return O===61?(e.consume(O),D):rt(O)?(e.consume(O),Q):k(O)}function D(O){return O===null||O===60||O===61||O===62||O===96?a(O):O===34||O===39?(e.consume(O),h=O,L):rt(O)?(e.consume(O),D):K(O)}function L(O){return O===h?(e.consume(O),h=null,se):O===null||He(O)?a(O):(e.consume(O),L)}function K(O){return O===null||O===34||O===39||O===47||O===60||O===61||O===62||O===96||Rt(O)?Q(O):(e.consume(O),K)}function se(O){return O===47||O===62||rt(O)?k(O):a(O)}function B(O){return O===62?(e.consume(O),U):a(O)}function U(O){return O===null||He(O)?ee(O):rt(O)?(e.consume(O),U):a(O)}function ee(O){return O===45&&l===2?(e.consume(O),V):O===60&&l===1?(e.consume(O),$):O===62&&l===4?(e.consume(O),R):O===63&&l===3?(e.consume(O),P):O===93&&l===5?(e.consume(O),ke):He(O)&&(l===6||l===7)?(e.exit("htmlFlowData"),e.check(Ww,W,ie)(O)):O===null||He(O)?(e.exit("htmlFlowData"),ie(O)):(e.consume(O),ee)}function ie(O){return e.check(Jw,Z,W)(O)}function Z(O){return e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),te}function te(O){return O===null||He(O)?ie(O):(e.enter("htmlFlowData"),ee(O))}function V(O){return O===45?(e.consume(O),P):ee(O)}function $(O){return O===47?(e.consume(O),d="",pe):ee(O)}function pe(O){if(O===62){const ge=d.toLowerCase();return kx.includes(ge)?(e.consume(O),R):ee(O)}return In(O)&&d.length<8?(e.consume(O),d+=String.fromCharCode(O),pe):ee(O)}function ke(O){return O===93?(e.consume(O),P):ee(O)}function P(O){return O===62?(e.consume(O),R):O===45&&l===2?(e.consume(O),P):ee(O)}function R(O){return O===null||He(O)?(e.exit("htmlFlowData"),W(O)):(e.consume(O),R)}function W(O){return e.exit("htmlFlow"),t(O)}}function nk(e,t,a){const s=this;return l;function l(d){return He(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),o):a(d)}function o(d){return s.parser.lazy[s.now().line]?a(d):t(d)}}function ak(e,t,a){return s;function s(l){return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),e.attempt(So,t,a)}}const rk={name:"htmlText",tokenize:sk};function sk(e,t,a){const s=this;let l,o,d;return f;function f(P){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(P),h}function h(P){return P===33?(e.consume(P),m):P===47?(e.consume(P),Q):P===63?(e.consume(P),k):In(P)?(e.consume(P),K):a(P)}function m(P){return P===45?(e.consume(P),x):P===91?(e.consume(P),o=0,N):In(P)?(e.consume(P),M):a(P)}function x(P){return P===45?(e.consume(P),T):a(P)}function b(P){return P===null?a(P):P===45?(e.consume(P),y):He(P)?(d=b,$(P)):(e.consume(P),b)}function y(P){return P===45?(e.consume(P),T):b(P)}function T(P){return P===62?V(P):P===45?y(P):b(P)}function N(P){const R="CDATA[";return P===R.charCodeAt(o++)?(e.consume(P),o===R.length?S:N):a(P)}function S(P){return P===null?a(P):P===93?(e.consume(P),C):He(P)?(d=S,$(P)):(e.consume(P),S)}function C(P){return P===93?(e.consume(P),v):S(P)}function v(P){return P===62?V(P):P===93?(e.consume(P),v):S(P)}function M(P){return P===null||P===62?V(P):He(P)?(d=M,$(P)):(e.consume(P),M)}function k(P){return P===null?a(P):P===63?(e.consume(P),q):He(P)?(d=k,$(P)):(e.consume(P),k)}function q(P){return P===62?V(P):k(P)}function Q(P){return In(P)?(e.consume(P),D):a(P)}function D(P){return P===45||Sn(P)?(e.consume(P),D):L(P)}function L(P){return He(P)?(d=L,$(P)):rt(P)?(e.consume(P),L):V(P)}function K(P){return P===45||Sn(P)?(e.consume(P),K):P===47||P===62||Rt(P)?se(P):a(P)}function se(P){return P===47?(e.consume(P),V):P===58||P===95||In(P)?(e.consume(P),B):He(P)?(d=se,$(P)):rt(P)?(e.consume(P),se):V(P)}function B(P){return P===45||P===46||P===58||P===95||Sn(P)?(e.consume(P),B):U(P)}function U(P){return P===61?(e.consume(P),ee):He(P)?(d=U,$(P)):rt(P)?(e.consume(P),U):se(P)}function ee(P){return P===null||P===60||P===61||P===62||P===96?a(P):P===34||P===39?(e.consume(P),l=P,ie):He(P)?(d=ee,$(P)):rt(P)?(e.consume(P),ee):(e.consume(P),Z)}function ie(P){return P===l?(e.consume(P),l=void 0,te):P===null?a(P):He(P)?(d=ie,$(P)):(e.consume(P),ie)}function Z(P){return P===null||P===34||P===39||P===60||P===61||P===96?a(P):P===47||P===62||Rt(P)?se(P):(e.consume(P),Z)}function te(P){return P===47||P===62||Rt(P)?se(P):a(P)}function V(P){return P===62?(e.consume(P),e.exit("htmlTextData"),e.exit("htmlText"),t):a(P)}function $(P){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),pe}function pe(P){return rt(P)?ct(e,ke,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(P):ke(P)}function ke(P){return e.enter("htmlTextData"),d(P)}}const Ih={name:"labelEnd",resolveAll:uk,resolveTo:ck,tokenize:dk},ik={tokenize:fk},lk={tokenize:mk},ok={tokenize:hk};function uk(e){let t=-1;const a=[];for(;++t<e.length;){const s=e[t][1];if(a.push(e[t]),s.type==="labelImage"||s.type==="labelLink"||s.type==="labelEnd"){const l=s.type==="labelImage"?4:2;s.type="data",t+=l}}return e.length!==a.length&&sa(e,0,e.length,a),e}function ck(e,t){let a=e.length,s=0,l,o,d,f;for(;a--;)if(l=e[a][1],o){if(l.type==="link"||l.type==="labelLink"&&l._inactive)break;e[a][0]==="enter"&&l.type==="labelLink"&&(l._inactive=!0)}else if(d){if(e[a][0]==="enter"&&(l.type==="labelImage"||l.type==="labelLink")&&!l._balanced&&(o=a,l.type!=="labelLink")){s=2;break}}else l.type==="labelEnd"&&(d=a);const h={type:e[o][1].type==="labelLink"?"link":"image",start:{...e[o][1].start},end:{...e[e.length-1][1].end}},m={type:"label",start:{...e[o][1].start},end:{...e[d][1].end}},x={type:"labelText",start:{...e[o+s+2][1].end},end:{...e[d-2][1].start}};return f=[["enter",h,t],["enter",m,t]],f=ya(f,e.slice(o+1,o+s+3)),f=ya(f,[["enter",x,t]]),f=ya(f,zc(t.parser.constructs.insideSpan.null,e.slice(o+s+4,d-3),t)),f=ya(f,[["exit",x,t],e[d-2],e[d-1],["exit",m,t]]),f=ya(f,e.slice(d+1)),f=ya(f,[["exit",h,t]]),sa(e,o,e.length,f),e}function dk(e,t,a){const s=this;let l=s.events.length,o,d;for(;l--;)if((s.events[l][1].type==="labelImage"||s.events[l][1].type==="labelLink")&&!s.events[l][1]._balanced){o=s.events[l][1];break}return f;function f(y){return o?o._inactive?b(y):(d=s.parser.defined.includes(Ia(s.sliceSerialize({start:o.end,end:s.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(y),e.exit("labelMarker"),e.exit("labelEnd"),h):a(y)}function h(y){return y===40?e.attempt(ik,x,d?x:b)(y):y===91?e.attempt(lk,x,d?m:b)(y):d?x(y):b(y)}function m(y){return e.attempt(ok,x,b)(y)}function x(y){return t(y)}function b(y){return o._balanced=!0,a(y)}}function fk(e,t,a){return s;function s(b){return e.enter("resource"),e.enter("resourceMarker"),e.consume(b),e.exit("resourceMarker"),l}function l(b){return Rt(b)?no(e,o)(b):o(b)}function o(b){return b===41?x(b):xy(e,d,f,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(b)}function d(b){return Rt(b)?no(e,h)(b):x(b)}function f(b){return a(b)}function h(b){return b===34||b===39||b===40?yy(e,m,a,"resourceTitle","resourceTitleMarker","resourceTitleString")(b):x(b)}function m(b){return Rt(b)?no(e,x)(b):x(b)}function x(b){return b===41?(e.enter("resourceMarker"),e.consume(b),e.exit("resourceMarker"),e.exit("resource"),t):a(b)}}function mk(e,t,a){const s=this;return l;function l(f){return Ey.call(s,e,o,d,"reference","referenceMarker","referenceString")(f)}function o(f){return s.parser.defined.includes(Ia(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)))?t(f):a(f)}function d(f){return a(f)}}function hk(e,t,a){return s;function s(o){return e.enter("reference"),e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),l}function l(o){return o===93?(e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),e.exit("reference"),t):a(o)}}const pk={name:"labelStartImage",resolveAll:Ih.resolveAll,tokenize:gk};function gk(e,t,a){const s=this;return l;function l(f){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(f),e.exit("labelImageMarker"),o}function o(f){return f===91?(e.enter("labelMarker"),e.consume(f),e.exit("labelMarker"),e.exit("labelImage"),d):a(f)}function d(f){return f===94&&"_hiddenFootnoteSupport"in s.parser.constructs?a(f):t(f)}}const bk={name:"labelStartLink",resolveAll:Ih.resolveAll,tokenize:xk};function xk(e,t,a){const s=this;return l;function l(d){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(d),e.exit("labelMarker"),e.exit("labelLink"),o}function o(d){return d===94&&"_hiddenFootnoteSupport"in s.parser.constructs?a(d):t(d)}}const hm={name:"lineEnding",tokenize:Ek};function Ek(e,t){return a;function a(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),ct(e,t,"linePrefix")}}const lc={name:"thematicBreak",tokenize:yk};function yk(e,t,a){let s=0,l;return o;function o(m){return e.enter("thematicBreak"),d(m)}function d(m){return l=m,f(m)}function f(m){return m===l?(e.enter("thematicBreakSequence"),h(m)):s>=3&&(m===null||He(m))?(e.exit("thematicBreak"),t(m)):a(m)}function h(m){return m===l?(e.consume(m),s++,h):(e.exit("thematicBreakSequence"),rt(m)?ct(e,f,"whitespace")(m):f(m))}}const $n={continuation:{tokenize:Sk},exit:Ak,name:"list",tokenize:Nk},Tk={partial:!0,tokenize:Ck},_k={partial:!0,tokenize:vk};function Nk(e,t,a){const s=this,l=s.events[s.events.length-1];let o=l&&l[1].type==="linePrefix"?l[2].sliceSerialize(l[1],!0).length:0,d=0;return f;function f(T){const N=s.containerState.type||(T===42||T===43||T===45?"listUnordered":"listOrdered");if(N==="listUnordered"?!s.containerState.marker||T===s.containerState.marker:$m(T)){if(s.containerState.type||(s.containerState.type=N,e.enter(N,{_container:!0})),N==="listUnordered")return e.enter("listItemPrefix"),T===42||T===45?e.check(lc,a,m)(T):m(T);if(!s.interrupt||T===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),h(T)}return a(T)}function h(T){return $m(T)&&++d<10?(e.consume(T),h):(!s.interrupt||d<2)&&(s.containerState.marker?T===s.containerState.marker:T===41||T===46)?(e.exit("listItemValue"),m(T)):a(T)}function m(T){return e.enter("listItemMarker"),e.consume(T),e.exit("listItemMarker"),s.containerState.marker=s.containerState.marker||T,e.check(So,s.interrupt?a:x,e.attempt(Tk,y,b))}function x(T){return s.containerState.initialBlankLine=!0,o++,y(T)}function b(T){return rt(T)?(e.enter("listItemPrefixWhitespace"),e.consume(T),e.exit("listItemPrefixWhitespace"),y):a(T)}function y(T){return s.containerState.size=o+s.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(T)}}function Sk(e,t,a){const s=this;return s.containerState._closeFlow=void 0,e.check(So,l,o);function l(f){return s.containerState.furtherBlankLines=s.containerState.furtherBlankLines||s.containerState.initialBlankLine,ct(e,t,"listItemIndent",s.containerState.size+1)(f)}function o(f){return s.containerState.furtherBlankLines||!rt(f)?(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,d(f)):(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,e.attempt(_k,t,d)(f))}function d(f){return s.containerState._closeFlow=!0,s.interrupt=void 0,ct(e,e.attempt($n,t,a),"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(f)}}function vk(e,t,a){const s=this;return ct(e,l,"listItemIndent",s.containerState.size+1);function l(o){const d=s.events[s.events.length-1];return d&&d[1].type==="listItemIndent"&&d[2].sliceSerialize(d[1],!0).length===s.containerState.size?t(o):a(o)}}function Ak(e){e.exit(this.containerState.type)}function Ck(e,t,a){const s=this;return ct(e,l,"listItemPrefixWhitespace",s.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function l(o){const d=s.events[s.events.length-1];return!rt(o)&&d&&d[1].type==="listItemPrefixWhitespace"?t(o):a(o)}}const Rx={name:"setextUnderline",resolveTo:wk,tokenize:kk};function wk(e,t){let a=e.length,s,l,o;for(;a--;)if(e[a][0]==="enter"){if(e[a][1].type==="content"){s=a;break}e[a][1].type==="paragraph"&&(l=a)}else e[a][1].type==="content"&&e.splice(a,1),!o&&e[a][1].type==="definition"&&(o=a);const d={type:"setextHeading",start:{...e[s][1].start},end:{...e[e.length-1][1].end}};return e[l][1].type="setextHeadingText",o?(e.splice(l,0,["enter",d,t]),e.splice(o+1,0,["exit",e[s][1],t]),e[s][1].end={...e[o][1].end}):e[s][1]=d,e.push(["exit",d,t]),e}function kk(e,t,a){const s=this;let l;return o;function o(m){let x=s.events.length,b;for(;x--;)if(s.events[x][1].type!=="lineEnding"&&s.events[x][1].type!=="linePrefix"&&s.events[x][1].type!=="content"){b=s.events[x][1].type==="paragraph";break}return!s.parser.lazy[s.now().line]&&(s.interrupt||b)?(e.enter("setextHeadingLine"),l=m,d(m)):a(m)}function d(m){return e.enter("setextHeadingLineSequence"),f(m)}function f(m){return m===l?(e.consume(m),f):(e.exit("setextHeadingLineSequence"),rt(m)?ct(e,h,"lineSuffix")(m):h(m))}function h(m){return m===null||He(m)?(e.exit("setextHeadingLine"),t(m)):a(m)}}const Rk={tokenize:Ok};function Ok(e){const t=this,a=e.attempt(So,s,e.attempt(this.parser.constructs.flowInitial,l,ct(e,e.attempt(this.parser.constructs.flow,l,e.attempt(jw,l)),"linePrefix")));return a;function s(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,a}function l(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,a}}const Ik={resolveAll:_y()},Mk=Ty("string"),Dk=Ty("text");function Ty(e){return{resolveAll:_y(e==="text"?Lk:void 0),tokenize:t};function t(a){const s=this,l=this.parser.constructs[e],o=a.attempt(l,d,f);return d;function d(x){return m(x)?o(x):f(x)}function f(x){if(x===null){a.consume(x);return}return a.enter("data"),a.consume(x),h}function h(x){return m(x)?(a.exit("data"),o(x)):(a.consume(x),h)}function m(x){if(x===null)return!0;const b=l[x];let y=-1;if(b)for(;++y<b.length;){const T=b[y];if(!T.previous||T.previous.call(s,s.previous))return!0}return!1}}}function _y(e){return t;function t(a,s){let l=-1,o;for(;++l<=a.length;)o===void 0?a[l]&&a[l][1].type==="data"&&(o=l,l++):(!a[l]||a[l][1].type!=="data")&&(l!==o+2&&(a[o][1].end=a[l-1][1].end,a.splice(o+2,l-o-2),l=o+2),o=void 0);return e?e(a,s):a}}function Lk(e,t){let a=0;for(;++a<=e.length;)if((a===e.length||e[a][1].type==="lineEnding")&&e[a-1][1].type==="data"){const s=e[a-1][1],l=t.sliceStream(s);let o=l.length,d=-1,f=0,h;for(;o--;){const m=l[o];if(typeof m=="string"){for(d=m.length;m.charCodeAt(d-1)===32;)f++,d--;if(d)break;d=-1}else if(m===-2)h=!0,f++;else if(m!==-1){o++;break}}if(t._contentTypeTextTrailing&&a===e.length&&(f=0),f){const m={type:a===e.length||h||f<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:o?d:s.start._bufferIndex+d,_index:s.start._index+o,line:s.end.line,column:s.end.column-f,offset:s.end.offset-f},end:{...s.end}};s.end={...m.start},s.start.offset===s.end.offset?Object.assign(s,m):(e.splice(a,0,["enter",m,t],["exit",m,t]),a+=2)}a++}return e}const jk={42:$n,43:$n,45:$n,48:$n,49:$n,50:$n,51:$n,52:$n,53:$n,54:$n,55:$n,56:$n,57:$n,62:hy},Bk={91:Fw},Pk={[-2]:mm,[-1]:mm,32:mm},Uk={35:Kw,42:lc,45:[Rx,lc],60:Zw,61:Rx,95:lc,96:wx,126:wx},Hk={38:gy,92:py},Fk={[-5]:hm,[-4]:hm,[-3]:hm,33:pk,38:gy,42:Gm,60:[bw,rk],91:bk,92:[$w,py],93:Ih,95:Gm,96:Rw},zk={null:[Gm,Ik]},qk={null:[42,95]},Yk={null:[]},$k=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:qk,contentInitial:Bk,disable:Yk,document:jk,flow:Uk,flowInitial:Pk,insideSpan:zk,string:Hk,text:Fk},Symbol.toStringTag,{value:"Module"}));function Gk(e,t,a){let s={_bufferIndex:-1,_index:0,line:a&&a.line||1,column:a&&a.column||1,offset:a&&a.offset||0};const l={},o=[];let d=[],f=[];const h={attempt:L(Q),check:L(D),consume:M,enter:k,exit:q,interrupt:L(D,{interrupt:!0})},m={code:null,containerState:{},defineSkip:S,events:[],now:N,parser:e,previous:null,sliceSerialize:y,sliceStream:T,write:b};let x=t.tokenize.call(m,h);return t.resolveAll&&o.push(t),m;function b(U){return d=ya(d,U),C(),d[d.length-1]!==null?[]:(K(t,0),m.events=zc(o,m.events,m),m.events)}function y(U,ee){return Vk(T(U),ee)}function T(U){return Kk(d,U)}function N(){const{_bufferIndex:U,_index:ee,line:ie,column:Z,offset:te}=s;return{_bufferIndex:U,_index:ee,line:ie,column:Z,offset:te}}function S(U){l[U.line]=U.column,B()}function C(){let U;for(;s._index<d.length;){const ee=d[s._index];if(typeof ee=="string")for(U=s._index,s._bufferIndex<0&&(s._bufferIndex=0);s._index===U&&s._bufferIndex<ee.length;)v(ee.charCodeAt(s._bufferIndex));else v(ee)}}function v(U){x=x(U)}function M(U){He(U)?(s.line++,s.column=1,s.offset+=U===-3?2:1,B()):U!==-1&&(s.column++,s.offset++),s._bufferIndex<0?s._index++:(s._bufferIndex++,s._bufferIndex===d[s._index].length&&(s._bufferIndex=-1,s._index++)),m.previous=U}function k(U,ee){const ie=ee||{};return ie.type=U,ie.start=N(),m.events.push(["enter",ie,m]),f.push(ie),ie}function q(U){const ee=f.pop();return ee.end=N(),m.events.push(["exit",ee,m]),ee}function Q(U,ee){K(U,ee.from)}function D(U,ee){ee.restore()}function L(U,ee){return ie;function ie(Z,te,V){let $,pe,ke,P;return Array.isArray(Z)?W(Z):"tokenize"in Z?W([Z]):R(Z);function R(Ae){return $e;function $e(dt){const ut=dt!==null&&Ae[dt],Ft=dt!==null&&Ae.null,yn=[...Array.isArray(ut)?ut:ut?[ut]:[],...Array.isArray(Ft)?Ft:Ft?[Ft]:[]];return W(yn)(dt)}}function W(Ae){return $=Ae,pe=0,Ae.length===0?V:O(Ae[pe])}function O(Ae){return $e;function $e(dt){return P=se(),ke=Ae,Ae.partial||(m.currentConstruct=Ae),Ae.name&&m.parser.constructs.disable.null.includes(Ae.name)?ve():Ae.tokenize.call(ee?Object.assign(Object.create(m),ee):m,h,ge,ve)(dt)}}function ge(Ae){return U(ke,P),te}function ve(Ae){return P.restore(),++pe<$.length?O($[pe]):V}}}function K(U,ee){U.resolveAll&&!o.includes(U)&&o.push(U),U.resolve&&sa(m.events,ee,m.events.length-ee,U.resolve(m.events.slice(ee),m)),U.resolveTo&&(m.events=U.resolveTo(m.events,m))}function se(){const U=N(),ee=m.previous,ie=m.currentConstruct,Z=m.events.length,te=Array.from(f);return{from:Z,restore:V};function V(){s=U,m.previous=ee,m.currentConstruct=ie,m.events.length=Z,f=te,B()}}function B(){s.line in l&&s.column<2&&(s.column=l[s.line],s.offset+=l[s.line]-1)}}function Kk(e,t){const a=t.start._index,s=t.start._bufferIndex,l=t.end._index,o=t.end._bufferIndex;let d;if(a===l)d=[e[a].slice(s,o)];else{if(d=e.slice(a,l),s>-1){const f=d[0];typeof f=="string"?d[0]=f.slice(s):d.shift()}o>0&&d.push(e[l].slice(0,o))}return d}function Vk(e,t){let a=-1;const s=[];let l;for(;++a<e.length;){const o=e[a];let d;if(typeof o=="string")d=o;else switch(o){case-5:{d="\r";break}case-4:{d=`
package/public/index.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, viewport-fit=cover" />
6
6
  <title>Fourth Spark</title>
7
- <script type="module" crossorigin src="/assets/index-F3_wTOKH.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-DW4lHNG-.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-sopVLRjW.css">
9
9
  </head>
10
10
  <body>