agent-afk 5.322.18 → 5.323.0
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/dist/agent/daemon/github-event-poller.d.ts +30 -0
- package/dist/agent/outcomes/schema.d.ts +1 -1
- package/dist/agent/risk-classifier.d.ts +3 -0
- package/dist/agent/tools/handlers/path-policy.d.ts +7 -0
- package/dist/agent/tools/handlers/read-denylist-carveout.d.ts +5 -0
- package/dist/agent/tools/handlers/read-denylist.d.ts +1 -0
- package/dist/agent/tools/hooks/bash-restriction-hook.pubkey-scrub.d.ts +2 -0
- package/dist/agent/tools/hooks/bash-restriction-hook.readonly-gate.d.ts +2 -0
- package/dist/agent/trace/events.d.ts +68 -14
- package/dist/agent/trace/events.subagent-lifecycle.d.ts +3 -3
- package/dist/agent/trace/types.d.ts +1 -0
- package/dist/cli/commands/events.d.ts +2 -0
- package/dist/cli.mjs +545 -527
- package/dist/config/env.d.ts +9 -1
- package/dist/config/env.daemon.d.ts +8 -0
- package/dist/config/env.misc.d.ts +1 -1
- package/dist/improve/schemas.d.ts +2 -2
- package/dist/index.mjs +217 -217
- package/dist/insights/aggregators/guardrail-false-positives.d.ts +12 -0
- package/dist/insights/aggregators/index.d.ts +2 -1
- package/dist/insights/html.guardrail-false-positives.d.ts +2 -0
- package/dist/insights/index.d.ts +2 -0
- package/dist/insights/types.d.ts +1 -0
- package/dist/remote/remote-subagent-handle.d.ts +31 -0
- package/dist/telegram.mjs +257 -257
- package/dist/web-ui-assets/assets/{angular-html-CrheJd26.js → angular-html-PCH3IOs4.js} +1 -1
- package/dist/web-ui-assets/assets/{angular-ts-P38si_WH.js → angular-ts-BfJ-CUjO.js} +1 -1
- package/dist/web-ui-assets/assets/{apl-uMRQem-d.js → apl-DGh2y7Bc.js} +1 -1
- package/dist/web-ui-assets/assets/{astro--YKFyl_b.js → astro-BNHpcYQW.js} +1 -1
- package/dist/web-ui-assets/assets/{blade-BCvl9gW4.js → blade-BQQ3X1K_.js} +1 -1
- package/dist/web-ui-assets/assets/{c-jrQHaxWn.js → c-D7Gtocl1.js} +1 -1
- package/dist/web-ui-assets/assets/{chapel-B_d5KFHw.js → chapel-vLoovcaB.js} +1 -1
- package/dist/web-ui-assets/assets/{cobol-DIBqmz4a.js → cobol-CEfGd8Zi.js} +1 -1
- package/dist/web-ui-assets/assets/{coffee-BaTuDEiN.js → coffee-Bl7B5EQ8.js} +1 -1
- package/dist/web-ui-assets/assets/{cpp-DGkMqa78.js → cpp-DovE96a1.js} +1 -1
- package/dist/web-ui-assets/assets/{crystal-CL5eikjP.js → crystal-DQhhEVR_.js} +1 -1
- package/dist/web-ui-assets/assets/{css-hQX-MNi0.js → css-D1h6KICf.js} +1 -1
- package/dist/web-ui-assets/assets/{dist-CQxw6lw6.js → dist-CDAQQmhG.js} +2 -2
- package/dist/web-ui-assets/assets/{edge-ikVB7YwN.js → edge-24ucrI1t.js} +1 -1
- package/dist/web-ui-assets/assets/{elixir-B_tTS4VL.js → elixir-DrUno2bg.js} +1 -1
- package/dist/web-ui-assets/assets/{elm-BoG3-bJP.js → elm-Bva70CWM.js} +1 -1
- package/dist/web-ui-assets/assets/{erb-DrkHYStA.js → erb-Cm1xp0Xd.js} +1 -1
- package/dist/web-ui-assets/assets/{git-rebase-BCVAsb0W.js → git-rebase-CtlkoMsb.js} +1 -1
- package/dist/web-ui-assets/assets/{glimmer-js-C6XoyA7Y.js → glimmer-js-1Wj3YPoS.js} +1 -1
- package/dist/web-ui-assets/assets/{glimmer-ts-BHkDLTMQ.js → glimmer-ts-BOHKYbW2.js} +1 -1
- package/dist/web-ui-assets/assets/{glsl-CXHFc_cu.js → glsl-CnWOz3al.js} +1 -1
- package/dist/web-ui-assets/assets/{graphql-C4Xepom-.js → graphql-HrbZ70JC.js} +1 -1
- package/dist/web-ui-assets/assets/{hack-t2wpnKKH.js → hack-C-_41XO-.js} +1 -1
- package/dist/web-ui-assets/assets/{haml-DuzkKNQh.js → haml-C58OJaHC.js} +1 -1
- package/dist/web-ui-assets/assets/{handlebars-Be0Z4CiL.js → handlebars-DzP0ka2z.js} +1 -1
- package/dist/web-ui-assets/assets/{html-BJB5ksGB.js → html-DdB3rtzD.js} +1 -1
- package/dist/web-ui-assets/assets/{html-derivative-BTGmkpL2.js → html-derivative-CcJQLP_P.js} +1 -1
- package/dist/web-ui-assets/assets/{http-BJgajEkw.js → http-CP8M011E.js} +1 -1
- package/dist/web-ui-assets/assets/{hurl-r_CQfEi9.js → hurl-o1SM8lPt.js} +1 -1
- package/dist/web-ui-assets/assets/{index-CV4jyODX.js → index-DJ-u46z7.js} +4 -4
- package/dist/web-ui-assets/assets/{java-DjPExmk7.js → java-BR0fHu_H.js} +1 -1
- package/dist/web-ui-assets/assets/{javascript-Dgp4r9Dr.js → javascript-_pSghomm.js} +1 -1
- package/dist/web-ui-assets/assets/{jinja-cJqB5Hpp.js → jinja-CRWdq8zR.js} +1 -1
- package/dist/web-ui-assets/assets/{jison-CeLJ481p.js → jison-CQiseqEb.js} +1 -1
- package/dist/web-ui-assets/assets/{json-CG-S2Zlq.js → json-BpOfodKG.js} +1 -1
- package/dist/web-ui-assets/assets/{jsx-BjWZEEuP.js → jsx-Ccjew2ok.js} +1 -1
- package/dist/web-ui-assets/assets/{julia-Cin_kKOu.js → julia-CSz79nGq.js} +1 -1
- package/dist/web-ui-assets/assets/{just-Cxdw6s-I.js → just-Cz3DnGjE.js} +1 -1
- package/dist/web-ui-assets/assets/{latex-B91SlMf3.js → latex-BbiABG_T.js} +1 -1
- package/dist/web-ui-assets/assets/{liquid-Cn6GF7IF.js → liquid-gfzOt5Bn.js} +1 -1
- package/dist/web-ui-assets/assets/{lua-rZajDeel.js → lua-DlCOWnU4.js} +1 -1
- package/dist/web-ui-assets/assets/{marko-DLbuiuLQ.js → marko-Bzaw9L2C.js} +1 -1
- package/dist/web-ui-assets/assets/{mdc-Bf3dNOUw.js → mdc-wDmAm1Om.js} +1 -1
- package/dist/web-ui-assets/assets/{nginx-BWr-wFH9.js → nginx-BoSPcUOq.js} +1 -1
- package/dist/web-ui-assets/assets/{nim-DmH64nua.js → nim-DwoD51it.js} +1 -1
- package/dist/web-ui-assets/assets/{org-CDhtxXcC.js → org-L4Q1gPkQ.js} +1 -1
- package/dist/web-ui-assets/assets/{perl-CTBTlWqV.js → perl-BHu3xKoY.js} +1 -1
- package/dist/web-ui-assets/assets/{php-Cmbb84IR.js → php-cYB1PPGg.js} +1 -1
- package/dist/web-ui-assets/assets/{pug-4H-QY0t4.js → pug-CSElloJZ.js} +1 -1
- package/dist/web-ui-assets/assets/{qml-L2fSWl_a.js → qml-CheFst18.js} +1 -1
- package/dist/web-ui-assets/assets/{r-CMy2-OAE.js → r-CLm2GDP1.js} +1 -1
- package/dist/web-ui-assets/assets/{razor-BpDXHiGg.js → razor-csXWfXN8.js} +1 -1
- package/dist/web-ui-assets/assets/{regexp-DL-kzjgP.js → regexp-CDxoCEhv.js} +1 -1
- package/dist/web-ui-assets/assets/{rst-B1XrOHEV.js → rst-CrBi7R0c.js} +1 -1
- package/dist/web-ui-assets/assets/{ruby-CqptEjQo.js → ruby-Bm2Cqfrh.js} +1 -1
- package/dist/web-ui-assets/assets/{sas-IaRjk-7g.js → sas-VpDWUvBs.js} +1 -1
- package/dist/web-ui-assets/assets/{scss-DHFx3RD0.js → scss-DbzE1AEg.js} +1 -1
- package/dist/web-ui-assets/assets/{shellscript-huOmZYB2.js → shellscript-DMqzHQO2.js} +1 -1
- package/dist/web-ui-assets/assets/{shellsession-37pQQhPu.js → shellsession-BsP3mzAP.js} +1 -1
- package/dist/web-ui-assets/assets/{soy-hXHiJN-7.js → soy-dAL10Mpa.js} +1 -1
- package/dist/web-ui-assets/assets/{sql-CQcQA1Rh.js → sql-CEVnP5Ud.js} +1 -1
- package/dist/web-ui-assets/assets/{stata-5GLhhswu.js → stata-f0E2GqhH.js} +1 -1
- package/dist/web-ui-assets/assets/{surrealql-BDcTKMVY.js → surrealql-DRYoeLy1.js} +1 -1
- package/dist/web-ui-assets/assets/{svelte-BA4o9pwr.js → svelte-DfgVganm.js} +1 -1
- package/dist/web-ui-assets/assets/{templ-RCYTQfGO.js → templ-B6uTNa2f.js} +1 -1
- package/dist/web-ui-assets/assets/{tex-CIbhppSn.js → tex-Vde9jhFw.js} +1 -1
- package/dist/web-ui-assets/assets/{ts-tags-we5cgvQV.js → ts-tags-3FUqrjIy.js} +1 -1
- package/dist/web-ui-assets/assets/{tsx-Cmnxq2dL.js → tsx-BIF7zhEz.js} +1 -1
- package/dist/web-ui-assets/assets/{twig-DG-hzs7A.js → twig-DJHaouaB.js} +1 -1
- package/dist/web-ui-assets/assets/{typescript-BeWkaZIV.js → typescript-Dx9afs1j.js} +1 -1
- package/dist/web-ui-assets/assets/{typst-CIxlR6Sd.js → typst-_qUHAN-8.js} +1 -1
- package/dist/web-ui-assets/assets/{vue-B0CwOcu9.js → vue-aVwHkpKS.js} +1 -1
- package/dist/web-ui-assets/assets/{vue-html-BzDLLdC_.js → vue-html-DFxvu7yp.js} +1 -1
- package/dist/web-ui-assets/assets/{vue-vine-BCUqQ6Io.js → vue-vine-B0lxem20.js} +1 -1
- package/dist/web-ui-assets/assets/{xml-DrdTj-X0.js → xml-Bk7NGBzQ.js} +1 -1
- package/dist/web-ui-assets/assets/{xsl-Cj3Yg84Y.js → xsl-bvpkt8gh.js} +1 -1
- package/dist/web-ui-assets/assets/{yaml-efF3LuC3.js → yaml-DlFZy7Qp.js} +1 -1
- package/dist/web-ui-assets/index.html +1 -1
- package/package.json +4 -1
|
@@ -76,10 +76,10 @@ Error generating stack: `+e.message+`
|
|
|
76
76
|
`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
|
|
77
77
|
`,...a.current()});return/^[\t ]/.test(l)&&(l=p_(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}y_.peek=b_;function y_(e){return e.value||``}function b_(){return`<`}x_.peek=S_;function x_(e,t,n,r){let i=u_(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function S_(){return`!`}C_.peek=w_;function C_(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function w_(){return`!`}T_.peek=E_;function T_(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e),i;if(e.atBreak)for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function E_(){return"`"}function D_(e,t){let n=nd(e);return!(t.options.resourceLink||!e.url||e.title||!e.children||e.children.length!==1||e.children[0].type!==`text`||n!==e.url&&`mailto:`+n!==e.url||!/^[a-z][a-z+.-]+:/i.test(e.url)||/[\0- <>\u007F]/.test(e.url))}O_.peek=k_;function O_(e,t,n,r){let i=u_(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(D_(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function k_(e,t,n){return D_(e,n)?`<`:`[`}A_.peek=j_;function A_(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function j_(){return`[`}function M_(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function N_(e){let t=M_(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function P_(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function F_(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function I_(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?P_(n):M_(n),s=e.ordered?o===`.`?`)`:`.`:N_(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),F_(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function L_(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function R_(e,t,n,r){let i=L_(n),a=n.bulletCurrent||M_(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function z_(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var B_=qm([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function V_(e,t,n,r){return(e.children.some(function(e){return B_(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function H_(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}U_.peek=W_;function U_(e,t,n,r){let i=H_(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=m_(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=p_(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=m_(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+p_(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function W_(e,t,n){return n.options.strong||`*`}function G_(e,t,n,r){return n.safe(e.value,r)}function K_(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function q_(e,t,n){let r=(F_(n)+(n.options.ruleSpaces?` `:``)).repeat(K_(n));return n.options.ruleSpaces?r.slice(0,-1):r}var J_={blockquote:e_,break:i_,code:c_,definition:d_,emphasis:h_,hardBreak:i_,heading:v_,html:y_,image:x_,imageReference:C_,inlineCode:T_,link:O_,linkReference:A_,list:I_,listItem:R_,paragraph:z_,root:V_,strong:U_,text:G_,thematicBreak:q_};function Y_(){return{enter:{table:X_,tableData:ev,tableHeader:ev,tableRow:Q_},exit:{codeText:tv,table:Z_,tableData:$_,tableHeader:$_,tableRow:$_}}}function X_(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function Z_(e){this.exit(e),this.data.inTable=void 0}function Q_(e){this.enter({type:`tableRow`,children:[]},e)}function $_(e){this.exit(e)}function ev(e){this.enter({type:`tableCell`,children:[]},e)}function tv(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,nv));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function nv(e,t){return t===`|`?t:e}function rv(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
|
|
78
78
|
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
79
|
-
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return Zg(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=J_.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function iv(){return{exit:{taskListCheckValueChecked:ov,taskListCheckValueUnchecked:ov,paragraph:sv}}}function av(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:cv}}}function ov(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function sv(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function cv(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=J_.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function lv(){return[hg(),zg(),Wg(),Y_(),iv()]}function uv(e){return{extensions:[gg(),Bg(e),Gg(),rv(e),av()]}}var dv={tokenize:Tv,partial:!0},fv={tokenize:Ev,partial:!0},pv={tokenize:Dv,partial:!0},mv={tokenize:Ov,partial:!0},hv={tokenize:kv,partial:!0},gv={name:`wwwAutolink`,tokenize:Cv,previous:Av},_v={name:`protocolAutolink`,tokenize:wv,previous:jv},vv={name:`emailAutolink`,tokenize:Sv,previous:Mv},yv={};function bv(){return{text:yv}}for(var xv=48;xv<123;)yv[xv]=vv,xv++,xv===58?xv=65:xv===91&&(xv=97);yv[43]=vv,yv[45]=vv,yv[46]=vv,yv[95]=vv,yv[72]=[vv,_v],yv[104]=[vv,_v],yv[87]=[vv,gv],yv[119]=[vv,gv];function Sv(e,t,n){let r=this,i,a;return o;function o(t){return!Nv(t)||!Mv.call(r,r.previous)||Pv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return Nv(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(hv,u,l)(t):t===45||t===95||gd(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&hd(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function Cv(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!Av.call(r,r.previous)||Pv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(dv,e.attempt(fv,e.attempt(pv,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function wv(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&jv.call(r,r.previous)&&!Pv(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(hd(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||vd(t)||X(t)||Cd(t)||Sd(t)?n(t):e.attempt(fv,e.attempt(pv,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function Tv(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function Ev(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(mv,c,s)(t):t===null||X(t)||Cd(t)||t!==45&&Sd(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function Dv(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(mv,t,a)(o):o===null||X(o)||Cd(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function Ov(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||X(o)||Cd(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||X(e)||Cd(e)?t(e):r(e)}function a(e){return hd(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):hd(t)?(e.consume(t),o):n(t)}}function kv(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return gd(e)?n(e):t(e)}}function Av(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||X(e)}function jv(e){return!hd(e)}function Mv(e){return!(e===47||Nv(e))}function Nv(e){return e===43||e===45||e===46||e===95||gd(e)}function Pv(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var Fv={tokenize:Uv,partial:!0};function Iv(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Bv,continuation:{tokenize:Vv},exit:Hv}},text:{91:{name:`gfmFootnoteCall`,tokenize:zv},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:Lv,resolveTo:Rv}}}}function Lv(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=md(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function Rv(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function zv(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||X(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(md(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return X(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Bv(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||X(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=md(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return X(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),Q(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function Vv(e,t,n){return e.check(Bd,t,e.attempt(Fv,t,n))}function Hv(e){e.exit(`gfmFootnoteDefinition`)}function Uv(e,t,n){let r=this;return Q(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Wv(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&J(o,o.length,0,Nd(s,e.slice(r+1,n),t)),J(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),J(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=Md(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Md(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Gv=class{constructor(){this.map=[]}add(e,t,n){Kv(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Kv(e,t,n,r){let i=0;if(n!==0||r.length!==0){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function qv(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Jv(){return{flow:{null:{name:`table`,tokenize:Yv,resolveAll:Xv}}}}function Yv(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124||(o=!0,a+=1),u(e)}function u(t){return t===null?n(t):Y(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Z(t)?Q(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||X(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Z(t)?Q(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return Z(t)?Q(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||Y(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Z(t)?Q(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||Y(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||Y(n)?(e.exit(`tableRow`),t(n)):Z(n)?Q(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||X(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Xv(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Gv;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(Qv(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Zv(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Zv(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Zv(f,t,o,i,n,d)):(o[0]=o[1],d=Zv(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&Qv(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=qv(t.events,n))}return e}function Zv(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},$v(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=$v(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=$v(t.events,n[2]),a=$v(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},$v(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Qv(e,t,n,r,i){let a=[],o=$v(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function $v(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var ey={name:`tasklistCheck`,tokenize:ny};function ty(){return{text:{91:ey}}}function ny(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return X(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return Y(r)?t(r):Z(r)?e.check({tokenize:ry},t,n)(r):n(r)}}function ry(e,t,n){return Q(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function iy(e){return ud([bv(),Iv(),Wv(e),Jv(),ty()])}var ay={};function oy(e){let t=this,n=e||ay,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(iy(n)),a.push(lv()),o.push(uv(n))}var sy=`modulepreload`,cy=function(e){return`/`+e},ly={},uy=function(e){return e.pathname.endsWith(`.css`)},dy=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=cy(t,n);let r=s(t);if(r.href in ly)return;ly[r.href]=!0;let i=uy(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:sy,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},fy=null,py=new Map;function my(){return fy||=dy(async()=>{let{createHighlighter:e}=await import(`./dist-CQxw6lw6.js`);return{createHighlighter:e}},[]).then(({createHighlighter:e})=>e({themes:[`github-dark`],langs:[`plaintext`]})),fy}function hy(e){let t=py.get(e);if(t)return t;let n=dy(async()=>{let{bundledLanguages:e,isSpecialLang:t}=await import(`./dist-CQxw6lw6.js`);return{bundledLanguages:e,isSpecialLang:t}},[]).then(async({bundledLanguages:t,isSpecialLang:n})=>{if(n(e))return;let r=t[e];if(!r)throw Error(`unknown lang: ${e}`);let i=await my();i.getLoadedLanguages().includes(e)||await i.loadLanguage(r)}).catch(t=>{throw py.delete(e),t});return py.set(e,n),n}function gy({code:e,language:t}){let[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(0),[o,s]=(0,O.useState)(!1),c=(0,O.useRef)(null);(0,O.useEffect)(()=>{let n=!1;async function i(){let i=await my();if(n)return;let o=`plaintext`;if(t){let{isSpecialLang:e}=await dy(async()=>{let{isSpecialLang:e}=await import(`./dist-CQxw6lw6.js`);return{isSpecialLang:e}},[]),r=i.getLoadedLanguages();e(t)||r.includes(t)?o=t:(hy(t).then(()=>{n||a(e=>e+1)}).catch(()=>{}),o=`plaintext`)}try{let t=i.codeToHtml(e,{lang:o,theme:`github-dark`});n||r(t)}catch{}}return r(null),i().catch(()=>{}),()=>{n=!0}},[e,t,i]),(0,O.useEffect)(()=>()=>{c.current!==null&&clearTimeout(c.current)},[]);let l=(0,O.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{s(!0),c.current!==null&&clearTimeout(c.current),c.current=setTimeout(()=>s(!1),2e3)}).catch(()=>{})},[e]);return(0,R.jsxs)(`div`,{className:`relative group rounded-md bg-secondary overflow-hidden mb-2`,children:[t&&(0,R.jsx)(`div`,{className:`text-[10px] text-muted-foreground px-3 pt-1.5 select-none`,children:t}),(0,R.jsx)(`button`,{onClick:l,"aria-label":`Copy code`,className:`absolute top-1.5 right-2 z-10 opacity-0 group-hover:opacity-100 transition-opacity rounded p-1 text-muted-foreground hover:text-foreground hover:bg-white/10`,children:o?(0,R.jsx)(_e,{size:13,strokeWidth:2.5}):(0,R.jsx)(je,{size:13,strokeWidth:2})}),n===null?(0,R.jsx)(`pre`,{className:`overflow-x-auto p-3 font-mono text-xs leading-5 text-foreground`,children:(0,R.jsx)(`code`,{children:e})}):(0,R.jsx)(`div`,{className:`overflow-x-auto text-xs leading-5 [&>pre]:p-3 [&>pre]:m-0 [&>pre]:bg-transparent! [&>pre]:font-mono`,dangerouslySetInnerHTML:{__html:n}})]})}var _y={h1:({children:e})=>(0,R.jsx)(`h1`,{className:`mb-3 text-xl font-bold`,children:e}),h2:({children:e})=>(0,R.jsx)(`h2`,{className:`mb-2 text-lg font-semibold`,children:e}),h3:({children:e})=>(0,R.jsx)(`h3`,{className:`mb-1.5 text-base font-semibold`,children:e}),p:({children:e})=>(0,R.jsx)(`p`,{className:`mb-2 last:mb-0 leading-relaxed`,children:e}),ul:({children:e})=>(0,R.jsx)(`ul`,{className:`mb-2 ml-4 list-disc space-y-0.5`,children:e}),ol:({children:e})=>(0,R.jsx)(`ol`,{className:`mb-2 ml-4 list-decimal space-y-0.5`,children:e}),li:({children:e})=>(0,R.jsx)(`li`,{className:`text-sm`,children:e}),blockquote:({children:e})=>(0,R.jsx)(`blockquote`,{className:`mb-2 border-l-2 border-brand/50 pl-3 italic text-muted-foreground`,children:e}),a:({href:e,children:t})=>e&&/^(https?:\/\/|\/(?!\/)|#)/i.test(e)?(0,R.jsx)(`a`,{href:e,className:`text-brand underline underline-offset-2 hover:text-brand/80`,target:`_blank`,rel:`noopener noreferrer`,children:t}):(0,R.jsx)(`span`,{className:`text-muted-foreground`,children:t}),strong:({children:e})=>(0,R.jsx)(`strong`,{className:`font-semibold text-foreground`,children:e}),em:({children:e})=>(0,R.jsx)(`em`,{className:`italic text-muted-foreground`,children:e}),hr:()=>(0,R.jsx)(`hr`,{className:`my-3 border-border`}),table:({children:e})=>(0,R.jsx)(`div`,{className:`mb-2 overflow-x-auto rounded border border-border`,children:(0,R.jsx)(`table`,{className:`w-full text-sm`,children:e})}),thead:({children:e})=>(0,R.jsx)(`thead`,{className:`bg-secondary text-secondary-foreground`,children:e}),th:({children:e})=>(0,R.jsx)(`th`,{className:`px-3 py-1.5 text-left font-medium`,children:e}),td:({children:e})=>(0,R.jsx)(`td`,{className:`border-t border-border px-3 py-1.5`,children:e}),code:({children:e,className:t})=>/language-(\w+)/.exec(t??``)?.[1]?(0,R.jsx)(`code`,{className:L(`text-xs`,t),children:e}):(0,R.jsx)(`code`,{className:`rounded bg-secondary px-1 py-0.5 font-mono text-[11px] text-foreground`,children:e}),pre:({children:e})=>{let t=e,n=/language-(\w+)/.exec(t?.props?.className??``)?.[1],r=String(t?.props?.children??``).replace(/\n$/,``);return(0,R.jsx)(gy,{code:r,language:n})}};function vy({text:e,className:t}){return(0,R.jsx)(`div`,{className:L(`text-sm text-foreground`,t),children:(0,R.jsx)(ng,{remarkPlugins:[oy],components:_y,children:e})})}function yy(){return(0,R.jsx)(`span`,{className:`streaming-cursor`,"aria-hidden":`true`})}var by=/^[ \t]*(`{3,}|~{4,})/;function xy(e,t){if(t>=e.length)return t;let n=e.lastIndexOf(`
|
|
80
|
-
`,t-1)+1,r=e.slice(n,t);if(
|
|
81
|
-
`,t);return n===-1?e.length:n+1}return t}function Sy({text:e,isStreaming:t,speed:n=80,onComplete:r}){let i=(0,O.useRef)(0),[a,o]=(0,O.useState)(0),s=(0,O.useRef)(null),c=(0,O.useRef)(null),l=(0,O.useRef)(!1),u=(0,O.useRef)(r);(0,O.useEffect)(()=>{u.current=r},[r]);let d=(0,O.useRef)(n);(0,O.useEffect)(()=>{d.current=n});let f=!t&&i.current===0&&e.length>0,p=(0,O.useCallback)(()=>{if(s.current!==null)return;function n(r){let a=r-(c.current??r);c.current=r;let f=d.current/1e3,p=Math.max(1,Math.floor(f*a)),m=i.current,h=e.length;if(m<h){let t=xy(e,Math.min(m+p,h));i.current=t,o(t)}i.current>=e.length&&!t?(s.current=null,c.current=null,l.current||(l.current=!0,u.current?.())):s.current=requestAnimationFrame(n)}s.current=requestAnimationFrame(n)},[e,t]);(0,O.useEffect)(()=>{if(f)i.current=e.length,o(e.length),l.current||(l.current=!0,u.current?.());else return(i.current<e.length||t)&&p(),()=>{s.current!==null&&(cancelAnimationFrame(s.current),s.current=null)}},[e,t,f]);let m=f?e.length:a,h=e.slice(0,m),g=m<e.length||t;return(0,R.jsxs)(`span`,{className:`streaming-text-root`,children:[(0,R.jsx)(vy,{text:h}),g&&(0,R.jsx)(yy,{})]})}function Cy({kind:e,text:t,className:n}){let[r,i]=(0,O.useState)(!1),a=(0,O.useRef)(null);(0,O.useEffect)(()=>()=>{a.current!==null&&clearTimeout(a.current)},[]);function o(){navigator.clipboard.writeText(t).then(()=>{i(!0),a.current!==null&&clearTimeout(a.current),a.current=setTimeout(()=>i(!1),2e3)}).catch(()=>{})}return(0,R.jsx)(`div`,{className:L(`absolute top-1 right-1`,`opacity-0 group-hover:opacity-100 transition-opacity duration-150`,n),children:(0,R.jsx)(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-card px-1 py-0.5 shadow-sm`,children:e===`assistant`&&(0,R.jsx)(wy,{onClick:o,title:r?`Copied!`:`Copy`,children:r?(0,R.jsx)(_e,{className:`h-3.5 w-3.5 text-status-running`}):(0,R.jsx)(je,{className:`h-3.5 w-3.5`})})})})}function wy({onClick:e,title:t,children:n}){return(0,R.jsx)(`button`,{type:`button`,onClick:e,title:t,className:`h-6 w-6 rounded flex items-center justify-center hover:bg-secondary text-muted-foreground hover:text-foreground transition-colors`,children:n})}function Ty({text:e}){return(0,R.jsxs)(`div`,{className:`group relative flex flex-col items-end gap-1`,children:[(0,R.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-widest text-muted-foreground/50`,children:`You`}),(0,R.jsx)(`p`,{className:`max-w-2xl text-sm leading-relaxed text-foreground whitespace-pre-wrap text-right`,children:e}),(0,R.jsx)(Cy,{kind:`user`,text:e})]})}function Ey({text:e,isStreaming:t=!1}){return(0,R.jsxs)(`div`,{className:`group relative flex flex-col gap-1`,children:[(0,R.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-widest text-brand/60`,children:`Agent`}),(0,R.jsx)(`div`,{className:`max-w-3xl`,children:t?(0,R.jsx)(Sy,{text:e,isStreaming:!0}):(0,R.jsx)(vy,{text:e})}),(0,R.jsx)(Cy,{kind:`assistant`,text:e})]})}function Dy({message:e}){return(0,R.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-xl border border-destructive/20 bg-destructive/5 px-4 py-3`,children:[(0,R.jsx)(xe,{className:`mt-0.5 h-4 w-4 shrink-0 text-status-failed`}),(0,R.jsx)(`p`,{className:`text-sm leading-relaxed text-status-failed`,children:e})]})}function Oy({text:e}){return(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border bg-muted/30 px-3 py-2`,children:[(0,R.jsx)(Ze,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,R.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e})]})}function ky({item:e}){return(0,R.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border bg-muted/30 px-3 py-1.5`,children:[(0,R.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`BG`}),(0,R.jsx)(`span`,{className:`text-xs text-foreground`,children:e.label}),(0,R.jsx)(`span`,{className:L(`ml-auto font-mono text-[10px] capitalize`,e.status===`completed`?`text-status-running`:``,e.status===`failed`?`text-status-failed`:``,e.status===`running`?`text-status-blocked`:``),children:e.status})]})}function Ay(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===void 0){n++;continue}if(r.kind!==`subagent`){t.push({kind:`item`,item:r}),n++;continue}let i=[];for(;n<e.length;){let t=e[n];if(t===void 0||t.kind!==`subagent`)break;i.push(t),n++}t.push({kind:`subagent-group`,items:i,id:i[0].id})}return t}function jy(e,t=!1){switch(e.kind){case`user`:return(0,R.jsx)(Ty,{text:e.text});case`assistant`:return(0,R.jsx)(Ey,{text:e.text,isStreaming:t});case`thinking`:return(0,R.jsx)(sc,{text:e.text});case`tool`:return(0,R.jsx)(Rc,{...e});case`error`:return(0,R.jsx)(Dy,{message:e.message});case`notice`:return(0,R.jsx)(Oy,{text:e.text});case`bg_job`:return(0,R.jsx)(ky,{item:e});case`subagent`:return null}}function My(e,t=!1){switch(e.kind){case`user`:return(0,R.jsx)(Ty,{text:e.text});case`assistant`:return(0,R.jsx)(Ey,{text:e.text,isStreaming:t});case`thinking`:return(0,R.jsx)(sc,{text:e.text});case`error`:return(0,R.jsx)(Dy,{message:e.message});case`notice`:return(0,R.jsx)(Oy,{text:e.text});case`bg_job`:return(0,R.jsx)(ky,{item:e});default:return null}}function Ny({sessionId:e,...t}){return(0,R.jsx)(kc.Provider,{value:e??null,children:(0,R.jsx)(Py,{...t})})}function Py({items:e,totals:t,spineMode:n=!0,turnActive:r=!1}){let i=(0,O.useMemo)(()=>Ay(e),[e]),a=Dl(e),o=(0,O.useMemo)(()=>{for(let t=e.length-1;t>=0;t--)if(e[t]?.kind===`assistant`)return e[t].id;return null},[e]),s=(0,O.useCallback)((e,t)=>{let n=e.kind===`user`&&t>0,i=r&&e.id===o;return(0,R.jsxs)(`div`,{children:[n&&(0,R.jsx)(`div`,{className:`my-6 border-t border-border/40`,"aria-hidden":`true`}),(0,R.jsx)(`div`,{className:`py-2 px-1`,children:My(e,i)})]},e.id)},[r,o]);return(0,R.jsxs)(`div`,{className:`flex flex-col gap-0 max-w-4xl mx-auto w-full`,children:[t&&(0,R.jsx)(Xc,{totals:t,className:`sticky top-0 z-10 mb-4 rounded-md border border-border bg-card px-3 py-1.5`}),e.length===0?(0,R.jsx)(`p`,{className:`py-12 text-center text-sm text-muted-foreground`,children:`No transcript items yet.`}):n?(0,R.jsx)(El,{slots:a,renderTextItem:s}):i.map((e,t)=>{if(e.kind===`item`){let{item:n}=e,i=n.kind===`user`&&t>0,a=r&&n.id===o;return(0,R.jsxs)(`div`,{children:[i&&(0,R.jsx)(`div`,{className:`my-6 border-t border-border/40`,"aria-hidden":`true`}),(0,R.jsx)(`div`,{className:`py-2 px-1`,children:jy(n,a)})]},n.id)}let n=Zc(e.items);return(0,R.jsx)(`div`,{className:`py-2 px-1`,children:(0,R.jsx)(Gc,{roots:n})},e.id)})]})}var Fy={preference:`Preference`,convention:`Convention`,decision:`Decision`,learning:`Learning`};function Iy({type:e}){return(0,R.jsx)(`span`,{className:L(`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium`,e===`fact`?`bg-blue-500/15 text-blue-400`:`bg-violet-500/15 text-violet-400`),children:e})}function Ly({category:e}){return e?(0,R.jsx)(`span`,{className:`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-zinc-700 text-zinc-300`,children:Fy[e]??e}):null}function Ry({result:e}){let t=e.content.length>200?e.content.slice(0,200)+`…`:e.content,n=e.created_at?new Date(e.created_at).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}):null;return(0,R.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-zinc-900 p-3 space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,R.jsx)(Iy,{type:e.type}),(0,R.jsx)(Ly,{category:e.category}),n&&(0,R.jsx)(`span`,{className:`text-xs text-zinc-500 ml-auto`,children:n})]}),(0,R.jsx)(`p`,{className:`text-sm text-zinc-300 leading-relaxed whitespace-pre-wrap break-words`,children:t})]})}function zy({pct:e,truncated:t}){let n=Math.min(e,100);return(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`div`,{className:`flex-1 h-2 rounded-full bg-zinc-800 overflow-hidden`,children:(0,R.jsx)(`div`,{className:L(`h-full rounded-full transition-all`,e>=100?`bg-red-500`:e>=80?`bg-amber-400`:`bg-accent`),style:{width:`${n}%`}})}),t&&(0,R.jsx)(`span`,{className:`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-amber-400/15 text-amber-400`,children:`Truncated`})]})}function By({hot:e}){if(!e)return null;let{content:t,usage:n}=e;return(0,R.jsxs)(`section`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-200`,children:`HOT Memory`}),(0,R.jsxs)(`span`,{className:`text-xs text-zinc-500`,children:[n.tokens.toLocaleString(),` / `,n.maxTokens.toLocaleString(),` tokens`]})]}),(0,R.jsx)(zy,{pct:n.pct,truncated:n.truncated}),t?(0,R.jsx)(`pre`,{className:`rounded-md border border-zinc-800 bg-zinc-950 p-3 text-xs text-zinc-300 font-mono overflow-x-auto whitespace-pre-wrap max-h-48`,children:t}):(0,R.jsx)(`p`,{className:`text-xs text-zinc-500 italic`,children:`No hot memory loaded.`})]})}var Vy=[{value:``,label:`All Categories`},{value:`preference`,label:`Preference`},{value:`convention`,label:`Convention`},{value:`decision`,label:`Decision`},{value:`learning`,label:`Learning`}];function Hy(){let[e,t]=(0,O.useState)(null),[n,r]=(0,O.useState)(``),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(null);(0,O.useEffect)(()=>{gc(`/api/memory/hot`).then(t).catch(()=>{})},[]);let f=(0,O.useCallback)(async e=>{e.preventDefault(),l(!0),d(null);try{let e=new URLSearchParams({q:n,limit:`20`});i&&e.set(`category`,i);let t=await gc(`/api/memory/search?${e.toString()}`);s(t.results)}catch(e){d(e instanceof Error?e.message:`Search failed`)}finally{l(!1)}},[n,i]);return(0,R.jsxs)(`div`,{className:`flex flex-col gap-6 p-4`,children:[(0,R.jsx)(By,{hot:e}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-200`,children:`Search Memory`}),(0,R.jsxs)(`form`,{onSubmit:f,className:`flex gap-2 flex-wrap`,children:[(0,R.jsx)(`input`,{type:`text`,value:n,onChange:e=>r(e.target.value),placeholder:`FTS5 query…`,className:`flex-1 min-w-0 rounded-md border border-zinc-700 bg-zinc-900 px-3 py-1.5 text-sm text-zinc-100 placeholder-zinc-500 focus:outline-none focus:ring-1 focus:ring-accent`}),(0,R.jsx)(`select`,{value:i,onChange:e=>a(e.target.value),className:`rounded-md border border-zinc-700 bg-zinc-900 px-2 py-1.5 text-sm text-zinc-100 focus:outline-none focus:ring-1 focus:ring-accent`,children:Vy.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,R.jsx)(`button`,{type:`submit`,disabled:c,className:`rounded-md bg-accent px-3 py-1.5 text-sm font-medium text-white disabled:opacity-50 hover:opacity-90 transition-opacity`,children:c?`Searching…`:`Search`})]}),u&&(0,R.jsx)(`p`,{className:`text-xs text-red-400`,children:u}),o!==null&&(0,R.jsx)(`div`,{className:`space-y-2`,children:o.length===0?(0,R.jsx)(`p`,{className:`text-sm text-zinc-500 italic text-center py-6`,children:`No results found.`}):o.map(e=>(0,R.jsx)(Ry,{result:e},`${e.type}-${e.created_at}-${e.content.slice(0,32)}`))})]})]})}var Uy={success:{label:`Success`,className:`bg-status-done/20 text-status-done border-status-done/30`},error:{label:`Error`,className:`bg-status-failed/20 text-status-failed border-status-failed/30`},skipped:{label:`Skipped`,className:`bg-muted text-muted-foreground border-border`}};function Wy(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function Gy(e){return new Date(e).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function Ky({schedule:e,onClose:t}){let[n,r]=(0,O.useState)([]),[i,a]=(0,O.useState)(!0),[o,s]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let t=!1;return a(!0),s(null),gc(`/api/schedules/${e.id}/history`).then(e=>{t||r(e.history)}).catch(e=>{t||s(e instanceof Error?e.message:`Failed to load history`)}).finally(()=>{t||a(!1)}),()=>{t=!0}},[e.id]),(0,O.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),(0,R.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:e=>{e.target===e.currentTarget&&t()},children:(0,R.jsxs)(`div`,{className:`flex max-h-[80vh] w-full max-w-lg flex-col rounded-xl border border-border bg-card shadow-xl`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-5 py-4`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h2`,{className:`text-sm font-semibold`,children:e.name}),(0,R.jsx)(`p`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:e.cron})]}),(0,R.jsx)(`button`,{onClick:t,className:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,"aria-label":`Close`,children:`✕`})]}),(0,R.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-5 py-3`,children:[i&&(0,R.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:`Loading history…`}),o&&(0,R.jsx)(`p`,{className:`py-8 text-center text-sm text-status-failed`,children:o}),!i&&!o&&n.length===0&&(0,R.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:`No runs recorded yet.`}),!i&&!o&&n.length>0&&(0,R.jsx)(`ul`,{className:`space-y-2`,children:n.map((e,t)=>{let n=Uy[e.status];return(0,R.jsxs)(`li`,{className:`flex items-start gap-3 rounded-lg border border-border bg-background/50 px-4 py-3`,children:[(0,R.jsx)(`span`,{className:L(`mt-0.5 shrink-0 rounded-full border px-2 py-0.5 text-xs font-medium`,n.className),children:n.label}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Gy(e.triggeredAt)}),(0,R.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:Wy(e.durationMs)})]}),e.errorMessage&&(0,R.jsx)(`p`,{className:`mt-1 truncate font-mono text-xs text-status-failed`,children:e.errorMessage})]})]},`${e.taskId}-${e.triggeredAt}-${t}`)})})]})]})})}function qy({status:e}){return e?(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:L(`size-2 rounded-full`,e.running?`animate-pulse bg-status-done`:`bg-status-failed`)}),(0,R.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.running?`Running${e.tasks==null?``:` (${e.tasks} task${e.tasks===1?``:`s`})`}`:`Stopped`})]}):null}function Jy({checked:e,onChange:t,disabled:n}){return(0,R.jsx)(`button`,{role:`switch`,"aria-checked":e,onClick:e=>{e.stopPropagation(),t()},disabled:n,className:L(`relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent`,`transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,`disabled:cursor-not-allowed disabled:opacity-50`,e?`bg-brand`:`bg-muted`),children:(0,R.jsx)(`span`,{className:L(`block size-4 rounded-full bg-white shadow transition-transform`,e?`translate-x-4`:`translate-x-0`)})})}function Yy({schedule:e,onToggle:t,onDelete:n,onShowHistory:r}){let[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(!1),c=async()=>{a(!0),await t(e.id).finally(()=>a(!1))},l=async t=>{t.stopPropagation(),window.confirm(`Delete schedule "${e.name}"? This cannot be undone.`)&&(s(!0),await n(e.id).finally(()=>s(!1)))},u=e.trigger===`both`?`cron + session start`:e.trigger??`cron`;return(0,R.jsxs)(`div`,{className:L(`group flex cursor-pointer flex-col gap-3 rounded-xl border border-border bg-card p-4`,`transition-colors hover:border-brand/40 hover:bg-accent/30`,!e.enabled&&`opacity-60`),onClick:()=>r(e),children:[(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`p`,{className:`truncate text-sm font-semibold`,children:e.name}),(0,R.jsx)(`p`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:e.cron})]}),(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,R.jsx)(Jy,{checked:e.enabled,onChange:()=>{c()},disabled:i}),(0,R.jsx)(`button`,{onClick:l,disabled:o,"aria-label":`Delete schedule ${e.name}`,className:L(`flex size-7 items-center justify-center rounded-md text-muted-foreground`,`opacity-0 transition-opacity group-hover:opacity-100`,`hover:bg-destructive/20 hover:text-status-failed`,`disabled:cursor-not-allowed disabled:opacity-40`),children:`🗑`})]})]}),(0,R.jsx)(`code`,{className:`block truncate rounded-md bg-secondary px-3 py-2 font-mono text-xs text-secondary-foreground`,children:e.command}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-muted-foreground`,children:[(0,R.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 capitalize`,children:u}),e.notifyOn&&e.notifyOn!==`never`&&(0,R.jsxs)(`span`,{className:`rounded bg-muted px-1.5 py-0.5`,children:[`notify: `,e.notifyOn]}),(0,R.jsx)(`span`,{className:`ml-auto`,children:`Click for history`})]})]})}var Xy={name:``,command:``,cron:``,trigger:`cron`,notifyOn:`failure`,enabled:!0};function Zy({onCreated:e,onCancel:t}){let[n,r]=(0,O.useState)(Xy),[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(null),c=async t=>{if(t.preventDefault(),s(null),!n.name.trim())s(`Name is required.`);else if(!n.command.trim())s(`Command is required.`);else if(!n.cron.trim())s(`Cron expression is required.`);else{a(!0);try{let t=await gc(`/api/schedules`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)});e(t.schedule,t.syncNote)}catch(e){s(e instanceof Error?e.message:`Failed to create schedule.`)}finally{a(!1)}}},l=(e,t)=>(0,R.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsx)(`label`,{className:`text-xs font-medium text-muted-foreground`,children:e}),t]}),u=L(`h-8 rounded-md border border-border bg-card px-3 text-sm`,`placeholder:text-muted-foreground/50`,`focus:outline-none focus:ring-2 focus:ring-ring`,`disabled:cursor-not-allowed disabled:opacity-50`);return(0,R.jsxs)(`form`,{onSubmit:e=>{c(e)},className:`flex flex-col gap-4 rounded-xl border border-brand/40 bg-card p-4`,children:[(0,R.jsx)(`p`,{className:`text-sm font-semibold`,children:`New Schedule`}),(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2`,children:[l(`Name *`,(0,R.jsx)(`input`,{type:`text`,className:u,placeholder:`e.g. Nightly cleanup`,value:n.name,onChange:e=>r(t=>({...t,name:e.target.value})),required:!0,disabled:i})),l(`Cron expression *`,(0,R.jsx)(`input`,{type:`text`,className:L(u,`font-mono`),placeholder:`0 2 * * *`,value:n.cron,onChange:e=>r(t=>({...t,cron:e.target.value})),required:!0,disabled:i}))]}),l(`Command *`,(0,R.jsx)(`input`,{type:`text`,className:L(u,`font-mono`),placeholder:`/my-skill --auto`,value:n.command,onChange:e=>r(t=>({...t,command:e.target.value})),required:!0,disabled:i})),(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:[l(`Trigger`,(0,R.jsxs)(`select`,{className:u,value:n.trigger,onChange:e=>r(t=>({...t,trigger:e.target.value})),disabled:i,children:[(0,R.jsx)(`option`,{value:`cron`,children:`cron`}),(0,R.jsx)(`option`,{value:`sessionstart`,children:`session start`}),(0,R.jsx)(`option`,{value:`both`,children:`both`})]})),l(`Notify on`,(0,R.jsxs)(`select`,{className:u,value:n.notifyOn,onChange:e=>r(t=>({...t,notifyOn:e.target.value})),disabled:i,children:[(0,R.jsx)(`option`,{value:`failure`,children:`failure`}),(0,R.jsx)(`option`,{value:`always`,children:`always`}),(0,R.jsx)(`option`,{value:`never`,children:`never`})]})),(0,R.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsx)(`label`,{className:`text-xs font-medium text-muted-foreground`,children:`Enabled`}),(0,R.jsx)(`div`,{className:`flex h-8 items-center`,children:(0,R.jsx)(Jy,{checked:n.enabled,onChange:()=>r(e=>({...e,enabled:!e.enabled})),disabled:i})})]})]}),o&&(0,R.jsx)(`p`,{className:`rounded-md border border-status-failed/30 bg-status-failed/10 px-3 py-2 text-xs text-status-failed`,children:o}),(0,R.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:t,disabled:i,className:L(`h-8 rounded-md px-3 text-sm text-muted-foreground`,`hover:bg-accent hover:text-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`),children:`Cancel`}),(0,R.jsx)(`button`,{type:`submit`,disabled:i,className:L(`h-8 rounded-md bg-brand px-4 text-sm font-medium text-white`,`hover:bg-brand/90`,`disabled:cursor-not-allowed disabled:opacity-50`),children:i?`Creating…`:`Create`})]})]})}function Qy(){let[e,t]=(0,O.useState)([]),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(!0),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null),[u,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(null);(0,O.useEffect)(()=>{let e=!1;return a(!0),s(null),Promise.all([gc(`/api/schedules`),gc(`/api/daemon/status`)]).then(([n,i])=>{e||(t(n.schedules),r(i))}).catch(t=>{e||s(t instanceof Error?t.message:`Failed to load schedules`)}).finally(()=>{e||a(!1)}),()=>{e=!0}},[]);let m=(0,O.useCallback)(async e=>{let n=await gc(`/api/schedules/${e}/toggle`,{method:`POST`});t(t=>t.map(t=>t.id===e?{...t,enabled:n.enabled}:t)),n.syncNote&&(p(n.syncNote),setTimeout(()=>p(null),8e3))},[]),h=(0,O.useCallback)(async e=>{await gc(`/api/schedules/${e}`,{method:`DELETE`}),t(t=>t.filter(t=>t.id!==e))},[]),g=(0,O.useCallback)((e,n)=>{t(t=>[...t,e]),d(!1),n&&(p(n),setTimeout(()=>p(null),8e3))},[]);return i?(0,R.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading schedules…`})}):(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col gap-4 overflow-y-auto p-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsx)(`h1`,{className:`text-base font-semibold`,children:`Schedules`}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(qy,{status:n}),(0,R.jsx)(`button`,{onClick:()=>d(e=>!e),className:L(`h-7 rounded-md px-3 text-xs font-medium`,u?`bg-muted text-muted-foreground hover:bg-muted/80`:`bg-brand text-white hover:bg-brand/90`),children:u?`Cancel`:`+ New Schedule`})]})]}),u&&(0,R.jsx)(Zy,{onCreated:g,onCancel:()=>d(!1)}),f&&(0,R.jsx)(`p`,{className:`rounded-lg border border-yellow-500/30 bg-yellow-500/10 px-4 py-3 text-sm text-yellow-700 dark:text-yellow-400`,children:f}),o&&(0,R.jsx)(`p`,{className:`rounded-lg border border-status-failed/30 bg-status-failed/10 px-4 py-3 text-sm text-status-failed`,children:o}),!o&&e.length===0&&!u&&(0,R.jsx)(`p`,{className:`mt-8 text-center text-sm text-muted-foreground`,children:`No schedules configured.`}),(0,R.jsx)(`div`,{className:`grid gap-3`,children:e.map(e=>(0,R.jsx)(Yy,{schedule:e,onToggle:m,onDelete:h,onShowHistory:l},e.id))}),c&&(0,R.jsx)(Ky,{schedule:c,onClose:()=>l(null)})]})}function $y(e,t){let n=(t??Date.now())-e;if(n<1e3)return`${n}ms`;let r=Math.floor(n/1e3);if(r<60)return`${r}s`;let i=Math.floor(r/60);return i<60?`${i}m ${r%60}s`:`${Math.floor(i/60)}h ${i%60}m`}function eb(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return`${t}s ago`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function tb(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}var nb={running:`bg-green-500/20 text-green-400 border border-green-500/30`,completed:`bg-blue-500/20 text-blue-400 border border-blue-500/30`,failed:`bg-red-500/20 text-red-400 border border-red-500/30`,cancelled:`bg-neutral-500/20 text-neutral-400 border border-neutral-500/30`};function rb(e){return e.status!==`running`}function ib({status:e}){return(0,R.jsxs)(`span`,{className:L(`inline-flex items-center gap-1.5 rounded px-1.5 py-0.5 text-xs font-medium`,nb[e]),children:[e===`running`&&(0,R.jsx)(`span`,{className:`size-1.5 rounded-full bg-green-400 animate-pulse`}),e]})}function ab({job:e,now:t,onCancel:n}){let[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(null),l=$y(e.startedAt,e.status===`running`?t:e.endedAt),u=eb(e.startedAt),d=r?ye:M;return(0,R.jsxs)(`div`,{className:`rounded-lg border border-neutral-800 bg-neutral-900 overflow-hidden`,children:[(0,R.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:()=>i(e=>!e),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i(e=>!e))},className:`w-full text-left px-4 py-3 flex flex-col gap-2 hover:bg-neutral-800/50 transition-colors cursor-pointer`,children:[(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,R.jsx)(d,{className:`size-3.5 shrink-0 text-neutral-500`}),(0,R.jsx)(`span`,{className:`text-sm font-medium text-neutral-100 truncate`,children:e.label||e.jobId})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,R.jsx)(ib,{status:e.status}),e.status===`running`&&(0,R.jsxs)(`button`,{type:`button`,onClick:async t=>{t.stopPropagation(),c(null),o(!0);try{await n(e.jobId)}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(!1)}},disabled:a,"aria-label":`Cancel job ${e.jobId}`,className:L(`flex items-center gap-1 rounded px-1.5 py-0.5 text-xs`,`text-neutral-500 hover:text-red-400 hover:bg-red-500/10`,`disabled:opacity-40 transition-colors`),children:[(0,R.jsx)(zt,{className:`size-3`}),a?`Cancelling…`:`Cancel`]})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-neutral-500 pl-5`,children:[(0,R.jsx)(`span`,{className:`font-mono bg-neutral-800 rounded px-1.5 py-0.5 text-neutral-300`,children:tb(e.model)}),(0,R.jsx)(`span`,{children:l}),(0,R.jsx)(`span`,{children:u})]}),(e.status===`failed`||e.status===`cancelled`)&&e.stopReason&&(0,R.jsxs)(`div`,{className:`pl-5 text-xs text-neutral-500`,children:[(0,R.jsx)(`span`,{className:`text-neutral-600`,children:`reason:`}),` `,(0,R.jsx)(`span`,{className:`font-mono text-neutral-400 line-clamp-2`,title:e.stopReason,children:e.stopReason})]}),s&&(0,R.jsx)(`p`,{className:`pl-5 text-xs text-red-400`,title:s,children:s.length>200?s.slice(0,200)+`…`:s})]}),r&&(0,R.jsxs)(`div`,{className:`border-t border-neutral-800 px-4 py-3 bg-neutral-950 grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 text-xs`,children:[(0,R.jsx)(ob,{label:`Job ID`,value:e.jobId,mono:!0}),(0,R.jsx)(ob,{label:`Subagent ID`,value:e.subagentId,mono:!0}),(0,R.jsx)(ob,{label:`Model`,value:e.model,mono:!0}),(0,R.jsx)(ob,{label:`Status`,value:e.status}),(0,R.jsx)(ob,{label:`Started`,value:new Date(e.startedAt).toLocaleString()}),e.endedAt!==void 0&&(0,R.jsx)(ob,{label:`Ended`,value:new Date(e.endedAt).toLocaleString()}),(0,R.jsx)(ob,{label:`Duration`,value:l}),e.parentSessionId&&(0,R.jsx)(ob,{label:`Parent session`,value:e.parentSessionId,mono:!0}),e.stopReason&&(0,R.jsx)(ob,{label:`Stop reason`,value:e.stopReason.length>200?e.stopReason.slice(0,200)+`…`:e.stopReason,mono:!0}),(0,R.jsx)(ob,{label:`Prompt hash`,value:e.promptHash,mono:!0}),(0,R.jsx)(ob,{label:`Schema version`,value:String(e.schemaVersion)})]})]})}function ob({label:e,value:t,mono:n=!1}){return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{className:`text-neutral-600 whitespace-nowrap`,children:e}),(0,R.jsx)(`span`,{className:L(`text-neutral-300 break-all`,n&&`font-mono`),children:t})]})}function sb({label:e,count:t}){return(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-neutral-500 uppercase tracking-wider`,children:[(0,R.jsx)(`span`,{children:e}),(0,R.jsx)(`span`,{className:`rounded-full bg-neutral-800 px-1.5 py-0.5 text-neutral-400 normal-case`,children:t})]})}function cb(){let[e,t]=(0,O.useState)([]),[n,r]=(0,O.useState)(!0),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(()=>Date.now()),c=(0,O.useRef)(null),l=(0,O.useCallback)((e=!1)=>{e||r(!0),a(null),gc(`/api/bg-jobs`).then(({jobs:e})=>t([...e].sort((e,t)=>t.startedAt-e.startedAt))).catch(e=>a(e instanceof Error?e.message:String(e))).finally(()=>{e||r(!1)})},[]);(0,O.useEffect)(()=>{l()},[l]),(0,O.useEffect)(()=>{let t=e.some(e=>!rb(e));return t&&!c.current&&(c.current=setInterval(()=>l(!0),5e3)),!t&&c.current&&(clearInterval(c.current),c.current=null),()=>{c.current&&=(clearInterval(c.current),null)}},[e,l]),(0,O.useEffect)(()=>{if(!e.some(e=>!rb(e)))return;let t=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(t)},[e]);let u=(0,O.useCallback)(async e=>{await gc(`/api/bg-jobs/${encodeURIComponent(e)}/cancel`,{method:`POST`}),t(t=>t.map(t=>t.jobId===e?{...t,status:`cancelled`}:t))},[]),d=e.filter(e=>e.status===`running`),f=e.filter(e=>rb(e)),p=e.some(e=>!rb(e));return(0,R.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-semibold text-neutral-200`,children:[(0,R.jsx)(de,{className:`size-4 text-neutral-400`}),`Background Jobs`,p&&(0,R.jsx)(`span`,{className:`text-xs font-normal text-neutral-500`,children:`(auto-refreshing)`})]}),(0,R.jsxs)(`button`,{onClick:()=>l(),disabled:n,className:`flex items-center gap-1.5 rounded px-2 py-1 text-xs text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800 disabled:opacity-50 transition-colors`,children:[(0,R.jsx)(Ct,{className:L(`size-3`,n&&`animate-spin`)}),`Refresh`]})]}),i&&(0,R.jsx)(`p`,{className:`rounded border border-red-900/40 bg-red-950/30 px-3 py-2 text-xs text-red-400`,children:i}),!n&&e.length===0&&!i&&(0,R.jsx)(`p`,{className:`text-sm text-neutral-500 text-center py-8`,children:`No background jobs`}),d.length>0&&(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsx)(sb,{label:`Running`,count:d.length}),d.map(e=>(0,R.jsx)(ab,{job:e,now:o,onCancel:u},e.jobId))]}),f.length>0&&(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsx)(sb,{label:`Settled`,count:f.length}),f.map(e=>(0,R.jsx)(ab,{job:e,now:o,onCancel:u},e.jobId))]})]})}function lb({icon:e,title:t,children:n}){return(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(e,{className:`size-4 text-muted-foreground`}),(0,R.jsx)(`h2`,{className:`text-sm font-semibold`,children:t})]}),(0,R.jsx)(`div`,{className:`rounded-xl border border-border bg-card`,children:n})]})}function ub({label:e,value:t,mono:n=!1,last:r=!1}){return(0,R.jsxs)(`div`,{className:L(`flex items-center justify-between gap-4 px-4 py-2.5`,!r&&`border-b border-border`),children:[(0,R.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:e}),(0,R.jsx)(`span`,{className:L(`min-w-0 truncate text-right text-xs`,n?`font-mono text-zinc-300`:`text-zinc-200`),children:t})]})}function db({model:e,last:t}){return(0,R.jsxs)(`div`,{className:L(`flex items-center justify-between gap-4 px-4 py-2.5`,!t&&`border-b border-border`),children:[(0,R.jsx)(`span`,{className:`text-xs text-zinc-200`,children:e.label}),(0,R.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.id})]})}var fb=[{keys:`⌘K`,description:`Open command palette`},{keys:`⌘1`,description:`Go to Sessions`},{keys:`⌘2`,description:`Go to Memory`},{keys:`⌘3`,description:`Go to Schedules`},{keys:`⌘4`,description:`Go to Background Jobs`}];function pb({keys:e,description:t,last:n}){return(0,R.jsxs)(`div`,{className:L(`flex items-center justify-between gap-4 px-4 py-2.5`,!n&&`border-b border-border`),children:[(0,R.jsx)(`span`,{className:`text-xs text-zinc-200`,children:t}),(0,R.jsx)(`kbd`,{className:`rounded border border-border bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground`,children:e})]})}function mb({status:e}){return e?(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(`span`,{className:L(`size-1.5 rounded-full`,e.running?`animate-pulse bg-status-done`:`bg-status-failed`)}),(0,R.jsx)(`span`,{className:L(`text-xs`,e.running?`text-zinc-200`:`text-muted-foreground`),children:e.running?`Running${e.tasks==null?``:` · ${e.tasks} task${e.tasks===1?``:`s`}`}`:`Stopped`})]}):(0,R.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`–`})}function hb(){let[e,t]=(0,O.useState)({config:null,models:null,daemon:null,configError:null,modelsError:null,daemonError:null});(0,O.useEffect)(()=>{let e=!1,n=e=>e instanceof Error?e.message:`Failed to load`;return Promise.all([gc(`/api/config`).then(e=>({ok:!0,config:e}),e=>({ok:!1,error:n(e)})),gc(`/api/models`).then(e=>({ok:!0,models:e.models}),e=>({ok:!1,error:n(e)})),gc(`/api/daemon/status`).then(e=>({ok:!0,daemon:e}),e=>({ok:!1,error:n(e)}))]).then(([n,r,i])=>{e||t({config:n.ok?n.config:null,configError:n.ok?null:n.error,models:r.ok?r.models:null,modelsError:r.ok?null:r.error,daemon:i.ok?i.daemon:null,daemonError:i.ok?null:i.error})}).catch(()=>{}),()=>{e=!0}},[]);let n=e.config,r=(0,R.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Loading…`});return(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col gap-6 overflow-y-auto p-4`,children:[(0,R.jsxs)(lb,{icon:Ze,title:`About`,children:[(0,R.jsx)(ub,{label:`AFK version`,value:n?n.version:r,mono:!0}),(0,R.jsx)(ub,{label:`Node.js`,value:n?n.nodeVersion:r,mono:!0}),(0,R.jsx)(ub,{label:`App`,value:`AFK Dashboard`,last:!0})]}),(0,R.jsxs)(lb,{icon:Ne,title:`Model`,children:[(0,R.jsx)(ub,{label:`Default model`,value:n?n.model:r,mono:!0}),e.modelsError?(0,R.jsx)(`div`,{className:`px-4 py-3 text-xs text-status-failed`,children:e.modelsError}):e.models===null?(0,R.jsx)(ub,{label:`Available tiers`,value:r,last:!0}):e.models.length===0?(0,R.jsx)(ub,{label:`Available tiers`,value:`None listed`,last:!0}):e.models.map((t,n)=>(0,R.jsx)(db,{model:t,last:n===(e.models?.length??0)-1},t.id))]}),(0,R.jsxs)(lb,{icon:Ge,title:`Paths`,children:[(0,R.jsx)(ub,{label:`AFK home`,value:n?n.afkHome:r,mono:!0}),(0,R.jsx)(ub,{label:`State dir`,value:n?n.stateDir:r,mono:!0}),(0,R.jsx)(ub,{label:`Config dir`,value:n?n.configDir:r,mono:!0,last:!0})]}),(0,R.jsxs)(lb,{icon:Ye,title:`Web Server`,children:[(0,R.jsx)(ub,{label:`Host`,value:n?n.webHost:r,mono:!0}),(0,R.jsx)(ub,{label:`Port`,value:n?String(n.webPort):r,mono:!0}),(0,R.jsx)(ub,{label:`Daemon`,value:(0,R.jsx)(mb,{status:e.daemon})}),!e.daemonError&&(0,R.jsx)(ub,{label:`Tasks scheduled`,value:e.daemon?.tasks==null?`–`:String(e.daemon.tasks),last:!0}),e.daemonError&&(0,R.jsx)(ub,{label:`Daemon error`,value:e.daemonError,last:!0})]}),(0,R.jsx)(lb,{icon:$e,title:`Keyboard Shortcuts`,children:fb.map((e,t)=>(0,R.jsx)(pb,{keys:e.keys,description:e.description,last:t===fb.length-1},e.keys))})]})}function gb(e){return e.startsWith(`/`)?e.slice(1):e}function _b(e){return`/${gb(e)}`}function vb(e,t){return gb(e).startsWith(gb(t))}function yb({query:e,commands:t,onSelect:n,visible:r}){let[i,a]=(0,O.useState)(0),o=(0,O.useRef)(null),s=t.filter(t=>vb(t.name,e)).slice(0,8);return(0,O.useEffect)(()=>{a(0)},[e]),(0,O.useEffect)(()=>{(o.current?.children[i])?.scrollIntoView({block:`nearest`})},[i]),!r||s.length===0?null:(0,R.jsx)(`ul`,{ref:o,role:`listbox`,"aria-label":`Slash commands`,className:L(`absolute bottom-full left-0 mb-1 w-full max-h-56 overflow-y-auto`,`rounded-lg border border-border bg-popover shadow-lg z-50`,`text-sm`),children:s.map((e,t)=>(0,R.jsxs)(`li`,{role:`option`,"aria-selected":t===i,className:L(`flex items-baseline gap-2 px-3 py-2 cursor-pointer select-none`,t===i?`bg-accent text-accent-foreground`:`hover:bg-accent/50`),onMouseEnter:()=>a(t),onMouseDown:t=>{t.preventDefault(),n(e.name)},children:[(0,R.jsx)(`span`,{className:`font-mono font-semibold shrink-0`,children:_b(e.name)}),(0,R.jsx)(`span`,{className:`text-muted-foreground truncate`,children:e.summary})]},e.name))})}function bb(e,t,n,r,i,a,o){return!t||n===0?!1:e.key===`ArrowDown`?(i((r+1)%n),!0):e.key===`ArrowUp`?(i((r-1+n)%n),!0):e.key===`Enter`?(a(r),!0):e.key===`Escape`&&(o(),!0)}function xb(e){let t=e.trim();return t?t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`~/`)||/^[\w.]/.test(t):!1}function Sb({onInsert:e}){let[t,n]=(0,O.useState)(!1),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(!1),s=(0,O.useRef)(null),c=(0,O.useRef)(null),l=(0,O.useRef)(null),u=(0,O.useCallback)(()=>{n(!1),o(!1),i(``)},[]),d=(0,O.useCallback)(()=>{let t=r.trim();xb(t)?(e(`@${t}`),u()):(o(!0),s.current?.focus())},[r,e,u]);return(0,O.useEffect)(()=>{t&&requestAnimationFrame(()=>s.current?.focus())},[t]),(0,O.useEffect)(()=>{if(!t)return;function e(e){let t=e.target;c.current&&!c.current.contains(t)&&l.current&&!l.current.contains(t)&&u()}return document.addEventListener(`click`,e,{capture:!0}),()=>document.removeEventListener(`click`,e,{capture:!0})},[t,u]),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`button`,{ref:l,type:`button`,onClick:()=>t?u():n(!0),"aria-label":`Insert file reference`,"aria-expanded":t,className:L(`flex h-8 w-8 items-center justify-center rounded-md text-sm`,`transition-colors hover:bg-accent hover:text-accent-foreground`,t&&`bg-accent text-accent-foreground`),title:`Insert @file reference`,children:(0,R.jsx)(Ue,{className:`h-4 w-4`})}),t&&(0,R.jsxs)(`div`,{ref:c,role:`dialog`,"aria-label":`Insert file path`,className:L(`absolute bottom-full left-0 mb-2 w-72 rounded-lg border`,`bg-popover p-3 shadow-lg animate-fade-in`),children:[(0,R.jsxs)(`p`,{className:`mb-2 text-xs text-muted-foreground`,children:[`Type a file path. `,(0,R.jsx)(`code`,{className:`text-[10px]`,children:`@~/file.ts`}),` or`,` `,(0,R.jsx)(`code`,{className:`text-[10px]`,children:`@src/file.ts`})]}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{ref:s,type:`text`,value:r,onChange:e=>{i(e.target.value),o(!1)},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),d()),e.key===`Escape`&&u()},placeholder:`src/foo.ts or ~/file.ts`,autoComplete:`off`,spellCheck:!1,className:L(`flex-1 rounded-md border bg-secondary px-2 py-1 text-sm`,`placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring`,a&&`border-destructive`)}),(0,R.jsx)(`button`,{type:`button`,onClick:d,className:L(`rounded-md bg-primary px-3 py-1 text-sm font-medium`,`text-primary-foreground hover:bg-primary/90`),children:`Add`})]}),a&&(0,R.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:`Enter a valid file path.`})]})]})}var Cb=[{id:`sonnet`,label:`Sonnet`},{id:`haiku`,label:`Haiku`},{id:`opus`,label:`Opus`}],wb=`sonnet`;function Tb({onSelect:e,current:t,className:n}){let[r,i]=(0,O.useState)(Cb),a=(0,O.useRef)(!1);(0,O.useEffect)(()=>{let e=!1;return gc(`/api/models`).then(t=>{!e&&t.models.length>0&&i(t.models)}).catch(()=>{}),()=>{e=!0}},[]);let o=t??wb;(0,O.useEffect)(()=>{a.current||(a.current=!0,e(o))},[e,o]);let s=(0,O.useCallback)(t=>{e(t.target.value)},[e]);return(0,R.jsxs)(`div`,{className:L(`relative inline-flex items-center`,n),children:[(0,R.jsx)(`select`,{value:o,onChange:s,"aria-label":`Model`,className:L(`appearance-none rounded-md border bg-secondary pl-2 pr-7 py-1`,`text-xs font-medium text-secondary-foreground`,`cursor-pointer focus:outline-none focus:ring-1 focus:ring-ring`),children:r.map(e=>(0,R.jsx)(`option`,{value:e.id,children:e.label},e.id))}),(0,R.jsx)(ye,{className:`pointer-events-none absolute right-1.5 h-3 w-3 text-muted-foreground`})]})}function Eb({queue:e}){let{entries:t,moveItemUp:n,moveItemDown:r,removeItem:i,editItem:a}=e;return t.length===0?null:(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 border-b border-border/50 px-3 py-2`,children:[(0,R.jsxs)(`p`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:[`Queued (`,t.length,`)`]}),t.map((e,o)=>(0,R.jsx)(Db,{text:e.text,isFirst:o===0,isLast:o===t.length-1,onMoveUp:()=>n(o),onMoveDown:()=>r(o),onRemove:()=>i(o),onEdit:e=>a(o,e)},e.id))]})}function Db({text:e,isFirst:t,isLast:n,onMoveUp:r,onMoveDown:i,onRemove:a,onEdit:o}){let[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(e),d=(0,O.useRef)(null);(0,O.useEffect)(()=>{s&&d.current?.focus()},[s]);let f=(0,O.useCallback)(()=>{u(e),c(!0)},[e]),p=(0,O.useCallback)(()=>{let t=l.trim();t&&t!==e&&o(t),c(!1)},[l,e,o]),m=(0,O.useCallback)(()=>{c(!1),u(e)},[e]);return(0,R.jsxs)(`div`,{className:L(`group flex items-center gap-1.5 rounded-md border border-border/50`,`bg-secondary/50 px-2 py-1 text-sm animate-fade-in`),children:[s?(0,R.jsx)(`input`,{ref:d,type:`text`,value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&p(),e.key===`Escape`&&m()},onBlur:p,className:L(`min-w-0 flex-1 bg-transparent text-sm`,`focus:outline-none`)}):(0,R.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-foreground/80`,children:e}),(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 opacity-60 group-hover:opacity-100`,children:[s?(0,R.jsx)(Ob,{label:`Confirm edit`,onClick:p,children:(0,R.jsx)(_e,{className:`h-3 w-3`})}):(0,R.jsx)(Ob,{label:`Edit`,onClick:f,children:(0,R.jsx)(ht,{className:`h-3 w-3`})}),(0,R.jsx)(Ob,{label:`Move up`,onClick:r,disabled:t,children:(0,R.jsx)(A,{className:`h-3 w-3`})}),(0,R.jsx)(Ob,{label:`Move down`,onClick:i,disabled:n,children:(0,R.jsx)(ie,{className:`h-3 w-3`})}),(0,R.jsx)(Ob,{label:`Remove`,onClick:a,destructive:!0,children:(0,R.jsx)(zt,{className:`h-3 w-3`})})]})]})}function Ob({label:e,onClick:t,disabled:n,destructive:r,children:i}){return(0,R.jsx)(`button`,{type:`button`,onClick:t,disabled:n,"aria-label":e,title:e,className:L(`flex h-5 w-5 items-center justify-center rounded`,`transition-colors`,n?`cursor-not-allowed opacity-30`:r?`hover:bg-destructive/20 hover:text-destructive`:`hover:bg-accent hover:text-accent-foreground`),children:i})}var kb=null;function Ab(){kb=null}async function jb(){return kb||(kb=(await gc(`/api/commands`)).commands,kb)}function Mb(e){return e.startsWith(`/`)&&e.indexOf(` `)===-1?e.slice(1):null}function Nb({sessionId:e,sessionMode:t,isBusy:n,queue:r,onModelSelect:i,currentModel:a}){let[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)([]),[f,p]=(0,O.useState)(0),m=(0,O.useRef)(null),h=t===`readonly`,g=Mb(o),_=g!==null&&u.length>0,v=_?u.filter(e=>vb(e.name,g)).slice(0,8):[];(0,O.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&Ab()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),(0,O.useEffect)(()=>{let e=m.current;if(!e)return;e.style.height=`auto`;let t=(parseInt(getComputedStyle(e).lineHeight)||20)*5;e.style.height=`${Math.min(e.scrollHeight,t)}px`},[o]),(0,O.useEffect)(()=>{g!==null&&jb().then(d).catch(()=>void 0)},[g]);let y=(0,O.useCallback)(async()=>{let t=o.trim();if(!(!t||c||h)){l(!0);try{await gc(`/api/sessions/${e}/prompt`,{method:`POST`,body:JSON.stringify({text:t})}),s(``)}catch{}finally{l(!1)}}},[o,c,h,e]),b=(0,O.useCallback)(async()=>{try{await gc(`/api/sessions/${e}/interrupt`,{method:`POST`})}catch{}},[e]),x=(0,O.useCallback)(e=>{s(`${_b(e)} `),p(0),m.current?.focus()},[]),S=(0,O.useCallback)(e=>{if(bb(e,_,v.length,f,p,e=>{let t=v[e];t&&x(t.name)},()=>s(e=>e)))e.preventDefault();else if(e.key===`Enter`&&!e.shiftKey){if(e.preventDefault(),n&&r){let e=o.trim();e&&(r.enqueue(e),s(``))}else y()}},[_,v,f,x,y,n,o,r]),C=(0,O.useCallback)(e=>{let t=m.current;if(!t){s(t=>t+` `+e+` `);return}let n=t.selectionStart??t.value.length,r=t.selectionEnd??n,i=t.value.slice(0,n),a=t.value.slice(r),o=i.length>0&&!/\s$/.test(i)?` `:``,c=i+o+e+` `+a;s(c),requestAnimationFrame(()=>{let r=n+o.length+e.length+1;t.setSelectionRange(r,r),t.focus()})},[]);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`pointer-events-none h-8 bg-gradient-to-t from-background/80 to-transparent`}),(0,R.jsxs)(`div`,{className:L(`relative flex flex-col gap-2`,`border-t border-border/50 px-4 py-3`,`backdrop-blur-xl bg-background/80`,`shadow-[0_-4px_16px_-4px_rgba(0,0,0,0.1)]`,h&&`opacity-50`),children:[r&&(0,R.jsx)(Eb,{queue:r}),(0,R.jsx)(yb,{query:g??``,commands:u,onSelect:x,visible:_}),(0,R.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,R.jsx)(Sb,{onInsert:C}),i&&(0,R.jsx)(Tb,{onSelect:i,current:a})]}),(0,R.jsx)(`textarea`,{ref:m,rows:1,value:o,disabled:h||c,onChange:e=>s(e.target.value),onKeyDown:S,placeholder:h?`Read-only session`:`Send a message… (/ for commands)`,className:L(`flex-1 resize-none rounded-xl border border-input bg-background`,`px-3 py-2 text-sm leading-5 shadow-sm`,`placeholder:text-muted-foreground`,`focus:outline-none focus:ring-2 focus:ring-ring`,`disabled:cursor-not-allowed`)}),n?(0,R.jsx)(`button`,{onClick:()=>void b(),title:`Stop`,className:`shrink-0 flex items-center justify-center h-9 w-9 rounded-lg bg-destructive text-destructive-foreground hover:bg-destructive/90 transition-colors`,children:(0,R.jsx)(jt,{className:`h-4 w-4 fill-current`})}):(0,R.jsx)(`button`,{onClick:()=>void y(),disabled:!o.trim()||c||h,title:`Send`,className:L(`shrink-0 flex items-center justify-center h-9 w-9 rounded-lg`,`bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,`disabled:opacity-40 disabled:cursor-not-allowed`),children:(0,R.jsx)(Tt,{className:`h-4 w-4`})})]})]})]})}async function Pb(e){await gc(`/api/approve`,{method:`POST`,body:JSON.stringify(e)})}function Fb({approval:e,onAnswered:t}){let{id:n,request:r}=e,[i,a]=(0,O.useState)(typeof r.questionDefault==`string`?r.questionDefault:``),[o,s]=(0,O.useState)(!1),[c,l]=(0,O.useState)(null),u=async(e,r)=>{s(!0),l(null);try{await Pb({requestId:n,response:{action:e,content:r}}),t()}catch{l(`Failed to submit — try again`)}finally{s(!1)}},d=r.type??`confirm`;return(0,R.jsxs)(`div`,{className:L(`rounded-lg border-2 border-yellow-500/60 bg-yellow-500/5 p-3 text-sm`,`flex flex-col gap-2`),children:[(0,R.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsx)(Ft,{className:`h-4 w-4 text-yellow-500 mt-0.5 shrink-0`}),(0,R.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[r.title&&(0,R.jsx)(`p`,{className:`font-semibold text-foreground`,children:r.title}),r.message&&(0,R.jsx)(`p`,{className:`text-muted-foreground`,children:r.message}),r.description&&(0,R.jsx)(`p`,{className:`text-muted-foreground/80 text-xs mt-0.5`,children:r.description})]}),(0,R.jsx)(`button`,{onClick:()=>void u(`decline`),disabled:o,className:`shrink-0 text-muted-foreground hover:text-foreground`,title:`Dismiss`,children:(0,R.jsx)(zt,{className:`h-4 w-4`})})]}),d===`text`&&(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),disabled:o,className:L(`flex-1 rounded border border-input bg-background px-2 py-1 text-sm`,`focus:outline-none focus:ring-1 focus:ring-ring`)}),(0,R.jsx)(Ib,{onClick:()=>void u(`accept`,{text:i}),disabled:o,label:`Submit`,variant:`primary`})]}),d===`confirm`&&(0,R.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,R.jsx)(Ib,{onClick:()=>void u(`decline`),disabled:o,label:`No`,variant:`ghost`}),(0,R.jsx)(Ib,{onClick:()=>void u(`accept`),disabled:o,label:`Yes`,variant:`primary`})]}),(d===`choice`||d===`multi_choice`)&&(0,R.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(r.choices??[]).map(e=>(0,R.jsx)(Ib,{onClick:()=>void u(`accept`,{choice:e}),disabled:o,label:e,variant:`outline`},e))}),c&&(0,R.jsx)(`p`,{className:`text-xs text-red-400`,children:c})]})}function Ib({onClick:e,disabled:t,label:n,variant:r}){return(0,R.jsx)(`button`,{onClick:e,disabled:t,className:L(`rounded px-3 py-1 text-xs font-medium transition-colors disabled:opacity-50`,r===`primary`&&`bg-primary text-primary-foreground hover:bg-primary/90`,r===`ghost`&&`text-muted-foreground hover:text-foreground hover:bg-accent`,r===`outline`&&`border border-border hover:bg-accent`),children:n})}function Lb({approvals:e,onDismiss:t}){let[n,r]=(0,O.useState)(new Set),i=e.filter(e=>!n.has(e.id));if(i.length===0)return null;let a=e=>{r(t=>new Set([...t,e])),t?.()};return(0,R.jsx)(`div`,{className:`flex flex-col gap-2`,children:i.map(e=>(0,R.jsx)(Fb,{approval:e,onAnswered:()=>a(e.id)},e.id))})}function Rb({open:e,onClose:t,children:n}){return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:L(`fixed inset-0 z-40 bg-black/50 transition-opacity duration-200 md:hidden`,e?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`),onClick:t,"aria-hidden":`true`}),(0,R.jsx)(`div`,{className:L(`fixed inset-y-0 left-0 z-50 w-64 bg-sidebar transition-transform duration-200 ease-in-out md:hidden`,e?`translate-x-0`:`-translate-x-full`),role:`dialog`,"aria-modal":`true`,children:n})]})}function zb({onClick:e,className:t}){return(0,R.jsx)(`button`,{onClick:e,className:L(`inline-flex items-center justify-center rounded-md p-2 text-muted-foreground hover:bg-muted hover:text-foreground md:hidden`,t),"aria-label":`Open sidebar`,children:(0,R.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,R.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M4 6h16M4 12h16M4 18h16`})})})}var Bb=(0,O.createContext)(null),Vb={success:`bg-green-600 text-white`,error:`bg-red-600 text-white`,info:`bg-muted text-muted-foreground border border-border`};function Hb({children:e}){let[t,n]=(0,O.useState)([]),r=(0,O.useRef)(0),i=(0,O.useCallback)((e,t=`info`)=>{let i=++r.current;n(n=>[...n.slice(-2),{id:i,message:e,type:t}]),setTimeout(()=>{n(e=>e.filter(e=>e.id!==i))},3e3)},[]);return(0,R.jsxs)(Bb.Provider,{value:{toast:i},children:[e,(0,R.jsx)(`div`,{className:`fixed bottom-4 right-4 z-50 flex flex-col gap-2 pointer-events-none`,"aria-live":`polite`,"aria-label":`Notifications`,children:t.map(e=>(0,R.jsx)(`div`,{className:L(`pointer-events-auto max-w-sm rounded-lg px-4 py-3 text-sm shadow-lg animate-slide-in-right`,Vb[e.type]),children:e.message},e.id))})]})}var Ub=1e4;function Wb(){let[e,t]=(0,O.useState)([]),[n,r]=(0,O.useState)(!0),[i,a]=(0,O.useState)(null),o=(0,O.useRef)(void 0),s=(0,O.useCallback)(async()=>{try{let e=await gc(`/api/sessions`);t(Gb(e.sessions)),a(null)}catch(e){a(e instanceof Error?e.message:`Failed to fetch sessions`)}finally{r(!1)}},[]);return(0,O.useEffect)(()=>(s(),o.current=setInterval(()=>void s(),Ub),()=>clearInterval(o.current)),[s]),{sessions:e,loading:n,error:i,refresh:s}}function Gb(e){return[...e].sort((e,t)=>{let n=+!!Kb(e),r=+!!Kb(t);if(n!==r)return r-n;let i=e.updatedAt?new Date(e.updatedAt).getTime():0;return(t.updatedAt?new Date(t.updatedAt).getTime():0)-i})}function Kb(e){return e.mode===`live`||e.alive===!0}var qb=1e3;function Jb(){let[e,t]=(0,O.useState)([]),n=(0,O.useRef)(void 0),r=(0,O.useCallback)(async()=>{try{let e=await gc(`/api/pending`);t(e.pending)}catch{}},[]);return(0,O.useEffect)(()=>(r(),n.current=setInterval(()=>void r(),qb),()=>clearInterval(n.current)),[r]),{approvals:e,pendingSessionIds:new Set(e.map(e=>e.sessionId).filter(e=>!!e))}}var Yb=15e3,Xb=500;function Zb(e){let t=e.replace(/\r\n/g,`
|
|
79
|
+
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return Zg(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=J_.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function iv(){return{exit:{taskListCheckValueChecked:ov,taskListCheckValueUnchecked:ov,paragraph:sv}}}function av(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:cv}}}function ov(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function sv(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function cv(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=J_.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function lv(){return[hg(),zg(),Wg(),Y_(),iv()]}function uv(e){return{extensions:[gg(),Bg(e),Gg(),rv(e),av()]}}var dv={tokenize:Tv,partial:!0},fv={tokenize:Ev,partial:!0},pv={tokenize:Dv,partial:!0},mv={tokenize:Ov,partial:!0},hv={tokenize:kv,partial:!0},gv={name:`wwwAutolink`,tokenize:Cv,previous:Av},_v={name:`protocolAutolink`,tokenize:wv,previous:jv},vv={name:`emailAutolink`,tokenize:Sv,previous:Mv},yv={};function bv(){return{text:yv}}for(var xv=48;xv<123;)yv[xv]=vv,xv++,xv===58?xv=65:xv===91&&(xv=97);yv[43]=vv,yv[45]=vv,yv[46]=vv,yv[95]=vv,yv[72]=[vv,_v],yv[104]=[vv,_v],yv[87]=[vv,gv],yv[119]=[vv,gv];function Sv(e,t,n){let r=this,i,a;return o;function o(t){return!Nv(t)||!Mv.call(r,r.previous)||Pv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return Nv(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(hv,u,l)(t):t===45||t===95||gd(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&hd(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function Cv(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!Av.call(r,r.previous)||Pv(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(dv,e.attempt(fv,e.attempt(pv,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function wv(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&jv.call(r,r.previous)&&!Pv(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(hd(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||vd(t)||X(t)||Cd(t)||Sd(t)?n(t):e.attempt(fv,e.attempt(pv,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function Tv(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function Ev(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(mv,c,s)(t):t===null||X(t)||Cd(t)||t!==45&&Sd(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function Dv(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(mv,t,a)(o):o===null||X(o)||Cd(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function Ov(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||X(o)||Cd(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||X(e)||Cd(e)?t(e):r(e)}function a(e){return hd(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):hd(t)?(e.consume(t),o):n(t)}}function kv(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return gd(e)?n(e):t(e)}}function Av(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||X(e)}function jv(e){return!hd(e)}function Mv(e){return!(e===47||Nv(e))}function Nv(e){return e===43||e===45||e===46||e===95||gd(e)}function Pv(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var Fv={tokenize:Uv,partial:!0};function Iv(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Bv,continuation:{tokenize:Vv},exit:Hv}},text:{91:{name:`gfmFootnoteCall`,tokenize:zv},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:Lv,resolveTo:Rv}}}}function Lv(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=md(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function Rv(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function zv(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||X(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(md(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return X(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Bv(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||X(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=md(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return X(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),Q(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function Vv(e,t,n){return e.check(Bd,t,e.attempt(Fv,t,n))}function Hv(e){e.exit(`gfmFootnoteDefinition`)}function Uv(e,t,n){let r=this;return Q(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Wv(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&J(o,o.length,0,Nd(s,e.slice(r+1,n),t)),J(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),J(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=Md(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Md(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Gv=class{constructor(){this.map=[]}add(e,t,n){Kv(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Kv(e,t,n,r){let i=0;if(n!==0||r.length!==0){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function qv(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Jv(){return{flow:{null:{name:`table`,tokenize:Yv,resolveAll:Xv}}}}function Yv(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124||(o=!0,a+=1),u(e)}function u(t){return t===null?n(t):Y(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Z(t)?Q(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||X(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Z(t)?Q(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return Z(t)?Q(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||Y(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Z(t)?Q(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||Y(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||Y(n)?(e.exit(`tableRow`),t(n)):Z(n)?Q(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||X(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Xv(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Gv;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(Qv(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Zv(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Zv(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Zv(f,t,o,i,n,d)):(o[0]=o[1],d=Zv(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&Qv(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=qv(t.events,n))}return e}function Zv(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},$v(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=$v(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=$v(t.events,n[2]),a=$v(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},$v(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Qv(e,t,n,r,i){let a=[],o=$v(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function $v(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var ey={name:`tasklistCheck`,tokenize:ny};function ty(){return{text:{91:ey}}}function ny(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return X(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return Y(r)?t(r):Z(r)?e.check({tokenize:ry},t,n)(r):n(r)}}function ry(e,t,n){return Q(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function iy(e){return ud([bv(),Iv(),Wv(e),Jv(),ty()])}var ay={};function oy(e){let t=this,n=e||ay,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(iy(n)),a.push(lv()),o.push(uv(n))}var sy=`modulepreload`,cy=function(e){return`/`+e},ly={},uy=function(e){return e.pathname.endsWith(`.css`)},dy=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},fy=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=cy(t,n);let r=s(t),i=uy(r);return dy(ly,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:sy,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},py=null,my=new Map;function hy(){return py||=fy(async()=>{let{createHighlighter:e}=await import(`./dist-CDAQQmhG.js`);return{createHighlighter:e}},[]).then(({createHighlighter:e})=>e({themes:[`github-dark`],langs:[`plaintext`]})),py}function gy(e){let t=my.get(e);if(t)return t;let n=fy(async()=>{let{bundledLanguages:e,isSpecialLang:t}=await import(`./dist-CDAQQmhG.js`);return{bundledLanguages:e,isSpecialLang:t}},[]).then(async({bundledLanguages:t,isSpecialLang:n})=>{if(n(e))return;let r=t[e];if(!r)throw Error(`unknown lang: ${e}`);let i=await hy();i.getLoadedLanguages().includes(e)||await i.loadLanguage(r)}).catch(t=>{throw my.delete(e),t});return my.set(e,n),n}function _y({code:e,language:t}){let[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(0),[o,s]=(0,O.useState)(!1),c=(0,O.useRef)(null);(0,O.useEffect)(()=>{let n=!1;async function i(){let i=await hy();if(n)return;let o=`plaintext`;if(t){let{isSpecialLang:e}=await fy(async()=>{let{isSpecialLang:e}=await import(`./dist-CDAQQmhG.js`);return{isSpecialLang:e}},[]),r=i.getLoadedLanguages();e(t)||r.includes(t)?o=t:(gy(t).then(()=>{n||a(e=>e+1)}).catch(()=>{}),o=`plaintext`)}try{let t=i.codeToHtml(e,{lang:o,theme:`github-dark`});n||r(t)}catch{}}return r(null),i().catch(()=>{}),()=>{n=!0}},[e,t,i]),(0,O.useEffect)(()=>()=>{c.current!==null&&clearTimeout(c.current)},[]);let l=(0,O.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{s(!0),c.current!==null&&clearTimeout(c.current),c.current=setTimeout(()=>s(!1),2e3)}).catch(()=>{})},[e]);return(0,R.jsxs)(`div`,{className:`relative group rounded-md bg-secondary overflow-hidden mb-2`,children:[t&&(0,R.jsx)(`div`,{className:`text-[10px] text-muted-foreground px-3 pt-1.5 select-none`,children:t}),(0,R.jsx)(`button`,{onClick:l,"aria-label":`Copy code`,className:`absolute top-1.5 right-2 z-10 opacity-0 group-hover:opacity-100 transition-opacity rounded p-1 text-muted-foreground hover:text-foreground hover:bg-white/10`,children:o?(0,R.jsx)(_e,{size:13,strokeWidth:2.5}):(0,R.jsx)(je,{size:13,strokeWidth:2})}),n===null?(0,R.jsx)(`pre`,{className:`overflow-x-auto p-3 font-mono text-xs leading-5 text-foreground`,children:(0,R.jsx)(`code`,{children:e})}):(0,R.jsx)(`div`,{className:`overflow-x-auto text-xs leading-5 [&>pre]:p-3 [&>pre]:m-0 [&>pre]:bg-transparent! [&>pre]:font-mono`,dangerouslySetInnerHTML:{__html:n}})]})}var vy={h1:({children:e})=>(0,R.jsx)(`h1`,{className:`mb-3 text-xl font-bold`,children:e}),h2:({children:e})=>(0,R.jsx)(`h2`,{className:`mb-2 text-lg font-semibold`,children:e}),h3:({children:e})=>(0,R.jsx)(`h3`,{className:`mb-1.5 text-base font-semibold`,children:e}),p:({children:e})=>(0,R.jsx)(`p`,{className:`mb-2 last:mb-0 leading-relaxed`,children:e}),ul:({children:e})=>(0,R.jsx)(`ul`,{className:`mb-2 ml-4 list-disc space-y-0.5`,children:e}),ol:({children:e})=>(0,R.jsx)(`ol`,{className:`mb-2 ml-4 list-decimal space-y-0.5`,children:e}),li:({children:e})=>(0,R.jsx)(`li`,{className:`text-sm`,children:e}),blockquote:({children:e})=>(0,R.jsx)(`blockquote`,{className:`mb-2 border-l-2 border-brand/50 pl-3 italic text-muted-foreground`,children:e}),a:({href:e,children:t})=>e&&/^(https?:\/\/|\/(?!\/)|#)/i.test(e)?(0,R.jsx)(`a`,{href:e,className:`text-brand underline underline-offset-2 hover:text-brand/80`,target:`_blank`,rel:`noopener noreferrer`,children:t}):(0,R.jsx)(`span`,{className:`text-muted-foreground`,children:t}),strong:({children:e})=>(0,R.jsx)(`strong`,{className:`font-semibold text-foreground`,children:e}),em:({children:e})=>(0,R.jsx)(`em`,{className:`italic text-muted-foreground`,children:e}),hr:()=>(0,R.jsx)(`hr`,{className:`my-3 border-border`}),table:({children:e})=>(0,R.jsx)(`div`,{className:`mb-2 overflow-x-auto rounded border border-border`,children:(0,R.jsx)(`table`,{className:`w-full text-sm`,children:e})}),thead:({children:e})=>(0,R.jsx)(`thead`,{className:`bg-secondary text-secondary-foreground`,children:e}),th:({children:e})=>(0,R.jsx)(`th`,{className:`px-3 py-1.5 text-left font-medium`,children:e}),td:({children:e})=>(0,R.jsx)(`td`,{className:`border-t border-border px-3 py-1.5`,children:e}),code:({children:e,className:t})=>/language-(\w+)/.exec(t??``)?.[1]?(0,R.jsx)(`code`,{className:L(`text-xs`,t),children:e}):(0,R.jsx)(`code`,{className:`rounded bg-secondary px-1 py-0.5 font-mono text-[11px] text-foreground`,children:e}),pre:({children:e})=>{let t=e,n=/language-(\w+)/.exec(t?.props?.className??``)?.[1],r=String(t?.props?.children??``).replace(/\n$/,``);return(0,R.jsx)(_y,{code:r,language:n})}};function yy({text:e,className:t}){return(0,R.jsx)(`div`,{className:L(`text-sm text-foreground`,t),children:(0,R.jsx)(ng,{remarkPlugins:[oy],components:vy,children:e})})}function by(){return(0,R.jsx)(`span`,{className:`streaming-cursor`,"aria-hidden":`true`})}var xy=/^[ \t]*(`{3,}|~{4,})/;function Sy(e,t){if(t>=e.length)return t;let n=e.lastIndexOf(`
|
|
80
|
+
`,t-1)+1,r=e.slice(n,t);if(xy.test(r)){let n=e.indexOf(`
|
|
81
|
+
`,t);return n===-1?e.length:n+1}return t}function Cy({text:e,isStreaming:t,speed:n=80,onComplete:r}){let i=(0,O.useRef)(0),[a,o]=(0,O.useState)(0),s=(0,O.useRef)(null),c=(0,O.useRef)(null),l=(0,O.useRef)(!1),u=(0,O.useRef)(r);(0,O.useEffect)(()=>{u.current=r},[r]);let d=(0,O.useRef)(n);(0,O.useEffect)(()=>{d.current=n});let f=!t&&i.current===0&&e.length>0,p=(0,O.useCallback)(()=>{if(s.current!==null)return;function n(r){let a=r-(c.current??r);c.current=r;let f=d.current/1e3,p=Math.max(1,Math.floor(f*a)),m=i.current,h=e.length;if(m<h){let t=Sy(e,Math.min(m+p,h));i.current=t,o(t)}i.current>=e.length&&!t?(s.current=null,c.current=null,l.current||(l.current=!0,u.current?.())):s.current=requestAnimationFrame(n)}s.current=requestAnimationFrame(n)},[e,t]);(0,O.useEffect)(()=>{if(f)i.current=e.length,o(e.length),l.current||(l.current=!0,u.current?.());else return(i.current<e.length||t)&&p(),()=>{s.current!==null&&(cancelAnimationFrame(s.current),s.current=null)}},[e,t,f]);let m=f?e.length:a,h=e.slice(0,m),g=m<e.length||t;return(0,R.jsxs)(`span`,{className:`streaming-text-root`,children:[(0,R.jsx)(yy,{text:h}),g&&(0,R.jsx)(by,{})]})}function wy({kind:e,text:t,className:n}){let[r,i]=(0,O.useState)(!1),a=(0,O.useRef)(null);(0,O.useEffect)(()=>()=>{a.current!==null&&clearTimeout(a.current)},[]);function o(){navigator.clipboard.writeText(t).then(()=>{i(!0),a.current!==null&&clearTimeout(a.current),a.current=setTimeout(()=>i(!1),2e3)}).catch(()=>{})}return(0,R.jsx)(`div`,{className:L(`absolute top-1 right-1`,`opacity-0 group-hover:opacity-100 transition-opacity duration-150`,n),children:(0,R.jsx)(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-card px-1 py-0.5 shadow-sm`,children:e===`assistant`&&(0,R.jsx)(Ty,{onClick:o,title:r?`Copied!`:`Copy`,children:r?(0,R.jsx)(_e,{className:`h-3.5 w-3.5 text-status-running`}):(0,R.jsx)(je,{className:`h-3.5 w-3.5`})})})})}function Ty({onClick:e,title:t,children:n}){return(0,R.jsx)(`button`,{type:`button`,onClick:e,title:t,className:`h-6 w-6 rounded flex items-center justify-center hover:bg-secondary text-muted-foreground hover:text-foreground transition-colors`,children:n})}function Ey({text:e}){return(0,R.jsxs)(`div`,{className:`group relative flex flex-col items-end gap-1`,children:[(0,R.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-widest text-muted-foreground/50`,children:`You`}),(0,R.jsx)(`p`,{className:`max-w-2xl text-sm leading-relaxed text-foreground whitespace-pre-wrap text-right`,children:e}),(0,R.jsx)(wy,{kind:`user`,text:e})]})}function Dy({text:e,isStreaming:t=!1}){return(0,R.jsxs)(`div`,{className:`group relative flex flex-col gap-1`,children:[(0,R.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-widest text-brand/60`,children:`Agent`}),(0,R.jsx)(`div`,{className:`max-w-3xl`,children:t?(0,R.jsx)(Cy,{text:e,isStreaming:!0}):(0,R.jsx)(yy,{text:e})}),(0,R.jsx)(wy,{kind:`assistant`,text:e})]})}function Oy({message:e}){return(0,R.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-xl border border-destructive/20 bg-destructive/5 px-4 py-3`,children:[(0,R.jsx)(xe,{className:`mt-0.5 h-4 w-4 shrink-0 text-status-failed`}),(0,R.jsx)(`p`,{className:`text-sm leading-relaxed text-status-failed`,children:e})]})}function ky({text:e}){return(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border bg-muted/30 px-3 py-2`,children:[(0,R.jsx)(Ze,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,R.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e})]})}function Ay({item:e}){return(0,R.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border bg-muted/30 px-3 py-1.5`,children:[(0,R.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`BG`}),(0,R.jsx)(`span`,{className:`text-xs text-foreground`,children:e.label}),(0,R.jsx)(`span`,{className:L(`ml-auto font-mono text-[10px] capitalize`,e.status===`completed`?`text-status-running`:``,e.status===`failed`?`text-status-failed`:``,e.status===`running`?`text-status-blocked`:``),children:e.status})]})}function jy(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===void 0){n++;continue}if(r.kind!==`subagent`){t.push({kind:`item`,item:r}),n++;continue}let i=[];for(;n<e.length;){let t=e[n];if(t===void 0||t.kind!==`subagent`)break;i.push(t),n++}t.push({kind:`subagent-group`,items:i,id:i[0].id})}return t}function My(e,t=!1){switch(e.kind){case`user`:return(0,R.jsx)(Ey,{text:e.text});case`assistant`:return(0,R.jsx)(Dy,{text:e.text,isStreaming:t});case`thinking`:return(0,R.jsx)(sc,{text:e.text});case`tool`:return(0,R.jsx)(Rc,{...e});case`error`:return(0,R.jsx)(Oy,{message:e.message});case`notice`:return(0,R.jsx)(ky,{text:e.text});case`bg_job`:return(0,R.jsx)(Ay,{item:e});case`subagent`:return null}}function Ny(e,t=!1){switch(e.kind){case`user`:return(0,R.jsx)(Ey,{text:e.text});case`assistant`:return(0,R.jsx)(Dy,{text:e.text,isStreaming:t});case`thinking`:return(0,R.jsx)(sc,{text:e.text});case`error`:return(0,R.jsx)(Oy,{message:e.message});case`notice`:return(0,R.jsx)(ky,{text:e.text});case`bg_job`:return(0,R.jsx)(Ay,{item:e});default:return null}}function Py({sessionId:e,...t}){return(0,R.jsx)(kc.Provider,{value:e??null,children:(0,R.jsx)(Fy,{...t})})}function Fy({items:e,totals:t,spineMode:n=!0,turnActive:r=!1}){let i=(0,O.useMemo)(()=>jy(e),[e]),a=Dl(e),o=(0,O.useMemo)(()=>{for(let t=e.length-1;t>=0;t--)if(e[t]?.kind===`assistant`)return e[t].id;return null},[e]),s=(0,O.useCallback)((e,t)=>{let n=e.kind===`user`&&t>0,i=r&&e.id===o;return(0,R.jsxs)(`div`,{children:[n&&(0,R.jsx)(`div`,{className:`my-6 border-t border-border/40`,"aria-hidden":`true`}),(0,R.jsx)(`div`,{className:`py-2 px-1`,children:Ny(e,i)})]},e.id)},[r,o]);return(0,R.jsxs)(`div`,{className:`flex flex-col gap-0 max-w-4xl mx-auto w-full`,children:[t&&(0,R.jsx)(Xc,{totals:t,className:`sticky top-0 z-10 mb-4 rounded-md border border-border bg-card px-3 py-1.5`}),e.length===0?(0,R.jsx)(`p`,{className:`py-12 text-center text-sm text-muted-foreground`,children:`No transcript items yet.`}):n?(0,R.jsx)(El,{slots:a,renderTextItem:s}):i.map((e,t)=>{if(e.kind===`item`){let{item:n}=e,i=n.kind===`user`&&t>0,a=r&&n.id===o;return(0,R.jsxs)(`div`,{children:[i&&(0,R.jsx)(`div`,{className:`my-6 border-t border-border/40`,"aria-hidden":`true`}),(0,R.jsx)(`div`,{className:`py-2 px-1`,children:My(n,a)})]},n.id)}let n=Zc(e.items);return(0,R.jsx)(`div`,{className:`py-2 px-1`,children:(0,R.jsx)(Gc,{roots:n})},e.id)})]})}var Iy={preference:`Preference`,convention:`Convention`,decision:`Decision`,learning:`Learning`};function Ly({type:e}){return(0,R.jsx)(`span`,{className:L(`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium`,e===`fact`?`bg-blue-500/15 text-blue-400`:`bg-violet-500/15 text-violet-400`),children:e})}function Ry({category:e}){return e?(0,R.jsx)(`span`,{className:`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-zinc-700 text-zinc-300`,children:Iy[e]??e}):null}function zy({result:e}){let t=e.content.length>200?e.content.slice(0,200)+`…`:e.content,n=e.created_at?new Date(e.created_at).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}):null;return(0,R.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-zinc-900 p-3 space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,R.jsx)(Ly,{type:e.type}),(0,R.jsx)(Ry,{category:e.category}),n&&(0,R.jsx)(`span`,{className:`text-xs text-zinc-500 ml-auto`,children:n})]}),(0,R.jsx)(`p`,{className:`text-sm text-zinc-300 leading-relaxed whitespace-pre-wrap break-words`,children:t})]})}function By({pct:e,truncated:t}){let n=Math.min(e,100);return(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`div`,{className:`flex-1 h-2 rounded-full bg-zinc-800 overflow-hidden`,children:(0,R.jsx)(`div`,{className:L(`h-full rounded-full transition-all`,e>=100?`bg-red-500`:e>=80?`bg-amber-400`:`bg-accent`),style:{width:`${n}%`}})}),t&&(0,R.jsx)(`span`,{className:`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-amber-400/15 text-amber-400`,children:`Truncated`})]})}function Vy({hot:e}){if(!e)return null;let{content:t,usage:n}=e;return(0,R.jsxs)(`section`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-200`,children:`HOT Memory`}),(0,R.jsxs)(`span`,{className:`text-xs text-zinc-500`,children:[n.tokens.toLocaleString(),` / `,n.maxTokens.toLocaleString(),` tokens`]})]}),(0,R.jsx)(By,{pct:n.pct,truncated:n.truncated}),t?(0,R.jsx)(`pre`,{className:`rounded-md border border-zinc-800 bg-zinc-950 p-3 text-xs text-zinc-300 font-mono overflow-x-auto whitespace-pre-wrap max-h-48`,children:t}):(0,R.jsx)(`p`,{className:`text-xs text-zinc-500 italic`,children:`No hot memory loaded.`})]})}var Hy=[{value:``,label:`All Categories`},{value:`preference`,label:`Preference`},{value:`convention`,label:`Convention`},{value:`decision`,label:`Decision`},{value:`learning`,label:`Learning`}];function Uy(){let[e,t]=(0,O.useState)(null),[n,r]=(0,O.useState)(``),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(null);(0,O.useEffect)(()=>{gc(`/api/memory/hot`).then(t).catch(()=>{})},[]);let f=(0,O.useCallback)(async e=>{e.preventDefault(),l(!0),d(null);try{let e=new URLSearchParams({q:n,limit:`20`});i&&e.set(`category`,i);let t=await gc(`/api/memory/search?${e.toString()}`);s(t.results)}catch(e){d(e instanceof Error?e.message:`Search failed`)}finally{l(!1)}},[n,i]);return(0,R.jsxs)(`div`,{className:`flex flex-col gap-6 p-4`,children:[(0,R.jsx)(Vy,{hot:e}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-200`,children:`Search Memory`}),(0,R.jsxs)(`form`,{onSubmit:f,className:`flex gap-2 flex-wrap`,children:[(0,R.jsx)(`input`,{type:`text`,value:n,onChange:e=>r(e.target.value),placeholder:`FTS5 query…`,className:`flex-1 min-w-0 rounded-md border border-zinc-700 bg-zinc-900 px-3 py-1.5 text-sm text-zinc-100 placeholder-zinc-500 focus:outline-none focus:ring-1 focus:ring-accent`}),(0,R.jsx)(`select`,{value:i,onChange:e=>a(e.target.value),className:`rounded-md border border-zinc-700 bg-zinc-900 px-2 py-1.5 text-sm text-zinc-100 focus:outline-none focus:ring-1 focus:ring-accent`,children:Hy.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,R.jsx)(`button`,{type:`submit`,disabled:c,className:`rounded-md bg-accent px-3 py-1.5 text-sm font-medium text-white disabled:opacity-50 hover:opacity-90 transition-opacity`,children:c?`Searching…`:`Search`})]}),u&&(0,R.jsx)(`p`,{className:`text-xs text-red-400`,children:u}),o!==null&&(0,R.jsx)(`div`,{className:`space-y-2`,children:o.length===0?(0,R.jsx)(`p`,{className:`text-sm text-zinc-500 italic text-center py-6`,children:`No results found.`}):o.map(e=>(0,R.jsx)(zy,{result:e},`${e.type}-${e.created_at}-${e.content.slice(0,32)}`))})]})]})}var Wy={success:{label:`Success`,className:`bg-status-done/20 text-status-done border-status-done/30`},error:{label:`Error`,className:`bg-status-failed/20 text-status-failed border-status-failed/30`},skipped:{label:`Skipped`,className:`bg-muted text-muted-foreground border-border`}};function Gy(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function Ky(e){return new Date(e).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function qy({schedule:e,onClose:t}){let[n,r]=(0,O.useState)([]),[i,a]=(0,O.useState)(!0),[o,s]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let t=!1;return a(!0),s(null),gc(`/api/schedules/${e.id}/history`).then(e=>{t||r(e.history)}).catch(e=>{t||s(e instanceof Error?e.message:`Failed to load history`)}).finally(()=>{t||a(!1)}),()=>{t=!0}},[e.id]),(0,O.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),(0,R.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:e=>{e.target===e.currentTarget&&t()},children:(0,R.jsxs)(`div`,{className:`flex max-h-[80vh] w-full max-w-lg flex-col rounded-xl border border-border bg-card shadow-xl`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-5 py-4`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h2`,{className:`text-sm font-semibold`,children:e.name}),(0,R.jsx)(`p`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:e.cron})]}),(0,R.jsx)(`button`,{onClick:t,className:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,"aria-label":`Close`,children:`✕`})]}),(0,R.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-5 py-3`,children:[i&&(0,R.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:`Loading history…`}),o&&(0,R.jsx)(`p`,{className:`py-8 text-center text-sm text-status-failed`,children:o}),!i&&!o&&n.length===0&&(0,R.jsx)(`p`,{className:`py-8 text-center text-sm text-muted-foreground`,children:`No runs recorded yet.`}),!i&&!o&&n.length>0&&(0,R.jsx)(`ul`,{className:`space-y-2`,children:n.map((e,t)=>{let n=Wy[e.status];return(0,R.jsxs)(`li`,{className:`flex items-start gap-3 rounded-lg border border-border bg-background/50 px-4 py-3`,children:[(0,R.jsx)(`span`,{className:L(`mt-0.5 shrink-0 rounded-full border px-2 py-0.5 text-xs font-medium`,n.className),children:n.label}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Ky(e.triggeredAt)}),(0,R.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:Gy(e.durationMs)})]}),e.errorMessage&&(0,R.jsx)(`p`,{className:`mt-1 truncate font-mono text-xs text-status-failed`,children:e.errorMessage})]})]},`${e.taskId}-${e.triggeredAt}-${t}`)})})]})]})})}function Jy({status:e}){return e?(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:L(`size-2 rounded-full`,e.running?`animate-pulse bg-status-done`:`bg-status-failed`)}),(0,R.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.running?`Running${e.tasks==null?``:` (${e.tasks} task${e.tasks===1?``:`s`})`}`:`Stopped`})]}):null}function Yy({checked:e,onChange:t,disabled:n}){return(0,R.jsx)(`button`,{role:`switch`,"aria-checked":e,onClick:e=>{e.stopPropagation(),t()},disabled:n,className:L(`relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent`,`transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,`disabled:cursor-not-allowed disabled:opacity-50`,e?`bg-brand`:`bg-muted`),children:(0,R.jsx)(`span`,{className:L(`block size-4 rounded-full bg-white shadow transition-transform`,e?`translate-x-4`:`translate-x-0`)})})}function Xy({schedule:e,onToggle:t,onDelete:n,onShowHistory:r}){let[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(!1),c=async()=>{a(!0),await t(e.id).finally(()=>a(!1))},l=async t=>{t.stopPropagation(),window.confirm(`Delete schedule "${e.name}"? This cannot be undone.`)&&(s(!0),await n(e.id).finally(()=>s(!1)))},u=e.trigger===`both`?`cron + session start`:e.trigger??`cron`;return(0,R.jsxs)(`div`,{className:L(`group flex cursor-pointer flex-col gap-3 rounded-xl border border-border bg-card p-4`,`transition-colors hover:border-brand/40 hover:bg-accent/30`,!e.enabled&&`opacity-60`),onClick:()=>r(e),children:[(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`p`,{className:`truncate text-sm font-semibold`,children:e.name}),(0,R.jsx)(`p`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:e.cron})]}),(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,R.jsx)(Yy,{checked:e.enabled,onChange:()=>{c()},disabled:i}),(0,R.jsx)(`button`,{onClick:l,disabled:o,"aria-label":`Delete schedule ${e.name}`,className:L(`flex size-7 items-center justify-center rounded-md text-muted-foreground`,`opacity-0 transition-opacity group-hover:opacity-100`,`hover:bg-destructive/20 hover:text-status-failed`,`disabled:cursor-not-allowed disabled:opacity-40`),children:`🗑`})]})]}),(0,R.jsx)(`code`,{className:`block truncate rounded-md bg-secondary px-3 py-2 font-mono text-xs text-secondary-foreground`,children:e.command}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-muted-foreground`,children:[(0,R.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 capitalize`,children:u}),e.notifyOn&&e.notifyOn!==`never`&&(0,R.jsxs)(`span`,{className:`rounded bg-muted px-1.5 py-0.5`,children:[`notify: `,e.notifyOn]}),(0,R.jsx)(`span`,{className:`ml-auto`,children:`Click for history`})]})]})}var Zy={name:``,command:``,cron:``,trigger:`cron`,notifyOn:`failure`,enabled:!0};function Qy({onCreated:e,onCancel:t}){let[n,r]=(0,O.useState)(Zy),[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(null),c=async t=>{if(t.preventDefault(),s(null),!n.name.trim())s(`Name is required.`);else if(!n.command.trim())s(`Command is required.`);else if(!n.cron.trim())s(`Cron expression is required.`);else{a(!0);try{let t=await gc(`/api/schedules`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)});e(t.schedule,t.syncNote)}catch(e){s(e instanceof Error?e.message:`Failed to create schedule.`)}finally{a(!1)}}},l=(e,t)=>(0,R.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsx)(`label`,{className:`text-xs font-medium text-muted-foreground`,children:e}),t]}),u=L(`h-8 rounded-md border border-border bg-card px-3 text-sm`,`placeholder:text-muted-foreground/50`,`focus:outline-none focus:ring-2 focus:ring-ring`,`disabled:cursor-not-allowed disabled:opacity-50`);return(0,R.jsxs)(`form`,{onSubmit:e=>{c(e)},className:`flex flex-col gap-4 rounded-xl border border-brand/40 bg-card p-4`,children:[(0,R.jsx)(`p`,{className:`text-sm font-semibold`,children:`New Schedule`}),(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2`,children:[l(`Name *`,(0,R.jsx)(`input`,{type:`text`,className:u,placeholder:`e.g. Nightly cleanup`,value:n.name,onChange:e=>r(t=>({...t,name:e.target.value})),required:!0,disabled:i})),l(`Cron expression *`,(0,R.jsx)(`input`,{type:`text`,className:L(u,`font-mono`),placeholder:`0 2 * * *`,value:n.cron,onChange:e=>r(t=>({...t,cron:e.target.value})),required:!0,disabled:i}))]}),l(`Command *`,(0,R.jsx)(`input`,{type:`text`,className:L(u,`font-mono`),placeholder:`/my-skill --auto`,value:n.command,onChange:e=>r(t=>({...t,command:e.target.value})),required:!0,disabled:i})),(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:[l(`Trigger`,(0,R.jsxs)(`select`,{className:u,value:n.trigger,onChange:e=>r(t=>({...t,trigger:e.target.value})),disabled:i,children:[(0,R.jsx)(`option`,{value:`cron`,children:`cron`}),(0,R.jsx)(`option`,{value:`sessionstart`,children:`session start`}),(0,R.jsx)(`option`,{value:`both`,children:`both`})]})),l(`Notify on`,(0,R.jsxs)(`select`,{className:u,value:n.notifyOn,onChange:e=>r(t=>({...t,notifyOn:e.target.value})),disabled:i,children:[(0,R.jsx)(`option`,{value:`failure`,children:`failure`}),(0,R.jsx)(`option`,{value:`always`,children:`always`}),(0,R.jsx)(`option`,{value:`never`,children:`never`})]})),(0,R.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsx)(`label`,{className:`text-xs font-medium text-muted-foreground`,children:`Enabled`}),(0,R.jsx)(`div`,{className:`flex h-8 items-center`,children:(0,R.jsx)(Yy,{checked:n.enabled,onChange:()=>r(e=>({...e,enabled:!e.enabled})),disabled:i})})]})]}),o&&(0,R.jsx)(`p`,{className:`rounded-md border border-status-failed/30 bg-status-failed/10 px-3 py-2 text-xs text-status-failed`,children:o}),(0,R.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:t,disabled:i,className:L(`h-8 rounded-md px-3 text-sm text-muted-foreground`,`hover:bg-accent hover:text-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`),children:`Cancel`}),(0,R.jsx)(`button`,{type:`submit`,disabled:i,className:L(`h-8 rounded-md bg-brand px-4 text-sm font-medium text-white`,`hover:bg-brand/90`,`disabled:cursor-not-allowed disabled:opacity-50`),children:i?`Creating…`:`Create`})]})]})}function $y(){let[e,t]=(0,O.useState)([]),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(!0),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null),[u,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(null);(0,O.useEffect)(()=>{let e=!1;return a(!0),s(null),Promise.all([gc(`/api/schedules`),gc(`/api/daemon/status`)]).then(([n,i])=>{e||(t(n.schedules),r(i))}).catch(t=>{e||s(t instanceof Error?t.message:`Failed to load schedules`)}).finally(()=>{e||a(!1)}),()=>{e=!0}},[]);let m=(0,O.useCallback)(async e=>{let n=await gc(`/api/schedules/${e}/toggle`,{method:`POST`});t(t=>t.map(t=>t.id===e?{...t,enabled:n.enabled}:t)),n.syncNote&&(p(n.syncNote),setTimeout(()=>p(null),8e3))},[]),h=(0,O.useCallback)(async e=>{await gc(`/api/schedules/${e}`,{method:`DELETE`}),t(t=>t.filter(t=>t.id!==e))},[]),g=(0,O.useCallback)((e,n)=>{t(t=>[...t,e]),d(!1),n&&(p(n),setTimeout(()=>p(null),8e3))},[]);return i?(0,R.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading schedules…`})}):(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col gap-4 overflow-y-auto p-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsx)(`h1`,{className:`text-base font-semibold`,children:`Schedules`}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(Jy,{status:n}),(0,R.jsx)(`button`,{onClick:()=>d(e=>!e),className:L(`h-7 rounded-md px-3 text-xs font-medium`,u?`bg-muted text-muted-foreground hover:bg-muted/80`:`bg-brand text-white hover:bg-brand/90`),children:u?`Cancel`:`+ New Schedule`})]})]}),u&&(0,R.jsx)(Qy,{onCreated:g,onCancel:()=>d(!1)}),f&&(0,R.jsx)(`p`,{className:`rounded-lg border border-yellow-500/30 bg-yellow-500/10 px-4 py-3 text-sm text-yellow-700 dark:text-yellow-400`,children:f}),o&&(0,R.jsx)(`p`,{className:`rounded-lg border border-status-failed/30 bg-status-failed/10 px-4 py-3 text-sm text-status-failed`,children:o}),!o&&e.length===0&&!u&&(0,R.jsx)(`p`,{className:`mt-8 text-center text-sm text-muted-foreground`,children:`No schedules configured.`}),(0,R.jsx)(`div`,{className:`grid gap-3`,children:e.map(e=>(0,R.jsx)(Xy,{schedule:e,onToggle:m,onDelete:h,onShowHistory:l},e.id))}),c&&(0,R.jsx)(qy,{schedule:c,onClose:()=>l(null)})]})}function eb(e,t){let n=(t??Date.now())-e;if(n<1e3)return`${n}ms`;let r=Math.floor(n/1e3);if(r<60)return`${r}s`;let i=Math.floor(r/60);return i<60?`${i}m ${r%60}s`:`${Math.floor(i/60)}h ${i%60}m`}function tb(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return`${t}s ago`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function nb(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}var rb={running:`bg-green-500/20 text-green-400 border border-green-500/30`,completed:`bg-blue-500/20 text-blue-400 border border-blue-500/30`,failed:`bg-red-500/20 text-red-400 border border-red-500/30`,cancelled:`bg-neutral-500/20 text-neutral-400 border border-neutral-500/30`};function ib(e){return e.status!==`running`}function ab({status:e}){return(0,R.jsxs)(`span`,{className:L(`inline-flex items-center gap-1.5 rounded px-1.5 py-0.5 text-xs font-medium`,rb[e]),children:[e===`running`&&(0,R.jsx)(`span`,{className:`size-1.5 rounded-full bg-green-400 animate-pulse`}),e]})}function ob({job:e,now:t,onCancel:n}){let[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(null),l=eb(e.startedAt,e.status===`running`?t:e.endedAt),u=tb(e.startedAt),d=r?ye:M;return(0,R.jsxs)(`div`,{className:`rounded-lg border border-neutral-800 bg-neutral-900 overflow-hidden`,children:[(0,R.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:()=>i(e=>!e),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i(e=>!e))},className:`w-full text-left px-4 py-3 flex flex-col gap-2 hover:bg-neutral-800/50 transition-colors cursor-pointer`,children:[(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,R.jsx)(d,{className:`size-3.5 shrink-0 text-neutral-500`}),(0,R.jsx)(`span`,{className:`text-sm font-medium text-neutral-100 truncate`,children:e.label||e.jobId})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,R.jsx)(ab,{status:e.status}),e.status===`running`&&(0,R.jsxs)(`button`,{type:`button`,onClick:async t=>{t.stopPropagation(),c(null),o(!0);try{await n(e.jobId)}catch(e){c(e instanceof Error?e.message:String(e))}finally{o(!1)}},disabled:a,"aria-label":`Cancel job ${e.jobId}`,className:L(`flex items-center gap-1 rounded px-1.5 py-0.5 text-xs`,`text-neutral-500 hover:text-red-400 hover:bg-red-500/10`,`disabled:opacity-40 transition-colors`),children:[(0,R.jsx)(zt,{className:`size-3`}),a?`Cancelling…`:`Cancel`]})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-neutral-500 pl-5`,children:[(0,R.jsx)(`span`,{className:`font-mono bg-neutral-800 rounded px-1.5 py-0.5 text-neutral-300`,children:nb(e.model)}),(0,R.jsx)(`span`,{children:l}),(0,R.jsx)(`span`,{children:u})]}),(e.status===`failed`||e.status===`cancelled`)&&e.stopReason&&(0,R.jsxs)(`div`,{className:`pl-5 text-xs text-neutral-500`,children:[(0,R.jsx)(`span`,{className:`text-neutral-600`,children:`reason:`}),` `,(0,R.jsx)(`span`,{className:`font-mono text-neutral-400 line-clamp-2`,title:e.stopReason,children:e.stopReason})]}),s&&(0,R.jsx)(`p`,{className:`pl-5 text-xs text-red-400`,title:s,children:s.length>200?s.slice(0,200)+`…`:s})]}),r&&(0,R.jsxs)(`div`,{className:`border-t border-neutral-800 px-4 py-3 bg-neutral-950 grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5 text-xs`,children:[(0,R.jsx)(sb,{label:`Job ID`,value:e.jobId,mono:!0}),(0,R.jsx)(sb,{label:`Subagent ID`,value:e.subagentId,mono:!0}),(0,R.jsx)(sb,{label:`Model`,value:e.model,mono:!0}),(0,R.jsx)(sb,{label:`Status`,value:e.status}),(0,R.jsx)(sb,{label:`Started`,value:new Date(e.startedAt).toLocaleString()}),e.endedAt!==void 0&&(0,R.jsx)(sb,{label:`Ended`,value:new Date(e.endedAt).toLocaleString()}),(0,R.jsx)(sb,{label:`Duration`,value:l}),e.parentSessionId&&(0,R.jsx)(sb,{label:`Parent session`,value:e.parentSessionId,mono:!0}),e.stopReason&&(0,R.jsx)(sb,{label:`Stop reason`,value:e.stopReason.length>200?e.stopReason.slice(0,200)+`…`:e.stopReason,mono:!0}),(0,R.jsx)(sb,{label:`Prompt hash`,value:e.promptHash,mono:!0}),(0,R.jsx)(sb,{label:`Schema version`,value:String(e.schemaVersion)})]})]})}function sb({label:e,value:t,mono:n=!1}){return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{className:`text-neutral-600 whitespace-nowrap`,children:e}),(0,R.jsx)(`span`,{className:L(`text-neutral-300 break-all`,n&&`font-mono`),children:t})]})}function cb({label:e,count:t}){return(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-neutral-500 uppercase tracking-wider`,children:[(0,R.jsx)(`span`,{children:e}),(0,R.jsx)(`span`,{className:`rounded-full bg-neutral-800 px-1.5 py-0.5 text-neutral-400 normal-case`,children:t})]})}function lb(){let[e,t]=(0,O.useState)([]),[n,r]=(0,O.useState)(!0),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(()=>Date.now()),c=(0,O.useRef)(null),l=(0,O.useCallback)((e=!1)=>{e||r(!0),a(null),gc(`/api/bg-jobs`).then(({jobs:e})=>t([...e].sort((e,t)=>t.startedAt-e.startedAt))).catch(e=>a(e instanceof Error?e.message:String(e))).finally(()=>{e||r(!1)})},[]);(0,O.useEffect)(()=>{l()},[l]),(0,O.useEffect)(()=>{let t=e.some(e=>!ib(e));return t&&!c.current&&(c.current=setInterval(()=>l(!0),5e3)),!t&&c.current&&(clearInterval(c.current),c.current=null),()=>{c.current&&=(clearInterval(c.current),null)}},[e,l]),(0,O.useEffect)(()=>{if(!e.some(e=>!ib(e)))return;let t=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(t)},[e]);let u=(0,O.useCallback)(async e=>{await gc(`/api/bg-jobs/${encodeURIComponent(e)}/cancel`,{method:`POST`}),t(t=>t.map(t=>t.jobId===e?{...t,status:`cancelled`}:t))},[]),d=e.filter(e=>e.status===`running`),f=e.filter(e=>ib(e)),p=e.some(e=>!ib(e));return(0,R.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-semibold text-neutral-200`,children:[(0,R.jsx)(de,{className:`size-4 text-neutral-400`}),`Background Jobs`,p&&(0,R.jsx)(`span`,{className:`text-xs font-normal text-neutral-500`,children:`(auto-refreshing)`})]}),(0,R.jsxs)(`button`,{onClick:()=>l(),disabled:n,className:`flex items-center gap-1.5 rounded px-2 py-1 text-xs text-neutral-400 hover:text-neutral-200 hover:bg-neutral-800 disabled:opacity-50 transition-colors`,children:[(0,R.jsx)(Ct,{className:L(`size-3`,n&&`animate-spin`)}),`Refresh`]})]}),i&&(0,R.jsx)(`p`,{className:`rounded border border-red-900/40 bg-red-950/30 px-3 py-2 text-xs text-red-400`,children:i}),!n&&e.length===0&&!i&&(0,R.jsx)(`p`,{className:`text-sm text-neutral-500 text-center py-8`,children:`No background jobs`}),d.length>0&&(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsx)(cb,{label:`Running`,count:d.length}),d.map(e=>(0,R.jsx)(ob,{job:e,now:o,onCancel:u},e.jobId))]}),f.length>0&&(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsx)(cb,{label:`Settled`,count:f.length}),f.map(e=>(0,R.jsx)(ob,{job:e,now:o,onCancel:u},e.jobId))]})]})}function ub({icon:e,title:t,children:n}){return(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(e,{className:`size-4 text-muted-foreground`}),(0,R.jsx)(`h2`,{className:`text-sm font-semibold`,children:t})]}),(0,R.jsx)(`div`,{className:`rounded-xl border border-border bg-card`,children:n})]})}function db({label:e,value:t,mono:n=!1,last:r=!1}){return(0,R.jsxs)(`div`,{className:L(`flex items-center justify-between gap-4 px-4 py-2.5`,!r&&`border-b border-border`),children:[(0,R.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:e}),(0,R.jsx)(`span`,{className:L(`min-w-0 truncate text-right text-xs`,n?`font-mono text-zinc-300`:`text-zinc-200`),children:t})]})}function fb({model:e,last:t}){return(0,R.jsxs)(`div`,{className:L(`flex items-center justify-between gap-4 px-4 py-2.5`,!t&&`border-b border-border`),children:[(0,R.jsx)(`span`,{className:`text-xs text-zinc-200`,children:e.label}),(0,R.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.id})]})}var pb=[{keys:`⌘K`,description:`Open command palette`},{keys:`⌘1`,description:`Go to Sessions`},{keys:`⌘2`,description:`Go to Memory`},{keys:`⌘3`,description:`Go to Schedules`},{keys:`⌘4`,description:`Go to Background Jobs`}];function mb({keys:e,description:t,last:n}){return(0,R.jsxs)(`div`,{className:L(`flex items-center justify-between gap-4 px-4 py-2.5`,!n&&`border-b border-border`),children:[(0,R.jsx)(`span`,{className:`text-xs text-zinc-200`,children:t}),(0,R.jsx)(`kbd`,{className:`rounded border border-border bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground`,children:e})]})}function hb({status:e}){return e?(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(`span`,{className:L(`size-1.5 rounded-full`,e.running?`animate-pulse bg-status-done`:`bg-status-failed`)}),(0,R.jsx)(`span`,{className:L(`text-xs`,e.running?`text-zinc-200`:`text-muted-foreground`),children:e.running?`Running${e.tasks==null?``:` · ${e.tasks} task${e.tasks===1?``:`s`}`}`:`Stopped`})]}):(0,R.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`–`})}function gb(){let[e,t]=(0,O.useState)({config:null,models:null,daemon:null,configError:null,modelsError:null,daemonError:null});(0,O.useEffect)(()=>{let e=!1,n=e=>e instanceof Error?e.message:`Failed to load`;return Promise.all([gc(`/api/config`).then(e=>({ok:!0,config:e}),e=>({ok:!1,error:n(e)})),gc(`/api/models`).then(e=>({ok:!0,models:e.models}),e=>({ok:!1,error:n(e)})),gc(`/api/daemon/status`).then(e=>({ok:!0,daemon:e}),e=>({ok:!1,error:n(e)}))]).then(([n,r,i])=>{e||t({config:n.ok?n.config:null,configError:n.ok?null:n.error,models:r.ok?r.models:null,modelsError:r.ok?null:r.error,daemon:i.ok?i.daemon:null,daemonError:i.ok?null:i.error})}).catch(()=>{}),()=>{e=!0}},[]);let n=e.config,r=(0,R.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Loading…`});return(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col gap-6 overflow-y-auto p-4`,children:[(0,R.jsxs)(ub,{icon:Ze,title:`About`,children:[(0,R.jsx)(db,{label:`AFK version`,value:n?n.version:r,mono:!0}),(0,R.jsx)(db,{label:`Node.js`,value:n?n.nodeVersion:r,mono:!0}),(0,R.jsx)(db,{label:`App`,value:`AFK Dashboard`,last:!0})]}),(0,R.jsxs)(ub,{icon:Ne,title:`Model`,children:[(0,R.jsx)(db,{label:`Default model`,value:n?n.model:r,mono:!0}),e.modelsError?(0,R.jsx)(`div`,{className:`px-4 py-3 text-xs text-status-failed`,children:e.modelsError}):e.models===null?(0,R.jsx)(db,{label:`Available tiers`,value:r,last:!0}):e.models.length===0?(0,R.jsx)(db,{label:`Available tiers`,value:`None listed`,last:!0}):e.models.map((t,n)=>(0,R.jsx)(fb,{model:t,last:n===(e.models?.length??0)-1},t.id))]}),(0,R.jsxs)(ub,{icon:Ge,title:`Paths`,children:[(0,R.jsx)(db,{label:`AFK home`,value:n?n.afkHome:r,mono:!0}),(0,R.jsx)(db,{label:`State dir`,value:n?n.stateDir:r,mono:!0}),(0,R.jsx)(db,{label:`Config dir`,value:n?n.configDir:r,mono:!0,last:!0})]}),(0,R.jsxs)(ub,{icon:Ye,title:`Web Server`,children:[(0,R.jsx)(db,{label:`Host`,value:n?n.webHost:r,mono:!0}),(0,R.jsx)(db,{label:`Port`,value:n?String(n.webPort):r,mono:!0}),(0,R.jsx)(db,{label:`Daemon`,value:(0,R.jsx)(hb,{status:e.daemon})}),!e.daemonError&&(0,R.jsx)(db,{label:`Tasks scheduled`,value:e.daemon?.tasks==null?`–`:String(e.daemon.tasks),last:!0}),e.daemonError&&(0,R.jsx)(db,{label:`Daemon error`,value:e.daemonError,last:!0})]}),(0,R.jsx)(ub,{icon:$e,title:`Keyboard Shortcuts`,children:pb.map((e,t)=>(0,R.jsx)(mb,{keys:e.keys,description:e.description,last:t===pb.length-1},e.keys))})]})}function _b(e){return e.startsWith(`/`)?e.slice(1):e}function vb(e){return`/${_b(e)}`}function yb(e,t){return _b(e).startsWith(_b(t))}function bb({query:e,commands:t,onSelect:n,visible:r}){let[i,a]=(0,O.useState)(0),o=(0,O.useRef)(null),s=t.filter(t=>yb(t.name,e)).slice(0,8);return(0,O.useEffect)(()=>{a(0)},[e]),(0,O.useEffect)(()=>{(o.current?.children[i])?.scrollIntoView({block:`nearest`})},[i]),!r||s.length===0?null:(0,R.jsx)(`ul`,{ref:o,role:`listbox`,"aria-label":`Slash commands`,className:L(`absolute bottom-full left-0 mb-1 w-full max-h-56 overflow-y-auto`,`rounded-lg border border-border bg-popover shadow-lg z-50`,`text-sm`),children:s.map((e,t)=>(0,R.jsxs)(`li`,{role:`option`,"aria-selected":t===i,className:L(`flex items-baseline gap-2 px-3 py-2 cursor-pointer select-none`,t===i?`bg-accent text-accent-foreground`:`hover:bg-accent/50`),onMouseEnter:()=>a(t),onMouseDown:t=>{t.preventDefault(),n(e.name)},children:[(0,R.jsx)(`span`,{className:`font-mono font-semibold shrink-0`,children:vb(e.name)}),(0,R.jsx)(`span`,{className:`text-muted-foreground truncate`,children:e.summary})]},e.name))})}function xb(e,t,n,r,i,a,o){return!t||n===0?!1:e.key===`ArrowDown`?(i((r+1)%n),!0):e.key===`ArrowUp`?(i((r-1+n)%n),!0):e.key===`Enter`?(a(r),!0):e.key===`Escape`&&(o(),!0)}function Sb(e){let t=e.trim();return t?t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`~/`)||/^[\w.]/.test(t):!1}function Cb({onInsert:e}){let[t,n]=(0,O.useState)(!1),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(!1),s=(0,O.useRef)(null),c=(0,O.useRef)(null),l=(0,O.useRef)(null),u=(0,O.useCallback)(()=>{n(!1),o(!1),i(``)},[]),d=(0,O.useCallback)(()=>{let t=r.trim();Sb(t)?(e(`@${t}`),u()):(o(!0),s.current?.focus())},[r,e,u]);return(0,O.useEffect)(()=>{t&&requestAnimationFrame(()=>s.current?.focus())},[t]),(0,O.useEffect)(()=>{if(!t)return;function e(e){let t=e.target;c.current&&!c.current.contains(t)&&l.current&&!l.current.contains(t)&&u()}return document.addEventListener(`click`,e,{capture:!0}),()=>document.removeEventListener(`click`,e,{capture:!0})},[t,u]),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`button`,{ref:l,type:`button`,onClick:()=>t?u():n(!0),"aria-label":`Insert file reference`,"aria-expanded":t,className:L(`flex h-8 w-8 items-center justify-center rounded-md text-sm`,`transition-colors hover:bg-accent hover:text-accent-foreground`,t&&`bg-accent text-accent-foreground`),title:`Insert @file reference`,children:(0,R.jsx)(Ue,{className:`h-4 w-4`})}),t&&(0,R.jsxs)(`div`,{ref:c,role:`dialog`,"aria-label":`Insert file path`,className:L(`absolute bottom-full left-0 mb-2 w-72 rounded-lg border`,`bg-popover p-3 shadow-lg animate-fade-in`),children:[(0,R.jsxs)(`p`,{className:`mb-2 text-xs text-muted-foreground`,children:[`Type a file path. `,(0,R.jsx)(`code`,{className:`text-[10px]`,children:`@~/file.ts`}),` or`,` `,(0,R.jsx)(`code`,{className:`text-[10px]`,children:`@src/file.ts`})]}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{ref:s,type:`text`,value:r,onChange:e=>{i(e.target.value),o(!1)},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),d()),e.key===`Escape`&&u()},placeholder:`src/foo.ts or ~/file.ts`,autoComplete:`off`,spellCheck:!1,className:L(`flex-1 rounded-md border bg-secondary px-2 py-1 text-sm`,`placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring`,a&&`border-destructive`)}),(0,R.jsx)(`button`,{type:`button`,onClick:d,className:L(`rounded-md bg-primary px-3 py-1 text-sm font-medium`,`text-primary-foreground hover:bg-primary/90`),children:`Add`})]}),a&&(0,R.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:`Enter a valid file path.`})]})]})}var wb=[{id:`sonnet`,label:`Sonnet`},{id:`haiku`,label:`Haiku`},{id:`opus`,label:`Opus`}],Tb=`sonnet`;function Eb({onSelect:e,current:t,className:n}){let[r,i]=(0,O.useState)(wb),a=(0,O.useRef)(!1);(0,O.useEffect)(()=>{let e=!1;return gc(`/api/models`).then(t=>{!e&&t.models.length>0&&i(t.models)}).catch(()=>{}),()=>{e=!0}},[]);let o=t??Tb;(0,O.useEffect)(()=>{a.current||(a.current=!0,e(o))},[e,o]);let s=(0,O.useCallback)(t=>{e(t.target.value)},[e]);return(0,R.jsxs)(`div`,{className:L(`relative inline-flex items-center`,n),children:[(0,R.jsx)(`select`,{value:o,onChange:s,"aria-label":`Model`,className:L(`appearance-none rounded-md border bg-secondary pl-2 pr-7 py-1`,`text-xs font-medium text-secondary-foreground`,`cursor-pointer focus:outline-none focus:ring-1 focus:ring-ring`),children:r.map(e=>(0,R.jsx)(`option`,{value:e.id,children:e.label},e.id))}),(0,R.jsx)(ye,{className:`pointer-events-none absolute right-1.5 h-3 w-3 text-muted-foreground`})]})}function Db({queue:e}){let{entries:t,moveItemUp:n,moveItemDown:r,removeItem:i,editItem:a}=e;return t.length===0?null:(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 border-b border-border/50 px-3 py-2`,children:[(0,R.jsxs)(`p`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:[`Queued (`,t.length,`)`]}),t.map((e,o)=>(0,R.jsx)(Ob,{text:e.text,isFirst:o===0,isLast:o===t.length-1,onMoveUp:()=>n(o),onMoveDown:()=>r(o),onRemove:()=>i(o),onEdit:e=>a(o,e)},e.id))]})}function Ob({text:e,isFirst:t,isLast:n,onMoveUp:r,onMoveDown:i,onRemove:a,onEdit:o}){let[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(e),d=(0,O.useRef)(null);(0,O.useEffect)(()=>{s&&d.current?.focus()},[s]);let f=(0,O.useCallback)(()=>{u(e),c(!0)},[e]),p=(0,O.useCallback)(()=>{let t=l.trim();t&&t!==e&&o(t),c(!1)},[l,e,o]),m=(0,O.useCallback)(()=>{c(!1),u(e)},[e]);return(0,R.jsxs)(`div`,{className:L(`group flex items-center gap-1.5 rounded-md border border-border/50`,`bg-secondary/50 px-2 py-1 text-sm animate-fade-in`),children:[s?(0,R.jsx)(`input`,{ref:d,type:`text`,value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&p(),e.key===`Escape`&&m()},onBlur:p,className:L(`min-w-0 flex-1 bg-transparent text-sm`,`focus:outline-none`)}):(0,R.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-foreground/80`,children:e}),(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 opacity-60 group-hover:opacity-100`,children:[s?(0,R.jsx)(kb,{label:`Confirm edit`,onClick:p,children:(0,R.jsx)(_e,{className:`h-3 w-3`})}):(0,R.jsx)(kb,{label:`Edit`,onClick:f,children:(0,R.jsx)(ht,{className:`h-3 w-3`})}),(0,R.jsx)(kb,{label:`Move up`,onClick:r,disabled:t,children:(0,R.jsx)(A,{className:`h-3 w-3`})}),(0,R.jsx)(kb,{label:`Move down`,onClick:i,disabled:n,children:(0,R.jsx)(ie,{className:`h-3 w-3`})}),(0,R.jsx)(kb,{label:`Remove`,onClick:a,destructive:!0,children:(0,R.jsx)(zt,{className:`h-3 w-3`})})]})]})}function kb({label:e,onClick:t,disabled:n,destructive:r,children:i}){return(0,R.jsx)(`button`,{type:`button`,onClick:t,disabled:n,"aria-label":e,title:e,className:L(`flex h-5 w-5 items-center justify-center rounded`,`transition-colors`,n?`cursor-not-allowed opacity-30`:r?`hover:bg-destructive/20 hover:text-destructive`:`hover:bg-accent hover:text-accent-foreground`),children:i})}var Ab=null;function jb(){Ab=null}async function Mb(){return Ab||(Ab=(await gc(`/api/commands`)).commands,Ab)}function Nb(e){return e.startsWith(`/`)&&e.indexOf(` `)===-1?e.slice(1):null}function Pb({sessionId:e,sessionMode:t,isBusy:n,queue:r,onModelSelect:i,currentModel:a}){let[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)([]),[f,p]=(0,O.useState)(0),m=(0,O.useRef)(null),h=t===`readonly`,g=Nb(o),_=g!==null&&u.length>0,v=_?u.filter(e=>yb(e.name,g)).slice(0,8):[];(0,O.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&jb()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),(0,O.useEffect)(()=>{let e=m.current;if(!e)return;e.style.height=`auto`;let t=(parseInt(getComputedStyle(e).lineHeight)||20)*5;e.style.height=`${Math.min(e.scrollHeight,t)}px`},[o]),(0,O.useEffect)(()=>{g!==null&&Mb().then(d).catch(()=>void 0)},[g]);let y=(0,O.useCallback)(async()=>{let t=o.trim();if(!(!t||c||h)){l(!0);try{await gc(`/api/sessions/${e}/prompt`,{method:`POST`,body:JSON.stringify({text:t})}),s(``)}catch{}finally{l(!1)}}},[o,c,h,e]),b=(0,O.useCallback)(async()=>{try{await gc(`/api/sessions/${e}/interrupt`,{method:`POST`})}catch{}},[e]),x=(0,O.useCallback)(e=>{s(`${vb(e)} `),p(0),m.current?.focus()},[]),S=(0,O.useCallback)(e=>{if(xb(e,_,v.length,f,p,e=>{let t=v[e];t&&x(t.name)},()=>s(e=>e)))e.preventDefault();else if(e.key===`Enter`&&!e.shiftKey){if(e.preventDefault(),n&&r){let e=o.trim();e&&(r.enqueue(e),s(``))}else y()}},[_,v,f,x,y,n,o,r]),C=(0,O.useCallback)(e=>{let t=m.current;if(!t){s(t=>t+` `+e+` `);return}let n=t.selectionStart??t.value.length,r=t.selectionEnd??n,i=t.value.slice(0,n),a=t.value.slice(r),o=i.length>0&&!/\s$/.test(i)?` `:``,c=i+o+e+` `+a;s(c),requestAnimationFrame(()=>{let r=n+o.length+e.length+1;t.setSelectionRange(r,r),t.focus()})},[]);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`pointer-events-none h-8 bg-gradient-to-t from-background/80 to-transparent`}),(0,R.jsxs)(`div`,{className:L(`relative flex flex-col gap-2`,`border-t border-border/50 px-4 py-3`,`backdrop-blur-xl bg-background/80`,`shadow-[0_-4px_16px_-4px_rgba(0,0,0,0.1)]`,h&&`opacity-50`),children:[r&&(0,R.jsx)(Db,{queue:r}),(0,R.jsx)(bb,{query:g??``,commands:u,onSelect:x,visible:_}),(0,R.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,R.jsx)(Cb,{onInsert:C}),i&&(0,R.jsx)(Eb,{onSelect:i,current:a})]}),(0,R.jsx)(`textarea`,{ref:m,rows:1,value:o,disabled:h||c,onChange:e=>s(e.target.value),onKeyDown:S,placeholder:h?`Read-only session`:`Send a message… (/ for commands)`,className:L(`flex-1 resize-none rounded-xl border border-input bg-background`,`px-3 py-2 text-sm leading-5 shadow-sm`,`placeholder:text-muted-foreground`,`focus:outline-none focus:ring-2 focus:ring-ring`,`disabled:cursor-not-allowed`)}),n?(0,R.jsx)(`button`,{onClick:()=>void b(),title:`Stop`,className:`shrink-0 flex items-center justify-center h-9 w-9 rounded-lg bg-destructive text-destructive-foreground hover:bg-destructive/90 transition-colors`,children:(0,R.jsx)(jt,{className:`h-4 w-4 fill-current`})}):(0,R.jsx)(`button`,{onClick:()=>void y(),disabled:!o.trim()||c||h,title:`Send`,className:L(`shrink-0 flex items-center justify-center h-9 w-9 rounded-lg`,`bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,`disabled:opacity-40 disabled:cursor-not-allowed`),children:(0,R.jsx)(Tt,{className:`h-4 w-4`})})]})]})]})}async function Fb(e){await gc(`/api/approve`,{method:`POST`,body:JSON.stringify(e)})}function Ib({approval:e,onAnswered:t}){let{id:n,request:r}=e,[i,a]=(0,O.useState)(typeof r.questionDefault==`string`?r.questionDefault:``),[o,s]=(0,O.useState)(!1),[c,l]=(0,O.useState)(null),u=async(e,r)=>{s(!0),l(null);try{await Fb({requestId:n,response:{action:e,content:r}}),t()}catch{l(`Failed to submit — try again`)}finally{s(!1)}},d=r.type??`confirm`;return(0,R.jsxs)(`div`,{className:L(`rounded-lg border-2 border-yellow-500/60 bg-yellow-500/5 p-3 text-sm`,`flex flex-col gap-2`),children:[(0,R.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsx)(Ft,{className:`h-4 w-4 text-yellow-500 mt-0.5 shrink-0`}),(0,R.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[r.title&&(0,R.jsx)(`p`,{className:`font-semibold text-foreground`,children:r.title}),r.message&&(0,R.jsx)(`p`,{className:`text-muted-foreground`,children:r.message}),r.description&&(0,R.jsx)(`p`,{className:`text-muted-foreground/80 text-xs mt-0.5`,children:r.description})]}),(0,R.jsx)(`button`,{onClick:()=>void u(`decline`),disabled:o,className:`shrink-0 text-muted-foreground hover:text-foreground`,title:`Dismiss`,children:(0,R.jsx)(zt,{className:`h-4 w-4`})})]}),d===`text`&&(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),disabled:o,className:L(`flex-1 rounded border border-input bg-background px-2 py-1 text-sm`,`focus:outline-none focus:ring-1 focus:ring-ring`)}),(0,R.jsx)(Lb,{onClick:()=>void u(`accept`,{text:i}),disabled:o,label:`Submit`,variant:`primary`})]}),d===`confirm`&&(0,R.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,R.jsx)(Lb,{onClick:()=>void u(`decline`),disabled:o,label:`No`,variant:`ghost`}),(0,R.jsx)(Lb,{onClick:()=>void u(`accept`),disabled:o,label:`Yes`,variant:`primary`})]}),(d===`choice`||d===`multi_choice`)&&(0,R.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(r.choices??[]).map(e=>(0,R.jsx)(Lb,{onClick:()=>void u(`accept`,{choice:e}),disabled:o,label:e,variant:`outline`},e))}),c&&(0,R.jsx)(`p`,{className:`text-xs text-red-400`,children:c})]})}function Lb({onClick:e,disabled:t,label:n,variant:r}){return(0,R.jsx)(`button`,{onClick:e,disabled:t,className:L(`rounded px-3 py-1 text-xs font-medium transition-colors disabled:opacity-50`,r===`primary`&&`bg-primary text-primary-foreground hover:bg-primary/90`,r===`ghost`&&`text-muted-foreground hover:text-foreground hover:bg-accent`,r===`outline`&&`border border-border hover:bg-accent`),children:n})}function Rb({approvals:e,onDismiss:t}){let[n,r]=(0,O.useState)(new Set),i=e.filter(e=>!n.has(e.id));if(i.length===0)return null;let a=e=>{r(t=>new Set([...t,e])),t?.()};return(0,R.jsx)(`div`,{className:`flex flex-col gap-2`,children:i.map(e=>(0,R.jsx)(Ib,{approval:e,onAnswered:()=>a(e.id)},e.id))})}function zb({open:e,onClose:t,children:n}){return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:L(`fixed inset-0 z-40 bg-black/50 transition-opacity duration-200 md:hidden`,e?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`),onClick:t,"aria-hidden":`true`}),(0,R.jsx)(`div`,{className:L(`fixed inset-y-0 left-0 z-50 w-64 bg-sidebar transition-transform duration-200 ease-in-out md:hidden`,e?`translate-x-0`:`-translate-x-full`),role:`dialog`,"aria-modal":`true`,children:n})]})}function Bb({onClick:e,className:t}){return(0,R.jsx)(`button`,{onClick:e,className:L(`inline-flex items-center justify-center rounded-md p-2 text-muted-foreground hover:bg-muted hover:text-foreground md:hidden`,t),"aria-label":`Open sidebar`,children:(0,R.jsx)(`svg`,{className:`h-5 w-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,R.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M4 6h16M4 12h16M4 18h16`})})})}var Vb=(0,O.createContext)(null),Hb={success:`bg-green-600 text-white`,error:`bg-red-600 text-white`,info:`bg-muted text-muted-foreground border border-border`};function Ub({children:e}){let[t,n]=(0,O.useState)([]),r=(0,O.useRef)(0),i=(0,O.useCallback)((e,t=`info`)=>{let i=++r.current;n(n=>[...n.slice(-2),{id:i,message:e,type:t}]),setTimeout(()=>{n(e=>e.filter(e=>e.id!==i))},3e3)},[]);return(0,R.jsxs)(Vb.Provider,{value:{toast:i},children:[e,(0,R.jsx)(`div`,{className:`fixed bottom-4 right-4 z-50 flex flex-col gap-2 pointer-events-none`,"aria-live":`polite`,"aria-label":`Notifications`,children:t.map(e=>(0,R.jsx)(`div`,{className:L(`pointer-events-auto max-w-sm rounded-lg px-4 py-3 text-sm shadow-lg animate-slide-in-right`,Hb[e.type]),children:e.message},e.id))})]})}var Wb=1e4;function Gb(){let[e,t]=(0,O.useState)([]),[n,r]=(0,O.useState)(!0),[i,a]=(0,O.useState)(null),o=(0,O.useRef)(void 0),s=(0,O.useCallback)(async()=>{try{let e=await gc(`/api/sessions`);t(Kb(e.sessions)),a(null)}catch(e){a(e instanceof Error?e.message:`Failed to fetch sessions`)}finally{r(!1)}},[]);return(0,O.useEffect)(()=>(s(),o.current=setInterval(()=>void s(),Wb),()=>clearInterval(o.current)),[s]),{sessions:e,loading:n,error:i,refresh:s}}function Kb(e){return[...e].sort((e,t)=>{let n=+!!qb(e),r=+!!qb(t);if(n!==r)return r-n;let i=e.updatedAt?new Date(e.updatedAt).getTime():0;return(t.updatedAt?new Date(t.updatedAt).getTime():0)-i})}function qb(e){return e.mode===`live`||e.alive===!0}var Jb=1e3;function Yb(){let[e,t]=(0,O.useState)([]),n=(0,O.useRef)(void 0),r=(0,O.useCallback)(async()=>{try{let e=await gc(`/api/pending`);t(e.pending)}catch{}},[]);return(0,O.useEffect)(()=>(r(),n.current=setInterval(()=>void r(),Jb),()=>clearInterval(n.current)),[r]),{approvals:e,pendingSessionIds:new Set(e.map(e=>e.sessionId).filter(e=>!!e))}}var Xb=15e3,Zb=500;function Qb(e){let t=e.replace(/\r\n/g,`
|
|
82
82
|
`).split(`
|
|
83
83
|
|
|
84
84
|
`),n=t.pop()??``,r=[];for(let e of t){if(e.trim()===``)continue;let t,n;for(let r of e.split(`
|
|
85
|
-
`))r.startsWith(`id: `)?t=r.slice(4):r.startsWith(`id:`)?t=r.slice(3).trimStart():r.startsWith(`data: `)?n=r.slice(6):r.startsWith(`data:`)&&(n=r.slice(5).trimStart());n!==void 0&&r.push({id:t,data:n})}return{events:r,remainder:n}}function Qb(e){return typeof e==`object`&&!!e&&e.end===!0}function $b(e){let[t,n]=(0,O.useState)([]),[r,i]=(0,O.useState)(`connecting`),[a,o]=(0,O.useState)(null),s=(0,O.useRef)(void 0),c=(0,O.useRef)(void 0),l=(0,O.useRef)(0),u=(0,O.useRef)(!1);return(0,O.useEffect)(()=>{if(e===null){n([]),i(`connecting`),o(null);return}let t=e;n([]),o(null),u.current=!1,c.current=void 0,l.current=0;async function r(){if(u.current)return;i(l.current===0?`connecting`:`reconnecting`);let e=!1,a=new AbortController;s.current=a;let d=mc(),f={};d&&(f.authorization=`Bearer ${d}`),c.current!==void 0&&(f[`last-event-id`]=c.current);try{let r=await fetch(`/api/sessions/${encodeURIComponent(t)}/stream`,{headers:f,signal:a.signal});if(!r.ok){if(r.status===401||r.status===403||r.status===404){u.current=!0;let e=r.status===401?`unauthorized`:r.status===403?`forbidden`:`not-found`;o(e),i(`closed`);return}throw Error(`stream ${r.status}`)}if(r.body===null)throw Error(`stream: no body`);l.current=0,i(`open`);let s=r.body.getReader(),d=new TextDecoder,p=``;outer:for(;;){let{done:t,value:r}=await s.read();if(u.current||t)break;p+=d.decode(r,{stream:!0});let{events:i,remainder:a}=Zb(p);p=a;for(let t of i){t.id!==void 0&&(c.current=t.id);let r;try{r=JSON.parse(t.data)}catch{continue}if(Qb(r)){e=!0,u.current=!0;break outer}n(e=>[...e,r])}}}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}if(u.current){e&&i(`ended`);return}l.current+=1;let p=.75+Math.random()*.5,m=Math.min(Xb*2**(l.current-1),Yb)*p;setTimeout(()=>void r(),m)}return r(),()=>{u.current=!0,s.current?.abort(),i(`closed`)}},[e]),{events:t,status:r,error:a}}var ex={costUsd:0,durationMs:0,turns:0};function tx(e){let{events:t,status:n,error:r}=$b(e),[i,a]=(0,O.useState)([]),[o,s]=(0,O.useState)(ex),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(0),f=(0,O.useRef)(new Map),p=(0,O.useRef)(new Map);(0,O.useEffect)(()=>{yc(),f.current=new Map,p.current=new Map,a([]),s(ex),l(!1),d(0)},[e]);let m=(0,O.useRef)(0);return(0,O.useEffect)(()=>{let e=t.slice(m.current);if(e.length===0)return;m.current=t.length;let n=f.current,r=[],i=ex,o=!1,c=null,u=0;for(let t of e){let e=t,a=e.record??t,s=e.replay===!0;a.kind===`user`?c=!0:(a.kind===`done`||a.kind===`error`)&&(c=!1),a.kind===`done`&&!s&&(u+=1),i=Oc(i,a);let l=Dc(a,n,p.current);l===void 0?(a.kind===`tool_result`||a.kind===`subagent_lifecycle`)&&(o=!0):r.push(l)}r.length>0?a(e=>[...e,...r]):o&&a(e=>[...e]),(i.costUsd!==0||i.durationMs!==0||i.turns!==0)&&s(e=>({costUsd:e.costUsd+i.costUsd,durationMs:e.durationMs+i.durationMs,turns:e.turns+i.turns,inputTokens:(e.inputTokens??0)+(i.inputTokens??0),outputTokens:(e.outputTokens??0)+(i.outputTokens??0),cacheReadTokens:(e.cacheReadTokens??0)+(i.cacheReadTokens??0)})),c!==null&&l(c),u>0&&d(e=>e+u)},[t]),(0,O.useEffect)(()=>{m.current=0},[e]),{items:i,totals:o,status:n,error:r,turnActive:c,liveTurns:u}}var nx=50,rx=200;function ix(){let e=(0,O.useRef)(null),[t,n]=(0,O.useState)(!0),[r,i]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{let t=e.current;if(t===null)return;function r(){if(t===null)return;let e=t.scrollHeight-t.scrollTop-t.clientHeight;n(e<=nx),i(e>rx)}return t.addEventListener(`scroll`,r,{passive:!0}),()=>t.removeEventListener(`scroll`,r)},[]),{containerRef:e,scrollToBottom:(0,O.useCallback)(()=>{let t=e.current;t!==null&&(t.scrollTop=t.scrollHeight)},[]),isPinned:t,showScrollButton:r}}function ax(e,t){return Number.isInteger(t)&&t>=0&&t<e.length}function ox(e,t){if(!ax(e,t)||t===0)return e.slice();let n=e.slice(),r=n[t-1],i=n[t];return r===void 0||i===void 0?e.slice():(n[t-1]=i,n[t]=r,n)}function sx(e,t){if(!ax(e,t)||t===e.length-1)return e.slice();let n=e.slice(),r=n[t+1],i=n[t];return r===void 0||i===void 0?e.slice():(n[t+1]=i,n[t]=r,n)}function cx(e,t){if(!ax(e,t))return e.slice();let n=e.slice();return n.splice(t,1),n}function lx(e,t,n){if(!ax(e,t))return e.slice();let r=e.slice();return r[t]={...r[t],text:n},r}function ux({submit:e,isLive:t}){let[n,r]=(0,O.useState)([]),i=(0,O.useRef)(!1),a=(0,O.useRef)(0),o=(0,O.useRef)([]);return{entries:n,enqueue:(0,O.useCallback)(e=>{let t=a.current++,n=[...o.current,{id:t,text:e}];o.current=n,r(n)},[]),moveItemUp:(0,O.useCallback)(e=>{let t=ox(o.current,e);o.current=t,r(t)},[]),moveItemDown:(0,O.useCallback)(e=>{let t=sx(o.current,e);o.current=t,r(t)},[]),removeItem:(0,O.useCallback)(e=>{let t=cx(o.current,e);o.current=t,r(t)},[]),editItem:(0,O.useCallback)((e,t)=>{let n=lx(o.current,e,t);o.current=n,r(n)},[]),clear:(0,O.useCallback)(()=>{o.current=[],r([])},[]),flush:(0,O.useCallback)(async()=>{if(i.current||!t)return;let n=o.current[0];if(n===void 0)return;let a=n.id,s=n.text;i.current=!0,e(s).then(()=>{let e=o.current.filter(e=>e.id!==a);o.current=e,r(e)}).catch(()=>{}).finally(()=>{i.current=!1})},[e,t])}}function dx(){return(0,R.jsx)(Hb,{children:(0,R.jsx)(fx,{})})}function fx(){let{sessions:e,loading:t}=Wb(),{approvals:n,pendingSessionIds:r}=Jb(),[i,a]=(0,O.useState)(`sessions`),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(!1),f=e.find(e=>e.id===o),{items:p,totals:m,status:h,turnActive:g,liveTurns:_}=tx(o),{containerRef:v,scrollToBottom:y,isPinned:b,showScrollButton:x}=ix();(0,O.useEffect)(()=>{b&&y()},[p.length,b,y]);let S=e=>{a(e),d(!1)},C=e=>{s(e),d(!1)},w=g,[T,E]=(0,O.useState)(`sonnet`),D=(0,O.useCallback)(async()=>{try{let e=await gc(`/api/sessions`,{method:`POST`});s(e.session.id)}catch{}},[]),ee=(0,O.useRef)(null),te=ux({submit:(0,O.useCallback)(async e=>{if(!o)throw Error(`no session`);let t=new AbortController;ee.current=t,await gc(`/api/sessions/${o}/prompt`,{method:`POST`,body:JSON.stringify({text:e}),signal:t.signal})},[o]),isLive:f?.mode===`live`}),ne=(0,O.useRef)(0);(0,O.useEffect)(()=>{ee.current?.abort(),ee.current=null,te.clear(),ne.current=0},[o]),(0,O.useEffect)(()=>{_>ne.current&&te.flush(),ne.current=_},[_,te.flush]);let k=(0,R.jsx)(Sr,{sessions:e,pendingSessionIds:r,selectedSessionId:o,onSelectSession:C,activeNav:i,onNavChange:S,collapsed:c,onToggleCollapse:()=>l(e=>!e)});return(0,R.jsxs)(`div`,{className:`flex h-screen overflow-hidden`,children:[(0,R.jsx)(rc,{onNavigate:S}),(0,R.jsx)(ac,{onNavigate:S}),(0,R.jsx)(`div`,{className:`hidden md:block`,children:k}),(0,R.jsx)(Rb,{open:u,onClose:()=>d(!1),children:k}),(0,R.jsxs)(`main`,{className:`flex flex-1 flex-col overflow-hidden`,children:[(0,R.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center justify-between border-b px-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(zb,{className:`md:hidden`,onClick:()=>d(!0)}),(0,R.jsxs)(`h1`,{className:`text-sm font-medium text-muted-foreground`,children:[i===`sessions`&&`Sessions`,i===`memory`&&`Memory`,i===`schedules`&&`Schedules`,i===`jobs`&&`Background Jobs`,i===`settings`&&`Settings`]}),i===`sessions`&&f&&(0,R.jsx)(mx,{status:h})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[i===`sessions`&&(0,R.jsx)(`button`,{onClick:()=>void D(),title:`New Session`,className:`flex items-center justify-center h-7 w-7 rounded-md hover:bg-accent transition-colors text-muted-foreground hover:text-foreground`,children:(0,R.jsx)(yt,{className:`h-4 w-4`})}),i===`sessions`&&f&&(0,R.jsx)(Xc,{totals:m}),(0,R.jsx)(`kbd`,{className:`hidden rounded border bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground sm:inline-block`,children:`⌘K`})]})]}),(0,R.jsxs)(`div`,{className:`relative flex flex-1 flex-col overflow-hidden`,children:[x&&i===`sessions`&&(0,R.jsxs)(`button`,{onClick:y,className:`animate-fade-in fixed bottom-24 left-1/2 z-20 -translate-x-1/2 flex items-center gap-1.5 rounded-full bg-brand px-3 py-1.5 text-xs font-medium text-primary-foreground shadow-lg hover:bg-brand/90 transition-colors`,children:[(0,R.jsx)(ie,{className:`size-3`}),`New messages`]}),(0,R.jsxs)(`div`,{ref:v,className:`relative flex flex-1 flex-col overflow-y-auto`,children:[(0,R.jsxs)(`div`,{className:`flex-1`,children:[i===`sessions`&&(0,R.jsx)(px,{loading:t,sessions:e,selectedSession:f,items:p,totals:m,status:h,turnActive:g}),i===`memory`&&(0,R.jsx)(Hy,{}),i===`schedules`&&(0,R.jsx)(Qy,{}),i===`jobs`&&(0,R.jsx)(cb,{}),i===`settings`&&(0,R.jsx)(hb,{})]}),i===`sessions`&&f&&f.mode===`live`&&(0,R.jsxs)(`div`,{className:`shrink-0`,children:[n.length>0&&(0,R.jsx)(Lb,{approvals:n}),(0,R.jsx)(Nb,{sessionId:f.id,sessionMode:f.mode,isBusy:w,queue:te,onModelSelect:E,currentModel:T})]})]})]})]})]})}function px({loading:e,sessions:t,selectedSession:n,items:r,totals:i,status:a,turnActive:o}){return e&&!t.length?(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-2 text-muted-foreground`,children:[(0,R.jsx)(`div`,{className:`size-6 animate-spin rounded-full border-2 border-current border-t-transparent`}),(0,R.jsx)(`span`,{className:`text-sm`,children:`Loading sessions...`})]})}):!e&&t.length===0?(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:(0,R.jsxs)(`p`,{className:`text-sm`,children:[`No sessions found. Start one with`,` `,(0,R.jsx)(`code`,{className:`rounded bg-secondary px-1 font-mono`,children:`afk web`})]})}):n&&r.length>0?(0,R.jsx)(Ny,{sessionId:n.id,items:r,totals:i,turnActive:o}):n?(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:(0,R.jsx)(`div`,{className:`flex flex-col items-center gap-2`,children:a===`connecting`||a===`reconnecting`?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`size-5 animate-spin rounded-full border-2 border-current border-t-transparent`}),(0,R.jsx)(`span`,{className:`text-sm`,children:`Connecting to session...`})]}):n.mode===`live`?(0,R.jsx)(`span`,{className:`text-sm`,children:`New session. Send a message to start.`}):(0,R.jsx)(`span`,{className:`text-sm`,children:`No transcript data`})})}):(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:(0,R.jsx)(`p`,{className:`text-sm`,children:`Select a session from the sidebar`})})}function mx({status:e}){return e===`open`?(0,R.jsx)(`span`,{className:`size-2 rounded-full bg-status-running`,title:`Live`}):e===`connecting`||e===`reconnecting`?(0,R.jsx)(`span`,{className:`size-2 animate-pulse rounded-full bg-status-blocked`,title:e}):e===`ended`?(0,R.jsx)(`span`,{className:`size-2 rounded-full bg-muted-foreground`,title:`Session ended`}):null}var hx=document.getElementById(`root`);if(!hx)throw Error(`Root element #root not found`);(0,Bt.createRoot)(hx).render((0,R.jsx)(O.StrictMode,{children:(0,R.jsx)(dx,{})}));export{pu as a,Ol as c,fu as i,s as l,sg as n,lu as o,mu as r,Pl as s,dy as t};
|
|
85
|
+
`))r.startsWith(`id: `)?t=r.slice(4):r.startsWith(`id:`)?t=r.slice(3).trimStart():r.startsWith(`data: `)?n=r.slice(6):r.startsWith(`data:`)&&(n=r.slice(5).trimStart());n!==void 0&&r.push({id:t,data:n})}return{events:r,remainder:n}}function $b(e){return typeof e==`object`&&!!e&&e.end===!0}function ex(e){let[t,n]=(0,O.useState)([]),[r,i]=(0,O.useState)(`connecting`),[a,o]=(0,O.useState)(null),s=(0,O.useRef)(void 0),c=(0,O.useRef)(void 0),l=(0,O.useRef)(0),u=(0,O.useRef)(!1);return(0,O.useEffect)(()=>{if(e===null){n([]),i(`connecting`),o(null);return}let t=e;n([]),o(null),u.current=!1,c.current=void 0,l.current=0;async function r(){if(u.current)return;i(l.current===0?`connecting`:`reconnecting`);let e=!1,a=new AbortController;s.current=a;let d=mc(),f={};d&&(f.authorization=`Bearer ${d}`),c.current!==void 0&&(f[`last-event-id`]=c.current);try{let r=await fetch(`/api/sessions/${encodeURIComponent(t)}/stream`,{headers:f,signal:a.signal});if(!r.ok){if(r.status===401||r.status===403||r.status===404){u.current=!0;let e=r.status===401?`unauthorized`:r.status===403?`forbidden`:`not-found`;o(e),i(`closed`);return}throw Error(`stream ${r.status}`)}if(r.body===null)throw Error(`stream: no body`);l.current=0,i(`open`);let s=r.body.getReader(),d=new TextDecoder,p=``;outer:for(;;){let{done:t,value:r}=await s.read();if(u.current||t)break;p+=d.decode(r,{stream:!0});let{events:i,remainder:a}=Qb(p);p=a;for(let t of i){t.id!==void 0&&(c.current=t.id);let r;try{r=JSON.parse(t.data)}catch{continue}if($b(r)){e=!0,u.current=!0;break outer}n(e=>[...e,r])}}}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}if(u.current){e&&i(`ended`);return}l.current+=1;let p=.75+Math.random()*.5,m=Math.min(Zb*2**(l.current-1),Xb)*p;setTimeout(()=>void r(),m)}return r(),()=>{u.current=!0,s.current?.abort(),i(`closed`)}},[e]),{events:t,status:r,error:a}}var tx={costUsd:0,durationMs:0,turns:0};function nx(e){let{events:t,status:n,error:r}=ex(e),[i,a]=(0,O.useState)([]),[o,s]=(0,O.useState)(tx),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(0),f=(0,O.useRef)(new Map),p=(0,O.useRef)(new Map);(0,O.useEffect)(()=>{yc(),f.current=new Map,p.current=new Map,a([]),s(tx),l(!1),d(0)},[e]);let m=(0,O.useRef)(0);return(0,O.useEffect)(()=>{let e=t.slice(m.current);if(e.length===0)return;m.current=t.length;let n=f.current,r=[],i=tx,o=!1,c=null,u=0;for(let t of e){let e=t,a=e.record??t,s=e.replay===!0;a.kind===`user`?c=!0:(a.kind===`done`||a.kind===`error`)&&(c=!1),a.kind===`done`&&!s&&(u+=1),i=Oc(i,a);let l=Dc(a,n,p.current);l===void 0?(a.kind===`tool_result`||a.kind===`subagent_lifecycle`)&&(o=!0):r.push(l)}r.length>0?a(e=>[...e,...r]):o&&a(e=>[...e]),(i.costUsd!==0||i.durationMs!==0||i.turns!==0)&&s(e=>({costUsd:e.costUsd+i.costUsd,durationMs:e.durationMs+i.durationMs,turns:e.turns+i.turns,inputTokens:(e.inputTokens??0)+(i.inputTokens??0),outputTokens:(e.outputTokens??0)+(i.outputTokens??0),cacheReadTokens:(e.cacheReadTokens??0)+(i.cacheReadTokens??0)})),c!==null&&l(c),u>0&&d(e=>e+u)},[t]),(0,O.useEffect)(()=>{m.current=0},[e]),{items:i,totals:o,status:n,error:r,turnActive:c,liveTurns:u}}var rx=50,ix=200;function ax(){let e=(0,O.useRef)(null),[t,n]=(0,O.useState)(!0),[r,i]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{let t=e.current;if(t===null)return;function r(){if(t===null)return;let e=t.scrollHeight-t.scrollTop-t.clientHeight;n(e<=rx),i(e>ix)}return t.addEventListener(`scroll`,r,{passive:!0}),()=>t.removeEventListener(`scroll`,r)},[]),{containerRef:e,scrollToBottom:(0,O.useCallback)(()=>{let t=e.current;t!==null&&(t.scrollTop=t.scrollHeight)},[]),isPinned:t,showScrollButton:r}}function ox(e,t){return Number.isInteger(t)&&t>=0&&t<e.length}function sx(e,t){if(!ox(e,t)||t===0)return e.slice();let n=e.slice(),r=n[t-1],i=n[t];return r===void 0||i===void 0?e.slice():(n[t-1]=i,n[t]=r,n)}function cx(e,t){if(!ox(e,t)||t===e.length-1)return e.slice();let n=e.slice(),r=n[t+1],i=n[t];return r===void 0||i===void 0?e.slice():(n[t+1]=i,n[t]=r,n)}function lx(e,t){if(!ox(e,t))return e.slice();let n=e.slice();return n.splice(t,1),n}function ux(e,t,n){if(!ox(e,t))return e.slice();let r=e.slice();return r[t]={...r[t],text:n},r}function dx({submit:e,isLive:t}){let[n,r]=(0,O.useState)([]),i=(0,O.useRef)(!1),a=(0,O.useRef)(0),o=(0,O.useRef)([]);return{entries:n,enqueue:(0,O.useCallback)(e=>{let t=a.current++,n=[...o.current,{id:t,text:e}];o.current=n,r(n)},[]),moveItemUp:(0,O.useCallback)(e=>{let t=sx(o.current,e);o.current=t,r(t)},[]),moveItemDown:(0,O.useCallback)(e=>{let t=cx(o.current,e);o.current=t,r(t)},[]),removeItem:(0,O.useCallback)(e=>{let t=lx(o.current,e);o.current=t,r(t)},[]),editItem:(0,O.useCallback)((e,t)=>{let n=ux(o.current,e,t);o.current=n,r(n)},[]),clear:(0,O.useCallback)(()=>{o.current=[],r([])},[]),flush:(0,O.useCallback)(async()=>{if(i.current||!t)return;let n=o.current[0];if(n===void 0)return;let a=n.id,s=n.text;i.current=!0,e(s).then(()=>{let e=o.current.filter(e=>e.id!==a);o.current=e,r(e)}).catch(()=>{}).finally(()=>{i.current=!1})},[e,t])}}function fx(){return(0,R.jsx)(Ub,{children:(0,R.jsx)(px,{})})}function px(){let{sessions:e,loading:t}=Gb(),{approvals:n,pendingSessionIds:r}=Yb(),[i,a]=(0,O.useState)(`sessions`),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(!1),f=e.find(e=>e.id===o),{items:p,totals:m,status:h,turnActive:g,liveTurns:_}=nx(o),{containerRef:v,scrollToBottom:y,isPinned:b,showScrollButton:x}=ax();(0,O.useEffect)(()=>{b&&y()},[p.length,b,y]);let S=e=>{a(e),d(!1)},C=e=>{s(e),d(!1)},w=g,[T,E]=(0,O.useState)(`sonnet`),D=(0,O.useCallback)(async()=>{try{let e=await gc(`/api/sessions`,{method:`POST`});s(e.session.id)}catch{}},[]),ee=(0,O.useRef)(null),te=dx({submit:(0,O.useCallback)(async e=>{if(!o)throw Error(`no session`);let t=new AbortController;ee.current=t,await gc(`/api/sessions/${o}/prompt`,{method:`POST`,body:JSON.stringify({text:e}),signal:t.signal})},[o]),isLive:f?.mode===`live`}),ne=(0,O.useRef)(0);(0,O.useEffect)(()=>{ee.current?.abort(),ee.current=null,te.clear(),ne.current=0},[o]),(0,O.useEffect)(()=>{_>ne.current&&te.flush(),ne.current=_},[_,te.flush]);let k=(0,R.jsx)(Sr,{sessions:e,pendingSessionIds:r,selectedSessionId:o,onSelectSession:C,activeNav:i,onNavChange:S,collapsed:c,onToggleCollapse:()=>l(e=>!e)});return(0,R.jsxs)(`div`,{className:`flex h-screen overflow-hidden`,children:[(0,R.jsx)(rc,{onNavigate:S}),(0,R.jsx)(ac,{onNavigate:S}),(0,R.jsx)(`div`,{className:`hidden md:block`,children:k}),(0,R.jsx)(zb,{open:u,onClose:()=>d(!1),children:k}),(0,R.jsxs)(`main`,{className:`flex flex-1 flex-col overflow-hidden`,children:[(0,R.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center justify-between border-b px-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(Bb,{className:`md:hidden`,onClick:()=>d(!0)}),(0,R.jsxs)(`h1`,{className:`text-sm font-medium text-muted-foreground`,children:[i===`sessions`&&`Sessions`,i===`memory`&&`Memory`,i===`schedules`&&`Schedules`,i===`jobs`&&`Background Jobs`,i===`settings`&&`Settings`]}),i===`sessions`&&f&&(0,R.jsx)(hx,{status:h})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[i===`sessions`&&(0,R.jsx)(`button`,{onClick:()=>void D(),title:`New Session`,className:`flex items-center justify-center h-7 w-7 rounded-md hover:bg-accent transition-colors text-muted-foreground hover:text-foreground`,children:(0,R.jsx)(yt,{className:`h-4 w-4`})}),i===`sessions`&&f&&(0,R.jsx)(Xc,{totals:m}),(0,R.jsx)(`kbd`,{className:`hidden rounded border bg-secondary px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground sm:inline-block`,children:`⌘K`})]})]}),(0,R.jsxs)(`div`,{className:`relative flex flex-1 flex-col overflow-hidden`,children:[x&&i===`sessions`&&(0,R.jsxs)(`button`,{onClick:y,className:`animate-fade-in fixed bottom-24 left-1/2 z-20 -translate-x-1/2 flex items-center gap-1.5 rounded-full bg-brand px-3 py-1.5 text-xs font-medium text-primary-foreground shadow-lg hover:bg-brand/90 transition-colors`,children:[(0,R.jsx)(ie,{className:`size-3`}),`New messages`]}),(0,R.jsxs)(`div`,{ref:v,className:`relative flex flex-1 flex-col overflow-y-auto`,children:[(0,R.jsxs)(`div`,{className:`flex-1`,children:[i===`sessions`&&(0,R.jsx)(mx,{loading:t,sessions:e,selectedSession:f,items:p,totals:m,status:h,turnActive:g}),i===`memory`&&(0,R.jsx)(Uy,{}),i===`schedules`&&(0,R.jsx)($y,{}),i===`jobs`&&(0,R.jsx)(lb,{}),i===`settings`&&(0,R.jsx)(gb,{})]}),i===`sessions`&&f&&f.mode===`live`&&(0,R.jsxs)(`div`,{className:`shrink-0`,children:[n.length>0&&(0,R.jsx)(Rb,{approvals:n}),(0,R.jsx)(Pb,{sessionId:f.id,sessionMode:f.mode,isBusy:w,queue:te,onModelSelect:E,currentModel:T})]})]})]})]})]})}function mx({loading:e,sessions:t,selectedSession:n,items:r,totals:i,status:a,turnActive:o}){return e&&!t.length?(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-2 text-muted-foreground`,children:[(0,R.jsx)(`div`,{className:`size-6 animate-spin rounded-full border-2 border-current border-t-transparent`}),(0,R.jsx)(`span`,{className:`text-sm`,children:`Loading sessions...`})]})}):!e&&t.length===0?(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:(0,R.jsxs)(`p`,{className:`text-sm`,children:[`No sessions found. Start one with`,` `,(0,R.jsx)(`code`,{className:`rounded bg-secondary px-1 font-mono`,children:`afk web`})]})}):n&&r.length>0?(0,R.jsx)(Py,{sessionId:n.id,items:r,totals:i,turnActive:o}):n?(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:(0,R.jsx)(`div`,{className:`flex flex-col items-center gap-2`,children:a===`connecting`||a===`reconnecting`?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`size-5 animate-spin rounded-full border-2 border-current border-t-transparent`}),(0,R.jsx)(`span`,{className:`text-sm`,children:`Connecting to session...`})]}):n.mode===`live`?(0,R.jsx)(`span`,{className:`text-sm`,children:`New session. Send a message to start.`}):(0,R.jsx)(`span`,{className:`text-sm`,children:`No transcript data`})})}):(0,R.jsx)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:(0,R.jsx)(`p`,{className:`text-sm`,children:`Select a session from the sidebar`})})}function hx({status:e}){return e===`open`?(0,R.jsx)(`span`,{className:`size-2 rounded-full bg-status-running`,title:`Live`}):e===`connecting`||e===`reconnecting`?(0,R.jsx)(`span`,{className:`size-2 animate-pulse rounded-full bg-status-blocked`,title:e}):e===`ended`?(0,R.jsx)(`span`,{className:`size-2 rounded-full bg-muted-foreground`,title:`Session ended`}):null}var gx=document.getElementById(`root`);if(!gx)throw Error(`Root element #root not found`);(0,Bt.createRoot)(gx).render((0,R.jsx)(O.StrictMode,{children:(0,R.jsx)(fx,{})}));export{pu as a,Ol as c,fu as i,s as l,sg as n,lu as o,mu as r,Pl as s,fy as t};
|