fourth-spark 0.7.0 → 0.7.1

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.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "AI Agent Platform — multi-repo agent management based on OpenCode",
5
5
  "license": "MIT",
6
6
  "repository": {
package/postinstall.js CHANGED
@@ -48,7 +48,7 @@ async function main() {
48
48
  `powershell -Command "Expand-Archive -Path '${tmpFile}' -DestinationPath '${pkgDir}' -Force"`,
49
49
  )
50
50
  } else {
51
- execSync(`tar xzf "${tmpFile}" -C "${pkgDir}" fourth-spark`, { stdio: "pipe" })
51
+ execSync(`tar xzf "${tmpFile}" -C "${pkgDir}" ./fourth-spark`, { stdio: "pipe" })
52
52
  chmodSync(binaryPath, 0o755)
53
53
  }
54
54
 
@@ -402,7 +402,7 @@ Please change the parent <Route path="${A}"> to <Route path="${A==="/"?"*":`${A}
402
402
  *
403
403
  * This source code is licensed under the ISC license.
404
404
  * See the LICENSE file in the root directory of this source tree.
405
- */const t3=[["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"}]],Sh=Oe("zap",t3);function HE(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=HE(e[t]))&&(s&&(s+=" "),s+=a)}else for(a in e)e[a]&&(s&&(s+=" "),s+=a);return s}function ce(){for(var e,t,a=0,s="",l=arguments.length;a<l;a++)(e=arguments[a])&&(t=HE(e))&&(s&&(s+=" "),s+=t);return s}const Xb=e=>{let t;const a=new Set,s=(h,x)=>{const b=typeof h=="function"?h(t):h;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:()=>m,subscribe:h=>(a.add(h),()=>a.delete(h))},m=t=e(s,l,f);return f},n3=(e=>e?Xb(e):Xb),a3=e=>e;function r3(e,t=a3){const a=Ku.useSyncExternalStore(e.subscribe,Ku.useCallback(()=>t(e.getState()),[e,t]),Ku.useCallback(()=>t(e.getInitialState()),[e,t]));return Ku.useDebugValue(a),a}const Zb=e=>{const t=n3(e),a=s=>r3(t,s);return Object.assign(a,t),a},zs=(e=>e?Zb(e):Zb),cm="fs-theme";function FE(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Wb(e){return e==="system"?FE():e}function Jb(e){e==="system"?document.documentElement.removeAttribute("data-theme"):document.documentElement.setAttribute("data-theme",e)}const qm=zs((e,t)=>({preference:localStorage.getItem(cm)??"system",resolved:Wb(localStorage.getItem(cm)??"system"),setPreference(a){const s=Wb(a);localStorage.setItem(cm,a),Jb(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(){Jb(t().preference);const a=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>{const{preference:l}=t();if(l==="system"){const o=FE();e({resolved:o})}};return a.addEventListener("change",s),()=>a.removeEventListener("change",s)}})),bc="fourth-spark-server-url";function zE(){if(typeof window>"u")return!1;const t=window.Capacitor;return typeof(t==null?void 0:t.isNativePlatform)=="function"&&t.isNativePlatform()}function qE(){return localStorage.getItem(bc)??""}function s3(e){const t=e.replace(/\/+$/,"");t?localStorage.setItem(bc,t):localStorage.removeItem(bc)}function Ym(){return localStorage.getItem(bc)??""}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(qE()+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 i3(){return Mn(await Ce("/api/repos"),"repos")}async function l3(e,t,a){return Ce("/api/repos",{method:"POST",body:JSON.stringify({name:e,gitUrl:t,localPath:a})})}async function o3(e){return Ce("/api/repos/resolve",{method:"POST",body:JSON.stringify({localPath:e})})}async function u3(e){await Ce(`/api/repos/${encodeURIComponent(e)}`,{method:"DELETE"})}async function c3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/start`,{method:"POST"})}async function d3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/stop`,{method:"POST"})}async function f3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/branches`)}async function m3(e,t){return Ce(`/api/repos/${encodeURIComponent(e)}/checkout`,{method:"POST",body:JSON.stringify({branch:t})})}async function h3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/pull`,{method:"POST"})}function We(e){return`/api/repos/${encodeURIComponent(e)}`}async function p3(e){return Mn(await Ce(`${We(e)}/sessions`),"sessions")}async function g3(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 b3(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`)}async function x3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"DELETE"})}async function E3(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 y3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/abort`,{method:"POST"})}async function T3(e,t,a){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/questions/reply`,{method:"POST",body:JSON.stringify({answers:a})})}async function _3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/questions/reject`,{method:"POST"})}function N3(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 S3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/messages`),"messages").map(N3)}async function v3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/todos`),"todos")}async function YE(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/status`)}async function ex(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`)}async function tx(e){return Ce(`${We(e)}/sessions/all-links`)}async function A3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"POST",body:JSON.stringify({type:a,targetId:s})})}async function C3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"DELETE",body:JSON.stringify({type:a,targetId:s})})}async function $E(){return Mn(await Ce("/api/custom-agents"))}async function GE(e){return Ce("/api/custom-agents",{method:"POST",body:JSON.stringify(e)})}async function KE(e,t){return Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function VE(e){await Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"DELETE"})}async function nx(e){return Ce(`/api/custom-agents/${encodeURIComponent(e)}/export`)}async function w3(e){return Ce("/api/custom-agents/import",{method:"POST",body:JSON.stringify(e)})}async function k3(e){return Mn(await Ce(`${We(e)}/custom-agents`))}async function R3(e,t){return Ce(`${We(e)}/custom-agents`,{method:"POST",body:JSON.stringify(t)})}async function vh(e){return Mn(await Ce(`${We(e)}/models`))}async function O3(){return Mn(await Ce("/api/prompt-fragments"))}async function I3(e){return Ce("/api/prompt-fragments",{method:"POST",body:JSON.stringify(e)})}async function M3(e,t){return Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function D3(e){await Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"DELETE"})}async function ax(e){return Mn(await Ce(`${We(e)}/tags`))}async function rx(e,t){return Mn(await Ce(`${We(e)}/milestones`))}async function sx(e,t="open"){return Mn(await Ce(`${We(e)}/issues?state=${encodeURIComponent(t)}`),"issues")}async function L3(e,t="all"){return Ce(`${We(e)}/issues/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function j3(e,t,a){return Ce(`${We(e)}/issues`,{method:"POST",body:JSON.stringify({title:t,body:a})})}async function B3(e,t,a){await Ce(`${We(e)}/issues/${t}/children`,{method:"POST",body:JSON.stringify({childNumber:a})})}async function QE(e,t,a){return Ce(`${We(e)}/issues/${t}`,{method:"PATCH",body:JSON.stringify(a)})}async function ix(e,t){return Mn(await Ce(`${We(e)}/issues/${t}/pulls`))}async function P3(e,t,a,s=!1){await Ce(`${We(e)}/issues/${t}/pulls/${a}/merge`,{method:"POST",body:JSON.stringify({closeIssue:s})})}async function lx(e,t="open"){return Mn(await Ce(`${We(e)}/pulls?state=${encodeURIComponent(t)}`))}async function U3(e,t="all"){return Ce(`${We(e)}/pulls/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function H3(e,t){await Ce(`${We(e)}/pulls/${t}/merge`,{method:"POST"})}async function XE(e,t){return Mn(await Ce(`${We(e)}/pulls/${t}/issues`))}async function F3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues`,{method:"POST",body:JSON.stringify({issueNumber:a})})}async function z3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues/${a}`,{method:"DELETE"})}async function q3(e,t){return Ce(`${We(e)}/pulls/${t}/comments`)}async function Y3(e,t){return Ce(`${We(e)}/issues/${t}/comments`)}async function ox(e,t,a){return Ce(`${We(e)}/issues/${t}/comments`,{method:"POST",body:JSON.stringify({body:a})})}async function $3(e,t,a){return Ce(`${We(e)}/issues/${t}/polish`,{method:"POST",body:JSON.stringify({draft:a})})}async function ux(e,t){return Ce(`${We(e)}/issues/${t}/draft`)}async function G3(e,t,a){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({title:a})})}async function K3(){return Ce("/api/agents-md")}async function V3(e){await Ce("/api/agents-md",{method:"PUT",body:JSON.stringify({content:e})})}async function Q3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`)}async function X3(e,t){await Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`,{method:"PUT",body:JSON.stringify({content:t})})}function Z3(e){return`${qE()}${We(e)}/events`}async function W3(e){return Ce(`${We(e)}/sessions/status`)}async function Uc(){return Ce("/api/settings")}async function $m(e,t){await Ce(`/api/settings/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify({value:t})})}async function ZE(){return Ce("/api/cloud/status")}async function J3(e){try{return(await Ce("/api/cloud/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e})})).connected}catch{return!1}}async function eC(){return Mn(await Ce("/api/git-hosts"),"gitHosts")}async function tC(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 nC(e){await Ce(`/api/git-hosts/${encodeURIComponent(e)}`,{method:"DELETE"})}async function aC(){return Ce("/api/usage")}async function rC(e){return Ce("/api/usage/switch",{method:"POST",body:JSON.stringify({accountId:e})})}async function sC(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 i3(),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 l3(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 u3(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},WE=[{segment:"repos",icon:Iv,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:HA,label:"设置",global:!0}];function JE(e,t,a){return t?`/${e}`:a?`/${encodeURIComponent(a)}/${e}`:`/${e}`}function iC({repoId:e,currentBranch:t}){const a=qe(A=>A.updateRepoBranch),[s,l]=v.useState(!1),[o,d]=v.useState(null),[f,m]=v.useState(!1),[h,x]=v.useState(null),[b,y]=v.useState(null),T=v.useRef(null),N=v.useCallback(()=>{l(!1),y(null)},[]);v.useEffect(()=>{if(!s)return;const A=D=>{T.current&&!T.current.contains(D.target)&&N()};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[s,N]);const S=async()=>{if(s){N();return}l(!0),m(!0),y(null);try{d(await f3(e))}catch{y("加载分支失败")}finally{m(!1)}},C=async A=>{if(!(A===t||h)){x(A),y(null);try{const D=await m3(e,A);a(e,D.branch),N()}catch(D){y(D instanceof Error?D.message:"切换失败")}finally{x(null)}}};return t?u.jsxs("div",{ref:T,className:"relative",children:[u.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:[u.jsx(_o,{className:"h-3 w-3"}),t,u.jsx(ss,{className:ce("h-3 w-3 transition-transform",s&&"rotate-180")})]}),s&&u.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?u.jsx("div",{className:"flex items-center justify-center py-4",children:u.jsx(Va,{className:"h-4 w-4 animate-spin text-fg-4"})}):o?u.jsxs("div",{className:"max-h-64 overflow-y-auto py-1",children:[o.local.map(A=>u.jsxs("button",{type:"button",disabled:h!==null,onClick:()=>C(A),className:ce("flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors",A===t?"font-medium text-blue-600":"text-fg-2 hover:bg-elevated"),children:[A===t?u.jsx(oa,{className:"h-3 w-3 shrink-0"}):h===A?u.jsx(Va,{className:"h-3 w-3 shrink-0 animate-spin"}):u.jsx("span",{className:"h-3 w-3 shrink-0"}),u.jsx("span",{className:"truncate",children:A})]},A)),o.remote.length>0&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"mx-3 my-1 border-t border-line"}),u.jsx("div",{className:"px-3 py-1 text-[10px] font-medium uppercase tracking-wider text-fg-4",children:"Remote"}),o.remote.map(A=>u.jsxs("button",{type:"button",disabled:h!==null,onClick:()=>C(A),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:[h===A?u.jsx(Va,{className:"h-3 w-3 shrink-0 animate-spin"}):u.jsx("span",{className:"h-3 w-3 shrink-0"}),u.jsx("span",{className:"truncate",children:A})]},`remote-${A}`))]})]}):null,b&&u.jsx("div",{className:"border-t border-line px-3 py-2 text-xs text-red-500",children:b})]})]}):null}function lC(){const[e,t]=v.useState(null);return v.useEffect(()=>{const a=()=>fetch("/api/health").then(o=>o.json()).then(o=>{o.latestVersion&&o.latestVersion!=="0.7.0"&&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 oC(){const e=va(),t=ca(),a=qe(b=>b.repos),s=qe(b=>b.activeRepoId),l=qe(b=>b.setActiveRepo),o=qm(b=>b.preference),d=qm(b=>b.cycle),f=o==="light"?YA:o==="dark"?CA:vA,m=a.find(b=>b.id===s),h=lC(),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 u.jsx("header",{className:"shrink-0 border-b border-line bg-surface pt-[var(--safe-top)]",children:u.jsxs("div",{className:"flex h-12 items-center justify-between px-4",children:[u.jsxs("div",{className:"flex items-center gap-2.5",children:[u.jsx(Sh,{className:"h-5 w-5 text-blue-500"}),u.jsx("span",{className:"text-sm font-bold tracking-tight text-fg",children:"Fourth Spark"}),u.jsxs("span",{className:"rounded bg-elevated px-1.5 py-0.5 text-[10px] font-medium tabular-nums text-fg-4",children:["v","0.7.0"]}),h&&u.jsxs("span",{className:"text-[10px] text-amber-500",children:["→ v",h," 可用,运行 ",u.jsx("code",{className:"rounded bg-amber-500/10 px-1 font-mono",children:"fourth-spark upgrade"})," 更新"]})]}),u.jsxs("div",{className:"flex items-center gap-3",children:[a.length>0&&u.jsxs("div",{className:"flex items-center gap-2",children:[u.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=>u.jsx("option",{value:b.id,children:b.name},b.id))}),m&&s&&u.jsx(iC,{repoId:s,currentBranch:m.branch})]}),u.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:u.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"currentColor",children:u.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"})})}),u.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:u.jsx(f,{className:"h-4 w-4"})})]})]})})}function uC(){const e=qe(Da);return u.jsx("nav",{className:"hidden w-48 shrink-0 flex-col border-r border-line bg-surface py-2 md:flex",children:WE.map(t=>u.jsxs(Th,{to:JE(t.segment,t.global,e),className:({isActive:a})=>ce("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:[u.jsx(t.icon,{className:"h-4 w-4 shrink-0"}),t.label]},t.segment))})}function cC(){const e=qe(Da);return u.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:u.jsx("div",{className:"flex h-14 items-center justify-around",children:WE.map(t=>u.jsx(Th,{to:JE(t.segment,t.global,e),"aria-label":t.label,className:({isActive:a})=>ce("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:u.jsx(t.icon,{className:"h-5 w-5 shrink-0"})},t.segment))})})}function dC(){return u.jsxs("div",{className:"flex h-full flex-col overflow-hidden bg-base text-fg",children:[u.jsx(oC,{}),u.jsxs("div",{className:"flex min-h-0 flex-1",children:[u.jsx(uC,{}),u.jsx("main",{className:"flex min-w-0 flex-1 flex-col overflow-hidden pb-[calc(3.5rem_+_var(--safe-bottom))] md:pb-0",children:u.jsx(OS,{})})]}),u.jsx(cC,{})]})}function fC({onClose:e}){const[t,a]=v.useState(""),[s,l]=v.useState(""),[o,d]=v.useState(""),[f,m]=v.useState(!1),[h,x]=v.useState(""),b=qe(C=>C.addRepo),y=s.trim()!==""&&o.trim()!==""&&t.trim()!==""&&!f,T=async C=>{const A=C.trim();if(A){m(!0),x("");try{const D=await o3(A);D.name&&!s.trim()&&l(D.name),D.gitUrl&&!o.trim()&&d(D.gitUrl)}catch(D){const k=D instanceof Error?D.message:"无法解析路径";try{const z=JSON.parse(k);x(z.error??k)}catch{x(k)}}m(!1)}},N=v.useRef(T);N.current=T,v.useEffect(()=>{const C=t.trim();if(!C)return;const A=setTimeout(()=>{N.current(C)},500);return()=>clearTimeout(A)},[t]);const S=async()=>{if(!y)return;x(""),await b(s.trim(),o.trim(),t.trim())&&e()};return u.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:e,children:u.jsxs("div",{className:"w-full max-w-md rounded-xl border border-line bg-surface p-6 shadow-2xl",onClick:C=>C.stopPropagation(),children:[u.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[u.jsx("h2",{className:"text-base font-semibold text-fg",children:"添加仓库"}),u.jsx("button",{type:"button",onClick:e,className:"rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:u.jsx(Tt,{className:"h-4 w-4"})})]}),u.jsxs("div",{className:"flex flex-col gap-4",children:[u.jsxs("div",{className:"flex flex-col gap-1.5",children:[u.jsx("label",{htmlFor:"m-path",className:"text-xs font-medium text-fg-3",children:"本地路径"}),u.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"}),u.jsx("span",{className:"text-[11px] text-fg-5",children:f?"正在读取 Git 信息…":"输入路径后自动读取仓库信息"})]}),u.jsxs("div",{className:"flex flex-col gap-1.5",children:[u.jsx("label",{htmlFor:"m-name",className:"text-xs font-medium text-fg-3",children:"名称"}),u.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"})]}),u.jsxs("div",{className:"flex flex-col gap-1.5",children:[u.jsx("label",{htmlFor:"m-git",className:"text-xs font-medium text-fg-3",children:"Git 远程地址"}),u.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"})]}),h&&u.jsx("p",{className:"rounded-md bg-red-500/10 px-3 py-2 text-xs text-red-500",children:h}),u.jsxs("div",{className:"mt-1 flex items-center justify-end gap-2",children:[u.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:"取消"}),u.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 mC({repoId:e,repoName:t,onClose:a}){const[s,l]=v.useState(""),[o,d]=v.useState(""),[f,m]=v.useState(!0),[h,x]=v.useState(!1),[b,y]=v.useState(null);v.useEffect(()=>{Q3(e).then(S=>{l(S.content),d(S.content),m(!1)}).catch(S=>{y(S instanceof Error?S.message:String(S)),m(!1)})},[e]);const T=async()=>{x(!0),y(null);try{await X3(e,s),d(s)}catch(S){y(S instanceof Error?S.message:String(S))}x(!1)},N=s!==o;return u.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:a,children:u.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:[u.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[u.jsxs("div",{className:"min-w-0",children:[u.jsxs("h2",{className:"text-base font-semibold text-fg",children:[t," — AGENTS.md"]}),u.jsx("p",{className:"mt-0.5 text-xs text-fg-4",children:"仅对此仓库生效,修改后 opencode 热加载即时生效。"})]}),u.jsx("button",{type:"button",onClick:a,className:"shrink-0 rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:u.jsx(Tt,{className:"h-4 w-4"})})]}),b&&u.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:[u.jsx(Kn,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),u.jsx("span",{className:"min-w-0 break-words",children:b})]}),f?u.jsxs("div",{className:"flex flex-col items-center gap-2.5 py-16 text-fg-5",children:[u.jsx(Va,{className:"h-5 w-5 fs-spin"}),u.jsx("p",{className:"text-xs",children:"加载中…"})]}):u.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
405
+ */const t3=[["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"}]],Sh=Oe("zap",t3);function HE(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=HE(e[t]))&&(s&&(s+=" "),s+=a)}else for(a in e)e[a]&&(s&&(s+=" "),s+=a);return s}function ce(){for(var e,t,a=0,s="",l=arguments.length;a<l;a++)(e=arguments[a])&&(t=HE(e))&&(s&&(s+=" "),s+=t);return s}const Xb=e=>{let t;const a=new Set,s=(h,x)=>{const b=typeof h=="function"?h(t):h;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:()=>m,subscribe:h=>(a.add(h),()=>a.delete(h))},m=t=e(s,l,f);return f},n3=(e=>e?Xb(e):Xb),a3=e=>e;function r3(e,t=a3){const a=Ku.useSyncExternalStore(e.subscribe,Ku.useCallback(()=>t(e.getState()),[e,t]),Ku.useCallback(()=>t(e.getInitialState()),[e,t]));return Ku.useDebugValue(a),a}const Zb=e=>{const t=n3(e),a=s=>r3(t,s);return Object.assign(a,t),a},zs=(e=>e?Zb(e):Zb),cm="fs-theme";function FE(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Wb(e){return e==="system"?FE():e}function Jb(e){e==="system"?document.documentElement.removeAttribute("data-theme"):document.documentElement.setAttribute("data-theme",e)}const qm=zs((e,t)=>({preference:localStorage.getItem(cm)??"system",resolved:Wb(localStorage.getItem(cm)??"system"),setPreference(a){const s=Wb(a);localStorage.setItem(cm,a),Jb(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(){Jb(t().preference);const a=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>{const{preference:l}=t();if(l==="system"){const o=FE();e({resolved:o})}};return a.addEventListener("change",s),()=>a.removeEventListener("change",s)}})),bc="fourth-spark-server-url";function zE(){if(typeof window>"u")return!1;const t=window.Capacitor;return typeof(t==null?void 0:t.isNativePlatform)=="function"&&t.isNativePlatform()}function qE(){return localStorage.getItem(bc)??""}function s3(e){const t=e.replace(/\/+$/,"");t?localStorage.setItem(bc,t):localStorage.removeItem(bc)}function Ym(){return localStorage.getItem(bc)??""}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(qE()+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 i3(){return Mn(await Ce("/api/repos"),"repos")}async function l3(e,t,a){return Ce("/api/repos",{method:"POST",body:JSON.stringify({name:e,gitUrl:t,localPath:a})})}async function o3(e){return Ce("/api/repos/resolve",{method:"POST",body:JSON.stringify({localPath:e})})}async function u3(e){await Ce(`/api/repos/${encodeURIComponent(e)}`,{method:"DELETE"})}async function c3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/start`,{method:"POST"})}async function d3(e){await Ce(`/api/repos/${encodeURIComponent(e)}/stop`,{method:"POST"})}async function f3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/branches`)}async function m3(e,t){return Ce(`/api/repos/${encodeURIComponent(e)}/checkout`,{method:"POST",body:JSON.stringify({branch:t})})}async function h3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/pull`,{method:"POST"})}function We(e){return`/api/repos/${encodeURIComponent(e)}`}async function p3(e){return Mn(await Ce(`${We(e)}/sessions`),"sessions")}async function g3(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 b3(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`)}async function x3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"DELETE"})}async function E3(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 y3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/abort`,{method:"POST"})}async function T3(e,t,a){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/questions/reply`,{method:"POST",body:JSON.stringify({answers:a})})}async function _3(e,t){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/questions/reject`,{method:"POST"})}function N3(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 S3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/messages`),"messages").map(N3)}async function v3(e,t){return Mn(await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/todos`),"todos")}async function YE(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/status`)}async function ex(e,t){return Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`)}async function tx(e){return Ce(`${We(e)}/sessions/all-links`)}async function A3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"POST",body:JSON.stringify({type:a,targetId:s})})}async function C3(e,t,a,s){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}/links`,{method:"DELETE",body:JSON.stringify({type:a,targetId:s})})}async function $E(){return Mn(await Ce("/api/custom-agents"))}async function GE(e){return Ce("/api/custom-agents",{method:"POST",body:JSON.stringify(e)})}async function KE(e,t){return Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function VE(e){await Ce(`/api/custom-agents/${encodeURIComponent(e)}`,{method:"DELETE"})}async function nx(e){return Ce(`/api/custom-agents/${encodeURIComponent(e)}/export`)}async function w3(e){return Ce("/api/custom-agents/import",{method:"POST",body:JSON.stringify(e)})}async function k3(e){return Mn(await Ce(`${We(e)}/custom-agents`))}async function R3(e,t){return Ce(`${We(e)}/custom-agents`,{method:"POST",body:JSON.stringify(t)})}async function vh(e){return Mn(await Ce(`${We(e)}/models`))}async function O3(){return Mn(await Ce("/api/prompt-fragments"))}async function I3(e){return Ce("/api/prompt-fragments",{method:"POST",body:JSON.stringify(e)})}async function M3(e,t){return Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)})}async function D3(e){await Ce(`/api/prompt-fragments/${encodeURIComponent(e)}`,{method:"DELETE"})}async function ax(e){return Mn(await Ce(`${We(e)}/tags`))}async function rx(e,t){return Mn(await Ce(`${We(e)}/milestones`))}async function sx(e,t="open"){return Mn(await Ce(`${We(e)}/issues?state=${encodeURIComponent(t)}`),"issues")}async function L3(e,t="all"){return Ce(`${We(e)}/issues/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function j3(e,t,a){return Ce(`${We(e)}/issues`,{method:"POST",body:JSON.stringify({title:t,body:a})})}async function B3(e,t,a){await Ce(`${We(e)}/issues/${t}/children`,{method:"POST",body:JSON.stringify({childNumber:a})})}async function QE(e,t,a){return Ce(`${We(e)}/issues/${t}`,{method:"PATCH",body:JSON.stringify(a)})}async function ix(e,t){return Mn(await Ce(`${We(e)}/issues/${t}/pulls`))}async function P3(e,t,a,s=!1){await Ce(`${We(e)}/issues/${t}/pulls/${a}/merge`,{method:"POST",body:JSON.stringify({closeIssue:s})})}async function lx(e,t="open"){return Mn(await Ce(`${We(e)}/pulls?state=${encodeURIComponent(t)}`))}async function U3(e,t="all"){return Ce(`${We(e)}/pulls/sync`,{method:"POST",body:JSON.stringify({state:t})})}async function H3(e,t){await Ce(`${We(e)}/pulls/${t}/merge`,{method:"POST"})}async function XE(e,t){return Mn(await Ce(`${We(e)}/pulls/${t}/issues`))}async function F3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues`,{method:"POST",body:JSON.stringify({issueNumber:a})})}async function z3(e,t,a){await Ce(`${We(e)}/pulls/${t}/issues/${a}`,{method:"DELETE"})}async function q3(e,t){return Ce(`${We(e)}/pulls/${t}/comments`)}async function Y3(e,t){return Ce(`${We(e)}/issues/${t}/comments`)}async function ox(e,t,a){return Ce(`${We(e)}/issues/${t}/comments`,{method:"POST",body:JSON.stringify({body:a})})}async function $3(e,t,a){return Ce(`${We(e)}/issues/${t}/polish`,{method:"POST",body:JSON.stringify({draft:a})})}async function ux(e,t){return Ce(`${We(e)}/issues/${t}/draft`)}async function G3(e,t,a){await Ce(`${We(e)}/sessions/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({title:a})})}async function K3(){return Ce("/api/agents-md")}async function V3(e){await Ce("/api/agents-md",{method:"PUT",body:JSON.stringify({content:e})})}async function Q3(e){return Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`)}async function X3(e,t){await Ce(`/api/repos/${encodeURIComponent(e)}/agents-md`,{method:"PUT",body:JSON.stringify({content:t})})}function Z3(e){return`${qE()}${We(e)}/events`}async function W3(e){return Ce(`${We(e)}/sessions/status`)}async function Uc(){return Ce("/api/settings")}async function $m(e,t){await Ce(`/api/settings/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify({value:t})})}async function ZE(){return Ce("/api/cloud/status")}async function J3(e){try{return(await Ce("/api/cloud/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e})})).connected}catch{return!1}}async function eC(){return Mn(await Ce("/api/git-hosts"),"gitHosts")}async function tC(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 nC(e){await Ce(`/api/git-hosts/${encodeURIComponent(e)}`,{method:"DELETE"})}async function aC(){return Ce("/api/usage")}async function rC(e){return Ce("/api/usage/switch",{method:"POST",body:JSON.stringify({accountId:e})})}async function sC(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 i3(),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 l3(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 u3(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},WE=[{segment:"repos",icon:Iv,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:HA,label:"设置",global:!0}];function JE(e,t,a){return t?`/${e}`:a?`/${encodeURIComponent(a)}/${e}`:`/${e}`}function iC({repoId:e,currentBranch:t}){const a=qe(A=>A.updateRepoBranch),[s,l]=v.useState(!1),[o,d]=v.useState(null),[f,m]=v.useState(!1),[h,x]=v.useState(null),[b,y]=v.useState(null),T=v.useRef(null),N=v.useCallback(()=>{l(!1),y(null)},[]);v.useEffect(()=>{if(!s)return;const A=D=>{T.current&&!T.current.contains(D.target)&&N()};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[s,N]);const S=async()=>{if(s){N();return}l(!0),m(!0),y(null);try{d(await f3(e))}catch{y("加载分支失败")}finally{m(!1)}},C=async A=>{if(!(A===t||h)){x(A),y(null);try{const D=await m3(e,A);a(e,D.branch),N()}catch(D){y(D instanceof Error?D.message:"切换失败")}finally{x(null)}}};return t?u.jsxs("div",{ref:T,className:"relative",children:[u.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:[u.jsx(_o,{className:"h-3 w-3"}),t,u.jsx(ss,{className:ce("h-3 w-3 transition-transform",s&&"rotate-180")})]}),s&&u.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?u.jsx("div",{className:"flex items-center justify-center py-4",children:u.jsx(Va,{className:"h-4 w-4 animate-spin text-fg-4"})}):o?u.jsxs("div",{className:"max-h-64 overflow-y-auto py-1",children:[o.local.map(A=>u.jsxs("button",{type:"button",disabled:h!==null,onClick:()=>C(A),className:ce("flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors",A===t?"font-medium text-blue-600":"text-fg-2 hover:bg-elevated"),children:[A===t?u.jsx(oa,{className:"h-3 w-3 shrink-0"}):h===A?u.jsx(Va,{className:"h-3 w-3 shrink-0 animate-spin"}):u.jsx("span",{className:"h-3 w-3 shrink-0"}),u.jsx("span",{className:"truncate",children:A})]},A)),o.remote.length>0&&u.jsxs(u.Fragment,{children:[u.jsx("div",{className:"mx-3 my-1 border-t border-line"}),u.jsx("div",{className:"px-3 py-1 text-[10px] font-medium uppercase tracking-wider text-fg-4",children:"Remote"}),o.remote.map(A=>u.jsxs("button",{type:"button",disabled:h!==null,onClick:()=>C(A),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:[h===A?u.jsx(Va,{className:"h-3 w-3 shrink-0 animate-spin"}):u.jsx("span",{className:"h-3 w-3 shrink-0"}),u.jsx("span",{className:"truncate",children:A})]},`remote-${A}`))]})]}):null,b&&u.jsx("div",{className:"border-t border-line px-3 py-2 text-xs text-red-500",children:b})]})]}):null}function lC(){const[e,t]=v.useState(null);return v.useEffect(()=>{const a=()=>fetch("/api/health").then(o=>o.json()).then(o=>{o.latestVersion&&o.latestVersion!=="0.7.1"&&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 oC(){const e=va(),t=ca(),a=qe(b=>b.repos),s=qe(b=>b.activeRepoId),l=qe(b=>b.setActiveRepo),o=qm(b=>b.preference),d=qm(b=>b.cycle),f=o==="light"?YA:o==="dark"?CA:vA,m=a.find(b=>b.id===s),h=lC(),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 u.jsx("header",{className:"shrink-0 border-b border-line bg-surface pt-[var(--safe-top)]",children:u.jsxs("div",{className:"flex h-12 items-center justify-between px-4",children:[u.jsxs("div",{className:"flex items-center gap-2.5",children:[u.jsx(Sh,{className:"h-5 w-5 text-blue-500"}),u.jsx("span",{className:"text-sm font-bold tracking-tight text-fg",children:"Fourth Spark"}),u.jsxs("span",{className:"rounded bg-elevated px-1.5 py-0.5 text-[10px] font-medium tabular-nums text-fg-4",children:["v","0.7.1"]}),h&&u.jsxs("span",{className:"text-[10px] text-amber-500",children:["→ v",h," 可用,运行 ",u.jsx("code",{className:"rounded bg-amber-500/10 px-1 font-mono",children:"fourth-spark upgrade"})," 更新"]})]}),u.jsxs("div",{className:"flex items-center gap-3",children:[a.length>0&&u.jsxs("div",{className:"flex items-center gap-2",children:[u.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=>u.jsx("option",{value:b.id,children:b.name},b.id))}),m&&s&&u.jsx(iC,{repoId:s,currentBranch:m.branch})]}),u.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:u.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"currentColor",children:u.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"})})}),u.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:u.jsx(f,{className:"h-4 w-4"})})]})]})})}function uC(){const e=qe(Da);return u.jsx("nav",{className:"hidden w-48 shrink-0 flex-col border-r border-line bg-surface py-2 md:flex",children:WE.map(t=>u.jsxs(Th,{to:JE(t.segment,t.global,e),className:({isActive:a})=>ce("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:[u.jsx(t.icon,{className:"h-4 w-4 shrink-0"}),t.label]},t.segment))})}function cC(){const e=qe(Da);return u.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:u.jsx("div",{className:"flex h-14 items-center justify-around",children:WE.map(t=>u.jsx(Th,{to:JE(t.segment,t.global,e),"aria-label":t.label,className:({isActive:a})=>ce("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:u.jsx(t.icon,{className:"h-5 w-5 shrink-0"})},t.segment))})})}function dC(){return u.jsxs("div",{className:"flex h-full flex-col overflow-hidden bg-base text-fg",children:[u.jsx(oC,{}),u.jsxs("div",{className:"flex min-h-0 flex-1",children:[u.jsx(uC,{}),u.jsx("main",{className:"flex min-w-0 flex-1 flex-col overflow-hidden pb-[calc(3.5rem_+_var(--safe-bottom))] md:pb-0",children:u.jsx(OS,{})})]}),u.jsx(cC,{})]})}function fC({onClose:e}){const[t,a]=v.useState(""),[s,l]=v.useState(""),[o,d]=v.useState(""),[f,m]=v.useState(!1),[h,x]=v.useState(""),b=qe(C=>C.addRepo),y=s.trim()!==""&&o.trim()!==""&&t.trim()!==""&&!f,T=async C=>{const A=C.trim();if(A){m(!0),x("");try{const D=await o3(A);D.name&&!s.trim()&&l(D.name),D.gitUrl&&!o.trim()&&d(D.gitUrl)}catch(D){const k=D instanceof Error?D.message:"无法解析路径";try{const z=JSON.parse(k);x(z.error??k)}catch{x(k)}}m(!1)}},N=v.useRef(T);N.current=T,v.useEffect(()=>{const C=t.trim();if(!C)return;const A=setTimeout(()=>{N.current(C)},500);return()=>clearTimeout(A)},[t]);const S=async()=>{if(!y)return;x(""),await b(s.trim(),o.trim(),t.trim())&&e()};return u.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:e,children:u.jsxs("div",{className:"w-full max-w-md rounded-xl border border-line bg-surface p-6 shadow-2xl",onClick:C=>C.stopPropagation(),children:[u.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[u.jsx("h2",{className:"text-base font-semibold text-fg",children:"添加仓库"}),u.jsx("button",{type:"button",onClick:e,className:"rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:u.jsx(Tt,{className:"h-4 w-4"})})]}),u.jsxs("div",{className:"flex flex-col gap-4",children:[u.jsxs("div",{className:"flex flex-col gap-1.5",children:[u.jsx("label",{htmlFor:"m-path",className:"text-xs font-medium text-fg-3",children:"本地路径"}),u.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"}),u.jsx("span",{className:"text-[11px] text-fg-5",children:f?"正在读取 Git 信息…":"输入路径后自动读取仓库信息"})]}),u.jsxs("div",{className:"flex flex-col gap-1.5",children:[u.jsx("label",{htmlFor:"m-name",className:"text-xs font-medium text-fg-3",children:"名称"}),u.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"})]}),u.jsxs("div",{className:"flex flex-col gap-1.5",children:[u.jsx("label",{htmlFor:"m-git",className:"text-xs font-medium text-fg-3",children:"Git 远程地址"}),u.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"})]}),h&&u.jsx("p",{className:"rounded-md bg-red-500/10 px-3 py-2 text-xs text-red-500",children:h}),u.jsxs("div",{className:"mt-1 flex items-center justify-end gap-2",children:[u.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:"取消"}),u.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 mC({repoId:e,repoName:t,onClose:a}){const[s,l]=v.useState(""),[o,d]=v.useState(""),[f,m]=v.useState(!0),[h,x]=v.useState(!1),[b,y]=v.useState(null);v.useEffect(()=>{Q3(e).then(S=>{l(S.content),d(S.content),m(!1)}).catch(S=>{y(S instanceof Error?S.message:String(S)),m(!1)})},[e]);const T=async()=>{x(!0),y(null);try{await X3(e,s),d(s)}catch(S){y(S instanceof Error?S.message:String(S))}x(!1)},N=s!==o;return u.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:a,children:u.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:[u.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[u.jsxs("div",{className:"min-w-0",children:[u.jsxs("h2",{className:"text-base font-semibold text-fg",children:[t," — AGENTS.md"]}),u.jsx("p",{className:"mt-0.5 text-xs text-fg-4",children:"仅对此仓库生效,修改后 opencode 热加载即时生效。"})]}),u.jsx("button",{type:"button",onClick:a,className:"shrink-0 rounded-md p-1 text-fg-4 hover:bg-elevated hover:text-fg-2",children:u.jsx(Tt,{className:"h-4 w-4"})})]}),b&&u.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:[u.jsx(Kn,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),u.jsx("span",{className:"min-w-0 break-words",children:b})]}),f?u.jsxs("div",{className:"flex flex-col items-center gap-2.5 py-16 text-fg-5",children:[u.jsx(Va,{className:"h-5 w-5 fs-spin"}),u.jsx("p",{className:"text-xs",children:"加载中…"})]}):u.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
406
406
 
