flowent 0.3.1 → 0.3.2

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.
@@ -88,11 +88,13 @@ Error generating stack: `+e.message+`
88
88
  `))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
89
89
  `,...a.current()});return/^[\t ]/.test(l)&&(l=YW(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}tG.peek=nG;function tG(e){return e.value||``}function nG(){return`<`}rG.peek=iG;function rG(e,t,n,r){let i=KW(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 iG(){return`!`}aG.peek=oG;function aG(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 oG(){return`!`}sG.peek=cG;function sG(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 cG(){return"`"}function lG(e,t){let n=IR(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))}uG.peek=dG;function uG(e,t,n,r){let i=KW(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(lG(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 dG(e,t,n){return lG(e,n)?`<`:`[`}fG.peek=pG;function fG(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 pG(){return`[`}function mG(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 hG(e){let t=mG(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 gG(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function _G(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 vG(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?gG(n):mG(n),s=e.ordered?o===`.`?`)`:`.`:hG(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),_G(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 yG(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 bG(e,t,n,r){let i=yG(n),a=n.bulletCurrent||mG(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 xG(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var SG=kH([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function CG(e,t,n,r){return(e.children.some(function(e){return SG(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function wG(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}TG.peek=EG;function TG(e,t,n,r){let i=wG(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=XW(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=YW(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=XW(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+YW(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function EG(e,t,n){return n.options.strong||`*`}function DG(e,t,n,r){return n.safe(e.value,r)}function OG(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 kG(e,t,n){let r=(_G(n)+(n.options.ruleSpaces?` `:``)).repeat(OG(n));return n.options.ruleSpaces?r.slice(0,-1):r}var AG={blockquote:IW,break:BW,code:WW,definition:qW,emphasis:ZW,hardBreak:BW,heading:eG,html:tG,image:rG,imageReference:aG,inlineCode:sG,link:uG,linkReference:fG,list:vG,listItem:bG,paragraph:xG,root:CG,strong:TG,text:DG,thematicBreak:kG};function jG(){return{enter:{table:MG,tableData:IG,tableHeader:IG,tableRow:PG},exit:{codeText:LG,table:NG,tableData:FG,tableHeader:FG,tableRow:FG}}}function MG(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 NG(e){this.exit(e),this.data.inTable=void 0}function PG(e){this.enter({type:`tableRow`,children:[]},e)}function FG(e){this.exit(e)}function IG(e){this.enter({type:`tableCell`,children:[]},e)}function LG(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,RG));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function RG(e,t){return t===`|`?t:e}function zG(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
90
90
  `,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(`
91
- `))}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 NW(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=AG.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function BG(){return{exit:{taskListCheckValueChecked:HG,taskListCheckValueUnchecked:HG,paragraph:UG}}}function VG(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:WG}}}function HG(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function UG(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 WG(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=AG.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 GG(){return[ZU(),xW(),EW(),jG(),BG()]}function KG(e){return{extensions:[QU(),SW(e),DW(),zG(e),VG()]}}var qG={tokenize:sK,partial:!0},JG={tokenize:cK,partial:!0},YG={tokenize:lK,partial:!0},XG={tokenize:uK,partial:!0},ZG={tokenize:dK,partial:!0},QG={name:`wwwAutolink`,tokenize:aK,previous:fK},$G={name:`protocolAutolink`,tokenize:oK,previous:pK},eK={name:`emailAutolink`,tokenize:iK,previous:mK},tK={};function nK(){return{text:tK}}for(var rK=48;rK<123;)tK[rK]=eK,rK++,rK===58?rK=65:rK===91&&(rK=97);tK[43]=eK,tK[45]=eK,tK[46]=eK,tK[95]=eK,tK[72]=[eK,$G],tK[104]=[eK,$G],tK[87]=[eK,QG],tK[119]=[eK,QG];function iK(e,t,n){let r=this,i,a;return o;function o(t){return!hK(t)||!mK.call(r,r.previous)||gK(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return hK(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(ZG,u,l)(t):t===45||t===95||ZR(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&&XR(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function aK(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!fK.call(r,r.previous)||gK(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(qG,e.attempt(JG,e.attempt(YG,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function oK(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&pK.call(r,r.previous)&&!gK(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(XR(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||$R(t)||rz(t)||oz(t)||az(t)?n(t):e.attempt(JG,e.attempt(YG,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function sK(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 cK(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(XG,c,s)(t):t===null||rz(t)||oz(t)||t!==45&&az(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 lK(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(XG,t,a)(o):o===null||rz(o)||oz(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function uK(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||rz(o)||oz(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||rz(e)||oz(e)?t(e):r(e)}function a(e){return XR(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):XR(t)?(e.consume(t),o):n(t)}}function dK(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return ZR(e)?n(e):t(e)}}function fK(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||rz(e)}function pK(e){return!XR(e)}function mK(e){return!(e===47||hK(e))}function hK(e){return e===43||e===45||e===46||e===95||ZR(e)}function gK(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 _K={tokenize:TK,partial:!0};function vK(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:SK,continuation:{tokenize:CK},exit:wK}},text:{91:{name:`gfmFootnoteCall`,tokenize:xK},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:yK,resolveTo:bK}}}}function yK(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=YR(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 bK(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 xK(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||rz(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(YR(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return rz(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 SK(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||rz(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=YR(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return rz(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),lz(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function CK(e,t,n){return e.check(wz,t,e.attempt(_K,t,n))}function wK(e){e.exit(`gfmFootnoteDefinition`)}function TK(e,t,n){let r=this;return lz(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 EK(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&&HR(o,o.length,0,_z(s,e.slice(r+1,n),t)),HR(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),HR(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=gz(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=gz(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var DK=class{constructor(){this.map=[]}add(e,t,n){OK(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 OK(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 kK(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 AK(){return{flow:{null:{name:`table`,tokenize:jK,resolveAll:MK}}}}function jK(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?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):$(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):iz(t)?lz(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||rz(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,iz(t)?lz(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 iz(t)?lz(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||$(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 iz(t)?lz(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||$(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||$(n)?(e.exit(`tableRow`),t(n)):iz(n)?lz(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||rz(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 MK(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 DK;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(PK(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=NK(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=NK(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=NK(f,t,o,i,n,d)):(o[0]=o[1],d=NK(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&PK(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=kK(t.events,n))}return e}function NK(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},FK(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=FK(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=FK(t.events,n[2]),a=FK(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({},FK(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function PK(e,t,n,r,i){let a=[],o=FK(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 FK(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var IK={name:`tasklistCheck`,tokenize:RK};function LK(){return{text:{91:IK}}}function RK(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 rz(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 $(r)?t(r):iz(r)?e.check({tokenize:zK},t,n)(r):n(r)}}function zK(e,t,n){return lz(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function BK(e){return GR([nK(),vK(),EK(e),AK(),LK()])}var VK={};function HK(e){let t=this,n=e||VK,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(BK(n)),a.push(GG()),o.push(KG(n))}var UK=e=>{let t={...e};return delete t.node,t},WK=()=>(0,U.jsx)(`span`,{"aria-hidden":`true`,className:`flowent-response-cursor`,"data-testid":`response-cursor`}),GK=e=>e?.position?.end?.offset??-1,KK=e=>{if(!e)return-1;let t=GK(e),n=(e.children??[]).map(KK);return Math.max(t,...n)},qK=new Set([`blockquote`,`h1`,`h2`,`h3`,`ol`,`p`,`pre`,`table`,`ul`]),JK=e=>(e?.children??[]).some(e=>e.type===`element`&&e.tagName!==void 0&&qK.has(e.tagName)),YK=e=>typeof e?.position?.start?.line==`number`&&typeof e.position.end?.line==`number`&&e.position.start.line!==e.position.end.line,XK=(e,t)=>t>=0&&KK(e)===t,ZK=(e,t)=>(0,U.jsxs)(U.Fragment,{children:[e,t?(0,U.jsx)(WK,{}):null]});function QK({content:e,isStreaming:t=!1}){let n=t?e.trimEnd().length:-1;return(0,U.jsx)(RU,{components:{a:({className:e,...t})=>(0,U.jsx)(`a`,{className:J(`text-white underline underline-offset-4`,e),rel:`noreferrer`,target:`_blank`,...UK(t)}),blockquote:({className:e,...t})=>(0,U.jsx)(`blockquote`,{className:J(`my-3 border-l border-white/20 pl-4 text-white/80`,e),...UK(t)}),code:({className:e,children:t,node:r,...i})=>{let a=YK(r);return(0,U.jsx)(`code`,{className:J(`font-mono text-[0.92em] text-white`,!a&&`rounded bg-white/10 px-1.5 py-0.5`,e),...UK(i),children:ZK(t,XK(r,n)&&a)})},h1:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`h1`,{className:J(`mb-3 mt-5 text-2xl font-semibold text-white`,e),...UK(i),children:ZK(t,XK(r,n))}),h2:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`h2`,{className:J(`mb-2.5 mt-5 text-xl font-semibold text-white`,e),...UK(i),children:ZK(t,XK(r,n))}),h3:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`h3`,{className:J(`mb-2 mt-4 text-lg font-semibold text-white`,e),...UK(i),children:ZK(t,XK(r,n))}),hr:({className:e,...t})=>(0,U.jsx)(`hr`,{className:J(`my-4 border-white/10`,e),...UK(t)}),li:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`li`,{className:J(`pl-1`,e),...UK(i),children:ZK(t,XK(r,n)&&!JK(r))}),ol:({className:e,...t})=>(0,U.jsx)(`ol`,{className:J(`my-3 list-decimal space-y-1 pl-6`,e),...UK(t)}),p:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`p`,{className:J(`my-3 first:mt-0 last:mb-0`,e),...UK(i),children:ZK(t,XK(r,n))}),pre:({className:e,...t})=>(0,U.jsx)(`pre`,{className:J(`my-3 overflow-x-auto rounded-lg border border-white/10 bg-white/[0.045] p-3 text-sm leading-6 text-white`,e),...UK(t)}),table:({className:e,...t})=>(0,U.jsx)(`div`,{className:`my-3 overflow-x-auto`,children:(0,U.jsx)(`table`,{className:J(`w-full border-collapse text-left text-sm`,e),...UK(t)})}),tbody:({className:e,...t})=>(0,U.jsx)(`tbody`,{className:J(`divide-y divide-white/10`,e),...UK(t)}),td:({className:e,...t})=>(0,U.jsx)(`td`,{className:J(`border border-white/10 px-3 py-2 align-top`,e),...UK(t)}),th:({className:e,...t})=>(0,U.jsx)(`th`,{className:J(`border border-white/10 bg-white/[0.04] px-3 py-2 font-medium`,e),...UK(t)}),thead:({className:e,...t})=>(0,U.jsx)(`thead`,{className:J(`text-white`,e),...UK(t)}),ul:({className:e,...t})=>(0,U.jsx)(`ul`,{className:J(`my-3 list-disc space-y-1 pl-6`,e),...UK(t)})},remarkPlugins:[HK],children:e})}function $K({commands:e,contextWindowLimit:t,draft:n,errorMessage:r,isRefiningContext:i,isResponding:a,messages:o,usageInfo:s,onCommand:c,onCommandError:l,onDraftChange:u,onEditMessage:d,onRetryError:f,onRetryMessage:p,onSendMessage:m,onStopResponse:h,skills:g}){let[_,v]=(0,b.useState)(112);return(0,U.jsx)(`section`,{className:`h-full min-h-0 bg-black`,"aria-label":`Workspace`,children:(0,U.jsx)($I,{delayDuration:500,children:(0,U.jsxs)(`div`,{className:`relative h-full min-h-0 min-w-0 overflow-hidden`,children:[(0,U.jsx)(Nq,{commands:e,contextWindowLimit:t,draft:n,errorMessage:r,isRefiningContext:i,isSending:a,messages:o,plan:(0,b.useMemo)(()=>Eq(o),[o]),usageInfo:s,onCommand:c,onCommandError:l,onDraftChange:u,onSendMessage:m,onStopResponse:h,onOffsetChange:v,skills:g}),(0,U.jsx)(eq,{composerOffset:_,isResponding:a,messages:o,onEditMessage:d,onRetryError:f,onRetryMessage:p})]})})})}function eq({composerOffset:e,isResponding:t,messages:n,onEditMessage:r,onRetryError:i,onRetryMessage:a}){let o=(0,b.useRef)(null),s=(0,b.useRef)(!0),c=(0,b.useRef)(null),l=n.at(-1),u=l?.author??``,d=l?.id??``,f=(0,b.useRef)(d),p=(0,b.useMemo)(()=>!t||u===`assistant`?n:[...n,{author:`assistant`,content:``,id:`assistant-pending`}],[t,u,n]),m=t&&u===`assistant`?d:``;(0,b.useEffect)(()=>{d!==f.current&&(f.current=d,u===`user`&&(s.current=!0)),s.current&&c.current?.scrollIntoView({block:`end`,behavior:`smooth`})},[p,u,d]);let h=()=>{let e=o.current;e&&(s.current=e.scrollHeight-e.scrollTop-e.clientHeight<96)},g=(0,b.useMemo)(()=>tq(p),[p]);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{"aria-label":`Conversation messages`,"aria-live":`polite`,className:J(`absolute inset-0 flex min-h-0 flex-col overflow-auto bg-black px-6 pt-12 max-[900px]:px-4`,Xd),onScroll:h,ref:o,style:{paddingBottom:e,scrollPaddingBottom:e},children:[p.length===0?(0,U.jsx)(`div`,{className:`mx-auto grid min-h-full w-full max-w-4xl place-items-center pb-24`,children:(0,U.jsx)(`h1`,{className:`m-0 text-center text-[28px] font-medium leading-[1.2] text-white max-[560px]:text-2xl`,children:`Where should we begin?`})}):null,p.map(e=>(0,U.jsx)(b.Fragment,{children:e.author===`system`?(0,U.jsx)(iq,{message:e}):(0,U.jsx)(aq,{isStreaming:t&&e.id===m&&e.author===`assistant`&&e.isStreamingText===!0,isPending:e.id===`assistant-pending`||t&&e.author===`assistant`&&e.id===m&&e.isStreamingText!==!0,isResponding:t,message:e,onEditMessage:r,onRetryError:i,onRetryMessage:a})},e.id)),(0,U.jsx)(`div`,{"aria-hidden":`true`,ref:c})]}),(0,U.jsx)(nq,{messageListRef:o,messages:g})]})}function tq(e){return e.filter(e=>e.id!==`assistant-pending`&&(e.author===`user`||e.author===`assistant`)&&e.content.trim().length>0)}function nq({messageListRef:e,messages:t}){let[n,r]=(0,b.useState)(``),[i,a]=(0,b.useState)(!1),[o,s]=(0,b.useState)(!1),c=(0,b.useRef)(null),l=(0,b.useRef)(!1),u=(0,b.useRef)(null),d=(0,b.useRef)(null),f=(0,b.useCallback)(()=>{let t=e.current,n=c.current;if(!t||!n)return;let r=t.scrollHeight-t.clientHeight,i=n.scrollHeight-n.clientHeight;if(r<=0||i<=0){n.scrollTop=0;return}n.scrollTop=Math.min(1,Math.max(0,t.scrollTop/r))*i},[e]);if((0,b.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{l.current||f()};return t.addEventListener(`scroll`,n,{passive:!0}),f(),()=>{t.removeEventListener(`scroll`,n)}},[t.length,e,f]),(0,b.useLayoutEffect)(()=>{if(f(),!(i||o))return u.current=window.requestAnimationFrame(f),d.current=window.setTimeout(f,220),()=>{u.current!==null&&(window.cancelAnimationFrame(u.current),u.current=null),d.current!==null&&(window.clearTimeout(d.current),d.current=null)}},[i,o,f]),t.length===0)return null;let p=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(0,U.jsx)(`nav`,{"aria-label":`Conversation shortcuts`,className:`group/shortcut-rail pointer-events-none fixed right-5 top-1/2 z-20 hidden -translate-y-1/2 items-center justify-end max-[1180px]:hidden min-[1181px]:flex`,onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||(i||(l.current=!1),s(!1))},onFocusCapture:()=>{l.current=!0,s(!0)},onMouseEnter:()=>{l.current=!0,a(!0)},onMouseLeave:()=>{r(``),a(!1),o||(l.current=!1)},children:(0,U.jsx)(`div`,{className:`pointer-events-auto flowent-hidden-scrollbar flex max-h-[min(78vh,620px)] flex-col items-end gap-1.5 overflow-x-hidden overflow-y-auto overscroll-contain rounded-2xl border border-white/5 bg-black/20 p-2 shadow-[0_16px_44px_rgba(0,0,0,0.2)] backdrop-blur-sm transition-colors duration-200 group-hover/shortcut-rail:bg-black/70`,ref:c,children:t.map(e=>{let t=n===e.id,a=rq(e.content),s=e.author===`user`?`You`:`Flowent`,c=i||o||t;return(0,U.jsxs)(Y,{"aria-label":`Jump to ${s}: ${a}`,className:`group/shortcut h-auto max-w-[260px] cursor-pointer justify-end gap-2 rounded-full border-0 bg-transparent px-0 py-0 text-right text-xs text-white shadow-none transition-all duration-200 hover:bg-transparent hover:text-white focus-visible:ring-2 focus-visible:ring-white/20`,onClick:()=>p(e.id),onMouseEnter:()=>r(e.id),size:`sm`,type:`button`,variant:`ghost`,children:[c?(0,U.jsxs)(`span`,{className:J(`grid max-w-[220px] gap-0.5 overflow-hidden whitespace-nowrap opacity-70 transition-all duration-300 ease-out group-focus-visible/shortcut:opacity-100`,t&&`opacity-100`),children:[(0,U.jsx)(`span`,{className:`text-[10px] font-semibold tracking-wider text-white/45 uppercase`,children:s}),(0,U.jsx)(`span`,{className:`truncate text-[11px] font-medium leading-4 text-white/85`,children:a})]}):null,(0,U.jsx)(`span`,{"aria-hidden":`true`,className:J(`size-1.5 rounded-full bg-white/25 shadow-[0_0_0_1px_rgba(255,255,255,0.08)] transition-all duration-200 group-hover/shortcut-rail:size-2 group-hover/shortcut-rail:bg-white/35 group-hover/shortcut:scale-125`,e.author===`user`&&`bg-white/45`,t&&`size-2.5 scale-150 bg-white`)})]},e.id)})})})}function rq(e){let t=e.split(`
92
- `).map(e=>e.trim()).find(e=>e.length>0)?.replace(/\s+/g,` `);return t?t.length<=64?t:`${t.slice(0,61)}…`:`Message`}function iq({message:e}){let[t,n]=(0,b.useState)(!1),r=ZC(),i=e.content===`Context compacted`||e.content===`Context optimized`,a=e.content===`Context optimized`?Ee:e.content===`Context compacted`?F:null;if(i){let i=`${e.id}-summary`;return(0,U.jsx)(`div`,{className:`mx-auto flex w-full max-w-4xl py-3`,children:(0,U.jsxs)(`div`,{className:`w-full overflow-hidden rounded-xl border border-white/10 bg-input/20 text-white shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]`,children:[(0,U.jsxs)(Y,{"aria-controls":i,"aria-expanded":t,className:`h-auto w-full justify-between rounded-xl border-0 bg-transparent px-4 py-3 text-left text-base leading-5 text-white/80 shadow-none hover:bg-input/30 hover:text-white focus-visible:ring-2 focus-visible:ring-white/20`,onClick:()=>n(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[a?(0,U.jsx)(a,{"aria-hidden":`true`,className:`size-4 shrink-0 text-white/55`}):null,(0,U.jsx)(`span`,{className:`truncate font-medium`,children:e.content})]}),(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-4 shrink-0 text-white/45 transition-transform duration-200`,t&&`rotate-90`)})]}),(0,U.jsx)(eS,{initial:!1,children:t?(0,U.jsx)(XC.div,{animate:{height:`auto`,opacity:1},className:`overflow-hidden`,exit:r?{opacity:0}:{height:0,opacity:0},initial:r?{opacity:0}:{height:0,opacity:0},transition:{duration:.18,ease:[.32,.72,0,1]},children:(0,U.jsx)(`div`,{"aria-label":`${e.content} summary`,className:`border-t border-white/10 px-4 py-3 text-sm leading-6 text-white/80`,id:i,role:`region`,children:(0,U.jsx)(QK,{content:e.summary??``})})}):null})]})})}return(0,U.jsx)(`div`,{className:`mx-auto flex w-full max-w-4xl justify-center py-3`,children:(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-full border border-white/10 bg-input/30 px-3 py-1.5 text-base leading-5 text-white/70`,children:[a?(0,U.jsx)(a,{"aria-hidden":`true`,className:`size-3.5 text-white/50`}):null,e.content]})})}function aq({isPending:e,isResponding:t,isStreaming:n,message:r,onEditMessage:i,onRetryError:a,onRetryMessage:o}){let[s,c]=(0,b.useState)(!1),l=r.author===`assistant`?dq(r):[],u=l.at(-1)?.items.at(-1),d=e&&l.length===0,f=e&&l.length>0&&!n&&(u?.type!==`tool`||u.tool.status!==`waiting`),p=r.author===`user`,m=t||r.id===`assistant-pending`,h=t||!p;return(0,U.jsx)(`article`,{id:r.id,className:J(`flowent-message-row group/message mx-auto flex w-full max-w-4xl scroll-mt-12 scroll-mb-40 py-3`,r.author===`user`?`justify-end`:`justify-start`),children:(0,U.jsx)(`div`,{className:J(`flex min-w-0 flex-col text-base leading-6 text-white`,r.author===`user`?`max-w-[70%] items-end`:`w-full max-w-full`),children:s?(0,U.jsx)(oq,{initialContent:r.content,isResponding:t,onCancel:()=>c(!1),onSave:e=>{i({action:`save`,content:e,messageId:r.id}),c(!1)},onSaveAndRetry:e=>{i({action:`resend`,content:e,messageId:r.id}),c(!1)}}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:J(`min-w-0`,r.author===`user`?`flowent-user-message-bubble rounded-[22px] px-4 py-2.5`:`w-full max-w-full`),children:d?(0,U.jsx)(Mq,{}):(0,U.jsx)(fq,{assistantGroups:l,disableErrorRetry:m,isStreaming:n,message:r,onRetryError:e=>a({errorId:e,messageId:r.id}),showWaitingAfterOutput:f})}),(0,U.jsx)(sq,{canEdit:p,disableEdit:h,disableRetry:m,message:r,onEdit:()=>c(!0),onRetry:()=>o(r.id)})]})})})}function oq({initialContent:e,isResponding:t,onCancel:n,onSave:r,onSaveAndRetry:i}){let[a,o]=(0,b.useState)(e),s=a.length===0,c=s||t;return(0,U.jsxs)(`div`,{className:`w-full min-w-[min(420px,70vw)] max-w-[min(720px,70vw)] rounded-[22px] border border-white/10 bg-input/30 p-2.5 shadow-[inset_0_0_1px_rgba(255,255,255,0.12)]`,children:[(0,U.jsx)(Yf,{"aria-label":`Edit message`,autoFocus:!0,className:`max-h-[240px] min-h-28 resize-none border-white/10 bg-black/30 px-3 py-2 text-base leading-6 text-white shadow-none focus-visible:border-white/20 focus-visible:ring-1 focus-visible:ring-white/20 dark:bg-black/30`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),n();return}e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&!c&&(e.preventDefault(),i(a))}}),(0,U.jsxs)(`div`,{className:`mt-2 flex items-center justify-end gap-1`,children:[(0,U.jsx)(uq,{label:`Cancel`,onClick:n,children:(0,U.jsx)(Pe,{"aria-hidden":`true`,className:`size-4`})}),(0,U.jsx)(uq,{disabled:s,label:`Save`,onClick:()=>r(a),children:(0,U.jsx)(xe,{"aria-hidden":`true`,className:`size-4`})}),(0,U.jsx)(uq,{disabled:c,label:`Save and retry`,onClick:()=>i(a),children:(0,U.jsx)(Ce,{"aria-hidden":`true`,className:`size-4`})})]})]})}function sq({canEdit:e,disableEdit:t,disableRetry:n,message:r,onEdit:i,onRetry:a}){let[o,s]=(0,b.useState)(`idle`),c=(0,b.useRef)(null);(0,b.useEffect)(()=>()=>{c.current!==null&&window.clearTimeout(c.current)},[]);let l=e=>{s(e),c.current!==null&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>{s(`idle`),c.current=null},e===`copied`?2e3:1200)},u=async()=>{l(await cq(r.content)?`copied`:`failed`)},d=o===`copied`?`Copied`:o===`failed`?`Copy failed`:`Copy`;return(0,U.jsxs)(`div`,{className:J(`mt-1 flex items-center gap-0.5 opacity-100 transition-opacity duration-150 hover-only:opacity-0 hover-only:group-hover/message:opacity-100 focus-within:opacity-100`,r.author===`user`?`justify-end pr-1`:`justify-start pl-1`),children:[(0,U.jsx)(uq,{label:d,onClick:()=>void u(),children:o===`copied`?(0,U.jsx)(F,{"aria-hidden":`true`,className:`size-4 text-white`}):o===`failed`?(0,U.jsx)(Ae,{"aria-hidden":`true`,className:`size-4 text-amber-300`}):(0,U.jsx)(ae,{"aria-hidden":`true`,className:`size-4`})}),e?(0,U.jsx)(uq,{disabled:t,label:`Edit`,onClick:i,children:(0,U.jsx)(pe,{"aria-hidden":`true`,className:`size-4`})}):null,(0,U.jsx)(uq,{disabled:n,label:`Retry`,onClick:a,children:(0,U.jsx)(be,{"aria-hidden":`true`,className:`size-4`})})]})}async function cq(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{return lq(e)}return lq(e)}function lq(e){if(typeof document.execCommand!=`function`)return!1;let t=document.activeElement,n=document.createElement(`textarea`);n.value=e,n.setAttribute(`readonly`,``),n.style.position=`fixed`,n.style.top=`-9999px`,n.style.left=`-9999px`,n.style.width=`1px`,n.style.height=`1px`,n.style.opacity=`0`,document.body.appendChild(n),n.focus(),n.select();let r=!1;try{r=document.execCommand(`copy`)}finally{n.remove(),t instanceof HTMLElement&&t.focus({preventScroll:!0})}return r}function uq({children:e,className:t,disabled:n,label:r,onClick:i}){return(0,U.jsxs)(eL,{children:[(0,U.jsx)(tL,{asChild:!0,children:(0,U.jsx)(Y,{"aria-label":r,className:J(`size-7 rounded-lg border-0 bg-transparent text-white/45 shadow-none transition-colors hover:bg-white/10 hover:text-white focus-visible:ring-2 focus-visible:ring-white/20 disabled:pointer-events-auto disabled:cursor-not-allowed disabled:text-white/20 disabled:opacity-100 disabled:hover:bg-transparent`,t),disabled:n,onClick:i,size:`icon-sm`,type:`button`,variant:`ghost`,children:e})}),(0,U.jsx)(nL,{side:`top`,sideOffset:6,children:r})]})}function dq(e){if(e.groups?.length)return e.groups.filter(e=>e.items.length>0);if(e.items?.length)return[{id:`${e.id}-items`,items:e.items}];let t=(e.tools??[]).map(e=>({id:`tool-${e.id}`,tool:e,type:`tool`})),n=e.thinking?{content:e.thinking,id:`${e.id}-thinking`,isStreaming:e.isStreamingThinking,type:`thinking`}:null,r=[],i=[...n?[n]:[],...t];if(t.length&&r.push({id:`${e.id}-process`,items:i}),e.content){let n={content:e.content,id:`${e.id}-content`,type:`text`};t.length?r.push({id:`${e.id}-content`,items:[n]}):r.push({id:`${e.id}-content`,items:[...i,n]})}else i.length&&!t.length&&r.push({id:`${e.id}-process`,items:i});return r}function fq({assistantGroups:e,disableErrorRetry:t,isStreaming:n,message:r,onRetryError:i,showWaitingAfterOutput:a}){return r.author===`assistant`?(0,U.jsx)(`div`,{className:`flowent-markdown-message min-w-0 break-words`,children:(0,U.jsx)(pq,{disableErrorRetry:t,groups:e,isStreaming:n,onRetryError:i,showWaitingAfterOutput:a})}):(0,U.jsx)(`div`,{className:`flowent-markdown-message min-w-0 break-words`,children:(0,U.jsx)(`p`,{className:`m-0 whitespace-pre-wrap break-words`,children:r.content})})}function pq({disableErrorRetry:e,groups:t,isStreaming:n,onRetryError:r,showWaitingAfterOutput:i}){let a=t.flatMap(e=>e.items).reverse().find(e=>e.type===`text`)?.id;return(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-col`,"aria-label":`Assistant response`,children:[t.map((t,i)=>(0,U.jsxs)(b.Fragment,{children:[i>0?(0,U.jsx)(hq,{}):null,(0,U.jsx)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:t.items.map(t=>t.type===`tool`?(0,U.jsx)(_q,{tool:t.tool},t.id):t.type===`thinking`?(0,U.jsx)(gq,{content:t.content,isStreaming:t.isStreaming===!0},t.id):t.type===`error`?(0,U.jsx)(mq,{disabled:e,item:t,onRetry:()=>r(t.id)},t.id):(0,U.jsx)(QK,{content:t.content,isStreaming:n&&t.id===a},t.id))})]},t.id)),i?(0,U.jsx)(`div`,{className:`mt-3`,children:(0,U.jsx)(Mq,{})}):null]})}function mq({disabled:e,item:t,onRetry:n}){return(0,U.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-red-500/15 bg-red-500/[0.06] p-3 text-base leading-5 text-red-100/90`,role:`alert`,children:[(0,U.jsx)(Ae,{"aria-hidden":`true`,className:`mt-0.5 size-4 shrink-0 text-red-400`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`font-semibold text-red-100/95`,children:t.title}),(0,U.jsx)(`div`,{className:`mt-1 text-red-100/75`,children:t.message}),t.detail?(0,U.jsx)(`div`,{className:`mt-2 break-words text-xs leading-5 text-red-100/55`,children:t.detail}):null]}),(0,U.jsx)(uq,{className:`shrink-0 text-red-100/55 hover:bg-red-400/10 hover:text-red-50 disabled:text-red-100/25`,disabled:e,label:`Retry`,onClick:n,children:(0,U.jsx)(be,{"aria-hidden":`true`,className:`size-4`})})]})}function hq(){return(0,U.jsx)(`div`,{"aria-hidden":`true`,className:`my-3 h-px w-full bg-white/10`,"data-testid":`assistant-output-separator`})}function gq({content:e,isStreaming:t}){let[n,r]=(0,b.useState)(!1),i=t||n;return(0,U.jsxs)(`div`,{className:`max-w-full text-base leading-5 text-white`,children:[(0,U.jsxs)(Y,{"aria-expanded":i,className:`h-8 w-full justify-start gap-2 rounded-lg border-0 bg-transparent px-2 text-base text-white/75 shadow-none hover:bg-input/30 hover:text-white`,onClick:()=>r(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 transition-transform`,i?`rotate-90`:``)}),(0,U.jsx)(H,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 text-white/70`,t?`animate-pulse`:``)}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:t?`Thinking...`:`Thought Process`})]}),i?(0,U.jsx)(`div`,{className:`py-1`,children:(0,U.jsx)(`div`,{className:`whitespace-pre-wrap break-words text-base leading-5 text-white/60`,children:e})}):null]})}function _q({tool:e}){let[t,n]=(0,b.useState)(!1),r=e.status===`waiting`?`Waiting`:e.status===`running`?`Running`:e.status===`success`?`Done`:`Failed`;return(0,U.jsxs)(`div`,{className:`max-w-full text-base leading-5 text-white`,children:[(0,U.jsxs)(Y,{"aria-expanded":t,className:`h-8 w-full justify-start gap-2 rounded-lg border-0 bg-transparent px-2 text-base text-white shadow-none hover:bg-transparent hover:text-white aria-expanded:bg-transparent aria-expanded:text-white active:not-aria-[haspopup]:translate-y-0`,onClick:()=>n(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 text-white/55 transition-transform`,t?`rotate-90`:``)}),(0,U.jsx)(Tq,{tool:e}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:e.title}),(0,U.jsx)(`span`,{className:`shrink-0 text-xs text-white/55`,children:r})]}),t?(0,U.jsx)(vq,{tool:e}):null]})}function vq({tool:e}){let t=wq(e.data),n=Cq(e.arguments),r=Cq(e.data),i=e.content!==void 0||r;return!n&&!i?null:(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 py-1`,children:[n?(0,U.jsx)(bq,{label:`ARGS`,value:xq(e.arguments)}):null,i?(0,U.jsx)(bq,{label:`RESULT`,value:Sq(e)}):null,t?(0,U.jsx)(yq,{approval:t}):null]})}function yq({approval:e}){let t=e.decision===`denied`?`Denied`:`Approved`,n=e.toolResult?.trim()?e.toolResult:null;return(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`div`,{className:`mb-1 text-[11px] font-medium leading-4 text-white/45`,children:`REVIEW`}),(0,U.jsxs)(`div`,{className:`grid gap-1 rounded-md border border-white/10 bg-black px-2.5 py-2 text-xs leading-5 text-white/70`,children:[(0,U.jsx)(`div`,{className:`font-medium text-white`,children:t}),e.reason?(0,U.jsx)(`div`,{className:`break-words text-white/60`,children:e.reason}):null,n?(0,U.jsxs)(`div`,{className:`mt-1.5 border-t border-white/5 pt-1.5`,children:[(0,U.jsx)(`div`,{className:`mb-0.5 text-[10px] font-medium leading-4 text-white/40`,children:`FAILURE`}),(0,U.jsx)(`div`,{className:`whitespace-pre-wrap break-words font-mono text-[11px] leading-4 text-white/50`,children:n})]}):null,e.writePaths?.length?(0,U.jsx)(`div`,{className:`grid gap-0.5 font-mono text-[11px] leading-4 text-white/50`,children:e.writePaths.map(e=>(0,U.jsx)(`span`,{className:`break-words`,children:e},e))}):null]})]})}function bq({label:e,value:t}){return(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`div`,{className:`mb-1 text-[11px] font-medium leading-4 text-white/45`,children:e}),(0,U.jsx)(`pre`,{className:`max-h-64 overflow-auto rounded-md bg-input/20 px-2.5 py-2 font-mono text-xs leading-5 text-white/70`,children:(0,U.jsx)(`code`,{className:`whitespace-pre-wrap break-words`,children:t})})]})}function xq(e){return typeof e==`string`?e:JSON.stringify(e,null,2)}function Sq(e){let t={};e.content!==void 0&&(t.content=e.content);let n=e.data;if(Cq(n)){let e=Object.fromEntries(Object.entries(n).filter(([e])=>e!==`approval`));Object.keys(e).length>0&&(t.data=e)}return xq(t)}function Cq(e){return e!=null&&Object.keys(e).length>0}function wq(e){let t=e?.approval;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return{action:typeof n.action==`string`?n.action:void 0,decision:typeof n.decision==`string`?n.decision:void 0,reason:typeof n.reason==`string`?n.reason:void 0,toolResult:typeof n.tool_result==`string`?n.tool_result:void 0,toolName:typeof n.tool_name==`string`?n.tool_name:void 0,writePaths:Array.isArray(n.write_paths)?n.write_paths.filter(e=>typeof e==`string`):void 0}}function Tq({tool:e}){let t=J(`size-3.5 shrink-0`,e.status===`failed`?`text-red-300`:`text-white/80`,e.status===`running`?`animate-pulse`:``,e.status===`waiting`?`text-amber-300`:``);return e.status===`success`?(0,U.jsx)(F,{"aria-hidden":`true`,className:t}):e.status===`failed`?(0,U.jsx)(Pe,{"aria-hidden":`true`,className:t}):e.status===`waiting`?(0,U.jsx)(Ae,{"aria-hidden":`true`,className:t}):e.name===`web_search`||e.name===`grep_files`?(0,U.jsx)(Se,{"aria-hidden":`true`,className:t}):e.name===`shell_command`?(0,U.jsx)(Oe,{"aria-hidden":`true`,className:t}):(0,U.jsx)(H,{"aria-hidden":`true`,className:t})}function Eq(e){for(let t=e.length-1;t>=0;--t){let n=e[t];if(n?.author!==`assistant`)continue;let r=n.tools??[];for(let e=r.length-1;e>=0;--e){let t=r[e];if(t.name!==`update_plan`)continue;let n=Dq(t.data)??Dq(t.arguments);if(n?.length)return{items:n}}}return null}function Dq(e){let t=e?.items;return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.step==`string`?t.step.trim():``;return n?[{status:Oq(t.status),step:n}]:[]}):null}function Oq(e){return e===`completed`||e===`in_progress`||e===`pending`?e:`pending`}function kq({isHidden:e,plan:t}){let[n,r]=(0,b.useState)(!1),i=(0,b.useRef)(null),a=ZC();if((0,b.useEffect)(()=>{e&&r(!1)},[e]),(0,b.useEffect)(()=>{if(!n)return;let e=e=>{if(e.pointerType===`mouse`)return;let t=e.target;t instanceof Node&&(i.current?.contains(t)||r(!1))},t=e=>{e.key===`Escape`&&r(!1)};return window.addEventListener(`pointerdown`,e),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e),window.removeEventListener(`keydown`,t)}},[n]),!t||e)return null;let o=`Plan · ${t.items.filter(e=>e.status===`completed`).length}/${t.items.length} done`;return(0,U.jsxs)(`div`,{className:`border-b border-zinc-800/50 bg-zinc-900/40 shadow-[inset_0_-1px_0_rgba(255,255,255,0.03)]`,onPointerLeave:e=>{e.pointerType===`mouse`&&r(!1)},ref:i,children:[(0,U.jsxs)(Y,{"aria-expanded":n,className:`h-9 w-full justify-start gap-2 rounded-none border-0 bg-transparent px-3 text-xs font-medium text-zinc-300 shadow-none hover:bg-input/40 hover:text-white sm:text-sm`,onClick:()=>r(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 text-white/55 transition-transform`,n&&`rotate-90`)}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:o})]}),(0,U.jsx)(eS,{initial:!1,children:n?(0,U.jsx)(XC.div,{animate:a?{opacity:1}:{height:`auto`,opacity:1},className:`overflow-hidden border-t border-zinc-800/50 bg-zinc-950/50`,"data-slot":`plan-tasks-panel`,exit:a?{opacity:1}:{height:0,opacity:0},initial:a?!1:{height:0,opacity:0},transition:a?{duration:0}:{duration:.18,ease:[.32,.72,0,1]},children:(0,U.jsx)(`ol`,{"aria-label":`Plan tasks`,className:`grid max-h-[150px] gap-1 overflow-auto p-1.5 sm:max-h-[25vh]`,children:t.items.map((e,t)=>(0,U.jsxs)(`li`,{className:J(`grid min-w-0 grid-cols-[1.25rem_auto_minmax(0,1fr)_auto] items-start gap-2 rounded-lg px-2 py-1.5 text-sm leading-5`,e.status===`in_progress`?`bg-input/30 text-white`:e.status===`completed`?`text-white/55`:`text-white/75`),children:[(0,U.jsx)(`span`,{className:`text-right text-xs leading-5 text-white/35`,children:t+1}),(0,U.jsx)(Aq,{status:e.status}),(0,U.jsx)(`span`,{className:`min-w-0 break-words`,children:e.step}),(0,U.jsx)(`span`,{className:`shrink-0 text-xs leading-5 text-white/45`,children:jq(e.status)})]},`${t}-${e.step}`))})},`plan-tasks-panel`):null})]})}function Aq({status:e}){let t=`mt-0.5 size-3.5 shrink-0`;return e===`completed`?(0,U.jsx)(F,{"aria-hidden":`true`,className:J(t,`text-white/65`)}):e===`in_progress`?(0,U.jsx)(M,{"aria-hidden":`true`,className:J(t,`animate-pulse text-white`)}):(0,U.jsx)(H,{"aria-hidden":`true`,className:J(t,`text-white/40`)})}function jq(e){return e===`completed`?`Done`:e===`in_progress`?`Doing`:`Pending`}function Mq(){return(0,U.jsxs)(`div`,{"aria-label":`Thinking`,className:`flex h-6 items-center gap-1.5`,role:`status`,children:[(0,U.jsx)(`span`,{className:`flowent-thinking-dot`}),(0,U.jsx)(`span`,{className:`flowent-thinking-dot`}),(0,U.jsx)(`span`,{className:`flowent-thinking-dot`})]})}function Nq({commands:e,contextWindowLimit:t,draft:n,errorMessage:r,isRefiningContext:i,isSending:a,messages:o,plan:s,usageInfo:c,onCommand:l,onCommandError:u,onDraftChange:d,onOffsetChange:f,onSendMessage:p,onStopResponse:m,skills:h}){let g=(0,b.useRef)(null),_=(0,b.useRef)(null),v=(0,b.useRef)(!1),y=(0,b.useRef)(()=>{}),x=(0,b.useRef)(!1),S=(0,b.useRef)(!1),C=(0,b.useRef)(!1),w=(0,b.useRef)(!1),T=(0,b.useRef)(null),E=(0,b.useRef)(``),[D,O]=(0,b.useState)(!1),[k,A]=(0,b.useState)(!1),[j,M]=(0,b.useState)(0),[N,ee]=(0,b.useState)(0),F=(0,b.useMemo)(()=>Pq(o),[o]),I=n.split(`
93
- `)[0]??``,L=I.startsWith(`/`)?I.slice(1):``,te=I.startsWith(`/`)&&!L.includes(`/`)&&!I.includes(` `),R=(0,b.useMemo)(()=>{if(!te)return[];let t=L.toLowerCase();return e.filter(e=>e.name.toLowerCase().startsWith(t))},[L,e,te]),z=te&&!D&&R.length>0,B=n.match(/(?:^|\s)\$([a-z0-9-]*)$/i),V=B?.[1]??``,ne=!!B,H=(0,b.useMemo)(()=>{if(!ne)return[];let e=V.toLowerCase();return h.filter(t=>t.enabled&&!t.error&&t.slug.toLowerCase().startsWith(e))},[ne,V,h]),re=!z&&ne&&!k&&H.length>0,ie=e.find(e=>e.name===L),ae=!!(te&&ie)&&(!a||ie?.id===`clear`),oe=()=>_.current?.value??n,se=Gq();x.current=se;let ce=oe().length>0&&(!a||ae)&&!i,le=a&&!ae,ue=!le&&!ce,de=ue&&!se,fe=(0,b.useMemo)(()=>Bq(o,n,c,t),[t,n,o,c]);(0,b.useEffect)(()=>{if(S.current){S.current=!1;return}O(!1),M(0)},[n]),(0,b.useEffect)(()=>{if(w.current){w.current=!1;return}A(!1),ee(0)},[n]),(0,b.useEffect)(()=>{if(C.current){C.current=!1;return}T.current=null,E.current=``},[n]),(0,b.useEffect)(()=>{M(e=>Math.min(e,Math.max(R.length-1,0)))},[R.length]),(0,b.useEffect)(()=>{ee(e=>Math.min(e,Math.max(H.length-1,0)))},[H.length]),(0,b.useEffect)(()=>{let e=g.current;if(!e)return;let t=0,n=()=>{t=0;let n=Number.parseFloat(getComputedStyle(e).bottom),r=Number.isFinite(n)?n:0;f(e.offsetHeight+r+24)},r=()=>{t!==0&&window.cancelAnimationFrame(t),t=window.requestAnimationFrame(n)};if(n(),window.addEventListener(`resize`,r,{passive:!0}),window.addEventListener(`focusin`,r,{passive:!0}),window.addEventListener(`focusout`,r,{passive:!0}),window.visualViewport?.addEventListener(`resize`,r,{passive:!0}),window.visualViewport?.addEventListener(`scroll`,r,{passive:!0}),typeof ResizeObserver>`u`)return()=>{t!==0&&window.cancelAnimationFrame(t),window.removeEventListener(`resize`,r),window.removeEventListener(`focusin`,r),window.removeEventListener(`focusout`,r),window.visualViewport?.removeEventListener(`resize`,r),window.visualViewport?.removeEventListener(`scroll`,r)};let i=new ResizeObserver(r);return i.observe(e),()=>{t!==0&&window.cancelAnimationFrame(t),window.removeEventListener(`resize`,r),window.removeEventListener(`focusin`,r),window.removeEventListener(`focusout`,r),window.visualViewport?.removeEventListener(`resize`,r),window.visualViewport?.removeEventListener(`scroll`,r),i.disconnect()}},[f]);let pe=e=>{if(!l(e.id)){O(!0);return}d(``),O(!1)},me=()=>{if(!te||L.length===0)return!1;let t=e.find(e=>e.name===L);return t?(pe(t),!0):!1},he=e=>{let t=n.replace(/(?:^|\s)\$([a-z0-9-]*)$/i,t=>`${t.startsWith(` `)?` `:``}$${e.slug} `);w.current=!0,d(t),A(!0)},ge=e=>{C.current=!0,d(e),window.requestAnimationFrame(()=>{let t=_.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length))})},_e=e=>{if(F.length===0||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||e.nativeEvent.isComposing)return!1;let t=e.currentTarget;if(e.key===`ArrowUp`){if(!Fq(t))return!1;e.preventDefault();let n=T.current,r=n===null?F.length-1:Math.max(n-1,0);return n===null&&(E.current=t.value),T.current=r,ge(F[r]),!0}if(e.key!==`ArrowDown`||!Iq(t))return!1;let n=T.current;if(n===null)return!1;e.preventDefault();let r=n+1;return r>=F.length?(T.current=null,ge(E.current),E.current=``,!0):(T.current=r,ge(F[r]),!0)},ve=()=>{let e=oe();if(re){let e=H[N];if(e){he(e);return}}if(z){let e=R[j];if(e){pe(e);return}}if(!me()){if(te&&L.length>0){O(!1),u(`Command not found.`);return}p(e)}};return y.current=()=>{ve()},(0,b.useEffect)(()=>{let e=_.current;if(!e)return;let t=e=>{if(x.current){if(v.current){v.current=!1;return}e.inputType!==`insertLineBreak`&&e.inputType!==`insertParagraph`||(e.preventDefault(),y.current())}};return e.addEventListener(`beforeinput`,t),()=>e.removeEventListener(`beforeinput`,t)},[]),(0,U.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-[calc(1.5rem+var(--flowent-keyboard-offset))] z-10 px-6 max-[900px]:px-4`,ref:g,children:(0,U.jsxs)(`div`,{className:`pointer-events-auto mx-auto w-full max-w-[640px]`,children:[z?(0,U.jsx)(`div`,{"aria-label":`Commands`,className:`mb-2 overflow-hidden rounded-xl border border-white/10 bg-[#171717] p-1 shadow-[0_16px_44px_rgba(0,0,0,0.42)]`,role:`listbox`,children:R.map((e,t)=>(0,U.jsxs)(Y,{"aria-selected":t===j,className:J(`flex h-auto w-full items-center justify-start gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left text-base text-white shadow-none transition-colors hover:bg-input/50 hover:text-white`,t===j&&`bg-input/40`),onClick:()=>pe(e),onMouseEnter:()=>M(t),size:`sm`,role:`option`,type:`button`,variant:`ghost`,children:[(0,U.jsx)(Oe,{"aria-hidden":`true`,className:`size-4 text-white/75`}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`span`,{className:`block font-medium leading-5`,children:e.label}),(0,U.jsx)(`span`,{className:`block truncate text-xs leading-4 text-white/55`,children:e.description})]})]},e.id))}):null,re?(0,U.jsx)(`div`,{"aria-label":`Skills`,className:`mb-2 overflow-hidden rounded-xl border border-white/10 bg-[#171717] p-1 shadow-[0_16px_44px_rgba(0,0,0,0.42)]`,role:`listbox`,children:H.map((e,t)=>(0,U.jsxs)(Y,{"aria-selected":t===N,className:J(`flex h-auto w-full items-center justify-start gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left text-base text-white shadow-none transition-colors hover:bg-input/50 hover:text-white`,t===N&&`bg-input/40`),onClick:()=>he(e),onMouseEnter:()=>ee(t),size:`sm`,role:`option`,type:`button`,variant:`ghost`,children:[(0,U.jsx)(Ee,{"aria-hidden":`true`,className:`size-4 text-white/75`}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`span`,{className:`block font-medium leading-5`,children:[`$`,e.slug]}),(0,U.jsx)(`span`,{className:`block truncate text-xs leading-4 text-white/55`,children:e.description||e.name})]})]},e.id))}):null,r?(0,U.jsx)(`p`,{className:`mb-2 rounded-md bg-black/80 px-3 py-2 text-base leading-5 text-red-300 shadow-[0_12px_32px_rgba(0,0,0,0.45)]`,children:r}):null,(0,U.jsxs)(`form`,{"aria-label":`Workspace composer`,className:`flex flex-col-reverse overflow-clip rounded-[14px] border border-zinc-800 bg-zinc-950 shadow-[0_16px_44px_rgba(0,0,0,0.42),inset_0_0_1px_rgba(255,255,255,0.2)] transition-colors focus-within:border-zinc-700`,onSubmit:e=>{e.preventDefault(),ve()},children:[(0,U.jsx)(zq,{capacity:fe,isRefining:i}),(0,U.jsxs)(`div`,{className:`grid min-h-14 w-full grid-cols-[minmax(0,1fr)_auto] items-center gap-2 bg-[#212121] p-2.5`,children:[(0,U.jsx)(Yf,{"aria-label":`Message Flowent`,className:`flowent-composer-textarea max-h-[216px] min-h-9 resize-none overflow-y-auto border-0 bg-transparent px-2 py-1.5 text-white shadow-none placeholder:text-[#9b9b9b] focus-visible:border-transparent focus-visible:ring-0 dark:bg-transparent`,enterKeyHint:`send`,ref:_,value:n,onChange:e=>d(e.target.value),onInput:e=>d(e.currentTarget.value),onKeyDown:e=>{if(v.current=e.key===`Enter`&&e.shiftKey,re){if(e.key===`ArrowDown`){e.preventDefault(),ee((N+1)%H.length);return}if(e.key===`ArrowUp`){e.preventDefault(),ee((N-1+H.length)%H.length);return}if(e.key===`Tab`){let t=H[N];t&&(e.preventDefault(),he(t));return}if(e.key===`Escape`){e.preventDefault(),A(!0);return}}if(z){if(e.key===`ArrowDown`){e.preventDefault(),M((j+1)%R.length);return}if(e.key===`ArrowUp`){e.preventDefault(),M((j-1+R.length)%R.length);return}if(e.key===`Tab`){let t=R[j];t&&(e.preventDefault(),S.current=!0,d(t.label),O(!0));return}if(e.key===`Escape`){e.preventDefault(),O(!0);return}}_e(e)||e.key!==`Enter`||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),ve())},placeholder:`Message Flowent`}),(0,U.jsx)(Y,{"aria-label":le?`Stop`:`Send message`,className:J(`size-9 rounded-full shadow-none disabled:bg-transparent disabled:text-white/35 disabled:opacity-100 [&_svg]:size-5`,le?`bg-white text-black hover:bg-[#e5e5e5] [&_svg]:size-3.5`:`bg-white text-black hover:bg-[#e5e5e5]`,ue&&`bg-transparent text-white/35 hover:bg-transparent`),"aria-disabled":ue,disabled:de,onClick:le?m:void 0,size:`icon-lg`,type:le?`button`:`submit`,children:le?(0,U.jsx)(De,{"aria-hidden":`true`,fill:`currentColor`}):(0,U.jsx)(P,{"aria-hidden":`true`})})]}),(0,U.jsx)(kq,{isHidden:z||re,plan:s})]})]})})}function Pq(e){let t=[];for(let n of e)n.author!==`user`||n.content.trim().length===0||t.at(-1)!==n.content&&t.push(n.content);return t}function Fq(e){return!e.value.slice(0,e.selectionStart).includes(`
94
- `)}function Iq(e){return!e.value.slice(e.selectionEnd).includes(`
95
- `)}var Lq=12e4,Rq=12e3;function zq({capacity:e,isRefining:t}){let n=e.tone===`critical`?`bg-red-500`:e.tone===`warning`?`bg-amber-500`:`bg-zinc-400`,r=e.tone===`critical`?`text-red-400`:e.tone===`warning`?`text-amber-400`:`text-zinc-300`,i=`${Hq(e.used)} / ${Hq(e.total)}`;return(0,U.jsxs)(`div`,{"aria-busy":t,"aria-live":`polite`,className:`flex min-h-9 items-center justify-between gap-3 border-t border-zinc-800/50 bg-zinc-900/40 px-4 py-1.5 shadow-[inset_0_1px_0_rgba(255,255,255,0.03)] transition-colors`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-[10px] font-semibold tracking-wider text-zinc-500 uppercase`,children:[(0,U.jsx)(M,{"aria-hidden":`true`,className:J(`size-3 shrink-0`,t&&`animate-pulse`)}),(0,U.jsx)(`span`,{className:`hidden sm:inline`,children:`Context`})]}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:J(`text-[10px] font-semibold whitespace-nowrap`,t?`animate-pulse text-zinc-300`:`text-zinc-500 uppercase`),children:t?`Refining...`:i}),(0,U.jsx)(`div`,{"aria-label":`Context capacity status`,"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":e.percent,className:`h-1 w-16 overflow-hidden rounded-full bg-zinc-800 sm:w-24`,role:`progressbar`,children:(0,U.jsx)(`div`,{className:J(`h-full rounded-full transition-all duration-500 ease-in-out`,t&&`flowent-context-refining-indicator w-1/3 opacity-80`,n),style:{width:t?void 0:`${e.percent}%`}})}),!t&&(0,U.jsxs)(`span`,{className:J(`text-[10px] font-semibold`,r),children:[e.percent,`%`]})]})]})}function Bq(e,t,n,r){let i=Vq(e),a=n??(i>=0?e[i].usage_info:null),o=a?.last_token_usage.total_tokens,s=[...(a&&i>=0?e.slice(i+1):a?[]:e).map(e=>e.content),t].reduce((e,t)=>e+Wq(t),Math.max(0,o??0)),c=Math.max(1,r??a?.model_context_window??Lq),l=Uq(s,c);return{percent:l,tone:l>90?`critical`:l>=75?`warning`:`neutral`,total:c,used:s}}function Vq(e){for(let t=e.length-1;t>=0;--t)if(e[t].usage_info)return t;return-1}function Hq(e){return e>=1e3?`${Math.floor(e/1e3)}k`:e.toString()}function Uq(e,t){if(t<=Rq)return e>0?100:0;let n=Math.max(0,e-Rq),r=t-Rq;return Math.min(100,Math.floor(n/r*100))}function Wq(e){return e?Math.max(1,Math.ceil(new TextEncoder().encode(e).length/4)):0}function Gq(){return typeof navigator>`u`?!1:/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1}var Kq=(e,t,n)=>{let r=[];e.status===`error`&&e.error&&r.push(`channel:telegram:${e.error}`);for(let e of t)e.status===`error`&&e.error&&r.push(`mcp:${e.id}:${e.error}`);for(let e of n)e.enabled&&e.error&&r.push(`skill:${e.id}:${e.error}`);return r},qq=(e,t)=>e===null||t===null?e:{...e,model_context_window:t},Jq=e=>({apiKey:e.api_key,baseUrl:e.base_url,id:e.id,models:e.models,name:e.name,type:e.type}),Yq=e=>({api_key:e.apiKey,base_url:e.baseUrl,id:e.id,models:e.models,name:e.name,type:e.type}),Xq=e=>({chatId:e.chat_id,displayName:e.display_name,recentMessage:e.recent_message,status:e.status,updatedAt:e.updated_at??0,userId:e.user_id,username:e.username}),Zq=e=>({chat_id:e.chatId,display_name:e.displayName,recent_message:e.recentMessage,status:e.status,updated_at:e.updatedAt,user_id:e.userId,username:e.username}),Qq=()=>({botSecret:``,enabled:!1,error:``,sessions:[],status:`disabled`}),$q=e=>({botSecret:e?.bot_token??``,enabled:e?.enabled??!1,error:e?.error??``,sessions:(e?.sessions??[]).map(Xq),status:e?.status??`disabled`}),eJ=e=>({bot_token:e.botSecret,enabled:e.enabled,error:e.error,sessions:e.sessions.map(Zq),status:e.status}),tJ=e=>({createdAt:e.created_at,path:e.path}),nJ=e=>({data:e.data??{},description:e.description??``,id:e.id,name:e.name,position:e.position??{x:0,y:0},type:e.type}),rJ=e=>({data:e.data,description:e.description,id:e.id,name:e.name,position:e.position,type:e.type}),iJ=e=>({id:e.id,label:e.label??``,source:e.source,sourceHandle:e.source_handle??``,target:e.target,targetHandle:e.target_handle??``}),aJ=e=>({id:e.id,label:e.label,source:e.source,source_handle:e.sourceHandle,target:e.target,target_handle:e.targetHandle}),oJ=e=>({edges:(e.edges??[]).map(iJ),nodes:(e.nodes??[]).map(nJ),version:e.version??1}),sJ=e=>({edges:e.edges.map(aJ),nodes:e.nodes.map(rJ),version:e.version}),cJ=e=>({createdAt:e.created_at,definition:oJ(e.definition),id:e.id,name:e.name,updatedAt:e.updated_at}),lJ=e=>({created_at:e.createdAt,definition:sJ(e.definition),id:e.id,name:e.name,updated_at:e.updatedAt}),uJ=e=>({nodeResults:e.node_results.map(e=>({error:e.error,id:e.id,output:e.output,status:e.status})),outputs:e.outputs,status:e.status,workflowId:e.workflow_id}),dJ=async(e,t)=>{try{let t=await e.json();if(typeof t.detail==`string`&&t.detail.trim())return t.detail}catch{return t}return t},fJ=e=>[e.command,...e.args].filter(Boolean).join(` `),pJ=e=>({description:e.description??``,inputSchema:e.input_schema??{},name:e.name,outputSchema:e.output_schema??null}),mJ=e=>({args:e.args??[],command:e.command??``,commandLine:fJ({args:e.args??[],command:e.command??``}),config:e.config??{},enabled:e.enabled,error:e.error??``,id:e.id,name:e.name,status:e.status??`disabled`,tools:(e.tools??[]).map(pJ),type:e.type,url:e.url??``}),hJ=e=>({args:e.args,command:e.command,config:e.config,enabled:e.enabled,error:e.error,id:e.id,name:e.name,status:e.status,tools:e.tools.map(e=>({description:e.description,input_schema:e.inputSchema,name:e.name,output_schema:e.outputSchema})),type:e.type,url:e.url}),gJ=()=>({args:[],command:``,commandLine:``,config:{},enabled:!0,error:``,id:`new`,name:``,status:`disabled`,tools:[],type:`command`,url:``}),_J=e=>{let t=[],n=``,r=``,i=!1;for(let a of e){if(i){n+=a,i=!1;continue}if(a===`\\`){i=!0;continue}if(r){a===r?r=``:n+=a;continue}if(a===`'`||a===`"`){r=a;continue}if(/\s/.test(a)){n&&=(t.push(n),``);continue}n+=a}return n&&t.push(n),{args:t.slice(1),command:t[0]??``}},vJ=e=>{let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);return t?`mcp-${t}`:Bd(`mcp`)},yJ=e=>{if(e.groups?.length)return e.groups;let t=e.thinking?{content:e.thinking,id:`${e.id}-thinking-existing`,isStreaming:!1,type:`thinking`}:null,n=(e.tools??[]).map(e=>({id:`tool-${e.id}`,tool:e,type:`tool`})),r=[],i=[...t?[t]:[],...n];return i.length&&r.push({id:`${e.id}-process-existing`,items:i}),e.content&&r.push({id:`${e.id}-content-existing`,items:[{content:e.content,id:`${e.id}-text-existing`,type:`text`}]}),r},bJ=(e,t)=>e.flatMap(e=>e.items).filter(e=>e.type===t).length,xJ=e=>{for(let t=e.length-1;t>=0;--t){let n=e[t]?.items??[];for(let e=n.length-1;e>=0;--e){let t=n[e];if(t)return t}}return null},SJ=(e,t)=>{let n=[],r=!1;for(let i of yJ(e)){let e=[];for(let n of i.items){if(n.type===`error`&&n.id===t){r=!0;break}e.push(n)}if(r){e.length>0&&n.push({...i,items:e});break}n.push(i)}return r?{...e,content:n.flatMap(e=>e.items).filter(e=>e.type===`text`).map(e=>e.content).join(``),groups:n,isStreamingText:!1,isStreamingThinking:!1,status:`running`,thinking:n.flatMap(e=>e.items).filter(e=>e.type===`thinking`).map(e=>e.content).join(``),tools:n.flatMap(e=>e.items).filter(e=>e.type===`tool`).map(e=>e.tool)}:null},CJ=(e,t)=>({id:`${t||`assistant`}-error-1`,message:e,title:`Response interrupted`,type:`error`}),wJ=e=>{for(let t=e.length-1;t>=0;--t){let n=e[t]?.usage_info;if(n)return n}return null},TJ=e=>typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`,EJ=class extends Error{},DJ=(e,t)=>{for(let n=t;n>=0;--n){let t=e[n];if(t?.author===`user`)return t}return null};function OJ(){let e=Vf(),[t,n]=(0,b.useState)(`workspace`),[r,i]=(0,b.useState)(``),[a,o]=(0,b.useState)(``),[s,c]=(0,b.useState)(``),[l,u]=(0,b.useState)(``),[d,f]=(0,b.useState)(null),[p,m]=(0,b.useState)(`default`),[h,g]=(0,b.useState)(``),[_,v]=(0,b.useState)([]),[y,x]=(0,b.useState)(null),S=(0,b.useRef)(null),[C,w]=(0,b.useState)([]),[T,E]=(0,b.useState)([]),[D,O]=(0,b.useState)([]),[k,A]=(0,b.useState)(``),[j,M]=(0,b.useState)(`new`),[N,P]=(0,b.useState)(()=>gJ()),[ee,F]=(0,b.useState)(!1),[I,L]=(0,b.useState)([]),[te,R]=(0,b.useState)(`claude_code`),[z,B]=(0,b.useState)(!1),[V,ne]=(0,b.useState)(``),[H,re]=(0,b.useState)(()=>Qq()),[ie,ae]=(0,b.useState)(`new`),[oe,se]=(0,b.useState)(()=>zf()),[ce,le]=(0,b.useState)(!1),[ue,de]=(0,b.useState)(!1),[fe,pe]=(0,b.useState)(!1),[me,he]=(0,b.useState)([]),[ge,_e]=(0,b.useState)(``),ve=(0,b.useRef)(null),ye=(0,b.useRef)(0),be=(0,b.useRef)([]),xe=(0,b.useRef)(0),Se=(0,b.useRef)(new Set),Ce=(0,b.useRef)(!1),[we,Te]=(0,b.useState)(0),[Ee,De]=(0,b.useState)([]),[Oe,ke]=(0,b.useState)(null),[Ae,je]=(0,b.useState)(``),[Me,Ne]=(0,b.useState)(``),[Pe,Fe]=(0,b.useState)(0),Ie=(0,b.useMemo)(()=>C.find(e=>e.id===s),[C,s]),Le=ie===`new`,Re=j===`new`,ze=(0,b.useMemo)(()=>D.find(e=>e.id===k)??D[0],[k,D]),Be=(0,b.useMemo)(()=>T.some(e=>e.status===`starting`),[T]),Ve=(0,b.useMemo)(()=>Ee.find(e=>e.id===Me)??null,[Me,Ee]),He=(0,b.useCallback)(e=>{if(typeof e!=`function`){S.current=e,x(e);return}x(t=>{let n=e(t);return S.current=n,n})},[]);(0,b.useEffect)(()=>{let t=new Set,n=(n,r)=>{t.add(n),!Se.current.has(n)&&e.error(r)};H.status===`error`&&H.error&&n(`channel:telegram:${H.error}`,H.error);for(let e of T)e.status!==`error`||!e.error||n(`mcp:${e.id}:${e.error}`,e.error);for(let e of D)!e.enabled||!e.error||n(`skill:${e.id}:${e.error}`,e.error);Se.current=t},[T,D,H,e]),(0,b.useEffect)(()=>{be.current=_},[_]);let Ue=(0,b.useCallback)(e=>{w(e.providers.map(Jq)),v(e.messages),He(qq(e.usage_info??wJ(e.messages),e.settings.context_window_limit??null));let t=(e.mcp_servers??[]).map(mJ);E(t),t[0]&&(M(t[0].id),P(t[0]));let n=e.skills??[];O(n),A(n[0]?.id??``),o(e.settings.agent_prompt??``),c(e.settings.selected_provider_id),u(e.settings.selected_model),f(e.settings.context_window_limit??null),m(e.settings.reasoning_effort??`default`);let r=$q(e.telegram_bot);re(r),he((e.writable_paths??[]).map(tJ)),De((e.workflows??[]).map(cJ));let i=!!e.is_responding;ye.current=e.response_event_index??0,de(i),pe(!!e.is_compacting),Ce.current||=(i&&Te(e=>e+1),Se.current=new Set(Kq(r,t,n)),!0)},[He]),We=(0,b.useCallback)(async()=>{let e=await fetch(`/api/state`);if(!e.ok)return null;let t=await e.json();return Ue(t),t},[Ue]);(0,b.useEffect)(()=>{let e=!0;return(async()=>{try{let[t,n]=await Promise.all([We(),fetch(`/api/about`)]);if(!t)return;let r=n.ok?await n.json():{};if(!e)return;g(typeof r.version==`string`?r.version:``)}catch{}})(),()=>{e=!1}},[We]),(0,b.useEffect)(()=>{if(!Be)return;let e=!0,t=async()=>{try{let t=await fetch(`/api/state`);if(!t.ok||!e)return;let n=await t.json();if(!e)return;let r=(n.mcp_servers??[]).map(mJ);E(r),P(e=>{let t=r.find(t=>t.id===e.id);return t?{...e,error:t.error,status:t.status,tools:t.tools}:e})}catch{}};t();let n=window.setInterval(()=>{t()},1e3);return()=>{e=!1,window.clearInterval(n)}},[Be]),(0,b.useEffect)(()=>{if(!fe)return;let e=window.setInterval(()=>{We().catch(()=>void 0)},1e3);return()=>{window.clearInterval(e)}},[fe,We]);let Ge=e=>{ae(e.id),se(e)},Ke=()=>{ae(`new`),se(zf())},qe=e=>{re(t=>({...t,...e}))},Je=e=>{F(!1),M(e.id),P(e)},Ye=()=>{F(!1),M(`new`),P(gJ())},Xe=()=>{F(!0),L([]),R(`claude_code`),$e(`claude_code`)},Ze=e=>{A(e.id)},Qe=e=>{P(t=>({...t,...e}))},$e=async(t=te)=>{B(!0);try{let e=await fetch(`/api/mcp/import/preview`,{body:JSON.stringify({source:t}),headers:{"Content-Type":`application/json`},method:`POST`});if(!e.ok)throw Error(`Scan could not be completed.`);L(((await e.json()).servers??[]).map(e=>mJ(e)))}catch{L([]),e.error(`Scan could not be completed.`)}finally{B(!1)}},et=async t=>{if(!I.some(e=>e.id===t)){e.error(`No servers found.`);return}ne(t);try{let e=await fetch(`/api/mcp/import`,{body:JSON.stringify({server_id:t,source:te}),headers:{"Content-Type":`application/json`},method:`POST`});if(!e.ok)throw Error(`Import could not be completed.`);let n=(await e.json()).map(e=>mJ(e));E(n);let r=n.find(e=>e.id===t)??n[0];r&&(F(!1),M(r.id),P(r))}catch{e.error(`Import could not be completed.`)}finally{ne(``)}},tt=e=>{R(e),L([]),$e(e)},nt=e=>{se(t=>({...t,...e}))},rt=async e=>{await fetch(`/api/settings`,{body:JSON.stringify({agent_prompt:e.agentPrompt,context_window_limit:e.contextWindowLimit,reasoning_effort:e.reasoningEffort,selected_model:e.selectedModel,selected_provider_id:e.selectedProviderId}),headers:{"Content-Type":`application/json`},method:`PUT`})},it=async e=>{await rt(e),await We()},W=e=>{let t=C.find(t=>t.id===e);if(!t){c(``),u(``),it({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:``,selectedProviderId:``});return}c(t.id),u(``),it({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:``,selectedProviderId:t.id})},at=e=>{u(e),it({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:e,selectedProviderId:s})},ot=e=>{m(e),rt({agentPrompt:a,contextWindowLimit:d,reasoningEffort:e,selectedModel:l,selectedProviderId:s})},st=e=>{o(e.agentPrompt),f(e.contextWindowLimit),He(t=>qq(t,e.contextWindowLimit)),m(e.reasoningEffort),u(e.selectedModel),c(e.selectedProviderId),it(e)},ct={access_denied:{description:`Check the key and account access.`,message:`Access denied.`},connection_failed:{description:`Check the address and try again.`,message:`Connection failed.`},provider_unavailable:{description:`The service is currently unreachable.`,message:`Provider unavailable.`},rate_limited:{description:`Please wait a moment and try again.`,message:`Too many requests.`},request_failed:{description:`Check the connection settings and try again.`,message:`Request failed.`}},lt=e=>typeof e==`string`&&e in ct,ut=async e=>{try{let t=(await e.json()).detail?.code;if(lt(t))return t}catch{return`request_failed`}return`request_failed`},dt=async()=>{le(!0);try{let t=await fetch(`/api/providers/models`,{body:JSON.stringify({base_url:oe.baseUrl,provider:oe.type,secret_reference:oe.apiKey}),headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok){let n=await ut(t);e.error(ct[n]);return}let n=(await t.json()).models??[];nt({models:n}),n.length===0&&e.error({description:`No models available for this provider.`,message:`No models found.`})}catch{e.error(ct.connection_failed)}finally{le(!1)}},ft=async()=>{let e={...oe,id:Le?Bd(`provider`):oe.id,name:oe.name.trim()||Rf.find(e=>e.id===oe.type)?.label||`Provider`};w(t=>Le?[...t,e]:t.map(t=>t.id===e.id?e:t)),ae(e.id),se(e),s||(c(e.id),u(``),rt({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:``,selectedProviderId:e.id})),await fetch(`/api/providers`,{body:JSON.stringify(Yq(e)),headers:{"Content-Type":`application/json`},method:`POST`})},pt=async()=>{if(Le)return;let e=oe.id;if((await fetch(`/api/providers/${e}`,{headers:{"Content-Type":`application/json`},method:`DELETE`})).ok){let t=C.findIndex(t=>t.id===e),n=C.filter(t=>t.id!==e);w(n);let r=n[t]||n[t-1];if(r?Ge(r):Ke(),s===e){let e=r?.id??``,t=r?.models[0]??``;c(e),u(t),rt({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:t,selectedProviderId:e})}}},mt=async()=>{let e=await fetch(`/api/telegram-bot`,{body:JSON.stringify(eJ(H)),headers:{"Content-Type":`application/json`},method:`PUT`});e.ok&&re($q(await e.json()))},ht=async()=>{let e=N.type===`command`?_J(N.commandLine):{args:[],command:``},t={...N,args:e.args,command:e.command,id:Re||N.id===`new`?vJ(N.name):N.id,name:N.name.trim()||`Server`,tools:Re?[]:N.tools,url:N.type===`url`?N.url:``},n=await fetch(`/api/mcp/servers`,{body:JSON.stringify(hJ(t)),headers:{"Content-Type":`application/json`},method:`PUT`});if(n.ok){let e=mJ(await n.json());E(t=>Re?[...t,e]:t.map(t=>t.id===e.id?e:t)),M(e.id),P(e)}},gt=async()=>{if(Re)return;let e=await fetch(`/api/mcp/servers/${N.id}/reconnect`,{headers:{"Content-Type":`application/json`},method:`POST`});if(e.ok){let t=mJ(await e.json());E(e=>e.map(e=>e.id===t.id?t:e)),P(t)}},_t=async()=>{if(!Re&&(await fetch(`/api/mcp/servers/${N.id}`,{headers:{"Content-Type":`application/json`},method:`DELETE`})).ok){let e=T.filter(e=>e.id!==N.id);E(e);let t=e[0];t?(M(t.id),P(t)):Ye()}},vt=async()=>{let e=await fetch(`/api/skills/reload`,{headers:{"Content-Type":`application/json`},method:`POST`});if(e.ok){let t=await e.json();O(t),A(e=>t.some(t=>t.id===e)?e:t[0]?.id??``)}},yt=async(e,t)=>{let n=await fetch(`/api/skills/${encodeURIComponent(e.id)}`,{body:JSON.stringify({enabled:t}),headers:{"Content-Type":`application/json`},method:`PUT`});if(n.ok){let e=await n.json();O(t=>t.map(t=>t.id===e.id?e:t))}},bt=async e=>{let t=await fetch(`/api/telegram-bot/approve`,{body:JSON.stringify({chat_id:e}),headers:{"Content-Type":`application/json`},method:`POST`});if(t.ok){let e=Xq(await t.json());re(t=>({...t,sessions:t.sessions.map(t=>t.chatId===e.chatId?e:t)}))}},xt=async e=>{let t=await fetch(`/api/permissions/writable-paths`,{body:JSON.stringify({path:e}),headers:{"Content-Type":`application/json`},method:`DELETE`});t.ok&&he(((await t.json()).writable_paths??[]).map(tJ))},St=async e=>{let t=await fetch(`/api/permissions/writable-paths`,{body:JSON.stringify({path:e}),headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok)throw Error(`Directory could not be added.`);let n=await t.json();he(e=>{let t=tJ(n);return e.some(e=>e.path===t.path)?e:[...e,t]})},Ct=async()=>{let e=await fetch(`/api/workspace/clear`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!e.ok)throw Error(`Conversation could not be cleared.`);return await e.json()},wt=(0,b.useCallback)(async e=>{try{let t=await e.json();if(typeof t.detail==`string`)return t.detail}catch{return`Message could not be sent.`}return e.status===409?`Response in progress`:`Message could not be sent.`},[]),Tt=async({action:e,content:t,messageId:n})=>{let r=await fetch(`/api/workspace/messages/${encodeURIComponent(n)}/edit`,{body:JSON.stringify({action:e,content:t}),headers:{"Content-Type":`application/json`},method:`POST`});if(!r.ok){let e=``;try{let t=await r.json();typeof t.detail==`string`&&(e=t.detail)}catch{e=``}throw Error(e||(r.status===409?`Response in progress`:`Message could not be updated.`))}let i=await r.json();if(!Array.isArray(i.messages))throw Error(`Message could not be updated.`);return i},Et=async({errorId:e,messageId:t})=>{let n=await fetch(`/api/workspace/messages/${encodeURIComponent(t)}/errors/${encodeURIComponent(e)}/retry`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!n.ok)throw Error(await wt(n));let r=await n.json();if(!Array.isArray(r.messages))throw Error(`Message could not be updated.`);return r},Dt=(0,b.useCallback)(e=>{let t=e.split(`
96
- `),n=t.find(e=>e.startsWith(`id: `))?.slice(4),r=t.find(e=>e.startsWith(`event: `))?.slice(7),i=t.find(e=>e.startsWith(`data: `))?.slice(6);if(!r||!i)throw Error(`Message could not be sent.`);let a=n?Number(n):void 0;return{data:JSON.parse(i),event:r,eventIndex:Number.isSafeInteger(a)?a:void 0}},[]),Ot=(0,b.useCallback)(async(e,t)=>{if(!e.body)throw Error(`Message could not be sent.`);let n=e.body.getReader(),r=new TextDecoder,i=``;for(;;){let{done:e,value:a}=await n.read();i+=r.decode(a,{stream:!e});let o=i.split(`
91
+ `))}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 NW(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=AG.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function BG(){return{exit:{taskListCheckValueChecked:HG,taskListCheckValueUnchecked:HG,paragraph:UG}}}function VG(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:WG}}}function HG(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function UG(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 WG(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=AG.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 GG(){return[ZU(),xW(),EW(),jG(),BG()]}function KG(e){return{extensions:[QU(),SW(e),DW(),zG(e),VG()]}}var qG={tokenize:sK,partial:!0},JG={tokenize:cK,partial:!0},YG={tokenize:lK,partial:!0},XG={tokenize:uK,partial:!0},ZG={tokenize:dK,partial:!0},QG={name:`wwwAutolink`,tokenize:aK,previous:fK},$G={name:`protocolAutolink`,tokenize:oK,previous:pK},eK={name:`emailAutolink`,tokenize:iK,previous:mK},tK={};function nK(){return{text:tK}}for(var rK=48;rK<123;)tK[rK]=eK,rK++,rK===58?rK=65:rK===91&&(rK=97);tK[43]=eK,tK[45]=eK,tK[46]=eK,tK[95]=eK,tK[72]=[eK,$G],tK[104]=[eK,$G],tK[87]=[eK,QG],tK[119]=[eK,QG];function iK(e,t,n){let r=this,i,a;return o;function o(t){return!hK(t)||!mK.call(r,r.previous)||gK(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return hK(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(ZG,u,l)(t):t===45||t===95||ZR(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&&XR(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function aK(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!fK.call(r,r.previous)||gK(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(qG,e.attempt(JG,e.attempt(YG,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function oK(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&pK.call(r,r.previous)&&!gK(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(XR(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||$R(t)||rz(t)||oz(t)||az(t)?n(t):e.attempt(JG,e.attempt(YG,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function sK(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 cK(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(XG,c,s)(t):t===null||rz(t)||oz(t)||t!==45&&az(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 lK(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(XG,t,a)(o):o===null||rz(o)||oz(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function uK(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||rz(o)||oz(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||rz(e)||oz(e)?t(e):r(e)}function a(e){return XR(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):XR(t)?(e.consume(t),o):n(t)}}function dK(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return ZR(e)?n(e):t(e)}}function fK(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||rz(e)}function pK(e){return!XR(e)}function mK(e){return!(e===47||hK(e))}function hK(e){return e===43||e===45||e===46||e===95||ZR(e)}function gK(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 _K={tokenize:TK,partial:!0};function vK(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:SK,continuation:{tokenize:CK},exit:wK}},text:{91:{name:`gfmFootnoteCall`,tokenize:xK},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:yK,resolveTo:bK}}}}function yK(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=YR(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 bK(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 xK(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||rz(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(YR(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return rz(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 SK(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||rz(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=YR(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return rz(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),lz(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function CK(e,t,n){return e.check(wz,t,e.attempt(_K,t,n))}function wK(e){e.exit(`gfmFootnoteDefinition`)}function TK(e,t,n){let r=this;return lz(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 EK(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&&HR(o,o.length,0,_z(s,e.slice(r+1,n),t)),HR(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),HR(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=gz(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=gz(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var DK=class{constructor(){this.map=[]}add(e,t,n){OK(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 OK(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 kK(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 AK(){return{flow:{null:{name:`table`,tokenize:jK,resolveAll:MK}}}}function jK(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?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):$(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):iz(t)?lz(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||rz(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,iz(t)?lz(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 iz(t)?lz(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||$(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 iz(t)?lz(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||$(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||$(n)?(e.exit(`tableRow`),t(n)):iz(n)?lz(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||rz(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 MK(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 DK;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(PK(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=NK(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=NK(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=NK(f,t,o,i,n,d)):(o[0]=o[1],d=NK(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&PK(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=kK(t.events,n))}return e}function NK(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},FK(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=FK(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=FK(t.events,n[2]),a=FK(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({},FK(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function PK(e,t,n,r,i){let a=[],o=FK(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 FK(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var IK={name:`tasklistCheck`,tokenize:RK};function LK(){return{text:{91:IK}}}function RK(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 rz(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 $(r)?t(r):iz(r)?e.check({tokenize:zK},t,n)(r):n(r)}}function zK(e,t,n){return lz(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function BK(e){return GR([nK(),vK(),EK(e),AK(),LK()])}var VK={};function HK(e){let t=this,n=e||VK,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(BK(n)),a.push(GG()),o.push(KG(n))}var UK=e=>{let t={...e};return delete t.node,t},WK=()=>(0,U.jsx)(`span`,{"aria-hidden":`true`,className:`flowent-response-cursor`,"data-testid":`response-cursor`}),GK=e=>e?.position?.end?.offset??-1,KK=e=>{if(!e)return-1;let t=GK(e),n=(e.children??[]).map(KK);return Math.max(t,...n)},qK=new Set([`blockquote`,`h1`,`h2`,`h3`,`ol`,`p`,`pre`,`table`,`ul`]),JK=e=>(e?.children??[]).some(e=>e.type===`element`&&e.tagName!==void 0&&qK.has(e.tagName)),YK=e=>typeof e?.position?.start?.line==`number`&&typeof e.position.end?.line==`number`&&e.position.start.line!==e.position.end.line,XK=(e,t)=>t>=0&&KK(e)===t,ZK=(e,t)=>(0,U.jsxs)(U.Fragment,{children:[e,t?(0,U.jsx)(WK,{}):null]});function QK({content:e,isStreaming:t=!1}){let n=t?e.trimEnd().length:-1;return(0,U.jsx)(RU,{components:{a:({className:e,...t})=>(0,U.jsx)(`a`,{className:J(`text-white underline underline-offset-4`,e),rel:`noreferrer`,target:`_blank`,...UK(t)}),blockquote:({className:e,...t})=>(0,U.jsx)(`blockquote`,{className:J(`my-3 border-l border-white/20 pl-4 text-white/80`,e),...UK(t)}),code:({className:e,children:t,node:r,...i})=>{let a=YK(r);return(0,U.jsx)(`code`,{className:J(`font-mono text-[0.92em] text-white`,!a&&`rounded bg-white/10 px-1.5 py-0.5`,e),...UK(i),children:ZK(t,XK(r,n)&&a)})},h1:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`h1`,{className:J(`mb-3 mt-5 text-2xl font-semibold text-white`,e),...UK(i),children:ZK(t,XK(r,n))}),h2:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`h2`,{className:J(`mb-2.5 mt-5 text-xl font-semibold text-white`,e),...UK(i),children:ZK(t,XK(r,n))}),h3:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`h3`,{className:J(`mb-2 mt-4 text-lg font-semibold text-white`,e),...UK(i),children:ZK(t,XK(r,n))}),hr:({className:e,...t})=>(0,U.jsx)(`hr`,{className:J(`my-4 border-white/10`,e),...UK(t)}),li:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`li`,{className:J(`pl-1`,e),...UK(i),children:ZK(t,XK(r,n)&&!JK(r))}),ol:({className:e,...t})=>(0,U.jsx)(`ol`,{className:J(`my-3 list-decimal space-y-1 pl-6`,e),...UK(t)}),p:({className:e,children:t,node:r,...i})=>(0,U.jsx)(`p`,{className:J(`my-3 first:mt-0 last:mb-0`,e),...UK(i),children:ZK(t,XK(r,n))}),pre:({className:e,...t})=>(0,U.jsx)(`pre`,{className:J(`my-3 overflow-x-auto rounded-lg border border-white/10 bg-white/[0.045] p-3 text-sm leading-6 text-white`,e),...UK(t)}),table:({className:e,...t})=>(0,U.jsx)(`div`,{className:`my-3 overflow-x-auto`,children:(0,U.jsx)(`table`,{className:J(`w-full border-collapse text-left text-sm`,e),...UK(t)})}),tbody:({className:e,...t})=>(0,U.jsx)(`tbody`,{className:J(`divide-y divide-white/10`,e),...UK(t)}),td:({className:e,...t})=>(0,U.jsx)(`td`,{className:J(`border border-white/10 px-3 py-2 align-top`,e),...UK(t)}),th:({className:e,...t})=>(0,U.jsx)(`th`,{className:J(`border border-white/10 bg-white/[0.04] px-3 py-2 font-medium`,e),...UK(t)}),thead:({className:e,...t})=>(0,U.jsx)(`thead`,{className:J(`text-white`,e),...UK(t)}),ul:({className:e,...t})=>(0,U.jsx)(`ul`,{className:J(`my-3 list-disc space-y-1 pl-6`,e),...UK(t)})},remarkPlugins:[HK],children:e})}function $K({commands:e,contextWindowLimit:t,draft:n,errorMessage:r,isRefiningContext:i,isResponding:a,messages:o,usageInfo:s,onCommand:c,onCommandError:l,onDraftChange:u,onEditMessage:d,onRetryError:f,onRetryMessage:p,onSendMessage:m,onStopResponse:h,skills:g}){let[_,v]=(0,b.useState)(112);return(0,U.jsx)(`section`,{className:`h-full min-h-0 bg-black`,"aria-label":`Workspace`,children:(0,U.jsx)($I,{delayDuration:500,children:(0,U.jsxs)(`div`,{className:`relative h-full min-h-0 min-w-0 overflow-hidden`,children:[(0,U.jsx)(Pq,{commands:e,contextWindowLimit:t,draft:n,errorMessage:r,isRefiningContext:i,isSending:a,messages:o,plan:(0,b.useMemo)(()=>Dq(o),[o]),usageInfo:s,onCommand:c,onCommandError:l,onDraftChange:u,onSendMessage:m,onStopResponse:h,onOffsetChange:v,skills:g}),(0,U.jsx)(eq,{composerOffset:_,isResponding:a,messages:o,onEditMessage:d,onRetryError:f,onRetryMessage:p})]})})})}function eq({composerOffset:e,isResponding:t,messages:n,onEditMessage:r,onRetryError:i,onRetryMessage:a}){let o=(0,b.useRef)(null),s=(0,b.useRef)(!0),c=(0,b.useRef)(null),l=n.at(-1),u=l?.author??``,d=l?.id??``,f=(0,b.useRef)(d),p=(0,b.useMemo)(()=>!t||u===`assistant`?n:[...n,{author:`assistant`,content:``,id:`assistant-pending`}],[t,u,n]),m=t&&u===`assistant`?d:``;(0,b.useEffect)(()=>{d!==f.current&&(f.current=d,u===`user`&&(s.current=!0)),s.current&&c.current?.scrollIntoView({block:`end`,behavior:`smooth`})},[p,u,d]);let h=()=>{let e=o.current;e&&(s.current=e.scrollHeight-e.scrollTop-e.clientHeight<96)},g=(0,b.useMemo)(()=>tq(p),[p]);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{"aria-label":`Conversation messages`,"aria-live":`polite`,className:J(`absolute inset-0 flex min-h-0 flex-col overflow-auto bg-black px-6 pt-12 max-[900px]:px-4`,Xd),onScroll:h,ref:o,style:{paddingBottom:e,scrollPaddingBottom:e},children:[p.length===0?(0,U.jsx)(`div`,{className:`mx-auto grid min-h-full w-full max-w-4xl place-items-center pb-24`,children:(0,U.jsx)(`h1`,{className:`m-0 text-center text-[28px] font-medium leading-[1.2] text-white max-[560px]:text-2xl`,children:`Where should we begin?`})}):null,p.map(e=>(0,U.jsx)(b.Fragment,{children:e.author===`system`?(0,U.jsx)(iq,{message:e}):(0,U.jsx)(aq,{isStreaming:t&&e.id===m&&e.author===`assistant`&&e.isStreamingText===!0,isPending:e.id===`assistant-pending`||t&&e.author===`assistant`&&e.id===m&&e.isStreamingText!==!0,isResponding:t,message:e,onEditMessage:r,onRetryError:i,onRetryMessage:a})},e.id)),(0,U.jsx)(`div`,{"aria-hidden":`true`,ref:c})]}),(0,U.jsx)(nq,{messageListRef:o,messages:g})]})}function tq(e){return e.filter(e=>e.id!==`assistant-pending`&&(e.author===`user`||e.author===`assistant`)&&e.content.trim().length>0)}function nq({messageListRef:e,messages:t}){let[n,r]=(0,b.useState)(``),[i,a]=(0,b.useState)(!1),[o,s]=(0,b.useState)(!1),c=(0,b.useRef)(null),l=(0,b.useRef)(!1),u=(0,b.useRef)(null),d=(0,b.useRef)(null),f=(0,b.useCallback)(()=>{let t=e.current,n=c.current;if(!t||!n)return;let r=t.scrollHeight-t.clientHeight,i=n.scrollHeight-n.clientHeight;if(r<=0||i<=0){n.scrollTop=0;return}n.scrollTop=Math.min(1,Math.max(0,t.scrollTop/r))*i},[e]);if((0,b.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{l.current||f()};return t.addEventListener(`scroll`,n,{passive:!0}),f(),()=>{t.removeEventListener(`scroll`,n)}},[t.length,e,f]),(0,b.useLayoutEffect)(()=>{if(f(),!(i||o))return u.current=window.requestAnimationFrame(f),d.current=window.setTimeout(f,220),()=>{u.current!==null&&(window.cancelAnimationFrame(u.current),u.current=null),d.current!==null&&(window.clearTimeout(d.current),d.current=null)}},[i,o,f]),t.length===0)return null;let p=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(0,U.jsx)(`nav`,{"aria-label":`Conversation shortcuts`,className:`group/shortcut-rail pointer-events-none fixed right-5 top-1/2 z-20 hidden -translate-y-1/2 items-center justify-end max-[1180px]:hidden min-[1181px]:flex`,onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||(i||(l.current=!1),s(!1))},onFocusCapture:()=>{l.current=!0,s(!0)},onMouseEnter:()=>{l.current=!0,a(!0)},onMouseLeave:()=>{r(``),a(!1),o||(l.current=!1)},children:(0,U.jsx)(`div`,{className:`pointer-events-auto flowent-hidden-scrollbar flex max-h-[min(78vh,620px)] flex-col items-end gap-1.5 overflow-x-hidden overflow-y-auto overscroll-contain rounded-2xl border border-white/5 bg-black/20 p-2 shadow-[0_16px_44px_rgba(0,0,0,0.2)] backdrop-blur-sm transition-colors duration-200 group-hover/shortcut-rail:bg-black/70`,ref:c,children:t.map(e=>{let t=n===e.id,a=rq(e.content),s=e.author===`user`?`You`:`Flowent`,c=i||o||t;return(0,U.jsxs)(Y,{"aria-label":`Jump to ${s}: ${a}`,className:`group/shortcut h-auto max-w-[260px] cursor-pointer justify-end gap-2 rounded-full border-0 bg-transparent px-0 py-0 text-right text-xs text-white shadow-none transition-all duration-200 hover:bg-transparent hover:text-white focus-visible:ring-2 focus-visible:ring-white/20`,onClick:()=>p(e.id),onMouseEnter:()=>r(e.id),size:`sm`,type:`button`,variant:`ghost`,children:[c?(0,U.jsxs)(`span`,{className:J(`grid max-w-[220px] gap-0.5 overflow-hidden whitespace-nowrap opacity-70 transition-all duration-300 ease-out group-focus-visible/shortcut:opacity-100`,t&&`opacity-100`),children:[(0,U.jsx)(`span`,{className:`text-[10px] font-semibold tracking-wider text-white/45 uppercase`,children:s}),(0,U.jsx)(`span`,{className:`truncate text-[11px] font-medium leading-4 text-white/85`,children:a})]}):null,(0,U.jsx)(`span`,{"aria-hidden":`true`,className:J(`size-1.5 rounded-full bg-white/25 shadow-[0_0_0_1px_rgba(255,255,255,0.08)] transition-all duration-200 group-hover/shortcut-rail:size-2 group-hover/shortcut-rail:bg-white/35 group-hover/shortcut:scale-125`,e.author===`user`&&`bg-white/45`,t&&`size-2.5 scale-150 bg-white`)})]},e.id)})})})}function rq(e){let t=e.split(`
92
+ `).map(e=>e.trim()).find(e=>e.length>0)?.replace(/\s+/g,` `);return t?t.length<=64?t:`${t.slice(0,61)}…`:`Message`}function iq({message:e}){let[t,n]=(0,b.useState)(!1),r=ZC(),i=e.content===`Context compacted`||e.content===`Context optimized`,a=e.content===`Context optimized`?Ee:e.content===`Context compacted`?F:null;if(i){let i=`${e.id}-summary`;return(0,U.jsx)(`div`,{className:`mx-auto flex w-full max-w-4xl py-3`,children:(0,U.jsxs)(`div`,{className:`w-full overflow-hidden rounded-xl border border-white/10 bg-input/20 text-white shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]`,children:[(0,U.jsxs)(Y,{"aria-controls":i,"aria-expanded":t,className:`h-auto w-full justify-between rounded-xl border-0 bg-transparent px-4 py-3 text-left text-base leading-5 text-white/80 shadow-none hover:bg-input/30 hover:text-white focus-visible:ring-2 focus-visible:ring-white/20`,onClick:()=>n(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[a?(0,U.jsx)(a,{"aria-hidden":`true`,className:`size-4 shrink-0 text-white/55`}):null,(0,U.jsx)(`span`,{className:`truncate font-medium`,children:e.content})]}),(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-4 shrink-0 text-white/45 transition-transform duration-200`,t&&`rotate-90`)})]}),(0,U.jsx)(eS,{initial:!1,children:t?(0,U.jsx)(XC.div,{animate:{height:`auto`,opacity:1},className:`overflow-hidden`,exit:r?{opacity:0}:{height:0,opacity:0},initial:r?{opacity:0}:{height:0,opacity:0},transition:{duration:.18,ease:[.32,.72,0,1]},children:(0,U.jsx)(`div`,{"aria-label":`${e.content} summary`,className:`border-t border-white/10 px-4 py-3 text-sm leading-6 text-white/80`,id:i,role:`region`,children:(0,U.jsx)(QK,{content:e.summary??``})})}):null})]})})}return(0,U.jsx)(`div`,{className:`mx-auto flex w-full max-w-4xl justify-center py-3`,children:(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-full border border-white/10 bg-input/30 px-3 py-1.5 text-base leading-5 text-white/70`,children:[a?(0,U.jsx)(a,{"aria-hidden":`true`,className:`size-3.5 text-white/50`}):null,e.content]})})}function aq({isPending:e,isResponding:t,isStreaming:n,message:r,onEditMessage:i,onRetryError:a,onRetryMessage:o}){let[s,c]=(0,b.useState)(!1),l=r.author===`assistant`?dq(r):[],u=l.at(-1)?.items.at(-1),d=e&&l.length===0,f=e&&l.length>0&&!n&&(u?.type!==`tool`||u.tool.status!==`waiting`),p=r.author===`user`,m=t||r.id===`assistant-pending`,h=t||!p;return(0,U.jsx)(`article`,{id:r.id,className:J(`flowent-message-row group/message mx-auto flex w-full max-w-4xl scroll-mt-12 scroll-mb-40 py-3`,r.author===`user`?`justify-end`:`justify-start`),children:(0,U.jsx)(`div`,{className:J(`flex min-w-0 flex-col text-base leading-6 text-white`,r.author===`user`?`max-w-[70%] items-end`:`w-full max-w-full`),children:s?(0,U.jsx)(oq,{initialContent:r.content,isResponding:t,onCancel:()=>c(!1),onSave:e=>{i({action:`save`,content:e,messageId:r.id}),c(!1)},onSaveAndRetry:e=>{i({action:`resend`,content:e,messageId:r.id}),c(!1)}}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:J(`min-w-0`,r.author===`user`?`flowent-user-message-bubble rounded-[22px] px-4 py-2.5`:`w-full max-w-full`),children:d?(0,U.jsx)(Nq,{}):(0,U.jsx)(fq,{assistantGroups:l,disableErrorRetry:m,isStreaming:n,message:r,onRetryError:e=>a({errorId:e,messageId:r.id}),showWaitingAfterOutput:f})}),(0,U.jsx)(sq,{canEdit:p,disableEdit:h,disableRetry:m,message:r,onEdit:()=>c(!0),onRetry:()=>o(r.id)})]})})})}function oq({initialContent:e,isResponding:t,onCancel:n,onSave:r,onSaveAndRetry:i}){let[a,o]=(0,b.useState)(e),s=a.length===0,c=s||t;return(0,U.jsxs)(`div`,{className:`w-full min-w-[min(420px,70vw)] max-w-[min(720px,70vw)] rounded-[22px] border border-white/10 bg-input/30 p-2.5 shadow-[inset_0_0_1px_rgba(255,255,255,0.12)]`,children:[(0,U.jsx)(Yf,{"aria-label":`Edit message`,autoFocus:!0,className:`max-h-[240px] min-h-28 resize-none border-white/10 bg-black/30 px-3 py-2 text-base leading-6 text-white shadow-none focus-visible:border-white/20 focus-visible:ring-1 focus-visible:ring-white/20 dark:bg-black/30`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),n();return}e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&!c&&(e.preventDefault(),i(a))}}),(0,U.jsxs)(`div`,{className:`mt-2 flex items-center justify-end gap-1`,children:[(0,U.jsx)(uq,{label:`Cancel`,onClick:n,children:(0,U.jsx)(Pe,{"aria-hidden":`true`,className:`size-4`})}),(0,U.jsx)(uq,{disabled:s,label:`Save`,onClick:()=>r(a),children:(0,U.jsx)(xe,{"aria-hidden":`true`,className:`size-4`})}),(0,U.jsx)(uq,{disabled:c,label:`Save and retry`,onClick:()=>i(a),children:(0,U.jsx)(Ce,{"aria-hidden":`true`,className:`size-4`})})]})]})}function sq({canEdit:e,disableEdit:t,disableRetry:n,message:r,onEdit:i,onRetry:a}){let[o,s]=(0,b.useState)(`idle`),c=(0,b.useRef)(null);(0,b.useEffect)(()=>()=>{c.current!==null&&window.clearTimeout(c.current)},[]);let l=e=>{s(e),c.current!==null&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>{s(`idle`),c.current=null},e===`copied`?2e3:1200)},u=async()=>{l(await cq(r.content)?`copied`:`failed`)},d=o===`copied`?`Copied`:o===`failed`?`Copy failed`:`Copy`;return(0,U.jsxs)(`div`,{className:J(`mt-1 flex items-center gap-0.5 opacity-100 transition-opacity duration-150 hover-only:opacity-0 hover-only:group-hover/message:opacity-100 focus-within:opacity-100`,r.author===`user`?`justify-end pr-1`:`justify-start pl-1`),children:[(0,U.jsx)(uq,{label:d,onClick:()=>void u(),children:o===`copied`?(0,U.jsx)(F,{"aria-hidden":`true`,className:`size-4 text-white`}):o===`failed`?(0,U.jsx)(Ae,{"aria-hidden":`true`,className:`size-4 text-amber-300`}):(0,U.jsx)(ae,{"aria-hidden":`true`,className:`size-4`})}),e?(0,U.jsx)(uq,{disabled:t,label:`Edit`,onClick:i,children:(0,U.jsx)(pe,{"aria-hidden":`true`,className:`size-4`})}):null,(0,U.jsx)(uq,{disabled:n,label:`Retry`,onClick:a,children:(0,U.jsx)(be,{"aria-hidden":`true`,className:`size-4`})})]})}async function cq(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{return lq(e)}return lq(e)}function lq(e){if(typeof document.execCommand!=`function`)return!1;let t=document.activeElement,n=document.createElement(`textarea`);n.value=e,n.setAttribute(`readonly`,``),n.style.position=`fixed`,n.style.top=`-9999px`,n.style.left=`-9999px`,n.style.width=`1px`,n.style.height=`1px`,n.style.opacity=`0`,document.body.appendChild(n),n.focus(),n.select();let r=!1;try{r=document.execCommand(`copy`)}finally{n.remove(),t instanceof HTMLElement&&t.focus({preventScroll:!0})}return r}function uq({children:e,className:t,disabled:n,label:r,onClick:i}){return(0,U.jsxs)(eL,{children:[(0,U.jsx)(tL,{asChild:!0,children:(0,U.jsx)(Y,{"aria-label":r,className:J(`size-7 rounded-lg border-0 bg-transparent text-white/45 shadow-none transition-colors hover:bg-white/10 hover:text-white focus-visible:ring-2 focus-visible:ring-white/20 disabled:pointer-events-auto disabled:cursor-not-allowed disabled:text-white/20 disabled:opacity-100 disabled:hover:bg-transparent`,t),disabled:n,onClick:i,size:`icon-sm`,type:`button`,variant:`ghost`,children:e})}),(0,U.jsx)(nL,{side:`top`,sideOffset:6,children:r})]})}function dq(e){if(e.groups?.length)return e.groups.filter(e=>e.items.length>0);if(e.items?.length)return[{id:`${e.id}-items`,items:e.items}];let t=(e.tools??[]).map(e=>({id:`tool-${e.id}`,tool:e,type:`tool`})),n=e.thinking?{content:e.thinking,id:`${e.id}-thinking`,isStreaming:e.isStreamingThinking,type:`thinking`}:null,r=[],i=[...n?[n]:[],...t];if(t.length&&r.push({id:`${e.id}-process`,items:i}),e.content){let n={content:e.content,id:`${e.id}-content`,type:`text`};t.length?r.push({id:`${e.id}-content`,items:[n]}):r.push({id:`${e.id}-content`,items:[...i,n]})}else i.length&&!t.length&&r.push({id:`${e.id}-process`,items:i});return r}function fq({assistantGroups:e,disableErrorRetry:t,isStreaming:n,message:r,onRetryError:i,showWaitingAfterOutput:a}){return r.author===`assistant`?(0,U.jsx)(`div`,{className:`flowent-markdown-message min-w-0 break-words`,children:(0,U.jsx)(pq,{disableErrorRetry:t,groups:e,isStreaming:n,onRetryError:i,showWaitingAfterOutput:a})}):(0,U.jsx)(`div`,{className:`flowent-markdown-message min-w-0 break-words`,children:(0,U.jsx)(`p`,{className:`m-0 whitespace-pre-wrap break-words`,children:r.content})})}function pq({disableErrorRetry:e,groups:t,isStreaming:n,onRetryError:r,showWaitingAfterOutput:i}){let a=t.flatMap(e=>e.items).reverse().find(e=>e.type===`text`)?.id;return(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-col`,"aria-label":`Assistant response`,children:[t.map((t,i)=>(0,U.jsxs)(b.Fragment,{children:[i>0?(0,U.jsx)(hq,{}):null,(0,U.jsx)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:t.items.map(t=>t.type===`tool`?(0,U.jsx)(_q,{tool:t.tool},t.id):t.type===`thinking`?(0,U.jsx)(gq,{content:t.content,isStreaming:t.isStreaming===!0},t.id):t.type===`error`?(0,U.jsx)(mq,{disabled:e,item:t,onRetry:()=>r(t.id)},t.id):(0,U.jsx)(QK,{content:t.content,isStreaming:n&&t.id===a},t.id))})]},t.id)),i?(0,U.jsx)(`div`,{className:`mt-3`,children:(0,U.jsx)(Nq,{})}):null]})}function mq({disabled:e,item:t,onRetry:n}){return(0,U.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-red-500/15 bg-red-500/[0.06] p-3 text-base leading-5 text-red-100/90`,role:`alert`,children:[(0,U.jsx)(Ae,{"aria-hidden":`true`,className:`mt-0.5 size-4 shrink-0 text-red-400`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`div`,{className:`font-semibold text-red-100/95`,children:t.title}),(0,U.jsx)(`div`,{className:`mt-1 text-red-100/75`,children:t.message}),t.detail?(0,U.jsx)(`div`,{className:`mt-2 break-words text-xs leading-5 text-red-100/55`,children:t.detail}):null]}),(0,U.jsx)(uq,{className:`shrink-0 text-red-100/55 hover:bg-red-400/10 hover:text-red-50 disabled:text-red-100/25`,disabled:e,label:`Retry`,onClick:n,children:(0,U.jsx)(be,{"aria-hidden":`true`,className:`size-4`})})]})}function hq(){return(0,U.jsx)(`div`,{"aria-hidden":`true`,className:`my-3 h-px w-full bg-white/10`,"data-testid":`assistant-output-separator`})}function gq({content:e,isStreaming:t}){let[n,r]=(0,b.useState)(!1),i=t||n;return(0,U.jsxs)(`div`,{className:`max-w-full text-base leading-5 text-white`,children:[(0,U.jsxs)(Y,{"aria-expanded":i,className:`h-8 w-full justify-start gap-2 rounded-lg border-0 bg-transparent px-2 text-base text-white/75 shadow-none hover:bg-input/30 hover:text-white`,onClick:()=>r(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 transition-transform`,i?`rotate-90`:``)}),(0,U.jsx)(H,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 text-white/70`,t?`animate-pulse`:``)}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:t?`Thinking...`:`Thought Process`})]}),i?(0,U.jsx)(`div`,{className:`py-1`,children:(0,U.jsx)(`div`,{className:`whitespace-pre-wrap break-words text-base leading-5 text-white/60`,children:e})}):null]})}function _q({tool:e}){let[t,n]=(0,b.useState)(!1),r=e.status===`waiting`?`Waiting`:e.status===`running`?`Running`:e.status===`success`?`Done`:`Failed`;return(0,U.jsxs)(`div`,{className:`max-w-full text-base leading-5 text-white`,children:[(0,U.jsxs)(Y,{"aria-expanded":t,className:`h-8 w-full justify-start gap-2 rounded-lg border-0 bg-transparent px-2 text-base text-white shadow-none hover:bg-transparent hover:text-white aria-expanded:bg-transparent aria-expanded:text-white active:not-aria-[haspopup]:translate-y-0`,onClick:()=>n(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 text-white/55 transition-transform`,t?`rotate-90`:``)}),(0,U.jsx)(Eq,{tool:e}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:e.title}),(0,U.jsx)(`span`,{className:`shrink-0 text-xs text-white/55`,children:r})]}),t?(0,U.jsx)(vq,{tool:e}):null]})}function vq({tool:e}){let t=Tq(e.result),n=wq(e.arguments),r=wq(e.result);return!n&&!r?null:(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 py-1`,children:[n?(0,U.jsx)(bq,{label:`ARGS`,value:xq(e.arguments)}):null,r?(0,U.jsx)(bq,{label:`RESULT`,value:Sq(e)}):null,t?(0,U.jsx)(yq,{approval:t}):null]})}function yq({approval:e}){let t=e.decision===`denied`?`Denied`:`Approved`,n=e.toolResult?.trim()?e.toolResult:null;return(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`div`,{className:`mb-1 text-[11px] font-medium leading-4 text-white/45`,children:`REVIEW`}),(0,U.jsxs)(`div`,{className:`grid gap-1 rounded-md border border-white/10 bg-black px-2.5 py-2 text-xs leading-5 text-white/70`,children:[(0,U.jsx)(`div`,{className:`font-medium text-white`,children:t}),e.reason?(0,U.jsx)(`div`,{className:`break-words text-white/60`,children:e.reason}):null,n?(0,U.jsxs)(`div`,{className:`mt-1.5 border-t border-white/5 pt-1.5`,children:[(0,U.jsx)(`div`,{className:`mb-0.5 text-[10px] font-medium leading-4 text-white/40`,children:`FAILURE`}),(0,U.jsx)(`div`,{className:`whitespace-pre-wrap break-words font-mono text-[11px] leading-4 text-white/50`,children:n})]}):null,e.writePaths?.length?(0,U.jsx)(`div`,{className:`grid gap-0.5 font-mono text-[11px] leading-4 text-white/50`,children:e.writePaths.map(e=>(0,U.jsx)(`span`,{className:`break-words`,children:e},e))}):null]})]})}function bq({label:e,value:t}){return(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`div`,{className:`mb-1 text-[11px] font-medium leading-4 text-white/45`,children:e}),(0,U.jsx)(`pre`,{className:`max-h-64 overflow-auto rounded-md bg-input/20 px-2.5 py-2 font-mono text-xs leading-5 text-white/70`,children:(0,U.jsx)(`code`,{className:`whitespace-pre-wrap break-words`,children:t})})]})}function xq(e){return typeof e==`string`?e:JSON.stringify(e,null,2)}function Sq(e){let t=e.result;if(!wq(t))return``;let n=Object.fromEntries(Object.entries(t).filter(([e])=>e!==`approval`));return typeof n.text==`string`?n.text:n.type===`command`?Cq(n):typeof n.output==`string`?n.output:xq(n)}function Cq(e){let t=[];e.exit_code!==void 0&&t.push(`Exit code: ${String(e.exit_code)}`);let n=typeof e.stdout==`string`?e.stdout.trim():``,r=typeof e.stderr==`string`?e.stderr.trim():``,i=typeof e.output==`string`?e.output.trim():``;return n&&r?t.push(`STDOUT:\n${n}`,`STDERR:\n${r}`):i&&t.push(`Output:\n${i}`),t.join(`
97
93
 
98
- `);i=o.pop()??``;for(let e of o){if(!e.trim())continue;let n=Dt(e);if(n.eventIndex!==void 0&&t.onEventIndex(n.eventIndex),n.event===`start`&&t.onStart(n.data.id),n.event===`output_start`&&t.onOutputStart(n.data.index),n.event===`output_done`&&t.onOutputDone(),n.event===`delta`&&t.onDelta(n.data.content),n.event===`thinking_delta`&&t.onThinkingDelta(n.data.content),n.event===`snapshot`&&t.onSnapshot(n.data.message),n.event===`context_optimized`&&(n.data.usage_info&&t.onUsage(n.data.usage_info),t.onContextOptimized(n.data.message)),n.event===`usage`&&t.onUsage(n.data.usage_info),n.event===`done`){t.onDone(n.data.message);return}if(n.event===`tool_start`&&t.onToolStart(n.data.tool),(n.event===`tool_done`||n.event===`tool_error`)&&t.onToolDone(n.data),n.event===`error`)throw t.onError(n.data.error??CJ(n.data.message,``)),Error(n.data.message)}if(e)break}throw Error(`Message could not be sent.`)},[Dt]),kt=(0,b.useCallback)((e,t)=>{let n=e.at(-1),r=n?.author===`assistant`?n:null,i=r,a=r?.content??``,o=r?.id??``,s=r?.thinking??``,c=``,l=0,u=r?yJ(r):[],d=u.flatMap(e=>e.items).reverse().find(e=>e.type===`text`)?.id??``,f=bJ(u,`text`),p=!1,m=!1,h=r?.tools??[],g=S.current,_=null,y=r?e.slice(0,-1):e,b=()=>xe.current===t,x=()=>{let e=i?[...y,i]:[...y];be.current=e,v(e)},C=()=>{_!==null&&(window.cancelAnimationFrame(_),_=null)},w=()=>{C(),x()},T=()=>{b()&&_===null&&(_=window.requestAnimationFrame(()=>{_=null,b()&&x()}))},E=e=>{if(b()){if(w(),y.push(e),i){x();return}x()}},D=(e={})=>{if(!(!o||!b())){if(i={author:`assistant`,content:a,id:o,groups:u,thinking:s,isStreamingThinking:p,tools:h,isStreamingText:m,usage_info:g},e.immediate){w();return}T()}},O=()=>{p&&(p=!1,u=u.map(e=>({...e,items:e.items.map(e=>e.type===`thinking`?{...e,isStreaming:!1}:e)})))},k=e=>{let t=`${o||`assistant`}-group-${e}`;u.at(-1)?.id!==t&&(O(),d=``,m=!1,u=[...u,{id:t,items:[]}])},A=()=>{u.length===0&&k(1)},j=e=>{A();let t=u.length-1;u=u.map((n,r)=>r===t?{...n,items:e(n.items)}:n)},M=e=>{d=``,m=!1,c||(l+=1,c=`${o}-thinking-${l}`,j(e=>[...e,{content:``,id:c,isStreaming:!0,type:`thinking`}])),s+=e,p=!0,j(t=>t.map(t=>t.type===`thinking`&&t.id===c?{...t,content:t.content+e,isStreaming:!0}:t)),D()},N=e=>{O(),d||(f+=1,d=`${o}-text-${f}`,j(e=>[...e,{content:``,id:d,type:`text`}])),a+=e,j(t=>t.map(t=>t.type===`text`&&t.id===d?{...t,content:t.content+e}:t)),m=!0,D()},P=e=>{O(),d=``,m=!1,j(t=>[...t,e]),D()},ee=(e,t)=>{let n=null;h=h.map(r=>r.id===e?(n=t(r),n):r),u=u.map(r=>({...r,items:r.items.map(r=>r.type===`tool`&&r.tool.id===e?{...r,tool:n??t(r.tool)}:r)}))},F=()=>u.flatMap(e=>e.items).filter(e=>e.type===`thinking`).map(e=>e.content).join(``),I=()=>u.flatMap(e=>e.items).filter(e=>e.type===`text`).map(e=>e.content).join(``),L=e=>u.flatMap(e=>e.items).reverse().find(t=>t.type===e)?.id??``,te=(e,t=e.author===`assistant`&&e.status===`running`)=>{!b()||e.author!==`assistant`||(o=e.id,a=e.content,s=e.thinking??``,u=yJ(e),h=e.tools??[],g=e.usage_info??g,e.usage_info&&He(e.usage_info),d=L(`text`),c=L(`thinking`),f=bJ(u,`text`),l=bJ(u,`thinking`),m=e.active_output===`text`&&t&&xJ(u)?.type===`text`,p=e.active_output===`thinking`&&t&&s.length>0,u=u.map(e=>({...e,items:e.items.map(e=>e.type===`thinking`?{...e,isStreaming:p}:e)})),i={...e,groups:u,isStreamingThinking:p,isStreamingText:m,thinking:s,tools:h,usage_info:g},w())},R=e=>!!(e.groups?.length||e.items?.length||e.tools?.length||e.status&&e.status!==`completed`),z=e=>{if(R(e)||u.length===0){te(e,!1);return}o=e.id,a=e.content;let t=e.thinking??``;s=t||s,O();let n=F();if(t&&n!==t){let r=t.startsWith(n)?t.slice(n.length):t;l+=1,j(t=>[...t,{content:r,id:`${e.id}-thinking-${l}`,isStreaming:!1,type:`thinking`}])}let r=I();e.content&&r!==e.content&&(f+=1,j(t=>[...t,{content:e.content.startsWith(r)?e.content.slice(r.length):e.content,id:`${e.id}-text-${f}`,type:`text`}])),i={...e,groups:u,isStreamingThinking:!1,isStreamingText:!1,thinking:s,tools:h,usage_info:e.usage_info??g},w()};return{onContextOptimized:E,onDelta:e=>{b()&&N(e)},onDone:e=>{b()&&(z(e),C(),ye.current=0,de(!1))},onError:e=>{b()&&P(e.id?e:{...e,id:`${o}-error-1`})},onOutputDone:()=>{b()&&(O(),d=``,m=!1,D({immediate:!0}))},onOutputStart:e=>{b()&&(k(e),D())},onSnapshot:te,onStart:e=>{b()&&(o=e,D())},onThinkingDelta:e=>{b()&&M(e)},onToolDone:e=>{b()&&(O(),d=``,m=!1,ee(e.id,t=>({...t,...e})),D())},onToolStart:e=>{b()&&(O(),d=``,m=!1,h=[...h,e],j(t=>[...t,{id:`tool-${e.id}`,tool:e,type:`tool`}]),D())},onUsage:e=>{b()&&(g=e,He(e),D({immediate:!0}))},onEventIndex:e=>{b()&&(ye.current=e)}}},[He]),At=(0,b.useCallback)(async(e,t,n,r)=>{let i=await fetch(`/api/workspace/respond`,{body:JSON.stringify({content:e,message_id:t}),headers:{"Content-Type":`application/json`},method:`POST`,signal:r});if(!i.ok)throw new EJ(await wt(i));await Ot(i,n)},[Ot,wt]),jt=(0,b.useCallback)(async(e,t,n)=>{let r=await fetch(`/api/workspace/stream?after=${t}`,{headers:{"Content-Type":`text/event-stream`},method:`GET`,signal:n});if(!r.ok)throw Error(await wt(r));await Ot(r,e)},[Ot,wt]);(0,b.useEffect)(()=>{if(we===0)return;let e=xe.current||1;xe.current=e;let t=new AbortController;return ve.current=t,de(!0),_e(``),(async()=>{let n=kt(be.current,e);try{await jt(n,ye.current,t.signal)}catch(n){if(xe.current!==e||t.signal.aborted)return;if((await We().catch(()=>null))?.is_responding){Te(e=>e+1);return}ye.current=0,de(!1),_e(n instanceof Error?n.message:`Message could not be sent.`)}finally{xe.current===e&&(ve.current=null)}})(),()=>{t.abort()}},[kt,We,we,jt]);let Mt=async()=>{_e(``),pe(!0);let e=e=>{v(t=>t.some(t=>t.id===e.id)?t:[...t,e])};try{let t=await fetch(`/api/workspace/compact`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok)throw Error(await wt(t));await Ot(t,{onEventIndex:()=>void 0,onContextOptimized:e,onDelta:()=>void 0,onDone:e,onError:e=>_e(e.message),onOutputDone:()=>void 0,onOutputStart:()=>void 0,onSnapshot:()=>void 0,onStart:()=>void 0,onThinkingDelta:()=>void 0,onToolDone:()=>void 0,onToolStart:()=>void 0,onUsage:He}),pe(!1)}catch(e){if(TJ(e)){We().catch(()=>void 0);return}_e(e instanceof Error?e.message:`Context could not be compacted.`),pe(!1)}},Nt=(0,b.useMemo)(()=>[{description:`Clear the conversation`,id:`clear`,label:`/clear`,name:`clear`},{description:`Compact context`,id:`compact`,label:`/compact`,name:`compact`}],[]),Pt=e=>e===`clear`?(Ht(),!0):e===`compact`?ue?(_e(`Compact is unavailable while Flowent is responding.`),!1):(Mt(),!0):!1,Ft=e=>{_e(e)},It=()=>{ue&&fetch(`/api/workspace/stop`,{headers:{"Content-Type":`application/json`},method:`POST`}),xe.current+=1,ye.current=0,ve.current?.abort(),ve.current=null,_e(``),de(!1)},Lt=async(e=r,t=_,n={})=>{if(e.length===0||ue||fe)return;let a=n.clearDraft??t===_,o=xe.current+1,s=new AbortController;ve.current=s,xe.current=o,ye.current=0;let c=e,l=Bd(`message`),u=[...t,{author:`user`,content:c,id:l}];_e(``),de(!0),v(u),a&&i(``);try{await At(c,l,kt(u,o),s.signal)}catch(e){if(xe.current!==o||e instanceof DOMException&&e.name===`AbortError`&&s.signal.aborted)return;if(e instanceof Error&&e.message===`Response in progress`&&(v(t),a&&i(c)),!(e instanceof EJ)&&(await We().catch(()=>null))?.is_responding){Te(e=>e+1);return}_e(e instanceof Error?e.message:`Message could not be sent.`),de(!1)}finally{xe.current===o&&(ve.current=null)}},Rt=e=>{xe.current+=1,ye.current=0,v(e),de(!0),Te(e=>e+1)},zt=async e=>{if(ue)return;let t=_.findIndex(t=>t.id===e);if(t<0)return;let n=_[t],r=n.author===`user`?n:DJ(_,t-1);if(!r)return;let i=_;_e(``),de(!0);try{let e=await Tt({action:`resend`,content:r.content,messageId:r.id});if(!e.is_responding)throw Error(`Message could not be sent.`);Rt(e.messages)}catch(e){v(i),de(!1),_e(e instanceof Error?e.message:`Message could not be updated.`)}},Bt=async({errorId:e,messageId:t})=>{if(ue)return;let n=_.findIndex(e=>e.id===t);if(n<0||_[n].author!==`assistant`)return;let r=SJ(_[n],e);if(!r)return;let i=_,a=[..._.slice(0,n),r];_e(``),de(!0),v(a);try{let n=await Et({errorId:e,messageId:t});if(!n.is_responding)throw Error(`Message could not be sent.`);Rt(n.messages)}catch(e){v(i),de(!1),_e(e instanceof Error?e.message:`Message could not be sent.`)}},Vt=async({action:e,content:t,messageId:n})=>{if(ue)return;let r=_.findIndex(e=>e.id===n);if(r<0||_[r].author!==`user`)return;let i=_;_e(``),e===`resend`&&de(!0);try{let r=await Tt({action:e,content:t,messageId:n});if(e===`resend`){if(!r.is_responding)throw Error(`Message could not be sent.`);Rt(r.messages);return}v(r.messages)}catch(t){v(i),e===`resend`&&de(!1),_e(t instanceof Error?t.message:`Message could not be updated.`)}},Ht=async()=>{let e=_,t=y;ve.current?.abort(),ve.current=null,ye.current=0,xe.current+=1,v([]),He(null),_e(``),de(!1);try{let e=await Ct();Array.isArray(e.messages)&&v(e.messages),He(e.usage_info??null)}catch{v(e),He(t),_e(`Conversation could not be cleared.`)}};return(0,U.jsxs)(pf,{activeProviderName:Ie?.name,activeView:t,activeWorkflowId:Me,onNewWorkflow:()=>{Ne(``),ke(null),Fe(e=>e+1),n(`workflows`)},onViewChange:n,onWorkflowSelect:e=>{Ne(e),n(`workflows`)},workflows:Ee,children:[(0,U.jsx)(Gd,{value:`workspace`,className:Kd,tabIndex:-1,children:(0,U.jsx)($K,{contextWindowLimit:d,draft:r,errorMessage:ge,isRefiningContext:fe,isResponding:ue,messages:_,usageInfo:y,commands:Nt,skills:D,onCommand:Pt,onCommandError:Ft,onDraftChange:i,onEditMessage:e=>{Vt(e)},onRetryMessage:e=>{zt(e)},onRetryError:e=>{Bt(e)},onSendMessage:e=>{Lt(e)},onStopResponse:It})}),(0,U.jsx)(Gd,{value:`workflows`,className:Kd,children:(0,U.jsx)(QI,{activeWorkflow:Ve,isRunningWorkflow:!!Ae,newWorkflowKey:Pe,onCloseEditor:()=>{n(`workspace`)},onDeleteWorkflow:async e=>(await fetch(`/api/workflows/${encodeURIComponent(e)}`,{headers:{"Content-Type":`application/json`},method:`DELETE`})).ok?(De(t=>t.filter(t=>t.id!==e)),Oe?.workflowId===e&&ke(null),Me===e&&Ne(``),!0):!1,onRunWorkflow:async e=>{je(e),ke(null);try{let t=await fetch(`/api/workflows/${encodeURIComponent(e)}/run`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok)return{data:null,error:await dJ(t,`Run could not be completed.`)};let n=uJ(await t.json());return ke(n),{data:n,error:``}}finally{je(``)}},onSaveWorkflow:async e=>{let t=await fetch(`/api/workflows`,{body:JSON.stringify(lJ(e)),headers:{"Content-Type":`application/json`},method:`PUT`});if(!t.ok)return{data:null,error:await dJ(t,`Workflow could not be saved.`)};let n=cJ(await t.json());return De(e=>e.some(e=>e.id===n.id)?e.map(e=>e.id===n.id?n:e):[n,...e]),Ne(n.id),{data:n,error:``}},runningWorkflowId:Ae,workflowRunResult:Oe})}),(0,U.jsx)(Gd,{value:`providers`,className:Kd,children:(0,U.jsx)(Wf,{activeProvider:oe,isFetchingModels:ce,isCreatingProvider:Le,onFetchModels:dt,onNewProvider:Ke,onProviderSelect:Ge,onRemoveProvider:pt,onSaveProvider:ft,onUpdateProvider:nt,providers:C})}),(0,U.jsx)(Gd,{value:`channels`,className:Kd,children:(0,U.jsx)(Cf,{onApproveSession:bt,onSaveTelegramBot:mt,onUpdateTelegramBot:qe,telegramBot:H})}),(0,U.jsx)(Gd,{value:`permissions`,className:Kd,children:(0,U.jsx)(Hf,{onAddWritablePath:St,onRemoveWritablePath:e=>{xt(e)},writablePaths:me})}),(0,U.jsx)(Gd,{value:`mcp`,className:Kd,children:(0,U.jsx)(Of,{activeServer:N,isCreatingServer:Re,isImportOpen:ee,importPreview:I,importSource:te,importingServerId:V,isPreviewing:z,onNewServer:Ye,onImport:Xe,onImportSourceChange:tt,onImportServer:e=>{et(e)},onReconnectServer:gt,onRemoveServer:_t,onSaveServer:()=>{ht()},onServerSelect:Je,onUpdateServer:Qe,servers:T})}),(0,U.jsx)(Gd,{value:`skills`,className:Kd,children:(0,U.jsx)(np,{activeSkill:ze,onReloadSkills:()=>{vt()},onSkillSelect:Ze,onSkillToggle:(e,t)=>{yt(e,t)},skills:D})}),(0,U.jsx)(Gd,{value:`settings`,className:Kd,children:(0,U.jsx)(Zf,{agentPrompt:a,appVersion:h,contextWindowLimit:d,modelOptions:Ie?.models??[],onModelChange:at,onProviderChange:W,onReasoningEffortChange:ot,onRuntimeSettingsSave:st,providers:C,reasoningEffort:p,selectedModel:l,selectedProviderId:s})})]})}function kJ(){return(0,U.jsx)(fw,{children:(0,U.jsx)(OJ,{})})}function AJ(){return null}function jJ(){return(0,b.useEffect)(()=>{},[]),null}var MJ=`--flowent-viewport-height`,NJ=`--flowent-keyboard-offset`,PJ=120;function FJ(){if(typeof window>`u`)return;let e=typeof CSS<`u`&&CSS.supports(`height`,`100dvh`),t=IJ(),n=0,r=0,i=e=>{document.documentElement.style.setProperty(MJ,`${e}px`)},a=e=>{document.documentElement.style.setProperty(NJ,`${e}px`)},o=(o=!1)=>{r=0;let s=IJ(),c=LJ(s),l=RJ()&&t-s>PJ;e||(o||!l)&&(t=s,i(s)),c!==n&&(n=c,a(c))},s=(e=!1)=>{r!==0&&window.cancelAnimationFrame(r),r=window.requestAnimationFrame(()=>o(e))};o(!0),window.addEventListener(`resize`,()=>s(),{passive:!0}),window.addEventListener(`orientationchange`,()=>s(!0),{passive:!0}),window.addEventListener(`focusin`,()=>s(),{passive:!0}),window.addEventListener(`focusout`,()=>s(),{passive:!0}),window.visualViewport?.addEventListener(`resize`,()=>s(),{passive:!0}),window.visualViewport?.addEventListener(`scroll`,()=>s(),{passive:!0})}function IJ(){return Math.round(document.documentElement.clientHeight||window.innerHeight||0)}function LJ(e){if(!RJ())return 0;let t=window.visualViewport;if(!t)return 0;let n=Math.max(0,e-t.height-t.offsetTop);return n>PJ?Math.round(n):0}function RJ(){let e=document.activeElement;if(e instanceof HTMLTextAreaElement)return!e.disabled&&!e.readOnly;if(e instanceof HTMLInputElement){let t=new Set([``,`email`,`number`,`password`,`search`,`tel`,`text`,`url`]);return!e.disabled&&!e.readOnly&&t.has(e.type)}return e instanceof HTMLElement&&e.isContentEditable}FJ(),(0,x.createRoot)(document.getElementById(`root`)).render((0,U.jsxs)(b.StrictMode,{children:[(0,U.jsx)(kJ,{}),(0,U.jsx)(AJ,{}),(0,U.jsx)(jJ,{})]}));
94
+ `)||xq(e)}function wq(e){return e!=null&&Object.keys(e).length>0}function Tq(e){let t=e?.approval;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return{action:typeof n.action==`string`?n.action:void 0,decision:typeof n.decision==`string`?n.decision:void 0,reason:typeof n.reason==`string`?n.reason:void 0,toolResult:typeof n.tool_result==`string`?n.tool_result:void 0,toolName:typeof n.tool_name==`string`?n.tool_name:void 0,writePaths:Array.isArray(n.write_paths)?n.write_paths.filter(e=>typeof e==`string`):void 0}}function Eq({tool:e}){let t=J(`size-3.5 shrink-0`,e.status===`failed`?`text-red-300`:`text-white/80`,e.status===`running`?`animate-pulse`:``,e.status===`waiting`?`text-amber-300`:``);return e.status===`success`?(0,U.jsx)(F,{"aria-hidden":`true`,className:t}):e.status===`failed`?(0,U.jsx)(Pe,{"aria-hidden":`true`,className:t}):e.status===`waiting`?(0,U.jsx)(Ae,{"aria-hidden":`true`,className:t}):e.name===`web_search`||e.name===`grep_files`?(0,U.jsx)(Se,{"aria-hidden":`true`,className:t}):e.name===`shell_command`?(0,U.jsx)(Oe,{"aria-hidden":`true`,className:t}):(0,U.jsx)(H,{"aria-hidden":`true`,className:t})}function Dq(e){for(let t=e.length-1;t>=0;--t){let n=e[t];if(n?.author!==`assistant`)continue;let r=n.tools??[];for(let e=r.length-1;e>=0;--e){let t=r[e];if(t.name!==`update_plan`)continue;let n=Oq(t.result)??Oq(t.arguments);if(n?.length)return{items:n}}}return null}function Oq(e){let t=e?.items;return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e,n=typeof t.step==`string`?t.step.trim():``;return n?[{status:kq(t.status),step:n}]:[]}):null}function kq(e){return e===`completed`||e===`in_progress`||e===`pending`?e:`pending`}function Aq({isHidden:e,plan:t}){let[n,r]=(0,b.useState)(!1),i=(0,b.useRef)(null),a=ZC();if((0,b.useEffect)(()=>{e&&r(!1)},[e]),(0,b.useEffect)(()=>{if(!n)return;let e=e=>{if(e.pointerType===`mouse`)return;let t=e.target;t instanceof Node&&(i.current?.contains(t)||r(!1))},t=e=>{e.key===`Escape`&&r(!1)};return window.addEventListener(`pointerdown`,e),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e),window.removeEventListener(`keydown`,t)}},[n]),!t||e)return null;let o=`Plan · ${t.items.filter(e=>e.status===`completed`).length}/${t.items.length} done`;return(0,U.jsxs)(`div`,{className:`border-b border-zinc-800/50 bg-zinc-900/40 shadow-[inset_0_-1px_0_rgba(255,255,255,0.03)]`,onPointerLeave:e=>{e.pointerType===`mouse`&&r(!1)},ref:i,children:[(0,U.jsxs)(Y,{"aria-expanded":n,className:`h-9 w-full justify-start gap-2 rounded-none border-0 bg-transparent px-3 text-xs font-medium text-zinc-300 shadow-none hover:bg-input/40 hover:text-white sm:text-sm`,onClick:()=>r(e=>!e),type:`button`,variant:`ghost`,children:[(0,U.jsx)(L,{"aria-hidden":`true`,className:J(`size-3.5 shrink-0 text-white/55 transition-transform`,n&&`rotate-90`)}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:o})]}),(0,U.jsx)(eS,{initial:!1,children:n?(0,U.jsx)(XC.div,{animate:a?{opacity:1}:{height:`auto`,opacity:1},className:`overflow-hidden border-t border-zinc-800/50 bg-zinc-950/50`,"data-slot":`plan-tasks-panel`,exit:a?{opacity:1}:{height:0,opacity:0},initial:a?!1:{height:0,opacity:0},transition:a?{duration:0}:{duration:.18,ease:[.32,.72,0,1]},children:(0,U.jsx)(`ol`,{"aria-label":`Plan tasks`,className:`grid max-h-[150px] gap-1 overflow-auto p-1.5 sm:max-h-[25vh]`,children:t.items.map((e,t)=>(0,U.jsxs)(`li`,{className:J(`grid min-w-0 grid-cols-[1.25rem_auto_minmax(0,1fr)_auto] items-start gap-2 rounded-lg px-2 py-1.5 text-sm leading-5`,e.status===`in_progress`?`bg-input/30 text-white`:e.status===`completed`?`text-white/55`:`text-white/75`),children:[(0,U.jsx)(`span`,{className:`text-right text-xs leading-5 text-white/35`,children:t+1}),(0,U.jsx)(jq,{status:e.status}),(0,U.jsx)(`span`,{className:`min-w-0 break-words`,children:e.step}),(0,U.jsx)(`span`,{className:`shrink-0 text-xs leading-5 text-white/45`,children:Mq(e.status)})]},`${t}-${e.step}`))})},`plan-tasks-panel`):null})]})}function jq({status:e}){let t=`mt-0.5 size-3.5 shrink-0`;return e===`completed`?(0,U.jsx)(F,{"aria-hidden":`true`,className:J(t,`text-white/65`)}):e===`in_progress`?(0,U.jsx)(M,{"aria-hidden":`true`,className:J(t,`animate-pulse text-white`)}):(0,U.jsx)(H,{"aria-hidden":`true`,className:J(t,`text-white/40`)})}function Mq(e){return e===`completed`?`Done`:e===`in_progress`?`Doing`:`Pending`}function Nq(){return(0,U.jsxs)(`div`,{"aria-label":`Thinking`,className:`flex h-6 items-center gap-1.5`,role:`status`,children:[(0,U.jsx)(`span`,{className:`flowent-thinking-dot`}),(0,U.jsx)(`span`,{className:`flowent-thinking-dot`}),(0,U.jsx)(`span`,{className:`flowent-thinking-dot`})]})}function Pq({commands:e,contextWindowLimit:t,draft:n,errorMessage:r,isRefiningContext:i,isSending:a,messages:o,plan:s,usageInfo:c,onCommand:l,onCommandError:u,onDraftChange:d,onOffsetChange:f,onSendMessage:p,onStopResponse:m,skills:h}){let g=(0,b.useRef)(null),_=(0,b.useRef)(null),v=(0,b.useRef)(!1),y=(0,b.useRef)(()=>{}),x=(0,b.useRef)(!1),S=(0,b.useRef)(!1),C=(0,b.useRef)(!1),w=(0,b.useRef)(!1),T=(0,b.useRef)(null),E=(0,b.useRef)(``),[D,O]=(0,b.useState)(!1),[k,A]=(0,b.useState)(!1),[j,M]=(0,b.useState)(0),[N,ee]=(0,b.useState)(0),F=(0,b.useMemo)(()=>Fq(o),[o]),I=n.split(`
95
+ `)[0]??``,L=I.startsWith(`/`)?I.slice(1):``,te=I.startsWith(`/`)&&!L.includes(`/`)&&!I.includes(` `),R=(0,b.useMemo)(()=>{if(!te)return[];let t=L.toLowerCase();return e.filter(e=>e.name.toLowerCase().startsWith(t))},[L,e,te]),z=te&&!D&&R.length>0,B=n.match(/(?:^|\s)\$([a-z0-9-]*)$/i),V=B?.[1]??``,ne=!!B,H=(0,b.useMemo)(()=>{if(!ne)return[];let e=V.toLowerCase();return h.filter(t=>t.enabled&&!t.error&&t.slug.toLowerCase().startsWith(e))},[ne,V,h]),re=!z&&ne&&!k&&H.length>0,ie=e.find(e=>e.name===L),ae=!!(te&&ie)&&(!a||ie?.id===`clear`),oe=()=>_.current?.value??n,se=Kq();x.current=se;let ce=oe().length>0&&(!a||ae)&&!i,le=a&&!ae,ue=!le&&!ce,de=ue&&!se,fe=(0,b.useMemo)(()=>Vq(o,n,c,t),[t,n,o,c]);(0,b.useEffect)(()=>{if(S.current){S.current=!1;return}O(!1),M(0)},[n]),(0,b.useEffect)(()=>{if(w.current){w.current=!1;return}A(!1),ee(0)},[n]),(0,b.useEffect)(()=>{if(C.current){C.current=!1;return}T.current=null,E.current=``},[n]),(0,b.useEffect)(()=>{M(e=>Math.min(e,Math.max(R.length-1,0)))},[R.length]),(0,b.useEffect)(()=>{ee(e=>Math.min(e,Math.max(H.length-1,0)))},[H.length]),(0,b.useEffect)(()=>{let e=g.current;if(!e)return;let t=0,n=()=>{t=0;let n=Number.parseFloat(getComputedStyle(e).bottom),r=Number.isFinite(n)?n:0;f(e.offsetHeight+r+24)},r=()=>{t!==0&&window.cancelAnimationFrame(t),t=window.requestAnimationFrame(n)};if(n(),window.addEventListener(`resize`,r,{passive:!0}),window.addEventListener(`focusin`,r,{passive:!0}),window.addEventListener(`focusout`,r,{passive:!0}),window.visualViewport?.addEventListener(`resize`,r,{passive:!0}),window.visualViewport?.addEventListener(`scroll`,r,{passive:!0}),typeof ResizeObserver>`u`)return()=>{t!==0&&window.cancelAnimationFrame(t),window.removeEventListener(`resize`,r),window.removeEventListener(`focusin`,r),window.removeEventListener(`focusout`,r),window.visualViewport?.removeEventListener(`resize`,r),window.visualViewport?.removeEventListener(`scroll`,r)};let i=new ResizeObserver(r);return i.observe(e),()=>{t!==0&&window.cancelAnimationFrame(t),window.removeEventListener(`resize`,r),window.removeEventListener(`focusin`,r),window.removeEventListener(`focusout`,r),window.visualViewport?.removeEventListener(`resize`,r),window.visualViewport?.removeEventListener(`scroll`,r),i.disconnect()}},[f]);let pe=e=>{if(!l(e.id)){O(!0);return}d(``),O(!1)},me=()=>{if(!te||L.length===0)return!1;let t=e.find(e=>e.name===L);return t?(pe(t),!0):!1},he=e=>{let t=n.replace(/(?:^|\s)\$([a-z0-9-]*)$/i,t=>`${t.startsWith(` `)?` `:``}$${e.slug} `);w.current=!0,d(t),A(!0)},ge=e=>{C.current=!0,d(e),window.requestAnimationFrame(()=>{let t=_.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length))})},_e=e=>{if(F.length===0||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||e.nativeEvent.isComposing)return!1;let t=e.currentTarget;if(e.key===`ArrowUp`){if(!Iq(t))return!1;e.preventDefault();let n=T.current,r=n===null?F.length-1:Math.max(n-1,0);return n===null&&(E.current=t.value),T.current=r,ge(F[r]),!0}if(e.key!==`ArrowDown`||!Lq(t))return!1;let n=T.current;if(n===null)return!1;e.preventDefault();let r=n+1;return r>=F.length?(T.current=null,ge(E.current),E.current=``,!0):(T.current=r,ge(F[r]),!0)},ve=()=>{let e=oe();if(re){let e=H[N];if(e){he(e);return}}if(z){let e=R[j];if(e){pe(e);return}}if(!me()){if(te&&L.length>0){O(!1),u(`Command not found.`);return}p(e)}};return y.current=()=>{ve()},(0,b.useEffect)(()=>{let e=_.current;if(!e)return;let t=e=>{if(x.current){if(v.current){v.current=!1;return}e.inputType!==`insertLineBreak`&&e.inputType!==`insertParagraph`||(e.preventDefault(),y.current())}};return e.addEventListener(`beforeinput`,t),()=>e.removeEventListener(`beforeinput`,t)},[]),(0,U.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 bottom-[calc(1.5rem+var(--flowent-keyboard-offset))] z-10 px-6 max-[900px]:px-4`,ref:g,children:(0,U.jsxs)(`div`,{className:`pointer-events-auto mx-auto w-full max-w-[640px]`,children:[z?(0,U.jsx)(`div`,{"aria-label":`Commands`,className:`mb-2 overflow-hidden rounded-xl border border-white/10 bg-[#171717] p-1 shadow-[0_16px_44px_rgba(0,0,0,0.42)]`,role:`listbox`,children:R.map((e,t)=>(0,U.jsxs)(Y,{"aria-selected":t===j,className:J(`flex h-auto w-full items-center justify-start gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left text-base text-white shadow-none transition-colors hover:bg-input/50 hover:text-white`,t===j&&`bg-input/40`),onClick:()=>pe(e),onMouseEnter:()=>M(t),size:`sm`,role:`option`,type:`button`,variant:`ghost`,children:[(0,U.jsx)(Oe,{"aria-hidden":`true`,className:`size-4 text-white/75`}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`span`,{className:`block font-medium leading-5`,children:e.label}),(0,U.jsx)(`span`,{className:`block truncate text-xs leading-4 text-white/55`,children:e.description})]})]},e.id))}):null,re?(0,U.jsx)(`div`,{"aria-label":`Skills`,className:`mb-2 overflow-hidden rounded-xl border border-white/10 bg-[#171717] p-1 shadow-[0_16px_44px_rgba(0,0,0,0.42)]`,role:`listbox`,children:H.map((e,t)=>(0,U.jsxs)(Y,{"aria-selected":t===N,className:J(`flex h-auto w-full items-center justify-start gap-3 rounded-lg border-0 bg-transparent px-3 py-2 text-left text-base text-white shadow-none transition-colors hover:bg-input/50 hover:text-white`,t===N&&`bg-input/40`),onClick:()=>he(e),onMouseEnter:()=>ee(t),size:`sm`,role:`option`,type:`button`,variant:`ghost`,children:[(0,U.jsx)(Ee,{"aria-hidden":`true`,className:`size-4 text-white/75`}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`span`,{className:`block font-medium leading-5`,children:[`$`,e.slug]}),(0,U.jsx)(`span`,{className:`block truncate text-xs leading-4 text-white/55`,children:e.description||e.name})]})]},e.id))}):null,r?(0,U.jsx)(`p`,{className:`mb-2 rounded-md bg-black/80 px-3 py-2 text-base leading-5 text-red-300 shadow-[0_12px_32px_rgba(0,0,0,0.45)]`,children:r}):null,(0,U.jsxs)(`form`,{"aria-label":`Workspace composer`,className:`flex flex-col-reverse overflow-clip rounded-[14px] border border-zinc-800 bg-zinc-950 shadow-[0_16px_44px_rgba(0,0,0,0.42),inset_0_0_1px_rgba(255,255,255,0.2)] transition-colors focus-within:border-zinc-700`,onSubmit:e=>{e.preventDefault(),ve()},children:[(0,U.jsx)(Bq,{capacity:fe,isRefining:i}),(0,U.jsxs)(`div`,{className:`grid min-h-14 w-full grid-cols-[minmax(0,1fr)_auto] items-center gap-2 bg-[#212121] p-2.5`,children:[(0,U.jsx)(Yf,{"aria-label":`Message Flowent`,className:`flowent-composer-textarea max-h-[216px] min-h-9 resize-none overflow-y-auto border-0 bg-transparent px-2 py-1.5 text-white shadow-none placeholder:text-[#9b9b9b] focus-visible:border-transparent focus-visible:ring-0 dark:bg-transparent`,enterKeyHint:`send`,ref:_,value:n,onChange:e=>d(e.target.value),onInput:e=>d(e.currentTarget.value),onKeyDown:e=>{if(v.current=e.key===`Enter`&&e.shiftKey,re){if(e.key===`ArrowDown`){e.preventDefault(),ee((N+1)%H.length);return}if(e.key===`ArrowUp`){e.preventDefault(),ee((N-1+H.length)%H.length);return}if(e.key===`Tab`){let t=H[N];t&&(e.preventDefault(),he(t));return}if(e.key===`Escape`){e.preventDefault(),A(!0);return}}if(z){if(e.key===`ArrowDown`){e.preventDefault(),M((j+1)%R.length);return}if(e.key===`ArrowUp`){e.preventDefault(),M((j-1+R.length)%R.length);return}if(e.key===`Tab`){let t=R[j];t&&(e.preventDefault(),S.current=!0,d(t.label),O(!0));return}if(e.key===`Escape`){e.preventDefault(),O(!0);return}}_e(e)||e.key!==`Enter`||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),ve())},placeholder:`Message Flowent`}),(0,U.jsx)(Y,{"aria-label":le?`Stop`:`Send message`,className:J(`size-9 rounded-full shadow-none disabled:bg-transparent disabled:text-white/35 disabled:opacity-100 [&_svg]:size-5`,le?`bg-white text-black hover:bg-[#e5e5e5] [&_svg]:size-3.5`:`bg-white text-black hover:bg-[#e5e5e5]`,ue&&`bg-transparent text-white/35 hover:bg-transparent`),"aria-disabled":ue,disabled:de,onClick:le?m:void 0,size:`icon-lg`,type:le?`button`:`submit`,children:le?(0,U.jsx)(De,{"aria-hidden":`true`,fill:`currentColor`}):(0,U.jsx)(P,{"aria-hidden":`true`})})]}),(0,U.jsx)(Aq,{isHidden:z||re,plan:s})]})]})})}function Fq(e){let t=[];for(let n of e)n.author!==`user`||n.content.trim().length===0||t.at(-1)!==n.content&&t.push(n.content);return t}function Iq(e){return!e.value.slice(0,e.selectionStart).includes(`
96
+ `)}function Lq(e){return!e.value.slice(e.selectionEnd).includes(`
97
+ `)}var Rq=12e4,zq=12e3;function Bq({capacity:e,isRefining:t}){let n=e.tone===`critical`?`bg-red-500`:e.tone===`warning`?`bg-amber-500`:`bg-zinc-400`,r=e.tone===`critical`?`text-red-400`:e.tone===`warning`?`text-amber-400`:`text-zinc-300`,i=`${Uq(e.used)} / ${Uq(e.total)}`;return(0,U.jsxs)(`div`,{"aria-busy":t,"aria-live":`polite`,className:`flex min-h-9 items-center justify-between gap-3 border-t border-zinc-800/50 bg-zinc-900/40 px-4 py-1.5 shadow-[inset_0_1px_0_rgba(255,255,255,0.03)] transition-colors`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-[10px] font-semibold tracking-wider text-zinc-500 uppercase`,children:[(0,U.jsx)(M,{"aria-hidden":`true`,className:J(`size-3 shrink-0`,t&&`animate-pulse`)}),(0,U.jsx)(`span`,{className:`hidden sm:inline`,children:`Context`})]}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:J(`text-[10px] font-semibold whitespace-nowrap`,t?`animate-pulse text-zinc-300`:`text-zinc-500 uppercase`),children:t?`Refining...`:i}),(0,U.jsx)(`div`,{"aria-label":`Context capacity status`,"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":e.percent,className:`h-1 w-16 overflow-hidden rounded-full bg-zinc-800 sm:w-24`,role:`progressbar`,children:(0,U.jsx)(`div`,{className:J(`h-full rounded-full transition-all duration-500 ease-in-out`,t&&`flowent-context-refining-indicator w-1/3 opacity-80`,n),style:{width:t?void 0:`${e.percent}%`}})}),!t&&(0,U.jsxs)(`span`,{className:J(`text-[10px] font-semibold`,r),children:[e.percent,`%`]})]})]})}function Vq(e,t,n,r){let i=Hq(e),a=n??(i>=0?e[i].usage_info:null),o=a?.last_token_usage.total_tokens,s=[...(a&&i>=0?e.slice(i+1):a?[]:e).map(e=>e.content),t].reduce((e,t)=>e+Gq(t),Math.max(0,o??0)),c=Math.max(1,r??a?.model_context_window??Rq),l=Wq(s,c);return{percent:l,tone:l>90?`critical`:l>=75?`warning`:`neutral`,total:c,used:s}}function Hq(e){for(let t=e.length-1;t>=0;--t)if(e[t].usage_info)return t;return-1}function Uq(e){return e>=1e3?`${Math.floor(e/1e3)}k`:e.toString()}function Wq(e,t){if(t<=zq)return e>0?100:0;let n=Math.max(0,e-zq),r=t-zq;return Math.min(100,Math.floor(n/r*100))}function Gq(e){return e?Math.max(1,Math.ceil(new TextEncoder().encode(e).length/4)):0}function Kq(){return typeof navigator>`u`?!1:/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1}var qq=(e,t,n)=>{let r=[];e.status===`error`&&e.error&&r.push(`channel:telegram:${e.error}`);for(let e of t)e.status===`error`&&e.error&&r.push(`mcp:${e.id}:${e.error}`);for(let e of n)e.enabled&&e.error&&r.push(`skill:${e.id}:${e.error}`);return r},Jq=(e,t)=>e===null||t===null?e:{...e,model_context_window:t},Yq=e=>({apiKey:e.api_key,baseUrl:e.base_url,id:e.id,models:e.models,name:e.name,type:e.type}),Xq=e=>({api_key:e.apiKey,base_url:e.baseUrl,id:e.id,models:e.models,name:e.name,type:e.type}),Zq=e=>({chatId:e.chat_id,displayName:e.display_name,recentMessage:e.recent_message,status:e.status,updatedAt:e.updated_at??0,userId:e.user_id,username:e.username}),Qq=e=>({chat_id:e.chatId,display_name:e.displayName,recent_message:e.recentMessage,status:e.status,updated_at:e.updatedAt,user_id:e.userId,username:e.username}),$q=()=>({botSecret:``,enabled:!1,error:``,sessions:[],status:`disabled`}),eJ=e=>({botSecret:e?.bot_token??``,enabled:e?.enabled??!1,error:e?.error??``,sessions:(e?.sessions??[]).map(Zq),status:e?.status??`disabled`}),tJ=e=>({bot_token:e.botSecret,enabled:e.enabled,error:e.error,sessions:e.sessions.map(Qq),status:e.status}),nJ=e=>({createdAt:e.created_at,path:e.path}),rJ=e=>({data:e.data??{},description:e.description??``,id:e.id,name:e.name,position:e.position??{x:0,y:0},type:e.type}),iJ=e=>({data:e.data,description:e.description,id:e.id,name:e.name,position:e.position,type:e.type}),aJ=e=>({id:e.id,label:e.label??``,source:e.source,sourceHandle:e.source_handle??``,target:e.target,targetHandle:e.target_handle??``}),oJ=e=>({id:e.id,label:e.label,source:e.source,source_handle:e.sourceHandle,target:e.target,target_handle:e.targetHandle}),sJ=e=>({edges:(e.edges??[]).map(aJ),nodes:(e.nodes??[]).map(rJ),version:e.version??1}),cJ=e=>({edges:e.edges.map(oJ),nodes:e.nodes.map(iJ),version:e.version}),lJ=e=>({createdAt:e.created_at,definition:sJ(e.definition),id:e.id,name:e.name,updatedAt:e.updated_at}),uJ=e=>({created_at:e.createdAt,definition:cJ(e.definition),id:e.id,name:e.name,updated_at:e.updatedAt}),dJ=e=>({nodeResults:e.node_results.map(e=>({error:e.error,id:e.id,output:e.output,status:e.status})),outputs:e.outputs,status:e.status,workflowId:e.workflow_id}),fJ=async(e,t)=>{try{let t=await e.json();if(typeof t.detail==`string`&&t.detail.trim())return t.detail}catch{return t}return t},pJ=e=>[e.command,...e.args].filter(Boolean).join(` `),mJ=e=>({description:e.description??``,inputSchema:e.input_schema??{},name:e.name,outputSchema:e.output_schema??null}),hJ=e=>({args:e.args??[],command:e.command??``,commandLine:pJ({args:e.args??[],command:e.command??``}),config:e.config??{},enabled:e.enabled,error:e.error??``,id:e.id,name:e.name,status:e.status??`disabled`,tools:(e.tools??[]).map(mJ),type:e.type,url:e.url??``}),gJ=e=>({args:e.args,command:e.command,config:e.config,enabled:e.enabled,error:e.error,id:e.id,name:e.name,status:e.status,tools:e.tools.map(e=>({description:e.description,input_schema:e.inputSchema,name:e.name,output_schema:e.outputSchema})),type:e.type,url:e.url}),_J=()=>({args:[],command:``,commandLine:``,config:{},enabled:!0,error:``,id:`new`,name:``,status:`disabled`,tools:[],type:`command`,url:``}),vJ=e=>{let t=[],n=``,r=``,i=!1;for(let a of e){if(i){n+=a,i=!1;continue}if(a===`\\`){i=!0;continue}if(r){a===r?r=``:n+=a;continue}if(a===`'`||a===`"`){r=a;continue}if(/\s/.test(a)){n&&=(t.push(n),``);continue}n+=a}return n&&t.push(n),{args:t.slice(1),command:t[0]??``}},yJ=e=>{let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);return t?`mcp-${t}`:Bd(`mcp`)},bJ=e=>{if(e.groups?.length)return e.groups;let t=e.thinking?{content:e.thinking,id:`${e.id}-thinking-existing`,isStreaming:!1,type:`thinking`}:null,n=(e.tools??[]).map(e=>({id:`tool-${e.id}`,tool:e,type:`tool`})),r=[],i=[...t?[t]:[],...n];return i.length&&r.push({id:`${e.id}-process-existing`,items:i}),e.content&&r.push({id:`${e.id}-content-existing`,items:[{content:e.content,id:`${e.id}-text-existing`,type:`text`}]}),r},xJ=(e,t)=>e.flatMap(e=>e.items).filter(e=>e.type===t).length,SJ=e=>{for(let t=e.length-1;t>=0;--t){let n=e[t]?.items??[];for(let e=n.length-1;e>=0;--e){let t=n[e];if(t)return t}}return null},CJ=(e,t)=>{let n=[],r=!1;for(let i of bJ(e)){let e=[];for(let n of i.items){if(n.type===`error`&&n.id===t){r=!0;break}e.push(n)}if(r){e.length>0&&n.push({...i,items:e});break}n.push(i)}return r?{...e,content:n.flatMap(e=>e.items).filter(e=>e.type===`text`).map(e=>e.content).join(``),groups:n,isStreamingText:!1,isStreamingThinking:!1,status:`running`,thinking:n.flatMap(e=>e.items).filter(e=>e.type===`thinking`).map(e=>e.content).join(``),tools:n.flatMap(e=>e.items).filter(e=>e.type===`tool`).map(e=>e.tool)}:null},wJ=(e,t)=>({id:`${t||`assistant`}-error-1`,message:e,title:`Response interrupted`,type:`error`}),TJ=`Check the model connection settings and try again.`,EJ=(e,t=Bd(`message`))=>({author:`assistant`,content:``,groups:[{id:`${t}-errors`,items:[{id:`${t}-error-1`,message:TJ,title:`Request failed`,type:`error`,...e&&e!==TJ&&e!==`Request failed`?{detail:e}:{}}]}],id:t,status:`failed`}),DJ=(e,t=Bd(`message`))=>({author:`assistant`,content:``,groups:[{id:`${t}-errors`,items:[{...e,id:e.id||`${t}-error-1`}]}],id:t,status:`failed`}),OJ=e=>(e.groups??[]).flatMap(e=>e.items).some(e=>e.type===`error`),kJ=(e,t)=>e.slice(t).some(e=>e.author===`assistant`&&OJ(e)),AJ=e=>{for(let t=e.length-1;t>=0;--t){let n=e[t]?.usage_info;if(n)return n}return null},jJ=e=>typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`,MJ=class extends Error{},NJ=class extends Error{errorMessage;outputError;constructor(e,t,n){super(e),this.errorMessage=n,this.outputError=t}},PJ=(e,t)=>{for(let n=t;n>=0;--n){let t=e[n];if(t?.author===`user`)return t}return null};function FJ(){let e=Vf(),[t,n]=(0,b.useState)(`workspace`),[r,i]=(0,b.useState)(``),[a,o]=(0,b.useState)(``),[s,c]=(0,b.useState)(``),[l,u]=(0,b.useState)(``),[d,f]=(0,b.useState)(null),[p,m]=(0,b.useState)(`default`),[h,g]=(0,b.useState)(``),[_,v]=(0,b.useState)([]),[y,x]=(0,b.useState)(null),S=(0,b.useRef)(null),[C,w]=(0,b.useState)([]),[T,E]=(0,b.useState)([]),[D,O]=(0,b.useState)([]),[k,A]=(0,b.useState)(``),[j,M]=(0,b.useState)(`new`),[N,P]=(0,b.useState)(()=>_J()),[ee,F]=(0,b.useState)(!1),[I,L]=(0,b.useState)([]),[te,R]=(0,b.useState)(`claude_code`),[z,B]=(0,b.useState)(!1),[V,ne]=(0,b.useState)(``),[H,re]=(0,b.useState)(()=>$q()),[ie,ae]=(0,b.useState)(`new`),[oe,se]=(0,b.useState)(()=>zf()),[ce,le]=(0,b.useState)(!1),[ue,de]=(0,b.useState)(!1),[fe,pe]=(0,b.useState)(!1),[me,he]=(0,b.useState)([]),[ge,_e]=(0,b.useState)(``),ve=(0,b.useRef)(null),ye=(0,b.useRef)(0),be=(0,b.useRef)([]),xe=(0,b.useRef)(0),Se=(0,b.useRef)(new Set),Ce=(0,b.useRef)(!1),[we,Te]=(0,b.useState)(0),[Ee,De]=(0,b.useState)([]),[Oe,ke]=(0,b.useState)(null),[Ae,je]=(0,b.useState)(``),[Me,Ne]=(0,b.useState)(``),[Pe,Fe]=(0,b.useState)(0),Ie=(0,b.useMemo)(()=>C.find(e=>e.id===s),[C,s]),Le=ie===`new`,Re=j===`new`,ze=(0,b.useMemo)(()=>D.find(e=>e.id===k)??D[0],[k,D]),Be=(0,b.useMemo)(()=>T.some(e=>e.status===`starting`),[T]),Ve=(0,b.useMemo)(()=>Ee.find(e=>e.id===Me)??null,[Me,Ee]),He=(0,b.useCallback)(e=>{if(typeof e!=`function`){S.current=e,x(e);return}x(t=>{let n=e(t);return S.current=n,n})},[]);(0,b.useEffect)(()=>{let t=new Set,n=(n,r)=>{t.add(n),!Se.current.has(n)&&e.error(r)};H.status===`error`&&H.error&&n(`channel:telegram:${H.error}`,H.error);for(let e of T)e.status!==`error`||!e.error||n(`mcp:${e.id}:${e.error}`,e.error);for(let e of D)!e.enabled||!e.error||n(`skill:${e.id}:${e.error}`,e.error);Se.current=t},[T,D,H,e]),(0,b.useEffect)(()=>{be.current=_},[_]);let Ue=(0,b.useCallback)(e=>{w(e.providers.map(Yq)),v(e.messages),He(Jq(e.usage_info??AJ(e.messages),e.settings.context_window_limit??null));let t=(e.mcp_servers??[]).map(hJ);E(t),t[0]&&(M(t[0].id),P(t[0]));let n=e.skills??[];O(n),A(n[0]?.id??``),o(e.settings.agent_prompt??``),c(e.settings.selected_provider_id),u(e.settings.selected_model),f(e.settings.context_window_limit??null),m(e.settings.reasoning_effort??`default`);let r=eJ(e.telegram_bot);re(r),he((e.writable_paths??[]).map(nJ)),De((e.workflows??[]).map(lJ));let i=!!e.is_responding;ye.current=e.response_event_index??0,de(i),pe(!!e.is_compacting),Ce.current||=(i&&Te(e=>e+1),Se.current=new Set(qq(r,t,n)),!0)},[He]),We=(0,b.useCallback)(async()=>{let e=await fetch(`/api/state`);if(!e.ok)return null;let t=await e.json();return Ue(t),t},[Ue]);(0,b.useEffect)(()=>{let e=!0;return(async()=>{try{let[t,n]=await Promise.all([We(),fetch(`/api/about`)]);if(!t)return;let r=n.ok?await n.json():{};if(!e)return;g(typeof r.version==`string`?r.version:``)}catch{}})(),()=>{e=!1}},[We]),(0,b.useEffect)(()=>{if(!Be)return;let e=!0,t=async()=>{try{let t=await fetch(`/api/state`);if(!t.ok||!e)return;let n=await t.json();if(!e)return;let r=(n.mcp_servers??[]).map(hJ);E(r),P(e=>{let t=r.find(t=>t.id===e.id);return t?{...e,error:t.error,status:t.status,tools:t.tools}:e})}catch{}};t();let n=window.setInterval(()=>{t()},1e3);return()=>{e=!1,window.clearInterval(n)}},[Be]),(0,b.useEffect)(()=>{if(!fe)return;let e=window.setInterval(()=>{We().catch(()=>void 0)},1e3);return()=>{window.clearInterval(e)}},[fe,We]);let Ge=e=>{ae(e.id),se(e)},Ke=()=>{ae(`new`),se(zf())},qe=e=>{re(t=>({...t,...e}))},Je=e=>{F(!1),M(e.id),P(e)},Ye=()=>{F(!1),M(`new`),P(_J())},Xe=()=>{F(!0),L([]),R(`claude_code`),$e(`claude_code`)},Ze=e=>{A(e.id)},Qe=e=>{P(t=>({...t,...e}))},$e=async(t=te)=>{B(!0);try{let e=await fetch(`/api/mcp/import/preview`,{body:JSON.stringify({source:t}),headers:{"Content-Type":`application/json`},method:`POST`});if(!e.ok)throw Error(`Scan could not be completed.`);L(((await e.json()).servers??[]).map(e=>hJ(e)))}catch{L([]),e.error(`Scan could not be completed.`)}finally{B(!1)}},et=async t=>{if(!I.some(e=>e.id===t)){e.error(`No servers found.`);return}ne(t);try{let e=await fetch(`/api/mcp/import`,{body:JSON.stringify({server_id:t,source:te}),headers:{"Content-Type":`application/json`},method:`POST`});if(!e.ok)throw Error(`Import could not be completed.`);let n=(await e.json()).map(e=>hJ(e));E(n);let r=n.find(e=>e.id===t)??n[0];r&&(F(!1),M(r.id),P(r))}catch{e.error(`Import could not be completed.`)}finally{ne(``)}},tt=e=>{R(e),L([]),$e(e)},nt=e=>{se(t=>({...t,...e}))},rt=async e=>{await fetch(`/api/settings`,{body:JSON.stringify({agent_prompt:e.agentPrompt,context_window_limit:e.contextWindowLimit,reasoning_effort:e.reasoningEffort,selected_model:e.selectedModel,selected_provider_id:e.selectedProviderId}),headers:{"Content-Type":`application/json`},method:`PUT`})},it=async e=>{await rt(e),await We()},W=e=>{let t=C.find(t=>t.id===e);if(!t){c(``),u(``),it({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:``,selectedProviderId:``});return}c(t.id),u(``),it({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:``,selectedProviderId:t.id})},at=e=>{u(e),it({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:e,selectedProviderId:s})},ot=e=>{m(e),rt({agentPrompt:a,contextWindowLimit:d,reasoningEffort:e,selectedModel:l,selectedProviderId:s})},st=e=>{o(e.agentPrompt),f(e.contextWindowLimit),He(t=>Jq(t,e.contextWindowLimit)),m(e.reasoningEffort),u(e.selectedModel),c(e.selectedProviderId),it(e)},ct={access_denied:{description:`Check the key and account access.`,message:`Access denied.`},connection_failed:{description:`Check the address and try again.`,message:`Connection failed.`},provider_unavailable:{description:`The service is currently unreachable.`,message:`Provider unavailable.`},rate_limited:{description:`Please wait a moment and try again.`,message:`Too many requests.`},request_failed:{description:`Check the connection settings and try again.`,message:`Request failed.`}},lt=e=>typeof e==`string`&&e in ct,ut=async e=>{try{let t=(await e.json()).detail?.code;if(lt(t))return t}catch{return`request_failed`}return`request_failed`},dt=async()=>{le(!0);try{let t=await fetch(`/api/providers/models`,{body:JSON.stringify({base_url:oe.baseUrl,provider:oe.type,secret_reference:oe.apiKey}),headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok){let n=await ut(t);e.error(ct[n]);return}let n=(await t.json()).models??[];nt({models:n}),n.length===0&&e.error({description:`No models available for this provider.`,message:`No models found.`})}catch{e.error(ct.connection_failed)}finally{le(!1)}},ft=async()=>{let e={...oe,id:Le?Bd(`provider`):oe.id,name:oe.name.trim()||Rf.find(e=>e.id===oe.type)?.label||`Provider`};w(t=>Le?[...t,e]:t.map(t=>t.id===e.id?e:t)),ae(e.id),se(e),s||(c(e.id),u(``),rt({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:``,selectedProviderId:e.id})),await fetch(`/api/providers`,{body:JSON.stringify(Xq(e)),headers:{"Content-Type":`application/json`},method:`POST`})},pt=async()=>{if(Le)return;let e=oe.id;if((await fetch(`/api/providers/${e}`,{headers:{"Content-Type":`application/json`},method:`DELETE`})).ok){let t=C.findIndex(t=>t.id===e),n=C.filter(t=>t.id!==e);w(n);let r=n[t]||n[t-1];if(r?Ge(r):Ke(),s===e){let e=r?.id??``,t=r?.models[0]??``;c(e),u(t),rt({agentPrompt:a,contextWindowLimit:d,reasoningEffort:p,selectedModel:t,selectedProviderId:e})}}},mt=async()=>{let e=await fetch(`/api/telegram-bot`,{body:JSON.stringify(tJ(H)),headers:{"Content-Type":`application/json`},method:`PUT`});e.ok&&re(eJ(await e.json()))},ht=async()=>{let e=N.type===`command`?vJ(N.commandLine):{args:[],command:``},t={...N,args:e.args,command:e.command,id:Re||N.id===`new`?yJ(N.name):N.id,name:N.name.trim()||`Server`,tools:Re?[]:N.tools,url:N.type===`url`?N.url:``},n=await fetch(`/api/mcp/servers`,{body:JSON.stringify(gJ(t)),headers:{"Content-Type":`application/json`},method:`PUT`});if(n.ok){let e=hJ(await n.json());E(t=>Re?[...t,e]:t.map(t=>t.id===e.id?e:t)),M(e.id),P(e)}},gt=async()=>{if(Re)return;let e=await fetch(`/api/mcp/servers/${N.id}/reconnect`,{headers:{"Content-Type":`application/json`},method:`POST`});if(e.ok){let t=hJ(await e.json());E(e=>e.map(e=>e.id===t.id?t:e)),P(t)}},_t=async()=>{if(!Re&&(await fetch(`/api/mcp/servers/${N.id}`,{headers:{"Content-Type":`application/json`},method:`DELETE`})).ok){let e=T.filter(e=>e.id!==N.id);E(e);let t=e[0];t?(M(t.id),P(t)):Ye()}},vt=async()=>{let e=await fetch(`/api/skills/reload`,{headers:{"Content-Type":`application/json`},method:`POST`});if(e.ok){let t=await e.json();O(t),A(e=>t.some(t=>t.id===e)?e:t[0]?.id??``)}},yt=async(e,t)=>{let n=await fetch(`/api/skills/${encodeURIComponent(e.id)}`,{body:JSON.stringify({enabled:t}),headers:{"Content-Type":`application/json`},method:`PUT`});if(n.ok){let e=await n.json();O(t=>t.map(t=>t.id===e.id?e:t))}},bt=async e=>{let t=await fetch(`/api/telegram-bot/approve`,{body:JSON.stringify({chat_id:e}),headers:{"Content-Type":`application/json`},method:`POST`});if(t.ok){let e=Zq(await t.json());re(t=>({...t,sessions:t.sessions.map(t=>t.chatId===e.chatId?e:t)}))}},xt=async e=>{let t=await fetch(`/api/permissions/writable-paths`,{body:JSON.stringify({path:e}),headers:{"Content-Type":`application/json`},method:`DELETE`});t.ok&&he(((await t.json()).writable_paths??[]).map(nJ))},St=async e=>{let t=await fetch(`/api/permissions/writable-paths`,{body:JSON.stringify({path:e}),headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok)throw Error(`Directory could not be added.`);let n=await t.json();he(e=>{let t=nJ(n);return e.some(e=>e.path===t.path)?e:[...e,t]})},Ct=async()=>{let e=await fetch(`/api/workspace/clear`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!e.ok)throw Error(`Conversation could not be cleared.`);return await e.json()},wt=(0,b.useCallback)(async e=>{try{let t=await e.json();if(typeof t.detail==`string`)return t.detail}catch{return`Message could not be sent.`}return e.status===409?`Response in progress`:`Message could not be sent.`},[]),Tt=(0,b.useCallback)(t=>{e.error(t)},[e]),Et=async({action:e,content:t,messageId:n})=>{let r=await fetch(`/api/workspace/messages/${encodeURIComponent(n)}/edit`,{body:JSON.stringify({action:e,content:t}),headers:{"Content-Type":`application/json`},method:`POST`});if(!r.ok){let e=``;try{let t=await r.json();typeof t.detail==`string`&&(e=t.detail)}catch{e=``}throw Error(e||(r.status===409?`Response in progress`:`Message could not be updated.`))}let i=await r.json();if(!Array.isArray(i.messages))throw Error(`Message could not be updated.`);return i},Dt=async({errorId:e,messageId:t})=>{let n=await fetch(`/api/workspace/messages/${encodeURIComponent(t)}/errors/${encodeURIComponent(e)}/retry`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!n.ok)throw Error(await wt(n));let r=await n.json();if(!Array.isArray(r.messages))throw Error(`Message could not be updated.`);return r},Ot=(0,b.useCallback)(e=>{let t=e.split(`
98
+ `),n=t.find(e=>e.startsWith(`id: `))?.slice(4),r=t.find(e=>e.startsWith(`event: `))?.slice(7),i=t.find(e=>e.startsWith(`data: `))?.slice(6);if(!r||!i)throw Error(`Message could not be sent.`);let a=n?Number(n):void 0;return{data:JSON.parse(i),event:r,eventIndex:Number.isSafeInteger(a)?a:void 0}},[]),kt=(0,b.useCallback)(async(e,t)=>{if(!e.body)throw Error(`Message could not be sent.`);let n=e.body.getReader(),r=new TextDecoder,i=``;for(;;){let{done:e,value:a}=await n.read();i+=r.decode(a,{stream:!e});let o=i.split(`
99
+
100
+ `);i=o.pop()??``;for(let e of o){if(!e.trim())continue;let n=Ot(e);if(n.eventIndex!==void 0&&t.onEventIndex(n.eventIndex),n.event===`start`&&t.onStart(n.data.id),n.event===`output_start`&&t.onOutputStart(n.data.index),n.event===`output_done`&&t.onOutputDone(),n.event===`delta`&&t.onDelta(n.data.content),n.event===`thinking_delta`&&t.onThinkingDelta(n.data.content),n.event===`snapshot`&&t.onSnapshot(n.data.message),n.event===`context_optimized`&&(n.data.usage_info&&t.onUsage(n.data.usage_info),t.onContextOptimized(n.data.message)),n.event===`usage`&&t.onUsage(n.data.usage_info),n.event===`done`){t.onDone(n.data.message);return}if(n.event===`tool_start`&&t.onToolStart(n.data.tool),(n.event===`tool_done`||n.event===`tool_error`)&&t.onToolDone(n.data),n.event===`error`){let e=n.data.error??wJ(n.data.message,``),r=t.onError(e)??null;throw new NJ(n.data.message,e,r)}}if(e)break}throw Error(`Message could not be sent.`)},[Ot]),At=(0,b.useCallback)((e,t)=>{let n=e.at(-1),r=n?.author===`assistant`?n:null,i=r,a=r?.content??``,o=r?.id??``,s=r?.thinking??``,c=``,l=0,u=r?bJ(r):[],d=u.flatMap(e=>e.items).reverse().find(e=>e.type===`text`)?.id??``,f=xJ(u,`text`),p=!1,m=!1,h=r?.tools??[],g=S.current,_=null,y=r?e.slice(0,-1):e,b=()=>xe.current===t,x=()=>{let e=i?[...y,i]:[...y];be.current=e,v(e)},C=()=>{_!==null&&(window.cancelAnimationFrame(_),_=null)},w=()=>{C(),x()},T=()=>{b()&&_===null&&(_=window.requestAnimationFrame(()=>{_=null,b()&&x()}))},E=e=>{if(b()){if(w(),y.push(e),i){x();return}x()}},D=(e={})=>{if(!(!o||!b())){if(i={author:`assistant`,content:a,id:o,groups:u,thinking:s,isStreamingThinking:p,tools:h,isStreamingText:m,usage_info:g},e.immediate){w();return}T()}},O=()=>{p&&(p=!1,u=u.map(e=>({...e,items:e.items.map(e=>e.type===`thinking`?{...e,isStreaming:!1}:e)})))},k=e=>{let t=`${o||`assistant`}-group-${e}`;u.at(-1)?.id!==t&&(O(),d=``,m=!1,u=[...u,{id:t,items:[]}])},A=()=>{u.length===0&&k(1)},j=e=>{A();let t=u.length-1;u=u.map((n,r)=>r===t?{...n,items:e(n.items)}:n)},M=e=>{d=``,m=!1,c||(l+=1,c=`${o}-thinking-${l}`,j(e=>[...e,{content:``,id:c,isStreaming:!0,type:`thinking`}])),s+=e,p=!0,j(t=>t.map(t=>t.type===`thinking`&&t.id===c?{...t,content:t.content+e,isStreaming:!0}:t)),D()},N=e=>{O(),d||(f+=1,d=`${o}-text-${f}`,j(e=>[...e,{content:``,id:d,type:`text`}])),a+=e,j(t=>t.map(t=>t.type===`text`&&t.id===d?{...t,content:t.content+e}:t)),m=!0,D()},P=e=>{if(O(),d=``,m=!1,e.id&&u.flatMap(e=>e.items).some(t=>t.type===`error`&&t.id===e.id)||j(t=>[...t,e]),!b())return null;let t=o||Bd(`message`);o=t;let n=u.flatMap(e=>e.items).some(e=>e.type===`text`);return a&&!n&&(u=[{id:`${t}-content`,items:[{content:a,id:`${t}-text-1`,type:`text`}]},...u]),i={author:`assistant`,content:a,groups:u,id:t,isStreamingText:!1,isStreamingThinking:!1,status:`failed`,thinking:s,tools:h,usage_info:g},w(),i},ee=(e,t)=>{let n=null;h=h.map(r=>r.id===e?(n=t(r),n):r),u=u.map(r=>({...r,items:r.items.map(r=>r.type===`tool`&&r.tool.id===e?{...r,tool:n??t(r.tool)}:r)}))},F=()=>u.flatMap(e=>e.items).filter(e=>e.type===`thinking`).map(e=>e.content).join(``),I=()=>u.flatMap(e=>e.items).filter(e=>e.type===`text`).map(e=>e.content).join(``),L=e=>u.flatMap(e=>e.items).reverse().find(t=>t.type===e)?.id??``,te=(e,t=e.author===`assistant`&&e.status===`running`)=>{!b()||e.author!==`assistant`||(o=e.id,a=e.content,s=e.thinking??``,u=bJ(e),h=e.tools??[],g=e.usage_info??g,e.usage_info&&He(e.usage_info),d=L(`text`),c=L(`thinking`),f=xJ(u,`text`),l=xJ(u,`thinking`),m=e.active_output===`text`&&t&&SJ(u)?.type===`text`,p=e.active_output===`thinking`&&t&&s.length>0,u=u.map(e=>({...e,items:e.items.map(e=>e.type===`thinking`?{...e,isStreaming:p}:e)})),i={...e,groups:u,isStreamingThinking:p,isStreamingText:m,thinking:s,tools:h,usage_info:g},w())},R=e=>!!(e.groups?.length||e.items?.length||e.tools?.length||e.status&&e.status!==`completed`),z=e=>{if(R(e)||u.length===0){te(e,!1);return}o=e.id,a=e.content;let t=e.thinking??``;s=t||s,O();let n=F();if(t&&n!==t){let r=t.startsWith(n)?t.slice(n.length):t;l+=1,j(t=>[...t,{content:r,id:`${e.id}-thinking-${l}`,isStreaming:!1,type:`thinking`}])}let r=I();e.content&&r!==e.content&&(f+=1,j(t=>[...t,{content:e.content.startsWith(r)?e.content.slice(r.length):e.content,id:`${e.id}-text-${f}`,type:`text`}])),i={...e,groups:u,isStreamingThinking:!1,isStreamingText:!1,thinking:s,tools:h,usage_info:e.usage_info??g},w()};return{onContextOptimized:E,onDelta:e=>{b()&&N(e)},onDone:e=>{b()&&(z(e),C(),ye.current=0,de(!1))},onError:e=>{if(b())return P(e.id?e:{...e,id:`${o}-error-1`})},onOutputDone:()=>{b()&&(O(),d=``,m=!1,D({immediate:!0}))},onOutputStart:e=>{b()&&(k(e),D())},onSnapshot:te,onStart:e=>{b()&&(o=e,D())},onThinkingDelta:e=>{b()&&M(e)},onToolDone:e=>{b()&&(O(),d=``,m=!1,ee(e.id,t=>({...t,...e})),D())},onToolStart:e=>{b()&&(O(),d=``,m=!1,h=[...h,e],j(t=>[...t,{id:`tool-${e.id}`,tool:e,type:`tool`}]),D())},onUsage:e=>{b()&&(g=e,He(e),D({immediate:!0}))},onEventIndex:e=>{b()&&(ye.current=e)}}},[He]),jt=(0,b.useCallback)(async(e,t,n,r)=>{let i=await fetch(`/api/workspace/respond`,{body:JSON.stringify({content:e,message_id:t}),headers:{"Content-Type":`application/json`},method:`POST`,signal:r});if(!i.ok)throw new MJ(await wt(i));await kt(i,n)},[kt,wt]),Mt=(0,b.useCallback)(async(e,t,n)=>{let r=await fetch(`/api/workspace/stream?after=${t}`,{headers:{"Content-Type":`text/event-stream`},method:`GET`,signal:n});if(!r.ok)throw Error(await wt(r));await kt(r,e)},[kt,wt]);(0,b.useEffect)(()=>{if(we===0)return;let e=xe.current||1;xe.current=e;let t=new AbortController;return ve.current=t,de(!0),_e(``),(async()=>{let n=At(be.current,e);try{await Mt(n,ye.current,t.signal)}catch(n){if(xe.current!==e||t.signal.aborted)return;if((await We().catch(()=>null))?.is_responding){Te(e=>e+1);return}ye.current=0,de(!1),_e(n instanceof Error?n.message:`Message could not be sent.`)}finally{xe.current===e&&(ve.current=null)}})(),()=>{t.abort()}},[At,We,we,Mt]);let Nt=async()=>{_e(``),pe(!0);let e=_.length,t=e=>{v(t=>t.some(t=>t.id===e.id)?t:[...t,e])},n=e=>{v(t=>{let n=t.findIndex(t=>t.id===e.id);return n>=0?t.map((t,r)=>r===n?e:t):[...t,e]})};try{let e=await fetch(`/api/workspace/compact`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!e.ok){Tt(await wt(e)),pe(!1);return}await kt(e,{onEventIndex:()=>void 0,onContextOptimized:t,onDelta:()=>void 0,onDone:t,onError:()=>void 0,onOutputDone:()=>void 0,onOutputStart:()=>void 0,onSnapshot:n,onStart:()=>void 0,onThinkingDelta:()=>void 0,onToolDone:()=>void 0,onToolStart:()=>void 0,onUsage:He}),pe(!1)}catch(t){if(jJ(t)){We().catch(()=>void 0);return}if(t instanceof NJ){pe(!1);return}let n=t instanceof Error?t.message:`Context could not be compacted.`;v(t=>kJ(t,e)?t:[...t,EJ(n)]),pe(!1)}},Pt=(0,b.useMemo)(()=>[{description:`Clear the conversation`,id:`clear`,label:`/clear`,name:`clear`},{description:`Compact context`,id:`compact`,label:`/compact`,name:`compact`}],[]),Ft=e=>e===`clear`?(Gt(),!0):e===`compact`?ue?(Tt(`Compact is unavailable while Flowent is responding.`),!1):(Nt(),!0):!1,It=e=>{Tt(e)},Lt=(e,t)=>e instanceof Error?e.message:t,Rt=(e,t,n)=>[...e,EJ(Lt(t,n))],zt=()=>{ue&&fetch(`/api/workspace/stop`,{headers:{"Content-Type":`application/json`},method:`POST`}),xe.current+=1,ye.current=0,ve.current?.abort(),ve.current=null,_e(``),de(!1)},Bt=async(e=r,t=_,n={})=>{if(e.length===0||ue||fe)return;let a=n.clearDraft??t===_,o=xe.current+1,s=new AbortController;ve.current=s,xe.current=o,ye.current=0;let c=e,l=Bd(`message`),u=[...t,{author:`user`,content:c,id:l}];_e(``),de(!0),v(u),a&&i(``);try{await jt(c,l,At(u,o),s.signal)}catch(e){if(xe.current!==o||e instanceof DOMException&&e.name===`AbortError`&&s.signal.aborted)return;if(e instanceof Error&&e.message===`Response in progress`){v(t),a&&i(c),de(!1),Tt(e.message);return}if(!(e instanceof MJ)){let e=await We().catch(()=>null);if(e?.is_responding){Te(e=>e+1);return}if(e?.messages&&kJ(e.messages,t.length)){v(e.messages),de(!1);return}}if(e instanceof NJ){v([...u,e.errorMessage??DJ(e.outputError)]),de(!1);return}v(n=>kJ(n,t.length)?n:Rt(u,e,`Message could not be sent.`)),de(!1)}finally{xe.current===o&&(ve.current=null)}},Vt=e=>{xe.current+=1,ye.current=0,v(e),de(!0),Te(e=>e+1)},Ht=async e=>{if(ue)return;let t=_.findIndex(t=>t.id===e);if(t<0)return;let n=_[t],r=n.author===`user`?n:PJ(_,t-1);if(!r)return;let i=_.findIndex(e=>e.id===r.id);_e(``),de(!0);try{let e=await Et({action:`resend`,content:r.content,messageId:r.id});if(!e.is_responding)throw Error(`Message could not be sent.`);Vt(e.messages)}catch(e){v(Rt(_.slice(0,i+1),e,`Message could not be updated.`)),de(!1)}},Ut=async({errorId:e,messageId:t})=>{if(ue)return;let n=_.findIndex(e=>e.id===t);if(n<0||_[n].author!==`assistant`)return;let r=CJ(_[n],e);if(!r)return;let i=[..._.slice(0,n),r];_e(``),de(!0),v(i);try{let n=await Dt({errorId:e,messageId:t});if(!n.is_responding)throw Error(`Message could not be sent.`);Vt(n.messages)}catch(e){v(Rt(i,e,`Message could not be sent.`)),de(!1)}},Wt=async({action:e,content:t,messageId:n})=>{if(ue)return;let r=_.findIndex(e=>e.id===n);if(r<0||_[r].author!==`user`)return;let i=_;_e(``),e===`resend`&&de(!0);try{let r=await Et({action:e,content:t,messageId:n});if(e===`resend`){if(!r.is_responding)throw Error(`Message could not be sent.`);Vt(r.messages);return}v(r.messages)}catch(n){v(e===`resend`?Rt([...i.slice(0,r),{...i[r],content:t}],n,`Message could not be updated.`):i),e===`resend`&&de(!1),e!==`resend`&&Tt(Lt(n,`Message could not be updated.`))}},Gt=async()=>{let e=_,t=y;ve.current?.abort(),ve.current=null,ye.current=0,xe.current+=1,v([]),He(null),_e(``),de(!1);try{let e=await Ct();Array.isArray(e.messages)&&v(e.messages),He(e.usage_info??null)}catch{v(e),He(t),Tt(`Conversation could not be cleared.`)}};return(0,U.jsxs)(pf,{activeProviderName:Ie?.name,activeView:t,activeWorkflowId:Me,onNewWorkflow:()=>{Ne(``),ke(null),Fe(e=>e+1),n(`workflows`)},onViewChange:n,onWorkflowSelect:e=>{Ne(e),n(`workflows`)},workflows:Ee,children:[(0,U.jsx)(Gd,{value:`workspace`,className:Kd,tabIndex:-1,children:(0,U.jsx)($K,{contextWindowLimit:d,draft:r,errorMessage:ge,isRefiningContext:fe,isResponding:ue,messages:_,usageInfo:y,commands:Pt,skills:D,onCommand:Ft,onCommandError:It,onDraftChange:i,onEditMessage:e=>{Wt(e)},onRetryMessage:e=>{Ht(e)},onRetryError:e=>{Ut(e)},onSendMessage:e=>{Bt(e)},onStopResponse:zt})}),(0,U.jsx)(Gd,{value:`workflows`,className:Kd,children:(0,U.jsx)(QI,{activeWorkflow:Ve,isRunningWorkflow:!!Ae,newWorkflowKey:Pe,onCloseEditor:()=>{n(`workspace`)},onDeleteWorkflow:async e=>(await fetch(`/api/workflows/${encodeURIComponent(e)}`,{headers:{"Content-Type":`application/json`},method:`DELETE`})).ok?(De(t=>t.filter(t=>t.id!==e)),Oe?.workflowId===e&&ke(null),Me===e&&Ne(``),!0):!1,onRunWorkflow:async e=>{je(e),ke(null);try{let t=await fetch(`/api/workflows/${encodeURIComponent(e)}/run`,{headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok)return{data:null,error:await fJ(t,`Run could not be completed.`)};let n=dJ(await t.json());return ke(n),{data:n,error:``}}finally{je(``)}},onSaveWorkflow:async e=>{let t=await fetch(`/api/workflows`,{body:JSON.stringify(uJ(e)),headers:{"Content-Type":`application/json`},method:`PUT`});if(!t.ok)return{data:null,error:await fJ(t,`Workflow could not be saved.`)};let n=lJ(await t.json());return De(e=>e.some(e=>e.id===n.id)?e.map(e=>e.id===n.id?n:e):[n,...e]),Ne(n.id),{data:n,error:``}},runningWorkflowId:Ae,workflowRunResult:Oe})}),(0,U.jsx)(Gd,{value:`providers`,className:Kd,children:(0,U.jsx)(Wf,{activeProvider:oe,isFetchingModels:ce,isCreatingProvider:Le,onFetchModels:dt,onNewProvider:Ke,onProviderSelect:Ge,onRemoveProvider:pt,onSaveProvider:ft,onUpdateProvider:nt,providers:C})}),(0,U.jsx)(Gd,{value:`channels`,className:Kd,children:(0,U.jsx)(Cf,{onApproveSession:bt,onSaveTelegramBot:mt,onUpdateTelegramBot:qe,telegramBot:H})}),(0,U.jsx)(Gd,{value:`permissions`,className:Kd,children:(0,U.jsx)(Hf,{onAddWritablePath:St,onRemoveWritablePath:e=>{xt(e)},writablePaths:me})}),(0,U.jsx)(Gd,{value:`mcp`,className:Kd,children:(0,U.jsx)(Of,{activeServer:N,isCreatingServer:Re,isImportOpen:ee,importPreview:I,importSource:te,importingServerId:V,isPreviewing:z,onNewServer:Ye,onImport:Xe,onImportSourceChange:tt,onImportServer:e=>{et(e)},onReconnectServer:gt,onRemoveServer:_t,onSaveServer:()=>{ht()},onServerSelect:Je,onUpdateServer:Qe,servers:T})}),(0,U.jsx)(Gd,{value:`skills`,className:Kd,children:(0,U.jsx)(np,{activeSkill:ze,onReloadSkills:()=>{vt()},onSkillSelect:Ze,onSkillToggle:(e,t)=>{yt(e,t)},skills:D})}),(0,U.jsx)(Gd,{value:`settings`,className:Kd,children:(0,U.jsx)(Zf,{agentPrompt:a,appVersion:h,contextWindowLimit:d,modelOptions:Ie?.models??[],onModelChange:at,onProviderChange:W,onReasoningEffortChange:ot,onRuntimeSettingsSave:st,providers:C,reasoningEffort:p,selectedModel:l,selectedProviderId:s})})]})}function IJ(){return(0,U.jsx)(fw,{children:(0,U.jsx)(FJ,{})})}function LJ(){return null}function RJ(){return(0,b.useEffect)(()=>{},[]),null}var zJ=`--flowent-viewport-height`,BJ=`--flowent-keyboard-offset`,VJ=120;function HJ(){if(typeof window>`u`)return;let e=typeof CSS<`u`&&CSS.supports(`height`,`100dvh`),t=UJ(),n=0,r=0,i=e=>{document.documentElement.style.setProperty(zJ,`${e}px`)},a=e=>{document.documentElement.style.setProperty(BJ,`${e}px`)},o=(o=!1)=>{r=0;let s=UJ(),c=WJ(s),l=GJ()&&t-s>VJ;e||(o||!l)&&(t=s,i(s)),c!==n&&(n=c,a(c))},s=(e=!1)=>{r!==0&&window.cancelAnimationFrame(r),r=window.requestAnimationFrame(()=>o(e))};o(!0),window.addEventListener(`resize`,()=>s(),{passive:!0}),window.addEventListener(`orientationchange`,()=>s(!0),{passive:!0}),window.addEventListener(`focusin`,()=>s(),{passive:!0}),window.addEventListener(`focusout`,()=>s(),{passive:!0}),window.visualViewport?.addEventListener(`resize`,()=>s(),{passive:!0}),window.visualViewport?.addEventListener(`scroll`,()=>s(),{passive:!0})}function UJ(){return Math.round(document.documentElement.clientHeight||window.innerHeight||0)}function WJ(e){if(!GJ())return 0;let t=window.visualViewport;if(!t)return 0;let n=Math.max(0,e-t.height-t.offsetTop);return n>VJ?Math.round(n):0}function GJ(){let e=document.activeElement;if(e instanceof HTMLTextAreaElement)return!e.disabled&&!e.readOnly;if(e instanceof HTMLInputElement){let t=new Set([``,`email`,`number`,`password`,`search`,`tel`,`text`,`url`]);return!e.disabled&&!e.readOnly&&t.has(e.type)}return e instanceof HTMLElement&&e.isContentEditable}HJ(),(0,x.createRoot)(document.getElementById(`root`)).render((0,U.jsxs)(b.StrictMode,{children:[(0,U.jsx)(IJ,{}),(0,U.jsx)(LJ,{}),(0,U.jsx)(RJ,{})]}));
@@ -6,7 +6,7 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Flowent</title>
8
8
  <meta name="description" content="Flowent application" />
9
- <script type="module" crossorigin src="/assets/index-BaZmIi2Y.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-BX18a4Jz.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-EC37agAH.css">
11
11
  </head>
12
12
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowent",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "A workflow orchestration platform for multi-agent collaboration",
5
5
  "author": "ImFeH2 <i@feh2.im>",
6
6
  "license": "Apache-2.0",
@@ -60,11 +60,10 @@
60
60
  "build:backend": "node scripts/prepare-python-package.mjs && uv build --project backend",
61
61
  "build:npm": "pnpm build && node scripts/prepare-npm-package.mjs",
62
62
  "start": "uv run --project backend flowent",
63
- "format": "prettier --write . && uv run --project backend ruff format",
64
- "format:check": "prettier --check . && uv run --project backend ruff format --check",
65
- "lint": "pnpm lint:frontend && pnpm lint:backend",
66
- "lint:frontend": "pnpm --dir frontend lint",
67
- "lint:backend": "node scripts/prepare-python-readme.mjs && uv run --project backend ruff check && uv run --project backend mypy --config-file backend/pyproject.toml backend/src",
63
+ "check": "pnpm check:frontend && pnpm check:backend",
64
+ "check:fix": "biome check --write . && uv run --project backend ruff format && uv run --project backend ruff check --fix",
65
+ "check:frontend": "pnpm --dir frontend check",
66
+ "check:backend": "node scripts/prepare-python-readme.mjs && uv run --project backend ruff format --check && uv run --project backend ruff check && uv run --project backend mypy --config-file backend/pyproject.toml backend/src",
68
67
  "typecheck": "pnpm --dir frontend typecheck",
69
68
  "test": "pnpm test:frontend && pnpm test:backend",
70
69
  "test:frontend": "pnpm --dir frontend test",
@@ -76,19 +75,18 @@
76
75
  "prepare": "husky"
77
76
  },
78
77
  "lint-staged": {
79
- "*.{js,jsx,ts,tsx,mjs,mts}": "prettier --write",
78
+ "*.{js,jsx,ts,tsx,mjs,mts,cjs,cts,json,jsonc,css}": "biome check --write --no-errors-on-unmatched",
80
79
  "*.py": [
81
80
  "uv run --project backend ruff format",
82
81
  "uv run --project backend ruff check --fix"
83
- ],
84
- "*.{css,json,jsonc,md,mdx,yml,yaml}": "prettier --write"
82
+ ]
85
83
  },
86
84
  "devDependencies": {
85
+ "@biomejs/biome": "^2.5.0",
87
86
  "@release-it/bumper": "^7.0.5",
88
87
  "concurrently": "^9.2.1",
89
88
  "husky": "^9.1.7",
90
89
  "lint-staged": "^16.4.0",
91
- "prettier": "^3.8.3",
92
90
  "release-it": "^20.0.1"
93
91
  }
94
92
  }