407
407
  在此编写该仓库的 Agent 指令…`}),u.jsxs("div",{className:"mt-4 flex items-center justify-end gap-2",children:[u.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:"关闭"}),u.jsxs("button",{type:"button",onClick:()=>void T(),disabled:h||!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:[u.jsx(Pc,{className:"h-3.5 w-3.5"}),h?"保存中…":"保存"]})]})]})})}function hC(){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]=v.useState(!1),[f,m]=v.useState(null),[h,x]=v.useState(null),[b,y]=v.useState(null),[T,N]=v.useState(null),[S,C]=v.useState(null),A=async(k,z)=>{x(k);try{z?await d3(k):await c3(k),await l()}catch{}x(null)},D=async k=>{y(k),N(null);try{await h3(k),await l()}catch(z){let V="拉取失败";if(z instanceof Hs)try{V=JSON.parse(z.message).error??z.message}catch{V=z.message}N(V)}y(null)};return u.jsxs("div",{className:"flex-1 overflow-y-auto p-6",children:[u.jsxs("div",{className:"mx-auto max-w-4xl",children:[u.jsxs("div",{className:"mb-6 flex items-center justify-between gap-3",children:[u.jsxs("div",{className:"min-w-0",children:[u.jsx("h1",{className:"text-lg font-semibold text-fg",children:"仓库管理"}),u.jsx("p",{className:"mt-0.5 text-sm text-fg-4",children:"管理代码仓库,每个仓库对应一个独立的 Agent 运行环境"})]}),u.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:[u.jsx(Sr,{className:"h-4 w-4"}),u.jsx("span",{className:"hidden md:inline",children:"添加仓库"})]})]}),T&&u.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:[u.jsx("span",{children:T}),u.jsx("button",{type:"button",onClick:()=>N(null),className:"shrink-0 rounded p-0.5 transition-colors hover:bg-red-500/10",children:u.jsx(Tt,{className:"h-3.5 w-3.5"})})]}),e.length===0?u.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-xl border border-dashed border-line-hard py-16 text-center",children:[u.jsx("div",{className:"rounded-full bg-elevated p-3",children:u.jsx(Sr,{className:"h-6 w-6 text-fg-4"})}),u.jsx("p",{className:"text-sm font-medium text-fg-3",children:"暂无代码仓库"}),u.jsx("p",{className:"text-xs text-fg-5",children:"添加一个本地仓库开始使用"}),u.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:"添加仓库"})]}):u.jsx(u.Fragment,{children:u.jsx("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:e.map(k=>{const z=k.id===t;return u.jsxs("div",{className:ce("rounded-xl border p-4 transition-colors",z?"border-blue-500/40 bg-blue-500/5":"border-line"),children:[u.jsxs("div",{className:"flex items-center justify-between gap-2",children:[u.jsxs("button",{type:"button",onClick:()=>a(k.id),className:"flex min-w-0 items-center gap-2 text-left",children:[z?u.jsx(fo,{className:"h-4 w-4 shrink-0 text-blue-500"}):u.jsx(Fv,{className:"h-4 w-4 shrink-0 text-fg-5"}),u.jsx("span",{className:ce("truncate font-medium",z?"text-fg":"text-fg-2"),children:k.name})]}),u.jsxs("span",{className:ce("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:[u.jsx("span",{className:ce("h-1.5 w-1.5 rounded-full",k.running?"bg-emerald-500":"bg-fg-5")}),k.running?"运行中":"已停止"]})]}),u.jsxs("dl",{className:"mt-3 space-y-1 font-mono text-xs text-fg-4",children:[u.jsxs("div",{className:"flex gap-2",children:[u.jsx("dt",{className:"shrink-0 text-fg-5",children:"Git"}),u.jsx("dd",{className:"min-w-0 truncate",children:k.gitUrl})]}),u.jsxs("div",{className:"flex gap-2",children:[u.jsx("dt",{className:"shrink-0 text-fg-5",children:"路径"}),u.jsxs("dd",{className:"flex min-w-0 items-center gap-1.5",children:[u.jsx("span",{className:"truncate",children:k.localPath}),u.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:u.jsx(mc,{className:"h-3 w-3"})})]})]}),k.running&&k.port&&u.jsxs("div",{className:"flex items-center gap-2",children:[u.jsx("dt",{className:"shrink-0 text-fg-5",children:"直连"}),u.jsxs("dd",{className:"flex min-w-0 items-center gap-1.5",children:[u.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]}),u.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:u.jsx(mc,{className:"h-3 w-3"})})]})]})]}),u.jsxs("div",{className:"mt-3 flex items-center gap-2",children:[u.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:[u.jsx(ME,{className:"h-3 w-3"}),"配置"]}),u.jsx("button",{type:"button",onClick:()=>void D(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?u.jsx("span",{className:"inline-block h-3.5 w-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}):u.jsxs(u.Fragment,{children:[u.jsx(Tv,{className:"h-3 w-3"}),"拉取"]})}),u.jsx("button",{type:"button",onClick:()=>void A(k.id,k.running),disabled:h===k.id,className:ce("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:h===k.id?u.jsx("span",{className:"inline-block h-3.5 w-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}):k.running?u.jsxs(u.Fragment,{children:[u.jsx(jE,{className:"h-3 w-3 fill-current"}),"停止"]}):u.jsxs(u.Fragment,{children:[u.jsx(Bc,{className:"h-3 w-3 fill-current"}),"启动"]})}),f===k.id?u.jsxs(u.Fragment,{children:[u.jsx("button",{type:"button",onClick:()=>{s(k.id),m(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:u.jsx(oa,{className:"h-3.5 w-3.5"})}),u.jsx("button",{type:"button",onClick:()=>m(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:u.jsx(Tt,{className:"h-3.5 w-3.5"})})]}):u.jsx("button",{type:"button",onClick:()=>m(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:u.jsx(ji,{className:"h-3.5 w-3.5"})})]})]},k.id)})})}),u.jsxs("p",{className:"mt-3 text-xs text-fg-5",children:[e.length," 个仓库"]})]}),o&&u.jsx(fC,{onClose:()=>d(!1)}),S&&u.jsx(mC,{repoId:S.id,repoName:S.name,onClose:()=>C(null)})]})}const pC=new Set(["tool","tool-use","tool_use","tool-call","tool_call","tool-result","tool_result"]),gC=new Set(["thinking","reasoning","reason"]),bC=new Set(["text","output_text","message"]);function Ah(e){var a;const t=((a=e.type)==null?void 0:a.toLowerCase())??"";return pC.has(t)||e.toolName!=null||e.tool!=null?"tool":gC.has(t)?"thinking":bC.has(t)||e.content!=null||e.text!=null?"text":"other"}function xc(e){return e.content??e.text??""}function ey(e){return e.toolName??e.tool??"tool"}function Hc(e){var t;return e.input??((t=e.state)==null?void 0:t.input)}function Ch(e){var t;return e.output??((t=e.state)==null?void 0:t.output)}function wh(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":Ch(e)!=null?"completed":"running"}function cx(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 xC(e){return e.filter(t=>Bi(t.status)==="completed").length}function ho(e){const t=ey(e).toLowerCase();return t==="question"||t==="mcp_question"}function EC(e){const t=Hc(e);if(!t||typeof t!="object")return null;const a=t;return Array.isArray(a.questions)?a.questions:null}function Ec(e){if(!ho(e))return!1;const t=wh(e);return t==="pending"||t==="running"}const yC=/\bses_[a-zA-Z0-9]+/;function TC(e){var l;const t=Hc(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=Ch(e);if(typeof s=="string"){const o=yC.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 _C=0;const Yt=zs(e=>({toasts:[],addToast:(t,a="info",s,l)=>{const o=(l==null?void 0:l.id)??`toast-${++_C}-${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 ty(e){return`question-${e}`}function dm(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:ty(e),persistent:!0})}function NC(e){var t;for(const a of e)if((t=a.parts)!=null&&t.some(s=>ho(s)&&Ec(s)))return!0;return!1}const po=[],yc=[],dx=[],Ms={};function fx(e){return e.id??e.callID}function sa(){return qe.getState().activeRepoId}const Le=zs((e,t)=>({sessions:[],activeSessionId:null,messages:{},todos:{},sessionStatuses:{},errorReasons:{},queuedMessageIds:{},sessionLinks:{},allSessionLinks:{},loadingSessions:!1,loadError:null,sendError:null,loadSessions:async()=>{const a=sa();if(!a){e({sessions:[],loadingSessions:!1});return}e({loadingSessions:!0,loadError:null});try{const[s,l]=await Promise.all([p3(a),tx(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 m=sa();if(!m)return null;e({sendError:null});try{const h=await g3(m,a,s,l,o,d,f);return e(x=>({sessions:[h,...x.sessions.filter(b=>b.id!==h.id)],activeSessionId:h.id,messages:{...x.messages,[h.id]:[]}})),t().setSessionStatus(h.id,"busy"),h}catch(h){return e({sendError:h instanceof Error?h.message:"Failed to create session"}),null}},setActiveSession:async a=>{sa()&&(e({activeSessionId:a,sendError:null}),await t().refreshSessionData(a))},refreshSessionData:async a=>{const s=sa();if(!s)return;const[l,o,d,f,m]=await Promise.allSettled([S3(s,a),v3(s,a),YE(s,a),b3(s,a),ex(s,a)]);e(h=>{const x={};if(l.status==="fulfilled"&&(x.messages={...h.messages,[a]:l.value}),o.status==="fulfilled"&&(x.todos={...h.todos,[a]:o.value}),d.status==="fulfilled"&&(x.sessionStatuses={...h.sessionStatuses,[a]:d.value.type}),f.status==="fulfilled"){const b=f.value;x.sessions=h.sessions.map(y=>y.id===a?{...y,...b}:y)}return m.status==="fulfilled"&&(x.sessionLinks={...h.sessionLinks,[a]:m.value}),x}),l.status==="fulfilled"&&NC(l.value)&&dm(a,t().sessions)},refreshSessionLinks:async a=>{const s=sa();if(s)try{const[l,o]=await Promise.all([ex(s,a),tx(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=sa();if(!o)return!1;try{return await A3(o,a,s,l),await t().refreshSessionLinks(a),!0}catch{return!1}},removeLink:async(a,s,l)=>{const o=sa();if(!o)return!1;try{return await C3(o,a,s,l),await t().refreshSessionLinks(a),!0}catch{return!1}},deleteSession:async a=>{const s=sa();if(s)try{await x3(s,a)}catch{}delete Ms[a],e(l=>{const{[a]:o,...d}=l.messages,{[a]:f,...m}=l.todos,{[a]:h,...x}=l.sessionStatuses,{[a]:b,...y}=l.errorReasons,{[a]:T,...N}=l.queuedMessageIds,{[a]:S,...C}=l.sessionLinks,{[a]:A,...D}=l.allSessionLinks;return{sessions:l.sessions.filter(k=>k.id!==a),messages:d,todos:m,sessionStatuses:x,errorReasons:y,queuedMessageIds:N,sessionLinks:C,allSessionLinks:D,activeSessionId:l.activeSessionId===a?null:l.activeSessionId}})},sendMessage:async(a,s)=>{const l=sa(),o=t().activeSessionId;if(!l||!o)return;const d=t().sessions.find(m=>m.id===o),f=t().sessionStatuses[o]==="busy";e({sendError:null}),f||t().setSessionStatus(o,"busy");try{await E3(l,o,a,d==null?void 0:d.agent,s),f&&(Ms[o]=(Ms[o]||0)+1)}catch(m){e({sendError:m instanceof Error?m.message:"Failed to send message"}),f||t().setSessionStatus(o,"idle")}},replyQuestion:async a=>{const s=sa(),l=t().activeSessionId;if(!(!s||!l))try{await T3(s,l,a)}catch(o){e({sendError:o instanceof Error?o.message:"Failed to reply to question"})}},rejectQuestion:async()=>{const a=sa(),s=t().activeSessionId;if(!(!a||!s))try{await _3(a,s)}catch{}},abortSession:async()=>{const a=sa(),s=t().activeSessionId;if(!(!a||!s)){try{await y3(a,s)}catch{}t().setSessionStatus(s,"idle")}},clearSessions:()=>{for(const a of Object.keys(Ms))delete Ms[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 m,h=o.queuedMessageIds;if(f>=0){const x={...d[f],...s};(!s.parts||s.parts.length===0)&&d[f].parts&&(x.parts=d[f].parts),m=[...d],m[f]=x}else{m=[...d,s];const x=Ms[a]||0;if(s.role==="user"&&x>0){const b=[...h[a]??[]];b.push(s.id),h={...h,[a]:b},Ms[a]=x-1}else if(s.role==="assistant"){const b=h[a];b&&b.length>0&&(h={...h,[a]:b.slice(1)})}}return{messages:{...o.messages,[a]:m},queuedMessageIds:h}}),(l=s.parts)!=null&&l.some(o=>ho(o)&&Ec(o))&&dm(a,t().sessions)},updateMessagePart:(a,s,l)=>{e(o=>{const d=o.messages[a]??[],f=d.findIndex(N=>N.id===s),m=f>=0?d[f]:{id:s,role:"assistant"},h=m.parts?[...m.parts]:[],x=fx(l),b=x!=null?h.findIndex(N=>fx(N)===x):-1;b>=0?h[b]={...h[b],...l}:h.push(l);const y={...m,parts:h},T=f>=0?[...d]:[...d,y];return f>=0&&(T[f]=y),{messages:{...o.messages,[a]:T}}}),ho(l)&&Ec(l)&&dm(a,t().sessions)},appendMessagePartDelta:(a,s,l,o)=>{e(d=>{const f=d.messages[a]??[],m=f.findIndex(N=>N.id===s),h=m>=0?f[m]:{id:s,role:"assistant"},x=h.parts?[...h.parts]:[],b=x.findIndex(N=>N.id===l);if(b>=0){const N=x[b],S=xc(N)+o;x[b]=N.content!=null?{...N,content:S}:{...N,text:S}}else x.push({id:l,type:"text",text:o});const y={...h,parts:x},T=m>=0?[...f]:[...f,y];return m>=0&&(T[m]=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(m=>m.id===a),f=(d==null?void 0:d.title)||a.slice(-8);if(s==="idle"&&o!==void 0&&o!=="idle")Yt.getState().removeToast(ty(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 m=l?`${f} — 错误: ${l}`:`${f} — 发生错误`;Yt.getState().addToast(m,"error",a)}}e(d=>{const f=l?{...d.errorReasons,[a]:l}:s!=="error"?(()=>{const{[a]:m,...h}=d.errorReasons;return h})():d.errorReasons;return{sessionStatuses:{...d.sessionStatuses,[a]:s},errorReasons:f}})},bulkSetStatuses:a=>{e({sessionStatuses:{...t().sessionStatuses,...a}})},renameSession:async(a,s)=>{const l=sa();if(l){e(o=>({sessions:o.sessions.map(d=>d.id===a?{...d,title:s}:d)}));try{await G3(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 B3(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(m=>m.number===s?{...m,parentId:d}:m),matchingCandidateId:null})),!0}catch{return!1}},updateIssueState:async(a,s)=>{const l=qe.getState().activeRepoId;if(!l)return!1;try{const o=await QE(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 sx(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 L3(a);const[s,l,o]=await Promise.all([sx(a,"all"),ax(a),rx(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 j3(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 ax(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 rx(a);e({milestones:s})}catch{}},setMilestoneFilter:a=>e({selectedMilestoneId:a})}));function mx(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 ny(e,t){const a={};return(e[e.length-1]===""?[...e,""]:e).join((a.padRight?" ":"")+","+(a.padLeft===!1?"":" ")).trim()}const SC=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,vC=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,AC={};function hx(e,t){return(AC.jsx?vC:SC).test(e)}const CC=/[ \t\n\f\r]/g;function wC(e){return typeof e=="object"?e.type==="text"?px(e.value):!1:px(e)}function px(e){return e.replace(CC,"")===""}class No{constructor(t,a,s){this.normal=a,this.property=t,s&&(this.space=s)}}No.prototype.normal={};No.prototype.property={};No.prototype.space=void 0;function ay(e,t){const a={},s={};for(const l of e)Object.assign(a,l.property),Object.assign(s,l.normal);return new No(a,s,t)}function go(e){return e.toLowerCase()}class Vn{constructor(t,a){this.attribute=a,this.property=t}}Vn.prototype.attribute="";Vn.prototype.booleanish=!1;Vn.prototype.boolean=!1;Vn.prototype.commaOrSpaceSeparated=!1;Vn.prototype.commaSeparated=!1;Vn.prototype.defined=!1;Vn.prototype.mustUseProperty=!1;Vn.prototype.number=!1;Vn.prototype.overloadedBoolean=!1;Vn.prototype.property="";Vn.prototype.spaceSeparated=!1;Vn.prototype.space=void 0;let kC=0;const Ke=qs(),sn=qs(),Gm=qs(),ye=qs(),kt=qs(),Ps=qs(),ia=qs();function qs(){return 2**++kC}const Km=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ke,booleanish:sn,commaOrSpaceSeparated:ia,commaSeparated:Ps,number:ye,overloadedBoolean:Gm,spaceSeparated:kt},Symbol.toStringTag,{value:"Module"})),fm=Object.keys(Km);class kh extends Vn{constructor(t,a,s,l){let o=-1;if(super(t,a),gx(this,"space",l),typeof s=="number")for(;++o<fm.length;){const d=fm[o];gx(this,fm[o],(s&Km[d])===Km[d])}}}kh.prototype.defined=!0;function gx(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 kh(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 No(t,a,e.space)}const ry=$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 sy(e,t){return t in e?e[t]:t}function iy(e,t){return sy(e,t.toLowerCase())}const RC=$i({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ps,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|Ps,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Ke,defer:Ke,dir:null,dirName:null,disabled:Ke,download:Gm,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:Gm,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:Ps,part:kt,prefix:null,property:null,results:ye,security:null,unselectable:null},space:"html",transform:iy}),OC=$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:ia,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:Ps,g2:Ps,glyphName:Ps,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:ia,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:ia,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ia,rev:ia,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ia,requiredFeatures:ia,requiredFonts:ia,requiredFormats:ia,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:ia,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:ia,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:ia,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:sy}),ly=$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()}}),oy=$i({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:iy}),uy=$i({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),IC={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"},MC=/[A-Z]/g,bx=/-[a-z]/g,DC=/^data[-\w.:]+$/i;function Fc(e,t){const a=go(t);let s=t,l=Vn;if(a in e.normal)return e.property[e.normal[a]];if(a.length>4&&a.slice(0,4)==="data"&&DC.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(bx,jC);s="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!bx.test(o)){let d=o.replace(MC,LC);d.charAt(0)!=="-"&&(d="-"+d),t="data"+d}}l=kh}return new l(s,t)}function LC(e){return"-"+e.toLowerCase()}function jC(e){return e.charAt(1).toUpperCase()}const So=ay([ry,RC,ly,oy,uy],"html"),cs=ay([ry,OC,ly,oy,uy],"svg");function xx(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function cy(e){return e.join(" ").trim()}var Ri={},mm,Ex;function BC(){if(Ex)return mm;Ex=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,a=/^\s*/,s=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,l=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,d=/^[;\s]*/,f=/^\s+|\s+$/g,m=`
408
408
  `,h="/",x="*",b="",y="comment",T="declaration";function N(C,A){if(typeof C!="string")throw new TypeError("First argument must be a string");if(!C)return[];A=A||{};var D=1,k=1;function z(Z){var ee=Z.match(t);ee&&(D+=ee.length);var Q=Z.lastIndexOf(m);k=~Q?Z.length-Q:k+Z.length}function V(){var Z={line:D,column:k};return function(ee){return ee.position=new M(Z),se(),ee}}function M(Z){this.start=Z,this.end={line:D,column:k},this.source=A.source}M.prototype.content=C;function L(Z){var ee=new Error(A.source+":"+D+":"+k+": "+Z);if(ee.reason=Z,ee.filename=A.source,ee.line=D,ee.column=k,ee.source=C,!A.silent)throw ee}function K(Z){var ee=Z.exec(C);if(ee){var Q=ee[0];return z(Q),C=C.slice(Q.length),ee}}function se(){K(a)}function B(Z){var ee;for(Z=Z||[];ee=U();)ee!==!1&&Z.push(ee);return Z}function U(){var Z=V();if(!(h!=C.charAt(0)||x!=C.charAt(1))){for(var ee=2;b!=C.charAt(ee)&&(x!=C.charAt(ee)||h!=C.charAt(ee+1));)++ee;if(ee+=2,b===C.charAt(ee-1))return L("End of comment missing");var Q=C.slice(2,ee-2);return k+=2,z(Q),C=C.slice(ee),k+=2,Z({type:y,comment:Q})}}function te(){var Z=V(),ee=K(s);if(ee){if(U(),!K(l))return L("property missing ':'");var Q=K(o),$=Z({type:T,property:S(ee[0].replace(e,b)),value:Q?S(Q[0].replace(e,b)):b});return K(d),$}}function ie(){var Z=[];B(Z);for(var ee;ee=te();)ee!==!1&&(Z.push(ee),B(Z));return Z}return se(),ie()}function S(C){return C?C.replace(f,b):b}return mm=N,mm}var yx;function PC(){if(yx)return Ri;yx=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(BC());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(m=>{if(m.type!=="declaration")return;const{property:h,value:x}=m;f?l(h,x,m):x&&(o=o||{},o[h]=x)}),o}return Ri}var Gl={},Tx;function UC(){if(Tx)return Gl;Tx=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(h){return!h||a.test(h)||e.test(h)},d=function(h,x){return x.toUpperCase()},f=function(h,x){return"".concat(x,"-")},m=function(h,x){return x===void 0&&(x={}),o(h)?h:(h=h.toLowerCase(),x.reactCompat?h=h.replace(l,f):h=h.replace(s,f),h.replace(t,d))};return Gl.camelCase=m,Gl}var Kl,_x;function HC(){if(_x)return Kl;_x=1;var e=Kl&&Kl.__importDefault||function(l){return l&&l.__esModule?l:{default:l}},t=e(PC()),a=UC();function s(l,o){var d={};return!l||typeof l!="string"||(0,t.default)(l,function(f,m){f&&m&&(d[(0,a.camelCase)(f,o)]=m)}),d}return s.default=s,Kl=s,Kl}var FC=HC();const zC=Rc(FC),zc=dy("end"),Xa=dy("start");function dy(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 qC(e){const t=Xa(e),a=zc(e);if(t&&a)return{start:t,end:a}}function to(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Nx(e.position):"start"in e||"end"in e?Nx(e):"line"in e||"column"in e?Vm(e):""}function Vm(e){return Sx(e&&e.line)+":"+Sx(e&&e.column)}function Nx(e){return Vm(e&&e.start)+"-"+Vm(e&&e.end)}function Sx(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 m=s.indexOf(":");m===-1?o.ruleId=s:(o.source=s.slice(0,m),o.ruleId=s.slice(m+1))}if(!o.place&&o.ancestors&&o.ancestors){const m=o.ancestors[o.ancestors.length-1];m&&(o.place=m.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 Rh={}.hasOwnProperty,YC=new Map,$C=/[A-Z]/g,GC=new Set(["table","tbody","thead","tfoot","tr"]),KC=new Set(["td","th"]),fy="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function VC(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=nw(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=tw(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"?cs:So,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=my(l,e,void 0);return o&&typeof o!="string"?o:l.create(e,l.Fragment,{children:o||void 0},void 0)}function my(e,t,a){if(t.type==="element")return QC(e,t,a);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return XC(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return WC(e,t,a);if(t.type==="mdxjsEsm")return ZC(e,t);if(t.type==="root")return JC(e,t,a);if(t.type==="text")return ew(e,t)}function QC(e,t,a){const s=e.schema;let l=s;t.tagName.toLowerCase()==="svg"&&s.space==="html"&&(l=cs,e.schema=l),e.ancestors.push(t);const o=py(e,t.tagName,!1),d=aw(e,t);let f=Ih(e,t);return GC.has(t.tagName)&&(f=f.filter(function(m){return typeof m=="string"?!wC(m):!0})),hy(e,d,o,t),Oh(d,f),e.ancestors.pop(),e.schema=s,e.create(t,o,d,a)}function XC(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 ZC(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);bo(e,t.position)}function WC(e,t,a){const s=e.schema;let l=s;t.name==="svg"&&s.space==="html"&&(l=cs,e.schema=l),e.ancestors.push(t);const o=t.name===null?e.Fragment:py(e,t.name,!0),d=rw(e,t),f=Ih(e,t);return hy(e,d,o,t),Oh(d,f),e.ancestors.pop(),e.schema=s,e.create(t,o,d,a)}function JC(e,t,a){const s={};return Oh(s,Ih(e,t)),e.create(t,e.Fragment,s,a)}function ew(e,t){return t.value}function hy(e,t,a,s){typeof a!="string"&&a!==e.Fragment&&e.passNode&&(t.node=s)}function Oh(e,t){if(t.length>0){const a=t.length>1?t:t[0];a&&(e.children=a)}}function tw(e,t,a){return s;function s(l,o,d,f){const h=Array.isArray(d.children)?a:t;return f?h(o,d,f):h(o,d)}}function nw(e,t){return a;function a(s,l,o,d){const f=Array.isArray(o.children),m=Xa(s);return t(l,o,d,f,{columnNumber:m?m.column-1:void 0,fileName:e,lineNumber:m?m.line:void 0},void 0)}}function aw(e,t){const a={};let s,l;for(l in t.properties)if(l!=="children"&&Rh.call(t.properties,l)){const o=sw(e,l,t.properties[l]);if(o){const[d,f]=o;e.tableCellAlignToStyle&&d==="align"&&typeof f=="string"&&KC.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 rw(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 Ih(e,t){const a=[];let s=-1;const l=e.passKeys?new Map:YC;for(;++s<t.children.length;){const o=t.children[s];let d;if(e.passKeys){const m=o.type==="element"?o.tagName:o.type==="mdxJsxFlowElement"||o.type==="mdxJsxTextElement"?o.name:void 0;if(m){const h=l.get(m)||0;d=m+"-"+h,l.set(m,h+1)}}const f=my(e,o,d);f!==void 0&&a.push(f)}return a}function sw(e,t,a){const s=Fc(e.schema,t);if(!(a==null||typeof a=="number"&&Number.isNaN(a))){if(Array.isArray(a)&&(a=s.commaSeparated?ny(a):cy(a)),s.property==="style"){let l=typeof a=="object"?a:iw(e,String(a));return e.stylePropertyNameCase==="css"&&(l=lw(l)),["style",l]}return[e.elementAttributeNameCase==="react"&&s.space?IC[s.property]||s.property:s.attribute,a]}}function iw(e,t){try{return zC(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=fy+"#cannot-parse-style-attribute",l}}function py(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=hx(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=hx(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(s.type==="Literal"){const l=s.value;return Rh.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=fy+"#cannot-handle-mdx-estrees-without-createevaluater",a}function lw(e){const t={};let a;for(a in e)Rh.call(e,a)&&(t[ow(a)]=e[a]);return t}function ow(e){let t=e.replace($C,uw);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function uw(e){return"-"+e.toLowerCase()}const hm={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"]},cw={};function Mh(e,t){const a=cw,s=typeof a.includeImageAlt=="boolean"?a.includeImageAlt:!0,l=typeof a.includeHtml=="boolean"?a.includeHtml:!0;return gy(e,s,l)}function gy(e,t,a){if(dw(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 vx(e.children,t,a)}return Array.isArray(e)?vx(e,t,a):""}function vx(e,t,a){const s=[];let l=-1;for(;++l<e.length;)s[l]=gy(e[l],t,a);return s.join("")}function dw(e){return!!(e&&typeof e=="object")}const Ax=document.createElement("i");function Dh(e){const t="&"+e+";";Ax.innerHTML=t;const a=Ax.textContent;return a.charCodeAt(a.length-1)===59&&e!=="semi"||a===t?!1:a}function la(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 _a(e,t){return e.length>0?(la(e,e.length,0,t),e):t}const Cx={}.hasOwnProperty;function by(e){const t={};let a=-1;for(;++a<e.length;)fw(t,e[a]);return t}function fw(e,t){let a;for(a in t){const l=(Cx.call(e,a)?e[a]:void 0)||(e[a]={}),o=t[a];let d;if(o)for(d in o){Cx.call(l,d)||(l[d]=[]);const f=o[d];mw(l[d],Array.isArray(f)?f:f?[f]:[])}}}function mw(e,t){let a=-1;const s=[];for(;++a<t.length;)(t[a].add==="after"?e:s).push(t[a]);la(e,0,0,s)}function xy(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=ds(/[A-Za-z]/),Sn=ds(/[\dA-Za-z]/),hw=ds(/[#-'*+\--9=?A-Z^-~]/);function Tc(e){return e!==null&&(e<32||e===127)}const Qm=ds(/\d/),pw=ds(/[\dA-Fa-f]/),gw=ds(/[!-/:-@[-`{-~]/);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 qc=ds(new RegExp("\\p{P}|\\p{S}","u")),Fs=ds(/\s/);function ds(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(m){return rt(m)?(e.enter(a),f(m)):t(m)}function f(m){return rt(m)&&o++<l?(e.consume(m),f):(e.exit(a),t(m))}}const bw={tokenize:xw};function xw(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 m=e.enter("chunkText",{contentType:"text",previous:a});return a&&(a.next=m),a=m,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 Ew={tokenize:yw},wx={tokenize:Tw};function yw(e){const t=this,a=[];let s=0,l,o,d;return f;function f(k){if(s<a.length){const z=a[s];return t.containerState=z[1],e.attempt(z[0].continuation,m,h)(k)}return h(k)}function m(k){if(s++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,l&&D();const z=t.events.length;let V=z,M;for(;V--;)if(t.events[V][0]==="exit"&&t.events[V][1].type==="chunkFlow"){M=t.events[V][1].end;break}A(s);let L=z;for(;L<t.events.length;)t.events[L][1].end={...M},L++;return la(t.events,V+1,0,t.events.slice(z)),t.events.length=L,h(k)}return f(k)}function h(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(wx,x,b)(k)}function x(k){return l&&D(),A(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(wx,T,N)(k)}function T(k){return s++,a.push([t.currentConstruct,t.containerState]),y(k)}function N(k){if(k===null){l&&D(),A(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),A(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,z){const V=t.sliceStream(k);if(z&&V.push(null),k.previous=o,o&&(o.next=k),o=k,l.defineSkip(k.start),l.write(V),t.parser.lazy[k.start.line]){let M=l.events.length;for(;M--;)if(l.events[M][1].start.offset<d&&(!l.events[M][1].end||l.events[M][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(A(s),M=L;M<t.events.length;)t.events[M][1].end={...B},M++;la(t.events,K+1,0,t.events.slice(L)),t.events.length=M}}function A(k){let z=a.length;for(;z-- >k;){const V=a[z];t.containerState=V[1],V[0].exit.call(t,e)}a.length=k}function D(){l.write([null]),o=void 0,l=void 0,t.containerState._closeFlow=void 0}}function Tw(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(qc(e))return 2}function Yc(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 Xm={name:"attention",resolveAll:_w,tokenize:Nw};function _w(e,t){let a=-1,s,l,o,d,f,m,h,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;m=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};kx(b,-m),kx(y,m),d={type:m>1?"strongSequence":"emphasisSequence",start:b,end:{...e[s][1].end}},f={type:m>1?"strongSequence":"emphasisSequence",start:{...e[a][1].start},end:y},o={type:m>1?"strongText":"emphasisText",start:{...e[s][1].end},end:{...e[a][1].start}},l={type:m>1?"strong":"emphasis",start:{...d.start},end:{...f.end}},e[s][1].end={...d.start},e[a][1].start={...f.end},h=[],e[s][1].end.offset-e[s][1].start.offset&&(h=_a(h,[["enter",e[s][1],t],["exit",e[s][1],t]])),h=_a(h,[["enter",l,t],["enter",d,t],["exit",d,t],["enter",o,t]]),h=_a(h,Yc(t.parser.constructs.insideSpan.null,e.slice(s+1,a),t)),h=_a(h,[["exit",o,t],["enter",f,t],["exit",f,t],["exit",l,t]]),e[a][1].end.offset-e[a][1].start.offset?(x=2,h=_a(h,[["enter",e[a][1],t],["exit",e[a][1],t]])):x=0,la(e,s-1,a-s+3,h),a=s+h.length-x-2;break}}for(a=-1;++a<e.length;)e[a][1].type==="attentionSequence"&&(e[a][1].type="data");return e}function Nw(e,t){const a=this.parser.constructs.attentionMarkers.null,s=this.previous,l=Pi(s);let o;return d;function d(m){return o=m,e.enter("attentionSequence"),f(m)}function f(m){if(m===o)return e.consume(m),f;const h=e.exit("attentionSequence"),x=Pi(m),b=!x||x===2&&l||a.includes(m),y=!l||l===2&&x||a.includes(s);return h._open=!!(o===42?b:b&&(l||!y)),h._close=!!(o===42?y:y&&(x||!b)),t(m)}}function kx(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const Sw={name:"autolink",tokenize:vw};function vw(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):h(T)}function d(T){return T===43||T===45||T===46||Sn(T)?(s=1,f(T)):h(T)}function f(T){return T===58?(e.consume(T),s=0,m):(T===43||T===45||T===46||Sn(T))&&s++<32?(e.consume(T),f):(s=0,h(T))}function m(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||Tc(T)?a(T):(e.consume(T),m)}function h(T){return T===64?(e.consume(T),x):hw(T)?(e.consume(T),h):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 vo={partial:!0,tokenize:Aw};function Aw(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 Ey={continuation:{tokenize:ww},exit:kw,name:"blockQuote",tokenize:Cw};function Cw(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 ww(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(Ey,t,a)(d)}}function kw(e){e.exit("blockQuote")}const yy={name:"characterEscape",tokenize:Rw};function Rw(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 gw(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):a(o)}}const Ty={name:"characterReference",tokenize:Ow};function Ow(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"),m}function m(b){return b===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(b),e.exit("characterReferenceMarkerNumeric"),h):(e.enter("characterReferenceValue"),o=31,d=Sn,x(b))}function h(b){return b===88||b===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(b),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,d=pw,x):(e.enter("characterReferenceValue"),o=7,d=Qm,x(b))}function x(b){if(b===59&&l){const y=e.exit("characterReferenceValue");return d===Sn&&!Dh(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 Rx={partial:!0,tokenize:Mw},Ox={concrete:!0,name:"codeFenced",tokenize:Iw};function Iw(e,t,a){const s=this,l={partial:!0,tokenize:V};let o=0,d=0,f;return m;function m(M){return h(M)}function h(M){const L=s.events[s.events.length-1];return o=L&&L[1].type==="linePrefix"?L[2].sliceSerialize(L[1],!0).length:0,f=M,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),x(M)}function x(M){return M===f?(d++,e.consume(M),x):d<3?a(M):(e.exit("codeFencedFenceSequence"),rt(M)?ct(e,b,"whitespace")(M):b(M))}function b(M){return M===null||He(M)?(e.exit("codeFencedFence"),s.interrupt?t(M):e.check(Rx,S,z)(M)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),y(M))}function y(M){return M===null||He(M)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),b(M)):rt(M)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),ct(e,T,"whitespace")(M)):M===96&&M===f?a(M):(e.consume(M),y)}function T(M){return M===null||He(M)?b(M):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),N(M))}function N(M){return M===null||He(M)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),b(M)):M===96&&M===f?a(M):(e.consume(M),N)}function S(M){return e.attempt(l,z,C)(M)}function C(M){return e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),A}function A(M){return o>0&&rt(M)?ct(e,D,"linePrefix",o+1)(M):D(M)}function D(M){return M===null||He(M)?e.check(Rx,S,z)(M):(e.enter("codeFlowValue"),k(M))}function k(M){return M===null||He(M)?(e.exit("codeFlowValue"),D(M)):(e.consume(M),k)}function z(M){return e.exit("codeFenced"),t(M)}function V(M,L,K){let se=0;return B;function B(ee){return M.enter("lineEnding"),M.consume(ee),M.exit("lineEnding"),U}function U(ee){return M.enter("codeFencedFence"),rt(ee)?ct(M,te,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ee):te(ee)}function te(ee){return ee===f?(M.enter("codeFencedFenceSequence"),ie(ee)):K(ee)}function ie(ee){return ee===f?(se++,M.consume(ee),ie):se>=d?(M.exit("codeFencedFenceSequence"),rt(ee)?ct(M,Z,"whitespace")(ee):Z(ee)):K(ee)}function Z(ee){return ee===null||He(ee)?(M.exit("codeFencedFence"),L(ee)):K(ee)}}}function Mw(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 pm={name:"codeIndented",tokenize:Lw},Dw={partial:!0,tokenize:jw};function Lw(e,t,a){const s=this;return l;function l(h){return e.enter("codeIndented"),ct(e,o,"linePrefix",5)(h)}function o(h){const x=s.events[s.events.length-1];return x&&x[1].type==="linePrefix"&&x[2].sliceSerialize(x[1],!0).length>=4?d(h):a(h)}function d(h){return h===null?m(h):He(h)?e.attempt(Dw,d,m)(h):(e.enter("codeFlowValue"),f(h))}function f(h){return h===null||He(h)?(e.exit("codeFlowValue"),d(h)):(e.consume(h),f)}function m(h){return e.exit("codeIndented"),t(h)}}function jw(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 Bw={name:"codeText",previous:Uw,resolve:Pw,tokenize:Hw};function Pw(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 Uw(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Hw(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"),m(b))}function m(b){return b===null?a(b):b===32?(e.enter("space"),e.consume(b),e.exit("space"),m):b===96?(o=e.enter("codeTextSequence"),l=0,x(b)):He(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),m):(e.enter("codeTextData"),h(b))}function h(b){return b===null||b===32||b===96||He(b)?(e.exit("codeTextData"),m(b)):(e.consume(b),h)}function x(b){return b===96?(e.consume(b),l++,x):l===s?(e.exit("codeTextSequence"),e.exit("codeText"),t(b)):(o.type="codeTextData",h(b))}}class Fw{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 _y(e){const t={};let a=-1,s,l,o,d,f,m,h;const x=new Fw(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"&&(m=s[1]._tokenizer.events,o=0,o<m.length&&m[o][1].type==="lineEndingBlank"&&(o+=2),o<m.length&&m[o][1].type==="content"))for(;++o<m.length&&m[o][1].type!=="content";)m[o][1].type==="chunkText"&&(m[o][1]._isInFirstContentOfListItem=!0,o++);if(s[0]==="enter")s[1].contentType&&(Object.assign(t,zw(x,a)),a=t[a],h=!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 la(e,0,Number.POSITIVE_INFINITY,x.slice(0)),!h}function zw(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,m=[],h={};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 A=f.slice(C[y],C[y+1]),D=o.pop();m.push([D,D+A.length-1]),e.splice(D,2,A)}for(m.reverse(),y=-1;++y<m.length;)h[N+m[y][0]]=N+m[y][1],N+=m[y][1]-m[y][0]-1;return h}const qw={resolve:$w,tokenize:Gw},Yw={partial:!0,tokenize:Kw};function $w(e){return _y(e),e}function Gw(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(Yw,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 Kw(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 Ny(e,t,a,s,l,o,d,f,m){const h=m||Number.POSITIVE_INFINITY;let x=0;return b;function b(A){return A===60?(e.enter(s),e.enter(l),e.enter(o),e.consume(A),e.exit(o),y):A===null||A===32||A===41||Tc(A)?a(A):(e.enter(s),e.enter(d),e.enter(f),e.enter("chunkString",{contentType:"string"}),S(A))}function y(A){return A===62?(e.enter(o),e.consume(A),e.exit(o),e.exit(l),e.exit(s),t):(e.enter(f),e.enter("chunkString",{contentType:"string"}),T(A))}function T(A){return A===62?(e.exit("chunkString"),e.exit(f),y(A)):A===null||A===60||He(A)?a(A):(e.consume(A),A===92?N:T)}function N(A){return A===60||A===62||A===92?(e.consume(A),T):T(A)}function S(A){return!x&&(A===null||A===41||Rt(A))?(e.exit("chunkString"),e.exit(f),e.exit(d),e.exit(s),t(A)):x<h&&A===40?(e.consume(A),x++,S):A===41?(e.consume(A),x--,S):A===null||A===32||A===40||Tc(A)?a(A):(e.consume(A),A===92?C:S)}function C(A){return A===40||A===41||A===92?(e.consume(A),S):S(A)}}function Sy(e,t,a,s,l,o){const d=this;let f=0,m;return h;function h(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&&!m||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),m||(m=!rt(T)),T===92?y:b)}function y(T){return T===91||T===92||T===93?(e.consume(T),f++,b):b(T)}}function vy(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,m):a(y)}function m(y){return y===d?(e.enter(l),e.consume(y),e.exit(l),e.exit(s),t):(e.enter(o),h(y))}function h(y){return y===d?(e.exit(o),m(d)):y===null?a(y):He(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),ct(e,h,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),x(y))}function x(y){return y===d||y===null||He(y)?(e.exit("chunkString"),h(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 Vw={name:"definition",tokenize:Xw},Qw={partial:!0,tokenize:Zw};function Xw(e,t,a){const s=this;let l;return o;function o(T){return e.enter("definition"),d(T)}function d(T){return Sy.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"),m):a(T)}function m(T){return Rt(T)?no(e,h)(T):h(T)}function h(T){return Ny(e,x,a,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(T)}function x(T){return e.attempt(Qw,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 Zw(e,t,a){return s;function s(f){return Rt(f)?no(e,l)(f):a(f)}function l(f){return vy(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 Ww={name:"hardBreakEscape",tokenize:Jw};function Jw(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 e5={name:"headingAtx",resolve:t5,tokenize:n5};function t5(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"},la(e,s,a-s+1,[["enter",l,t],["enter",o,t],["exit",o,t],["exit",l,t]])),e}function n5(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"),m(x)):x===null||He(x)?(e.exit("atxHeading"),t(x)):rt(x)?ct(e,f,"whitespace")(x):(e.enter("atxHeadingText"),h(x))}function m(x){return x===35?(e.consume(x),m):(e.exit("atxHeadingSequence"),f(x))}function h(x){return x===null||x===35||Rt(x)?(e.exit("atxHeadingText"),f(x)):(e.consume(x),h)}}const a5=["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"],Ix=["pre","script","style","textarea"],r5={concrete:!0,name:"htmlFlow",resolveTo:l5,tokenize:o5},s5={partial:!0,tokenize:c5},i5={partial:!0,tokenize:u5};function l5(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 o5(e,t,a){const s=this;let l,o,d,f,m;return h;function h(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:te: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&&Ix.includes(ve)?(l=1,s.interrupt?t(O):te(O)):a5.includes(d.toLowerCase())?(l=6,ge?(e.consume(O),A):s.interrupt?t(O):te(O)):(l=7,s.interrupt&&!s.parser.lazy[s.now().line]?a(O):o?D(O):k(O))}return O===45||Sn(O)?(e.consume(O),d+=String.fromCharCode(O),C):a(O)}function A(O){return O===62?(e.consume(O),s.interrupt?t:te):a(O)}function D(O){return rt(O)?(e.consume(O),D):B(O)}function k(O){return O===47?(e.consume(O),B):O===58||O===95||In(O)?(e.consume(O),z):rt(O)?(e.consume(O),k):B(O)}function z(O){return O===45||O===46||O===58||O===95||Sn(O)?(e.consume(O),z):V(O)}function V(O){return O===61?(e.consume(O),M):rt(O)?(e.consume(O),V):k(O)}function M(O){return O===null||O===60||O===61||O===62||O===96?a(O):O===34||O===39?(e.consume(O),m=O,L):rt(O)?(e.consume(O),M):K(O)}function L(O){return O===m?(e.consume(O),m=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)?V(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)?te(O):rt(O)?(e.consume(O),U):a(O)}function te(O){return O===45&&l===2?(e.consume(O),Q):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(s5,W,ie)(O)):O===null||He(O)?(e.exit("htmlFlowData"),ie(O)):(e.consume(O),te)}function ie(O){return e.check(i5,Z,W)(O)}function Z(O){return e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),ee}function ee(O){return O===null||He(O)?ie(O):(e.enter("htmlFlowData"),te(O))}function Q(O){return O===45?(e.consume(O),P):te(O)}function $(O){return O===47?(e.consume(O),d="",pe):te(O)}function pe(O){if(O===62){const ge=d.toLowerCase();return Ix.includes(ge)?(e.consume(O),R):te(O)}return In(O)&&d.length<8?(e.consume(O),d+=String.fromCharCode(O),pe):te(O)}function ke(O){return O===93?(e.consume(O),P):te(O)}function P(O){return O===62?(e.consume(O),R):O===45&&l===2?(e.consume(O),P):te(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 u5(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 c5(e,t,a){return s;function s(l){return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),e.attempt(vo,t,a)}}const d5={name:"htmlText",tokenize:f5};function f5(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),m}function m(P){return P===33?(e.consume(P),h):P===47?(e.consume(P),V):P===63?(e.consume(P),k):In(P)?(e.consume(P),K):a(P)}function h(P){return P===45?(e.consume(P),x):P===91?(e.consume(P),o=0,N):In(P)?(e.consume(P),D):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?Q(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),A):S(P)}function A(P){return P===62?Q(P):P===93?(e.consume(P),A):S(P)}function D(P){return P===null||P===62?Q(P):He(P)?(d=D,$(P)):(e.consume(P),D)}function k(P){return P===null?a(P):P===63?(e.consume(P),z):He(P)?(d=k,$(P)):(e.consume(P),k)}function z(P){return P===62?Q(P):k(P)}function V(P){return In(P)?(e.consume(P),M):a(P)}function M(P){return P===45||Sn(P)?(e.consume(P),M):L(P)}function L(P){return He(P)?(d=L,$(P)):rt(P)?(e.consume(P),L):Q(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),Q):P===58||P===95||In(P)?(e.consume(P),B):He(P)?(d=se,$(P)):rt(P)?(e.consume(P),se):Q(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),te):He(P)?(d=U,$(P)):rt(P)?(e.consume(P),U):se(P)}function te(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=te,$(P)):rt(P)?(e.consume(P),te):(e.consume(P),Z)}function ie(P){return P===l?(e.consume(P),l=void 0,ee):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 ee(P){return P===47||P===62||Rt(P)?se(P):a(P)}function Q(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 Lh={name:"labelEnd",resolveAll:g5,resolveTo:b5,tokenize:x5},m5={tokenize:E5},h5={tokenize:y5},p5={tokenize:T5};function g5(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&&la(e,0,e.length,a),e}function b5(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 m={type:e[o][1].type==="labelLink"?"link":"image",start:{...e[o][1].start},end:{...e[e.length-1][1].end}},h={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",m,t],["enter",h,t]],f=_a(f,e.slice(o+1,o+s+3)),f=_a(f,[["enter",x,t]]),f=_a(f,Yc(t.parser.constructs.insideSpan.null,e.slice(o+s+4,d-3),t)),f=_a(f,[["exit",x,t],e[d-2],e[d-1],["exit",h,t]]),f=_a(f,e.slice(d+1)),f=_a(f,[["exit",m,t]]),la(e,o,e.length,f),e}function x5(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"),m):a(y)}function m(y){return y===40?e.attempt(m5,x,d?x:b)(y):y===91?e.attempt(h5,x,d?h:b)(y):d?x(y):b(y)}function h(y){return e.attempt(p5,x,b)(y)}function x(y){return t(y)}function b(y){return o._balanced=!0,a(y)}}function E5(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):Ny(e,d,f,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(b)}function d(b){return Rt(b)?no(e,m)(b):x(b)}function f(b){return a(b)}function m(b){return b===34||b===39||b===40?vy(e,h,a,"resourceTitle","resourceTitleMarker","resourceTitleString")(b):x(b)}function h(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 y5(e,t,a){const s=this;return l;function l(f){return Sy.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 T5(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 _5={name:"labelStartImage",resolveAll:Lh.resolveAll,tokenize:N5};function N5(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 S5={name:"labelStartLink",resolveAll:Lh.resolveAll,tokenize:v5};function v5(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 gm={name:"lineEnding",tokenize:A5};function A5(e,t){return a;function a(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),ct(e,t,"linePrefix")}}const oc={name:"thematicBreak",tokenize:C5};function C5(e,t,a){let s=0,l;return o;function o(h){return e.enter("thematicBreak"),d(h)}function d(h){return l=h,f(h)}function f(h){return h===l?(e.enter("thematicBreakSequence"),m(h)):s>=3&&(h===null||He(h))?(e.exit("thematicBreak"),t(h)):a(h)}function m(h){return h===l?(e.consume(h),s++,m):(e.exit("thematicBreakSequence"),rt(h)?ct(e,f,"whitespace")(h):f(h))}}const $n={continuation:{tokenize:O5},exit:M5,name:"list",tokenize:R5},w5={partial:!0,tokenize:D5},k5={partial:!0,tokenize:I5};function R5(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:Qm(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(oc,a,h)(T):h(T);if(!s.interrupt||T===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),m(T)}return a(T)}function m(T){return Qm(T)&&++d<10?(e.consume(T),m):(!s.interrupt||d<2)&&(s.containerState.marker?T===s.containerState.marker:T===41||T===46)?(e.exit("listItemValue"),h(T)):a(T)}function h(T){return e.enter("listItemMarker"),e.consume(T),e.exit("listItemMarker"),s.containerState.marker=s.containerState.marker||T,e.check(vo,s.interrupt?a:x,e.attempt(w5,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 O5(e,t,a){const s=this;return s.containerState._closeFlow=void 0,e.check(vo,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(k5,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 I5(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 M5(e){e.exit(this.containerState.type)}function D5(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 Mx={name:"setextUnderline",resolveTo:L5,tokenize:j5};function L5(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 j5(e,t,a){const s=this;let l;return o;function o(h){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=h,d(h)):a(h)}function d(h){return e.enter("setextHeadingLineSequence"),f(h)}function f(h){return h===l?(e.consume(h),f):(e.exit("setextHeadingLineSequence"),rt(h)?ct(e,m,"lineSuffix")(h):m(h))}function m(h){return h===null||He(h)?(e.exit("setextHeadingLine"),t(h)):a(h)}}const B5={tokenize:P5};function P5(e){const t=this,a=e.attempt(vo,s,e.attempt(this.parser.constructs.flowInitial,l,ct(e,e.attempt(this.parser.constructs.flow,l,e.attempt(qw,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 U5={resolveAll:Cy()},H5=Ay("string"),F5=Ay("text");function Ay(e){return{resolveAll:Cy(e==="text"?z5: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 h(x)?o(x):f(x)}function f(x){if(x===null){a.consume(x);return}return a.enter("data"),a.consume(x),m}function m(x){return h(x)?(a.exit("data"),o(x)):(a.consume(x),m)}function h(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 Cy(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 z5(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,m;for(;o--;){const h=l[o];if(typeof h=="string"){for(d=h.length;h.charCodeAt(d-1)===32;)f++,d--;if(d)break;d=-1}else if(h===-2)m=!0,f++;else if(h!==-1){o++;break}}if(t._contentTypeTextTrailing&&a===e.length&&(f=0),f){const h={type:a===e.length||m||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={...h.start},s.start.offset===s.end.offset?Object.assign(s,h):(e.splice(a,0,["enter",h,t],["exit",h,t]),a+=2)}a++}return e}const q5={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:Ey},Y5={91:Vw},$5={[-2]:pm,[-1]:pm,32:pm},G5={35:e5,42:oc,45:[Mx,oc],60:r5,61:Mx,95:oc,96:Ox,126:Ox},K5={38:Ty,92:yy},V5={[-5]:gm,[-4]:gm,[-3]:gm,33:_5,38:Ty,42:Xm,60:[Sw,d5],91:S5,92:[Ww,yy],93:Lh,95:Xm,96:Bw},Q5={null:[Xm,U5]},X5={null:[42,95]},Z5={null:[]},W5=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:X5,contentInitial:Y5,disable:Z5,document:q5,flow:G5,flowInitial:$5,insideSpan:Q5,string:K5,text:V5},Symbol.toStringTag,{value:"Module"}));function J5(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 m={attempt:L(V),check:L(M),consume:D,enter:k,exit:z,interrupt:L(M,{interrupt:!0})},h={code:null,containerState:{},defineSkip:S,events:[],now:N,parser:e,previous:null,sliceSerialize:y,sliceStream:T,write:b};let x=t.tokenize.call(h,m);return t.resolveAll&&o.push(t),h;function b(U){return d=_a(d,U),C(),d[d.length-1]!==null?[]:(K(t,0),h.events=Yc(o,h.events,h),h.events)}function y(U,te){return tk(T(U),te)}function T(U){return ek(d,U)}function N(){const{_bufferIndex:U,_index:te,line:ie,column:Z,offset:ee}=s;return{_bufferIndex:U,_index:te,line:ie,column:Z,offset:ee}}function S(U){l[U.line]=U.column,B()}function C(){let U;for(;s._index<d.length;){const te=d[s._index];if(typeof te=="string")for(U=s._index,s._bufferIndex<0&&(s._bufferIndex=0);s._index===U&&s._bufferIndex<te.length;)A(te.charCodeAt(s._bufferIndex));else A(te)}}function A(U){x=x(U)}function D(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++)),h.previous=U}function k(U,te){const ie=te||{};return ie.type=U,ie.start=N(),h.events.push(["enter",ie,h]),f.push(ie),ie}function z(U){const te=f.pop();return te.end=N(),h.events.push(["exit",te,h]),te}function V(U,te){K(U,te.from)}function M(U,te){te.restore()}function L(U,te){return ie;function ie(Z,ee,Q){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?Q:O(Ae[pe])}function O(Ae){return $e;function $e(dt){return P=se(),ke=Ae,Ae.partial||(h.currentConstruct=Ae),Ae.name&&h.parser.constructs.disable.null.includes(Ae.name)?ve():Ae.tokenize.call(te?Object.assign(Object.create(h),te):h,m,ge,ve)(dt)}}function ge(Ae){return U(ke,P),ee}function ve(Ae){return P.restore(),++pe<$.length?O($[pe]):Q}}}function K(U,te){U.resolveAll&&!o.includes(U)&&o.push(U),U.resolve&&la(h.events,te,h.events.length-te,U.resolve(h.events.slice(te),h)),U.resolveTo&&(h.events=U.resolveTo(h.events,h))}function se(){const U=N(),te=h.previous,ie=h.currentConstruct,Z=h.events.length,ee=Array.from(f);return{from:Z,restore:Q};function Q(){s=U,h.previous=te,h.currentConstruct=ie,h.events.length=Z,f=ee,B()}}function B(){s.line in l&&s.column<2&&(s.column=l[s.line],s.offset+=l[s.line]-1)}}function ek(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 tk(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-DBs6yR6r.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-C7OIhK-_.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-D2c5fzQX.css">
9
9
  </head>
10
10
  <body>