@abstractframework/code 0.11.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
var w_=Object.defineProperty;var v_=(e,t,n)=>t in e?w_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var dn=(e,t,n)=>v_(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const c of i)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function n(i){const c={};return i.integrity&&(c.integrity=i.integrity),i.referrerPolicy&&(c.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?c.credentials="include":i.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function a(i){if(i.ep)return;i.ep=!0;const c=n(i);fetch(i.href,c)}})();function Ug(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var $d={exports:{}},ui={},Td={exports:{}},Ge={};/**
|
|
2
|
-
* @license React
|
|
3
|
-
* react.production.min.js
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
-
*
|
|
7
|
-
* This source code is licensed under the MIT license found in the
|
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var op;function __(){if(op)return Ge;op=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),w=Symbol.iterator;function _(F){return F===null||typeof F!="object"?null:(F=w&&F[w]||F["@@iterator"],typeof F=="function"?F:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},A=Object.assign,x={};function j(F,I,U){this.props=F,this.context=I,this.refs=x,this.updater=U||b}j.prototype.isReactComponent={},j.prototype.setState=function(F,I){if(typeof F!="object"&&typeof F!="function"&&F!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,F,I,"setState")},j.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function S(){}S.prototype=j.prototype;function E(F,I,U){this.props=F,this.context=I,this.refs=x,this.updater=U||b}var N=E.prototype=new S;N.constructor=E,A(N,j.prototype),N.isPureReactComponent=!0;var C=Array.isArray,$=Object.prototype.hasOwnProperty,R={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function M(F,I,U){var fe,q={},le=null,me=null;if(I!=null)for(fe in I.ref!==void 0&&(me=I.ref),I.key!==void 0&&(le=""+I.key),I)$.call(I,fe)&&!D.hasOwnProperty(fe)&&(q[fe]=I[fe]);var oe=arguments.length-2;if(oe===1)q.children=U;else if(1<oe){for(var ve=Array(oe),We=0;We<oe;We++)ve[We]=arguments[We+2];q.children=ve}if(F&&F.defaultProps)for(fe in oe=F.defaultProps,oe)q[fe]===void 0&&(q[fe]=oe[fe]);return{$$typeof:e,type:F,key:le,ref:me,props:q,_owner:R.current}}function J(F,I){return{$$typeof:e,type:F.type,key:I,ref:F.ref,props:F.props,_owner:F._owner}}function V(F){return typeof F=="object"&&F!==null&&F.$$typeof===e}function O(F){var I={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(U){return I[U]})}var te=/\/+/g;function P(F,I){return typeof F=="object"&&F!==null&&F.key!=null?O(""+F.key):I.toString(36)}function Z(F,I,U,fe,q){var le=typeof F;(le==="undefined"||le==="boolean")&&(F=null);var me=!1;if(F===null)me=!0;else switch(le){case"string":case"number":me=!0;break;case"object":switch(F.$$typeof){case e:case t:me=!0}}if(me)return me=F,q=q(me),F=fe===""?"."+P(me,0):fe,C(q)?(U="",F!=null&&(U=F.replace(te,"$&/")+"/"),Z(q,I,U,"",function(We){return We})):q!=null&&(V(q)&&(q=J(q,U+(!q.key||me&&me.key===q.key?"":(""+q.key).replace(te,"$&/")+"/")+F)),I.push(q)),1;if(me=0,fe=fe===""?".":fe+":",C(F))for(var oe=0;oe<F.length;oe++){le=F[oe];var ve=fe+P(le,oe);me+=Z(le,I,U,ve,q)}else if(ve=_(F),typeof ve=="function")for(F=ve.call(F),oe=0;!(le=F.next()).done;)le=le.value,ve=fe+P(le,oe++),me+=Z(le,I,U,ve,q);else if(le==="object")throw I=String(F),Error("Objects are not valid as a React child (found: "+(I==="[object Object]"?"object with keys {"+Object.keys(F).join(", ")+"}":I)+"). If you meant to render a collection of children, use an array instead.");return me}function W(F,I,U){if(F==null)return F;var fe=[],q=0;return Z(F,fe,"","",function(le){return I.call(U,le,q++)}),fe}function ne(F){if(F._status===-1){var I=F._result;I=I(),I.then(function(U){(F._status===0||F._status===-1)&&(F._status=1,F._result=U)},function(U){(F._status===0||F._status===-1)&&(F._status=2,F._result=U)}),F._status===-1&&(F._status=0,F._result=I)}if(F._status===1)return F._result.default;throw F._result}var ae={current:null},H={transition:null},de={ReactCurrentDispatcher:ae,ReactCurrentBatchConfig:H,ReactCurrentOwner:R};function re(){throw Error("act(...) is not supported in production builds of React.")}return Ge.Children={map:W,forEach:function(F,I,U){W(F,function(){I.apply(this,arguments)},U)},count:function(F){var I=0;return W(F,function(){I++}),I},toArray:function(F){return W(F,function(I){return I})||[]},only:function(F){if(!V(F))throw Error("React.Children.only expected to receive a single React element child.");return F}},Ge.Component=j,Ge.Fragment=n,Ge.Profiler=i,Ge.PureComponent=E,Ge.StrictMode=a,Ge.Suspense=f,Ge.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=de,Ge.act=re,Ge.cloneElement=function(F,I,U){if(F==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+F+".");var fe=A({},F.props),q=F.key,le=F.ref,me=F._owner;if(I!=null){if(I.ref!==void 0&&(le=I.ref,me=R.current),I.key!==void 0&&(q=""+I.key),F.type&&F.type.defaultProps)var oe=F.type.defaultProps;for(ve in I)$.call(I,ve)&&!D.hasOwnProperty(ve)&&(fe[ve]=I[ve]===void 0&&oe!==void 0?oe[ve]:I[ve])}var ve=arguments.length-2;if(ve===1)fe.children=U;else if(1<ve){oe=Array(ve);for(var We=0;We<ve;We++)oe[We]=arguments[We+2];fe.children=oe}return{$$typeof:e,type:F.type,key:q,ref:le,props:fe,_owner:me}},Ge.createContext=function(F){return F={$$typeof:u,_currentValue:F,_currentValue2:F,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},F.Provider={$$typeof:c,_context:F},F.Consumer=F},Ge.createElement=M,Ge.createFactory=function(F){var I=M.bind(null,F);return I.type=F,I},Ge.createRef=function(){return{current:null}},Ge.forwardRef=function(F){return{$$typeof:d,render:F}},Ge.isValidElement=V,Ge.lazy=function(F){return{$$typeof:p,_payload:{_status:-1,_result:F},_init:ne}},Ge.memo=function(F,I){return{$$typeof:m,type:F,compare:I===void 0?null:I}},Ge.startTransition=function(F){var I=H.transition;H.transition={};try{F()}finally{H.transition=I}},Ge.unstable_act=re,Ge.useCallback=function(F,I){return ae.current.useCallback(F,I)},Ge.useContext=function(F){return ae.current.useContext(F)},Ge.useDebugValue=function(){},Ge.useDeferredValue=function(F){return ae.current.useDeferredValue(F)},Ge.useEffect=function(F,I){return ae.current.useEffect(F,I)},Ge.useId=function(){return ae.current.useId()},Ge.useImperativeHandle=function(F,I,U){return ae.current.useImperativeHandle(F,I,U)},Ge.useInsertionEffect=function(F,I){return ae.current.useInsertionEffect(F,I)},Ge.useLayoutEffect=function(F,I){return ae.current.useLayoutEffect(F,I)},Ge.useMemo=function(F,I){return ae.current.useMemo(F,I)},Ge.useReducer=function(F,I,U){return ae.current.useReducer(F,I,U)},Ge.useRef=function(F){return ae.current.useRef(F)},Ge.useState=function(F){return ae.current.useState(F)},Ge.useSyncExternalStore=function(F,I,U){return ae.current.useSyncExternalStore(F,I,U)},Ge.useTransition=function(){return ae.current.useTransition()},Ge.version="18.3.1",Ge}var ip;function Lf(){return ip||(ip=1,Td.exports=__()),Td.exports}/**
|
|
10
|
-
* @license React
|
|
11
|
-
* react-jsx-runtime.production.min.js
|
|
12
|
-
*
|
|
13
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var lp;function b_(){if(lp)return ui;lp=1;var e=Lf(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(d,f,m){var p,w={},_=null,b=null;m!==void 0&&(_=""+m),f.key!==void 0&&(_=""+f.key),f.ref!==void 0&&(b=f.ref);for(p in f)a.call(f,p)&&!c.hasOwnProperty(p)&&(w[p]=f[p]);if(d&&d.defaultProps)for(p in f=d.defaultProps,f)w[p]===void 0&&(w[p]=f[p]);return{$$typeof:t,type:d,key:_,ref:b,props:w,_owner:i.current}}return ui.Fragment=n,ui.jsx=u,ui.jsxs=u,ui}var cp;function x_(){return cp||(cp=1,$d.exports=b_()),$d.exports}var r=x_(),y=Lf();const ut=Ug(y);var rc={},Rd={exports:{}},jn={},Id={exports:{}},Md={};/**
|
|
18
|
-
* @license React
|
|
19
|
-
* scheduler.production.min.js
|
|
20
|
-
*
|
|
21
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22
|
-
*
|
|
23
|
-
* This source code is licensed under the MIT license found in the
|
|
24
|
-
* LICENSE file in the root directory of this source tree.
|
|
25
|
-
*/var up;function k_(){return up||(up=1,(function(e){function t(H,de){var re=H.length;H.push(de);e:for(;0<re;){var F=re-1>>>1,I=H[F];if(0<i(I,de))H[F]=de,H[re]=I,re=F;else break e}}function n(H){return H.length===0?null:H[0]}function a(H){if(H.length===0)return null;var de=H[0],re=H.pop();if(re!==de){H[0]=re;e:for(var F=0,I=H.length,U=I>>>1;F<U;){var fe=2*(F+1)-1,q=H[fe],le=fe+1,me=H[le];if(0>i(q,re))le<I&&0>i(me,q)?(H[F]=me,H[le]=re,F=le):(H[F]=q,H[fe]=re,F=fe);else if(le<I&&0>i(me,re))H[F]=me,H[le]=re,F=le;else break e}}return de}function i(H,de){var re=H.sortIndex-de.sortIndex;return re!==0?re:H.id-de.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,d=u.now();e.unstable_now=function(){return u.now()-d}}var f=[],m=[],p=1,w=null,_=3,b=!1,A=!1,x=!1,j=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function N(H){for(var de=n(m);de!==null;){if(de.callback===null)a(m);else if(de.startTime<=H)a(m),de.sortIndex=de.expirationTime,t(f,de);else break;de=n(m)}}function C(H){if(x=!1,N(H),!A)if(n(f)!==null)A=!0,ne($);else{var de=n(m);de!==null&&ae(C,de.startTime-H)}}function $(H,de){A=!1,x&&(x=!1,S(M),M=-1),b=!0;var re=_;try{for(N(de),w=n(f);w!==null&&(!(w.expirationTime>de)||H&&!O());){var F=w.callback;if(typeof F=="function"){w.callback=null,_=w.priorityLevel;var I=F(w.expirationTime<=de);de=e.unstable_now(),typeof I=="function"?w.callback=I:w===n(f)&&a(f),N(de)}else a(f);w=n(f)}if(w!==null)var U=!0;else{var fe=n(m);fe!==null&&ae(C,fe.startTime-de),U=!1}return U}finally{w=null,_=re,b=!1}}var R=!1,D=null,M=-1,J=5,V=-1;function O(){return!(e.unstable_now()-V<J)}function te(){if(D!==null){var H=e.unstable_now();V=H;var de=!0;try{de=D(!0,H)}finally{de?P():(R=!1,D=null)}}else R=!1}var P;if(typeof E=="function")P=function(){E(te)};else if(typeof MessageChannel<"u"){var Z=new MessageChannel,W=Z.port2;Z.port1.onmessage=te,P=function(){W.postMessage(null)}}else P=function(){j(te,0)};function ne(H){D=H,R||(R=!0,P())}function ae(H,de){M=j(function(){H(e.unstable_now())},de)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(H){H.callback=null},e.unstable_continueExecution=function(){A||b||(A=!0,ne($))},e.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):J=0<H?Math.floor(1e3/H):5},e.unstable_getCurrentPriorityLevel=function(){return _},e.unstable_getFirstCallbackNode=function(){return n(f)},e.unstable_next=function(H){switch(_){case 1:case 2:case 3:var de=3;break;default:de=_}var re=_;_=de;try{return H()}finally{_=re}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(H,de){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var re=_;_=H;try{return de()}finally{_=re}},e.unstable_scheduleCallback=function(H,de,re){var F=e.unstable_now();switch(typeof re=="object"&&re!==null?(re=re.delay,re=typeof re=="number"&&0<re?F+re:F):re=F,H){case 1:var I=-1;break;case 2:I=250;break;case 5:I=1073741823;break;case 4:I=1e4;break;default:I=5e3}return I=re+I,H={id:p++,callback:de,priorityLevel:H,startTime:re,expirationTime:I,sortIndex:-1},re>F?(H.sortIndex=re,t(m,H),n(f)===null&&H===n(m)&&(x?(S(M),M=-1):x=!0,ae(C,re-F))):(H.sortIndex=I,t(f,H),A||b||(A=!0,ne($))),H},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(H){var de=_;return function(){var re=_;_=de;try{return H.apply(this,arguments)}finally{_=re}}}})(Md)),Md}var dp;function j_(){return dp||(dp=1,Id.exports=k_()),Id.exports}/**
|
|
26
|
-
* @license React
|
|
27
|
-
* react-dom.production.min.js
|
|
28
|
-
*
|
|
29
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
30
|
-
*
|
|
31
|
-
* This source code is licensed under the MIT license found in the
|
|
32
|
-
* LICENSE file in the root directory of this source tree.
|
|
33
|
-
*/var fp;function S_(){if(fp)return jn;fp=1;var e=Lf(),t=j_();function n(s){for(var o="https://reactjs.org/docs/error-decoder.html?invariant="+s,l=1;l<arguments.length;l++)o+="&args[]="+encodeURIComponent(arguments[l]);return"Minified React error #"+s+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,i={};function c(s,o){u(s,o),u(s+"Capture",o)}function u(s,o){for(i[s]=o,s=0;s<o.length;s++)a.add(o[s])}var d=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),f=Object.prototype.hasOwnProperty,m=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},w={};function _(s){return f.call(w,s)?!0:f.call(p,s)?!1:m.test(s)?w[s]=!0:(p[s]=!0,!1)}function b(s,o,l,h){if(l!==null&&l.type===0)return!1;switch(typeof o){case"function":case"symbol":return!0;case"boolean":return h?!1:l!==null?!l.acceptsBooleans:(s=s.toLowerCase().slice(0,5),s!=="data-"&&s!=="aria-");default:return!1}}function A(s,o,l,h){if(o===null||typeof o>"u"||b(s,o,l,h))return!0;if(h)return!1;if(l!==null)switch(l.type){case 3:return!o;case 4:return o===!1;case 5:return isNaN(o);case 6:return isNaN(o)||1>o}return!1}function x(s,o,l,h,g,v,k){this.acceptsBooleans=o===2||o===3||o===4,this.attributeName=h,this.attributeNamespace=g,this.mustUseProperty=l,this.propertyName=s,this.type=o,this.sanitizeURL=v,this.removeEmptyString=k}var j={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(s){j[s]=new x(s,0,!1,s,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(s){var o=s[0];j[o]=new x(o,1,!1,s[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(s){j[s]=new x(s,2,!1,s.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(s){j[s]=new x(s,2,!1,s,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(s){j[s]=new x(s,3,!1,s.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(s){j[s]=new x(s,3,!0,s,null,!1,!1)}),["capture","download"].forEach(function(s){j[s]=new x(s,4,!1,s,null,!1,!1)}),["cols","rows","size","span"].forEach(function(s){j[s]=new x(s,6,!1,s,null,!1,!1)}),["rowSpan","start"].forEach(function(s){j[s]=new x(s,5,!1,s.toLowerCase(),null,!1,!1)});var S=/[\-:]([a-z])/g;function E(s){return s[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(s){var o=s.replace(S,E);j[o]=new x(o,1,!1,s,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(s){var o=s.replace(S,E);j[o]=new x(o,1,!1,s,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(s){var o=s.replace(S,E);j[o]=new x(o,1,!1,s,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(s){j[s]=new x(s,1,!1,s.toLowerCase(),null,!1,!1)}),j.xlinkHref=new x("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(s){j[s]=new x(s,1,!1,s.toLowerCase(),null,!0,!0)});function N(s,o,l,h){var g=j.hasOwnProperty(o)?j[o]:null;(g!==null?g.type!==0:h||!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")&&(A(o,l,g,h)&&(l=null),h||g===null?_(o)&&(l===null?s.removeAttribute(o):s.setAttribute(o,""+l)):g.mustUseProperty?s[g.propertyName]=l===null?g.type===3?!1:"":l:(o=g.attributeName,h=g.attributeNamespace,l===null?s.removeAttribute(o):(g=g.type,l=g===3||g===4&&l===!0?"":""+l,h?s.setAttributeNS(h,o,l):s.setAttribute(o,l))))}var C=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,$=Symbol.for("react.element"),R=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),M=Symbol.for("react.strict_mode"),J=Symbol.for("react.profiler"),V=Symbol.for("react.provider"),O=Symbol.for("react.context"),te=Symbol.for("react.forward_ref"),P=Symbol.for("react.suspense"),Z=Symbol.for("react.suspense_list"),W=Symbol.for("react.memo"),ne=Symbol.for("react.lazy"),ae=Symbol.for("react.offscreen"),H=Symbol.iterator;function de(s){return s===null||typeof s!="object"?null:(s=H&&s[H]||s["@@iterator"],typeof s=="function"?s:null)}var re=Object.assign,F;function I(s){if(F===void 0)try{throw Error()}catch(l){var o=l.stack.trim().match(/\n( *(at )?)/);F=o&&o[1]||""}return`
|
|
34
|
-
`+F+s}var U=!1;function fe(s,o){if(!s||U)return"";U=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(o)if(o=function(){throw Error()},Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(o,[])}catch(Q){var h=Q}Reflect.construct(s,[],o)}else{try{o.call()}catch(Q){h=Q}s.call(o.prototype)}else{try{throw Error()}catch(Q){h=Q}s()}}catch(Q){if(Q&&h&&typeof Q.stack=="string"){for(var g=Q.stack.split(`
|
|
35
|
-
`),v=h.stack.split(`
|
|
36
|
-
`),k=g.length-1,L=v.length-1;1<=k&&0<=L&&g[k]!==v[L];)L--;for(;1<=k&&0<=L;k--,L--)if(g[k]!==v[L]){if(k!==1||L!==1)do if(k--,L--,0>L||g[k]!==v[L]){var z=`
|
|
37
|
-
`+g[k].replace(" at new "," at ");return s.displayName&&z.includes("<anonymous>")&&(z=z.replace("<anonymous>",s.displayName)),z}while(1<=k&&0<=L);break}}}finally{U=!1,Error.prepareStackTrace=l}return(s=s?s.displayName||s.name:"")?I(s):""}function q(s){switch(s.tag){case 5:return I(s.type);case 16:return I("Lazy");case 13:return I("Suspense");case 19:return I("SuspenseList");case 0:case 2:case 15:return s=fe(s.type,!1),s;case 11:return s=fe(s.type.render,!1),s;case 1:return s=fe(s.type,!0),s;default:return""}}function le(s){if(s==null)return null;if(typeof s=="function")return s.displayName||s.name||null;if(typeof s=="string")return s;switch(s){case D:return"Fragment";case R:return"Portal";case J:return"Profiler";case M:return"StrictMode";case P:return"Suspense";case Z:return"SuspenseList"}if(typeof s=="object")switch(s.$$typeof){case O:return(s.displayName||"Context")+".Consumer";case V:return(s._context.displayName||"Context")+".Provider";case te:var o=s.render;return s=s.displayName,s||(s=o.displayName||o.name||"",s=s!==""?"ForwardRef("+s+")":"ForwardRef"),s;case W:return o=s.displayName||null,o!==null?o:le(s.type)||"Memo";case ne:o=s._payload,s=s._init;try{return le(s(o))}catch{}}return null}function me(s){var o=s.type;switch(s.tag){case 24:return"Cache";case 9:return(o.displayName||"Context")+".Consumer";case 10:return(o._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return s=o.render,s=s.displayName||s.name||"",o.displayName||(s!==""?"ForwardRef("+s+")":"ForwardRef");case 7:return"Fragment";case 5:return o;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return le(o);case 8:return o===M?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o}return null}function oe(s){switch(typeof s){case"boolean":case"number":case"string":case"undefined":return s;case"object":return s;default:return""}}function ve(s){var o=s.type;return(s=s.nodeName)&&s.toLowerCase()==="input"&&(o==="checkbox"||o==="radio")}function We(s){var o=ve(s)?"checked":"value",l=Object.getOwnPropertyDescriptor(s.constructor.prototype,o),h=""+s[o];if(!s.hasOwnProperty(o)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var g=l.get,v=l.set;return Object.defineProperty(s,o,{configurable:!0,get:function(){return g.call(this)},set:function(k){h=""+k,v.call(this,k)}}),Object.defineProperty(s,o,{enumerable:l.enumerable}),{getValue:function(){return h},setValue:function(k){h=""+k},stopTracking:function(){s._valueTracker=null,delete s[o]}}}}function nt(s){s._valueTracker||(s._valueTracker=We(s))}function qe(s){if(!s)return!1;var o=s._valueTracker;if(!o)return!0;var l=o.getValue(),h="";return s&&(h=ve(s)?s.checked?"true":"false":s.value),s=h,s!==l?(o.setValue(s),!0):!1}function $e(s){if(s=s||(typeof document<"u"?document:void 0),typeof s>"u")return null;try{return s.activeElement||s.body}catch{return s.body}}function Ue(s,o){var l=o.checked;return re({},o,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:l??s._wrapperState.initialChecked})}function lt(s,o){var l=o.defaultValue==null?"":o.defaultValue,h=o.checked!=null?o.checked:o.defaultChecked;l=oe(o.value!=null?o.value:l),s._wrapperState={initialChecked:h,initialValue:l,controlled:o.type==="checkbox"||o.type==="radio"?o.checked!=null:o.value!=null}}function Pe(s,o){o=o.checked,o!=null&&N(s,"checked",o,!1)}function ie(s,o){Pe(s,o);var l=oe(o.value),h=o.type;if(l!=null)h==="number"?(l===0&&s.value===""||s.value!=l)&&(s.value=""+l):s.value!==""+l&&(s.value=""+l);else if(h==="submit"||h==="reset"){s.removeAttribute("value");return}o.hasOwnProperty("value")?Ne(s,o.type,l):o.hasOwnProperty("defaultValue")&&Ne(s,o.type,oe(o.defaultValue)),o.checked==null&&o.defaultChecked!=null&&(s.defaultChecked=!!o.defaultChecked)}function ee(s,o,l){if(o.hasOwnProperty("value")||o.hasOwnProperty("defaultValue")){var h=o.type;if(!(h!=="submit"&&h!=="reset"||o.value!==void 0&&o.value!==null))return;o=""+s._wrapperState.initialValue,l||o===s.value||(s.value=o),s.defaultValue=o}l=s.name,l!==""&&(s.name=""),s.defaultChecked=!!s._wrapperState.initialChecked,l!==""&&(s.name=l)}function Ne(s,o,l){(o!=="number"||$e(s.ownerDocument)!==s)&&(l==null?s.defaultValue=""+s._wrapperState.initialValue:s.defaultValue!==""+l&&(s.defaultValue=""+l))}var X=Array.isArray;function pe(s,o,l,h){if(s=s.options,o){o={};for(var g=0;g<l.length;g++)o["$"+l[g]]=!0;for(l=0;l<s.length;l++)g=o.hasOwnProperty("$"+s[l].value),s[l].selected!==g&&(s[l].selected=g),g&&h&&(s[l].defaultSelected=!0)}else{for(l=""+oe(l),o=null,g=0;g<s.length;g++){if(s[g].value===l){s[g].selected=!0,h&&(s[g].defaultSelected=!0);return}o!==null||s[g].disabled||(o=s[g])}o!==null&&(o.selected=!0)}}function _e(s,o){if(o.dangerouslySetInnerHTML!=null)throw Error(n(91));return re({},o,{value:void 0,defaultValue:void 0,children:""+s._wrapperState.initialValue})}function ye(s,o){var l=o.value;if(l==null){if(l=o.children,o=o.defaultValue,l!=null){if(o!=null)throw Error(n(92));if(X(l)){if(1<l.length)throw Error(n(93));l=l[0]}o=l}o==null&&(o=""),l=o}s._wrapperState={initialValue:oe(l)}}function Oe(s,o){var l=oe(o.value),h=oe(o.defaultValue);l!=null&&(l=""+l,l!==s.value&&(s.value=l),o.defaultValue==null&&s.defaultValue!==l&&(s.defaultValue=l)),h!=null&&(s.defaultValue=""+h)}function Be(s){var o=s.textContent;o===s._wrapperState.initialValue&&o!==""&&o!==null&&(s.value=o)}function Ke(s){switch(s){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function xe(s,o){return s==null||s==="http://www.w3.org/1999/xhtml"?Ke(o):s==="http://www.w3.org/2000/svg"&&o==="foreignObject"?"http://www.w3.org/1999/xhtml":s}var Ye,Yt=(function(s){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(o,l,h,g){MSApp.execUnsafeLocalFunction(function(){return s(o,l,h,g)})}:s})(function(s,o){if(s.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in s)s.innerHTML=o;else{for(Ye=Ye||document.createElement("div"),Ye.innerHTML="<svg>"+o.valueOf().toString()+"</svg>",o=Ye.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;o.firstChild;)s.appendChild(o.firstChild)}});function on(s,o){if(o){var l=s.firstChild;if(l&&l===s.lastChild&&l.nodeType===3){l.nodeValue=o;return}}s.textContent=o}var xt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Yn=["Webkit","ms","Moz","O"];Object.keys(xt).forEach(function(s){Yn.forEach(function(o){o=o+s.charAt(0).toUpperCase()+s.substring(1),xt[o]=xt[s]})});function Xs(s,o,l){return o==null||typeof o=="boolean"||o===""?"":l||typeof o!="number"||o===0||xt.hasOwnProperty(s)&&xt[s]?(""+o).trim():o+"px"}function ha(s,o){s=s.style;for(var l in o)if(o.hasOwnProperty(l)){var h=l.indexOf("--")===0,g=Xs(l,o[l],h);l==="float"&&(l="cssFloat"),h?s.setProperty(l,g):s[l]=g}}var gt=re({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ma(s,o){if(o){if(gt[s]&&(o.children!=null||o.dangerouslySetInnerHTML!=null))throw Error(n(137,s));if(o.dangerouslySetInnerHTML!=null){if(o.children!=null)throw Error(n(60));if(typeof o.dangerouslySetInnerHTML!="object"||!("__html"in o.dangerouslySetInnerHTML))throw Error(n(61))}if(o.style!=null&&typeof o.style!="object")throw Error(n(62))}}function Fn(s,o){if(s.indexOf("-")===-1)return typeof o.is=="string";switch(s){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var pa=null;function mn(s){return s=s.target||s.srcElement||window,s.correspondingUseElement&&(s=s.correspondingUseElement),s.nodeType===3?s.parentNode:s}var ds=null,qs=null,Ts=null;function Pr(s){if(s=Qo(s)){if(typeof ds!="function")throw Error(n(280));var o=s.stateNode;o&&(o=vl(o),ds(s.stateNode,s.type,o))}}function ga(s){qs?Ts?Ts.push(s):Ts=[s]:qs=s}function Rs(){if(qs){var s=qs,o=Ts;if(Ts=qs=null,Pr(s),o)for(s=0;s<o.length;s++)Pr(o[s])}}function ya(s,o){return s(o)}function Gi(){}var Is=!1;function ko(s,o,l){if(Is)return s(o,l);Is=!0;try{return ya(s,o,l)}finally{Is=!1,(qs!==null||Ts!==null)&&(Gi(),Rs())}}function Dr(s,o){var l=s.stateNode;if(l===null)return null;var h=vl(l);if(h===null)return null;l=h[o];e:switch(o){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(h=!h.disabled)||(s=s.type,h=!(s==="button"||s==="input"||s==="select"||s==="textarea")),s=!h;break e;default:s=!1}if(s)return null;if(l&&typeof l!="function")throw Error(n(231,o,typeof l));return l}var fs=!1;if(d)try{var At={};Object.defineProperty(At,"passive",{get:function(){fs=!0}}),window.addEventListener("test",At,At),window.removeEventListener("test",At,At)}catch{fs=!1}function jo(s,o,l,h,g,v,k,L,z){var Q=Array.prototype.slice.call(arguments,3);try{o.apply(l,Q)}catch(ue){this.onError(ue)}}var Zs=!1,hs=null,Fr=!1,wa=null,ln={onError:function(s){Zs=!0,hs=s}};function Rt(s,o,l,h,g,v,k,L,z){Zs=!1,hs=null,jo.apply(ln,arguments)}function Xt(s,o,l,h,g,v,k,L,z){if(Rt.apply(this,arguments),Zs){if(Zs){var Q=hs;Zs=!1,hs=null}else throw Error(n(198));Fr||(Fr=!0,wa=Q)}}function pn(s){var o=s,l=s;if(s.alternate)for(;o.return;)o=o.return;else{s=o;do o=s,(o.flags&4098)!==0&&(l=o.return),s=o.return;while(s)}return o.tag===3?l:null}function va(s){if(s.tag===13){var o=s.memoizedState;if(o===null&&(s=s.alternate,s!==null&&(o=s.memoizedState)),o!==null)return o.dehydrated}return null}function _a(s){if(pn(s)!==s)throw Error(n(188))}function So(s){var o=s.alternate;if(!o){if(o=pn(s),o===null)throw Error(n(188));return o!==s?null:s}for(var l=s,h=o;;){var g=l.return;if(g===null)break;var v=g.alternate;if(v===null){if(h=g.return,h!==null){l=h;continue}break}if(g.child===v.child){for(v=g.child;v;){if(v===l)return _a(g),s;if(v===h)return _a(g),o;v=v.sibling}throw Error(n(188))}if(l.return!==h.return)l=g,h=v;else{for(var k=!1,L=g.child;L;){if(L===l){k=!0,l=g,h=v;break}if(L===h){k=!0,h=g,l=v;break}L=L.sibling}if(!k){for(L=v.child;L;){if(L===l){k=!0,l=v,h=g;break}if(L===h){k=!0,h=v,l=g;break}L=L.sibling}if(!k)throw Error(n(189))}}if(l.alternate!==h)throw Error(n(190))}if(l.tag!==3)throw Error(n(188));return l.stateNode.current===l?s:o}function ba(s){return s=So(s),s!==null?Ki(s):null}function Ki(s){if(s.tag===5||s.tag===6)return s;for(s=s.child;s!==null;){var o=Ki(s);if(o!==null)return o;s=s.sibling}return null}var No=t.unstable_scheduleCallback,er=t.unstable_cancelCallback,tu=t.unstable_shouldYield,Ms=t.unstable_requestPaint,rt=t.unstable_now,Co=t.unstable_getCurrentPriorityLevel,Tn=t.unstable_ImmediatePriority,Eo=t.unstable_UserBlockingPriority,tr=t.unstable_NormalPriority,zr=t.unstable_LowPriority,xa=t.unstable_IdlePriority,ka=null,gn=null;function Ji(s){if(gn&&typeof gn.onCommitFiberRoot=="function")try{gn.onCommitFiberRoot(ka,s,void 0,(s.current.flags&128)===128)}catch{}}var yn=Math.clz32?Math.clz32:su,Qi=Math.log,nu=Math.LN2;function su(s){return s>>>=0,s===0?32:31-(Qi(s)/nu|0)|0}var zn=64,Ve=4194304;function Vt(s){switch(s&-s){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return s&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return s}}function nr(s,o){var l=s.pendingLanes;if(l===0)return 0;var h=0,g=s.suspendedLanes,v=s.pingedLanes,k=l&268435455;if(k!==0){var L=k&~g;L!==0?h=Vt(L):(v&=k,v!==0&&(h=Vt(v)))}else k=l&~g,k!==0?h=Vt(k):v!==0&&(h=Vt(v));if(h===0)return 0;if(o!==0&&o!==h&&(o&g)===0&&(g=h&-h,v=o&-o,g>=v||g===16&&(v&4194240)!==0))return o;if((h&4)!==0&&(h|=l&16),o=s.entangledLanes,o!==0)for(s=s.entanglements,o&=h;0<o;)l=31-yn(o),g=1<<l,h|=s[l],o&=~g;return h}function ms(s,o){switch(s){case 1:case 2:case 4:return o+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ja(s,o){for(var l=s.suspendedLanes,h=s.pingedLanes,g=s.expirationTimes,v=s.pendingLanes;0<v;){var k=31-yn(v),L=1<<k,z=g[k];z===-1?((L&l)===0||(L&h)!==0)&&(g[k]=ms(L,o)):z<=o&&(s.expiredLanes|=L),v&=~L}}function sr(s){return s=s.pendingLanes&-1073741825,s!==0?s:s&1073741824?1073741824:0}function Xn(){var s=zn;return zn<<=1,(zn&4194240)===0&&(zn=64),s}function Wr(s){for(var o=[],l=0;31>l;l++)o.push(s);return o}function rr(s,o,l){s.pendingLanes|=o,o!==536870912&&(s.suspendedLanes=0,s.pingedLanes=0),s=s.eventTimes,o=31-yn(o),s[o]=l}function qn(s,o){var l=s.pendingLanes&~o;s.pendingLanes=o,s.suspendedLanes=0,s.pingedLanes=0,s.expiredLanes&=o,s.mutableReadLanes&=o,s.entangledLanes&=o,o=s.entanglements;var h=s.eventTimes;for(s=s.expirationTimes;0<l;){var g=31-yn(l),v=1<<g;o[g]=0,h[g]=-1,s[g]=-1,l&=~v}}function Zn(s,o){var l=s.entangledLanes|=o;for(s=s.entanglements;l;){var h=31-yn(l),g=1<<h;g&o|s[h]&o&&(s[h]|=o),l&=~g}}var Je=0;function Sa(s){return s&=-s,1<s?4<s?(s&268435455)!==0?16:536870912:4:1}var Ao,wn,$o,Wn,To,ps=!1,gs=[],Rn=null,Nt=null,In=null,ar=new Map,Ls=new Map,Bn=[],Yi="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Xi(s,o){switch(s){case"focusin":case"focusout":Rn=null;break;case"dragenter":case"dragleave":Nt=null;break;case"mouseover":case"mouseout":In=null;break;case"pointerover":case"pointerout":ar.delete(o.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ls.delete(o.pointerId)}}function or(s,o,l,h,g,v){return s===null||s.nativeEvent!==v?(s={blockedOn:o,domEventName:l,eventSystemFlags:h,nativeEvent:v,targetContainers:[g]},o!==null&&(o=Qo(o),o!==null&&wn(o)),s):(s.eventSystemFlags|=h,o=s.targetContainers,g!==null&&o.indexOf(g)===-1&&o.push(g),s)}function qi(s,o,l,h,g){switch(o){case"focusin":return Rn=or(Rn,s,o,l,h,g),!0;case"dragenter":return Nt=or(Nt,s,o,l,h,g),!0;case"mouseover":return In=or(In,s,o,l,h,g),!0;case"pointerover":var v=g.pointerId;return ar.set(v,or(ar.get(v)||null,s,o,l,h,g)),!0;case"gotpointercapture":return v=g.pointerId,Ls.set(v,or(Ls.get(v)||null,s,o,l,h,g)),!0}return!1}function Na(s){var o=Hr(s.target);if(o!==null){var l=pn(o);if(l!==null){if(o=l.tag,o===13){if(o=va(l),o!==null){s.blockedOn=o,To(s.priority,function(){$o(l)});return}}else if(o===3&&l.stateNode.current.memoizedState.isDehydrated){s.blockedOn=l.tag===3?l.stateNode.containerInfo:null;return}}}s.blockedOn=null}function ys(s){if(s.blockedOn!==null)return!1;for(var o=s.targetContainers;0<o.length;){var l=Ea(s.domEventName,s.eventSystemFlags,o[0],s.nativeEvent);if(l===null){l=s.nativeEvent;var h=new l.constructor(l.type,l);pa=h,l.target.dispatchEvent(h),pa=null}else return o=Qo(l),o!==null&&wn(o),s.blockedOn=l,!1;o.shift()}return!0}function It(s,o,l){ys(s)&&l.delete(o)}function Ro(){ps=!1,Rn!==null&&ys(Rn)&&(Rn=null),Nt!==null&&ys(Nt)&&(Nt=null),In!==null&&ys(In)&&(In=null),ar.forEach(It),Ls.forEach(It)}function $t(s,o){s.blockedOn===o&&(s.blockedOn=null,ps||(ps=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Ro)))}function ir(s){function o(g){return $t(g,s)}if(0<gs.length){$t(gs[0],s);for(var l=1;l<gs.length;l++){var h=gs[l];h.blockedOn===s&&(h.blockedOn=null)}}for(Rn!==null&&$t(Rn,s),Nt!==null&&$t(Nt,s),In!==null&&$t(In,s),ar.forEach(o),Ls.forEach(o),l=0;l<Bn.length;l++)h=Bn[l],h.blockedOn===s&&(h.blockedOn=null);for(;0<Bn.length&&(l=Bn[0],l.blockedOn===null);)Na(l),l.blockedOn===null&&Bn.shift()}var ws=C.ReactCurrentBatchConfig,vs=!0;function Br(s,o,l,h){var g=Je,v=ws.transition;ws.transition=null;try{Je=1,lr(s,o,l,h)}finally{Je=g,ws.transition=v}}function Io(s,o,l,h){var g=Je,v=ws.transition;ws.transition=null;try{Je=4,lr(s,o,l,h)}finally{Je=g,ws.transition=v}}function lr(s,o,l,h){if(vs){var g=Ea(s,o,l,h);if(g===null)_u(s,o,h,Ca,l),Xi(s,h);else if(qi(g,s,o,l,h))h.stopPropagation();else if(Xi(s,h),o&4&&-1<Yi.indexOf(s)){for(;g!==null;){var v=Qo(g);if(v!==null&&Ao(v),v=Ea(s,o,l,h),v===null&&_u(s,o,h,Ca,l),v===g)break;g=v}g!==null&&h.stopPropagation()}else _u(s,o,h,null,l)}}var Ca=null;function Ea(s,o,l,h){if(Ca=null,s=mn(h),s=Hr(s),s!==null)if(o=pn(s),o===null)s=null;else if(l=o.tag,l===13){if(s=va(o),s!==null)return s;s=null}else if(l===3){if(o.stateNode.current.memoizedState.isDehydrated)return o.tag===3?o.stateNode.containerInfo:null;s=null}else o!==s&&(s=null);return Ca=s,null}function Mo(s){switch(s){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Co()){case Tn:return 1;case Eo:return 4;case tr:case zr:return 16;case xa:return 536870912;default:return 16}default:return 16}}var es=null,Ur=null,Aa=null;function Zi(){if(Aa)return Aa;var s,o=Ur,l=o.length,h,g="value"in es?es.value:es.textContent,v=g.length;for(s=0;s<l&&o[s]===g[s];s++);var k=l-s;for(h=1;h<=k&&o[l-h]===g[v-h];h++);return Aa=g.slice(s,1<h?1-h:void 0)}function $a(s){var o=s.keyCode;return"charCode"in s?(s=s.charCode,s===0&&o===13&&(s=13)):s=o,s===10&&(s=13),32<=s||s===13?s:0}function _s(){return!0}function Ta(){return!1}function yt(s){function o(l,h,g,v,k){this._reactName=l,this._targetInst=g,this.type=h,this.nativeEvent=v,this.target=k,this.currentTarget=null;for(var L in s)s.hasOwnProperty(L)&&(l=s[L],this[L]=l?l(v):v[L]);return this.isDefaultPrevented=(v.defaultPrevented!=null?v.defaultPrevented:v.returnValue===!1)?_s:Ta,this.isPropagationStopped=Ta,this}return re(o.prototype,{preventDefault:function(){this.defaultPrevented=!0;var l=this.nativeEvent;l&&(l.preventDefault?l.preventDefault():typeof l.returnValue!="unknown"&&(l.returnValue=!1),this.isDefaultPrevented=_s)},stopPropagation:function(){var l=this.nativeEvent;l&&(l.stopPropagation?l.stopPropagation():typeof l.cancelBubble!="unknown"&&(l.cancelBubble=!0),this.isPropagationStopped=_s)},persist:function(){},isPersistent:_s}),o}var bs={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(s){return s.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ra=yt(bs),Os=re({},bs,{view:0,detail:0}),ru=yt(Os),cr,Ia,Vr,Ma=re({},Os,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Oa,button:0,buttons:0,relatedTarget:function(s){return s.relatedTarget===void 0?s.fromElement===s.srcElement?s.toElement:s.fromElement:s.relatedTarget},movementX:function(s){return"movementX"in s?s.movementX:(s!==Vr&&(Vr&&s.type==="mousemove"?(cr=s.screenX-Vr.screenX,Ia=s.screenY-Vr.screenY):Ia=cr=0,Vr=s),cr)},movementY:function(s){return"movementY"in s?s.movementY:Ia}}),Lo=yt(Ma),au=re({},Ma,{dataTransfer:0}),ou=yt(au),xs=re({},Os,{relatedTarget:0}),La=yt(xs),wt=re({},bs,{animationName:0,elapsedTime:0,pseudoElement:0}),Ps=yt(wt),ur=re({},bs,{clipboardData:function(s){return"clipboardData"in s?s.clipboardData:window.clipboardData}}),iu=yt(ur),lu=re({},bs,{data:0}),el=yt(lu),cu={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},uu={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},du={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Oo(s){var o=this.nativeEvent;return o.getModifierState?o.getModifierState(s):(s=du[s])?!!o[s]:!1}function Oa(){return Oo}var tl=re({},Os,{key:function(s){if(s.key){var o=cu[s.key]||s.key;if(o!=="Unidentified")return o}return s.type==="keypress"?(s=$a(s),s===13?"Enter":String.fromCharCode(s)):s.type==="keydown"||s.type==="keyup"?uu[s.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Oa,charCode:function(s){return s.type==="keypress"?$a(s):0},keyCode:function(s){return s.type==="keydown"||s.type==="keyup"?s.keyCode:0},which:function(s){return s.type==="keypress"?$a(s):s.type==="keydown"||s.type==="keyup"?s.keyCode:0}}),fu=yt(tl),nl=re({},Ma,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Po=yt(nl),sl=re({},Os,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Oa}),rl=yt(sl),al=re({},bs,{propertyName:0,elapsedTime:0,pseudoElement:0}),ol=yt(al),il=re({},Ma,{deltaX:function(s){return"deltaX"in s?s.deltaX:"wheelDeltaX"in s?-s.wheelDeltaX:0},deltaY:function(s){return"deltaY"in s?s.deltaY:"wheelDeltaY"in s?-s.wheelDeltaY:"wheelDelta"in s?-s.wheelDelta:0},deltaZ:0,deltaMode:0}),ll=yt(il),cl=[9,13,27,32],Pa=d&&"CompositionEvent"in window,dr=null;d&&"documentMode"in document&&(dr=document.documentMode);var ul=d&&"TextEvent"in window&&!dr,Do=d&&(!Pa||dr&&8<dr&&11>=dr),Fo=" ",zo=!1;function Wo(s,o){switch(s){case"keyup":return cl.indexOf(o.keyCode)!==-1;case"keydown":return o.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bo(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var Ds=!1;function dl(s,o){switch(s){case"compositionend":return Bo(o);case"keypress":return o.which!==32?null:(zo=!0,Fo);case"textInput":return s=o.data,s===Fo&&zo?null:s;default:return null}}function fl(s,o){if(Ds)return s==="compositionend"||!Pa&&Wo(s,o)?(s=Zi(),Aa=Ur=es=null,Ds=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(o.ctrlKey||o.altKey||o.metaKey)||o.ctrlKey&&o.altKey){if(o.char&&1<o.char.length)return o.char;if(o.which)return String.fromCharCode(o.which)}return null;case"compositionend":return Do&&o.locale!=="ko"?null:o.data;default:return null}}var T={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Y(s){var o=s&&s.nodeName&&s.nodeName.toLowerCase();return o==="input"?!!T[s.type]:o==="textarea"}function be(s,o,l,h){ga(h),o=gl(o,"onChange"),0<o.length&&(l=new Ra("onChange","change",null,l,h),s.push({event:l,listeners:o}))}var je=null,Te=null;function ht(s){xh(s,0)}function vt(s){var o=Ba(s);if(qe(o))return s}function fr(s,o){if(s==="change")return o}var Lt=!1;if(d){var qt;if(d){var Zt="oninput"in document;if(!Zt){var ks=document.createElement("div");ks.setAttribute("oninput","return;"),Zt=typeof ks.oninput=="function"}qt=Zt}else qt=!1;Lt=qt&&(!document.documentMode||9<document.documentMode)}function ts(){je&&(je.detachEvent("onpropertychange",lh),Te=je=null)}function lh(s){if(s.propertyName==="value"&&vt(Te)){var o=[];be(o,Te,s,mn(s)),ko(ht,o)}}function _v(s,o,l){s==="focusin"?(ts(),je=o,Te=l,je.attachEvent("onpropertychange",lh)):s==="focusout"&&ts()}function bv(s){if(s==="selectionchange"||s==="keyup"||s==="keydown")return vt(Te)}function xv(s,o){if(s==="click")return vt(o)}function kv(s,o){if(s==="input"||s==="change")return vt(o)}function jv(s,o){return s===o&&(s!==0||1/s===1/o)||s!==s&&o!==o}var ns=typeof Object.is=="function"?Object.is:jv;function Uo(s,o){if(ns(s,o))return!0;if(typeof s!="object"||s===null||typeof o!="object"||o===null)return!1;var l=Object.keys(s),h=Object.keys(o);if(l.length!==h.length)return!1;for(h=0;h<l.length;h++){var g=l[h];if(!f.call(o,g)||!ns(s[g],o[g]))return!1}return!0}function ch(s){for(;s&&s.firstChild;)s=s.firstChild;return s}function uh(s,o){var l=ch(s);s=0;for(var h;l;){if(l.nodeType===3){if(h=s+l.textContent.length,s<=o&&h>=o)return{node:l,offset:o-s};s=h}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=ch(l)}}function dh(s,o){return s&&o?s===o?!0:s&&s.nodeType===3?!1:o&&o.nodeType===3?dh(s,o.parentNode):"contains"in s?s.contains(o):s.compareDocumentPosition?!!(s.compareDocumentPosition(o)&16):!1:!1}function fh(){for(var s=window,o=$e();o instanceof s.HTMLIFrameElement;){try{var l=typeof o.contentWindow.location.href=="string"}catch{l=!1}if(l)s=o.contentWindow;else break;o=$e(s.document)}return o}function hu(s){var o=s&&s.nodeName&&s.nodeName.toLowerCase();return o&&(o==="input"&&(s.type==="text"||s.type==="search"||s.type==="tel"||s.type==="url"||s.type==="password")||o==="textarea"||s.contentEditable==="true")}function Sv(s){var o=fh(),l=s.focusedElem,h=s.selectionRange;if(o!==l&&l&&l.ownerDocument&&dh(l.ownerDocument.documentElement,l)){if(h!==null&&hu(l)){if(o=h.start,s=h.end,s===void 0&&(s=o),"selectionStart"in l)l.selectionStart=o,l.selectionEnd=Math.min(s,l.value.length);else if(s=(o=l.ownerDocument||document)&&o.defaultView||window,s.getSelection){s=s.getSelection();var g=l.textContent.length,v=Math.min(h.start,g);h=h.end===void 0?v:Math.min(h.end,g),!s.extend&&v>h&&(g=h,h=v,v=g),g=uh(l,v);var k=uh(l,h);g&&k&&(s.rangeCount!==1||s.anchorNode!==g.node||s.anchorOffset!==g.offset||s.focusNode!==k.node||s.focusOffset!==k.offset)&&(o=o.createRange(),o.setStart(g.node,g.offset),s.removeAllRanges(),v>h?(s.addRange(o),s.extend(k.node,k.offset)):(o.setEnd(k.node,k.offset),s.addRange(o)))}}for(o=[],s=l;s=s.parentNode;)s.nodeType===1&&o.push({element:s,left:s.scrollLeft,top:s.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l<o.length;l++)s=o[l],s.element.scrollLeft=s.left,s.element.scrollTop=s.top}}var Nv=d&&"documentMode"in document&&11>=document.documentMode,Da=null,mu=null,Vo=null,pu=!1;function hh(s,o,l){var h=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;pu||Da==null||Da!==$e(h)||(h=Da,"selectionStart"in h&&hu(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),Vo&&Uo(Vo,h)||(Vo=h,h=gl(mu,"onSelect"),0<h.length&&(o=new Ra("onSelect","select",null,o,l),s.push({event:o,listeners:h}),o.target=Da)))}function hl(s,o){var l={};return l[s.toLowerCase()]=o.toLowerCase(),l["Webkit"+s]="webkit"+o,l["Moz"+s]="moz"+o,l}var Fa={animationend:hl("Animation","AnimationEnd"),animationiteration:hl("Animation","AnimationIteration"),animationstart:hl("Animation","AnimationStart"),transitionend:hl("Transition","TransitionEnd")},gu={},mh={};d&&(mh=document.createElement("div").style,"AnimationEvent"in window||(delete Fa.animationend.animation,delete Fa.animationiteration.animation,delete Fa.animationstart.animation),"TransitionEvent"in window||delete Fa.transitionend.transition);function ml(s){if(gu[s])return gu[s];if(!Fa[s])return s;var o=Fa[s],l;for(l in o)if(o.hasOwnProperty(l)&&l in mh)return gu[s]=o[l];return s}var ph=ml("animationend"),gh=ml("animationiteration"),yh=ml("animationstart"),wh=ml("transitionend"),vh=new Map,_h="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function hr(s,o){vh.set(s,o),c(o,[s])}for(var yu=0;yu<_h.length;yu++){var wu=_h[yu],Cv=wu.toLowerCase(),Ev=wu[0].toUpperCase()+wu.slice(1);hr(Cv,"on"+Ev)}hr(ph,"onAnimationEnd"),hr(gh,"onAnimationIteration"),hr(yh,"onAnimationStart"),hr("dblclick","onDoubleClick"),hr("focusin","onFocus"),hr("focusout","onBlur"),hr(wh,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ho="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Av=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ho));function bh(s,o,l){var h=s.type||"unknown-event";s.currentTarget=l,Xt(h,o,void 0,s),s.currentTarget=null}function xh(s,o){o=(o&4)!==0;for(var l=0;l<s.length;l++){var h=s[l],g=h.event;h=h.listeners;e:{var v=void 0;if(o)for(var k=h.length-1;0<=k;k--){var L=h[k],z=L.instance,Q=L.currentTarget;if(L=L.listener,z!==v&&g.isPropagationStopped())break e;bh(g,L,Q),v=z}else for(k=0;k<h.length;k++){if(L=h[k],z=L.instance,Q=L.currentTarget,L=L.listener,z!==v&&g.isPropagationStopped())break e;bh(g,L,Q),v=z}}}if(Fr)throw s=wa,Fr=!1,wa=null,s}function mt(s,o){var l=o[Nu];l===void 0&&(l=o[Nu]=new Set);var h=s+"__bubble";l.has(h)||(kh(o,s,2,!1),l.add(h))}function vu(s,o,l){var h=0;o&&(h|=4),kh(l,s,h,o)}var pl="_reactListening"+Math.random().toString(36).slice(2);function Go(s){if(!s[pl]){s[pl]=!0,a.forEach(function(l){l!=="selectionchange"&&(Av.has(l)||vu(l,!1,s),vu(l,!0,s))});var o=s.nodeType===9?s:s.ownerDocument;o===null||o[pl]||(o[pl]=!0,vu("selectionchange",!1,o))}}function kh(s,o,l,h){switch(Mo(o)){case 1:var g=Br;break;case 4:g=Io;break;default:g=lr}l=g.bind(null,o,l,s),g=void 0,!fs||o!=="touchstart"&&o!=="touchmove"&&o!=="wheel"||(g=!0),h?g!==void 0?s.addEventListener(o,l,{capture:!0,passive:g}):s.addEventListener(o,l,!0):g!==void 0?s.addEventListener(o,l,{passive:g}):s.addEventListener(o,l,!1)}function _u(s,o,l,h,g){var v=h;if((o&1)===0&&(o&2)===0&&h!==null)e:for(;;){if(h===null)return;var k=h.tag;if(k===3||k===4){var L=h.stateNode.containerInfo;if(L===g||L.nodeType===8&&L.parentNode===g)break;if(k===4)for(k=h.return;k!==null;){var z=k.tag;if((z===3||z===4)&&(z=k.stateNode.containerInfo,z===g||z.nodeType===8&&z.parentNode===g))return;k=k.return}for(;L!==null;){if(k=Hr(L),k===null)return;if(z=k.tag,z===5||z===6){h=v=k;continue e}L=L.parentNode}}h=h.return}ko(function(){var Q=v,ue=mn(l),he=[];e:{var ce=vh.get(s);if(ce!==void 0){var ke=Ra,Ce=s;switch(s){case"keypress":if($a(l)===0)break e;case"keydown":case"keyup":ke=fu;break;case"focusin":Ce="focus",ke=La;break;case"focusout":Ce="blur",ke=La;break;case"beforeblur":case"afterblur":ke=La;break;case"click":if(l.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ke=Lo;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ke=ou;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ke=rl;break;case ph:case gh:case yh:ke=Ps;break;case wh:ke=ol;break;case"scroll":ke=ru;break;case"wheel":ke=ll;break;case"copy":case"cut":case"paste":ke=iu;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ke=Po}var Ee=(o&4)!==0,Tt=!Ee&&s==="scroll",G=Ee?ce!==null?ce+"Capture":null:ce;Ee=[];for(var B=Q,K;B!==null;){K=B;var ge=K.stateNode;if(K.tag===5&&ge!==null&&(K=ge,G!==null&&(ge=Dr(B,G),ge!=null&&Ee.push(Ko(B,ge,K)))),Tt)break;B=B.return}0<Ee.length&&(ce=new ke(ce,Ce,null,l,ue),he.push({event:ce,listeners:Ee}))}}if((o&7)===0){e:{if(ce=s==="mouseover"||s==="pointerover",ke=s==="mouseout"||s==="pointerout",ce&&l!==pa&&(Ce=l.relatedTarget||l.fromElement)&&(Hr(Ce)||Ce[Fs]))break e;if((ke||ce)&&(ce=ue.window===ue?ue:(ce=ue.ownerDocument)?ce.defaultView||ce.parentWindow:window,ke?(Ce=l.relatedTarget||l.toElement,ke=Q,Ce=Ce?Hr(Ce):null,Ce!==null&&(Tt=pn(Ce),Ce!==Tt||Ce.tag!==5&&Ce.tag!==6)&&(Ce=null)):(ke=null,Ce=Q),ke!==Ce)){if(Ee=Lo,ge="onMouseLeave",G="onMouseEnter",B="mouse",(s==="pointerout"||s==="pointerover")&&(Ee=Po,ge="onPointerLeave",G="onPointerEnter",B="pointer"),Tt=ke==null?ce:Ba(ke),K=Ce==null?ce:Ba(Ce),ce=new Ee(ge,B+"leave",ke,l,ue),ce.target=Tt,ce.relatedTarget=K,ge=null,Hr(ue)===Q&&(Ee=new Ee(G,B+"enter",Ce,l,ue),Ee.target=K,Ee.relatedTarget=Tt,ge=Ee),Tt=ge,ke&&Ce)t:{for(Ee=ke,G=Ce,B=0,K=Ee;K;K=za(K))B++;for(K=0,ge=G;ge;ge=za(ge))K++;for(;0<B-K;)Ee=za(Ee),B--;for(;0<K-B;)G=za(G),K--;for(;B--;){if(Ee===G||G!==null&&Ee===G.alternate)break t;Ee=za(Ee),G=za(G)}Ee=null}else Ee=null;ke!==null&&jh(he,ce,ke,Ee,!1),Ce!==null&&Tt!==null&&jh(he,Tt,Ce,Ee,!0)}}e:{if(ce=Q?Ba(Q):window,ke=ce.nodeName&&ce.nodeName.toLowerCase(),ke==="select"||ke==="input"&&ce.type==="file")var Ae=fr;else if(Y(ce))if(Lt)Ae=kv;else{Ae=bv;var Ie=_v}else(ke=ce.nodeName)&&ke.toLowerCase()==="input"&&(ce.type==="checkbox"||ce.type==="radio")&&(Ae=xv);if(Ae&&(Ae=Ae(s,Q))){be(he,Ae,l,ue);break e}Ie&&Ie(s,ce,Q),s==="focusout"&&(Ie=ce._wrapperState)&&Ie.controlled&&ce.type==="number"&&Ne(ce,"number",ce.value)}switch(Ie=Q?Ba(Q):window,s){case"focusin":(Y(Ie)||Ie.contentEditable==="true")&&(Da=Ie,mu=Q,Vo=null);break;case"focusout":Vo=mu=Da=null;break;case"mousedown":pu=!0;break;case"contextmenu":case"mouseup":case"dragend":pu=!1,hh(he,l,ue);break;case"selectionchange":if(Nv)break;case"keydown":case"keyup":hh(he,l,ue)}var Me;if(Pa)e:{switch(s){case"compositionstart":var Fe="onCompositionStart";break e;case"compositionend":Fe="onCompositionEnd";break e;case"compositionupdate":Fe="onCompositionUpdate";break e}Fe=void 0}else Ds?Wo(s,l)&&(Fe="onCompositionEnd"):s==="keydown"&&l.keyCode===229&&(Fe="onCompositionStart");Fe&&(Do&&l.locale!=="ko"&&(Ds||Fe!=="onCompositionStart"?Fe==="onCompositionEnd"&&Ds&&(Me=Zi()):(es=ue,Ur="value"in es?es.value:es.textContent,Ds=!0)),Ie=gl(Q,Fe),0<Ie.length&&(Fe=new el(Fe,s,null,l,ue),he.push({event:Fe,listeners:Ie}),Me?Fe.data=Me:(Me=Bo(l),Me!==null&&(Fe.data=Me)))),(Me=ul?dl(s,l):fl(s,l))&&(Q=gl(Q,"onBeforeInput"),0<Q.length&&(ue=new el("onBeforeInput","beforeinput",null,l,ue),he.push({event:ue,listeners:Q}),ue.data=Me))}xh(he,o)})}function Ko(s,o,l){return{instance:s,listener:o,currentTarget:l}}function gl(s,o){for(var l=o+"Capture",h=[];s!==null;){var g=s,v=g.stateNode;g.tag===5&&v!==null&&(g=v,v=Dr(s,l),v!=null&&h.unshift(Ko(s,v,g)),v=Dr(s,o),v!=null&&h.push(Ko(s,v,g))),s=s.return}return h}function za(s){if(s===null)return null;do s=s.return;while(s&&s.tag!==5);return s||null}function jh(s,o,l,h,g){for(var v=o._reactName,k=[];l!==null&&l!==h;){var L=l,z=L.alternate,Q=L.stateNode;if(z!==null&&z===h)break;L.tag===5&&Q!==null&&(L=Q,g?(z=Dr(l,v),z!=null&&k.unshift(Ko(l,z,L))):g||(z=Dr(l,v),z!=null&&k.push(Ko(l,z,L)))),l=l.return}k.length!==0&&s.push({event:o,listeners:k})}var $v=/\r\n?/g,Tv=/\u0000|\uFFFD/g;function Sh(s){return(typeof s=="string"?s:""+s).replace($v,`
|
|
38
|
-
`).replace(Tv,"")}function yl(s,o,l){if(o=Sh(o),Sh(s)!==o&&l)throw Error(n(425))}function wl(){}var bu=null,xu=null;function ku(s,o){return s==="textarea"||s==="noscript"||typeof o.children=="string"||typeof o.children=="number"||typeof o.dangerouslySetInnerHTML=="object"&&o.dangerouslySetInnerHTML!==null&&o.dangerouslySetInnerHTML.__html!=null}var ju=typeof setTimeout=="function"?setTimeout:void 0,Rv=typeof clearTimeout=="function"?clearTimeout:void 0,Nh=typeof Promise=="function"?Promise:void 0,Iv=typeof queueMicrotask=="function"?queueMicrotask:typeof Nh<"u"?function(s){return Nh.resolve(null).then(s).catch(Mv)}:ju;function Mv(s){setTimeout(function(){throw s})}function Su(s,o){var l=o,h=0;do{var g=l.nextSibling;if(s.removeChild(l),g&&g.nodeType===8)if(l=g.data,l==="/$"){if(h===0){s.removeChild(g),ir(o);return}h--}else l!=="$"&&l!=="$?"&&l!=="$!"||h++;l=g}while(l);ir(o)}function mr(s){for(;s!=null;s=s.nextSibling){var o=s.nodeType;if(o===1||o===3)break;if(o===8){if(o=s.data,o==="$"||o==="$!"||o==="$?")break;if(o==="/$")return null}}return s}function Ch(s){s=s.previousSibling;for(var o=0;s;){if(s.nodeType===8){var l=s.data;if(l==="$"||l==="$!"||l==="$?"){if(o===0)return s;o--}else l==="/$"&&o++}s=s.previousSibling}return null}var Wa=Math.random().toString(36).slice(2),js="__reactFiber$"+Wa,Jo="__reactProps$"+Wa,Fs="__reactContainer$"+Wa,Nu="__reactEvents$"+Wa,Lv="__reactListeners$"+Wa,Ov="__reactHandles$"+Wa;function Hr(s){var o=s[js];if(o)return o;for(var l=s.parentNode;l;){if(o=l[Fs]||l[js]){if(l=o.alternate,o.child!==null||l!==null&&l.child!==null)for(s=Ch(s);s!==null;){if(l=s[js])return l;s=Ch(s)}return o}s=l,l=s.parentNode}return null}function Qo(s){return s=s[js]||s[Fs],!s||s.tag!==5&&s.tag!==6&&s.tag!==13&&s.tag!==3?null:s}function Ba(s){if(s.tag===5||s.tag===6)return s.stateNode;throw Error(n(33))}function vl(s){return s[Jo]||null}var Cu=[],Ua=-1;function pr(s){return{current:s}}function pt(s){0>Ua||(s.current=Cu[Ua],Cu[Ua]=null,Ua--)}function ft(s,o){Ua++,Cu[Ua]=s.current,s.current=o}var gr={},en=pr(gr),vn=pr(!1),Gr=gr;function Va(s,o){var l=s.type.contextTypes;if(!l)return gr;var h=s.stateNode;if(h&&h.__reactInternalMemoizedUnmaskedChildContext===o)return h.__reactInternalMemoizedMaskedChildContext;var g={},v;for(v in l)g[v]=o[v];return h&&(s=s.stateNode,s.__reactInternalMemoizedUnmaskedChildContext=o,s.__reactInternalMemoizedMaskedChildContext=g),g}function _n(s){return s=s.childContextTypes,s!=null}function _l(){pt(vn),pt(en)}function Eh(s,o,l){if(en.current!==gr)throw Error(n(168));ft(en,o),ft(vn,l)}function Ah(s,o,l){var h=s.stateNode;if(o=o.childContextTypes,typeof h.getChildContext!="function")return l;h=h.getChildContext();for(var g in h)if(!(g in o))throw Error(n(108,me(s)||"Unknown",g));return re({},l,h)}function bl(s){return s=(s=s.stateNode)&&s.__reactInternalMemoizedMergedChildContext||gr,Gr=en.current,ft(en,s),ft(vn,vn.current),!0}function $h(s,o,l){var h=s.stateNode;if(!h)throw Error(n(169));l?(s=Ah(s,o,Gr),h.__reactInternalMemoizedMergedChildContext=s,pt(vn),pt(en),ft(en,s)):pt(vn),ft(vn,l)}var zs=null,xl=!1,Eu=!1;function Th(s){zs===null?zs=[s]:zs.push(s)}function Pv(s){xl=!0,Th(s)}function yr(){if(!Eu&&zs!==null){Eu=!0;var s=0,o=Je;try{var l=zs;for(Je=1;s<l.length;s++){var h=l[s];do h=h(!0);while(h!==null)}zs=null,xl=!1}catch(g){throw zs!==null&&(zs=zs.slice(s+1)),No(Tn,yr),g}finally{Je=o,Eu=!1}}return null}var Ha=[],Ga=0,kl=null,jl=0,Un=[],Vn=0,Kr=null,Ws=1,Bs="";function Jr(s,o){Ha[Ga++]=jl,Ha[Ga++]=kl,kl=s,jl=o}function Rh(s,o,l){Un[Vn++]=Ws,Un[Vn++]=Bs,Un[Vn++]=Kr,Kr=s;var h=Ws;s=Bs;var g=32-yn(h)-1;h&=~(1<<g),l+=1;var v=32-yn(o)+g;if(30<v){var k=g-g%5;v=(h&(1<<k)-1).toString(32),h>>=k,g-=k,Ws=1<<32-yn(o)+g|l<<g|h,Bs=v+s}else Ws=1<<v|l<<g|h,Bs=s}function Au(s){s.return!==null&&(Jr(s,1),Rh(s,1,0))}function $u(s){for(;s===kl;)kl=Ha[--Ga],Ha[Ga]=null,jl=Ha[--Ga],Ha[Ga]=null;for(;s===Kr;)Kr=Un[--Vn],Un[Vn]=null,Bs=Un[--Vn],Un[Vn]=null,Ws=Un[--Vn],Un[Vn]=null}var Mn=null,Ln=null,_t=!1,ss=null;function Ih(s,o){var l=Jn(5,null,null,0);l.elementType="DELETED",l.stateNode=o,l.return=s,o=s.deletions,o===null?(s.deletions=[l],s.flags|=16):o.push(l)}function Mh(s,o){switch(s.tag){case 5:var l=s.type;return o=o.nodeType!==1||l.toLowerCase()!==o.nodeName.toLowerCase()?null:o,o!==null?(s.stateNode=o,Mn=s,Ln=mr(o.firstChild),!0):!1;case 6:return o=s.pendingProps===""||o.nodeType!==3?null:o,o!==null?(s.stateNode=o,Mn=s,Ln=null,!0):!1;case 13:return o=o.nodeType!==8?null:o,o!==null?(l=Kr!==null?{id:Ws,overflow:Bs}:null,s.memoizedState={dehydrated:o,treeContext:l,retryLane:1073741824},l=Jn(18,null,null,0),l.stateNode=o,l.return=s,s.child=l,Mn=s,Ln=null,!0):!1;default:return!1}}function Tu(s){return(s.mode&1)!==0&&(s.flags&128)===0}function Ru(s){if(_t){var o=Ln;if(o){var l=o;if(!Mh(s,o)){if(Tu(s))throw Error(n(418));o=mr(l.nextSibling);var h=Mn;o&&Mh(s,o)?Ih(h,l):(s.flags=s.flags&-4097|2,_t=!1,Mn=s)}}else{if(Tu(s))throw Error(n(418));s.flags=s.flags&-4097|2,_t=!1,Mn=s}}}function Lh(s){for(s=s.return;s!==null&&s.tag!==5&&s.tag!==3&&s.tag!==13;)s=s.return;Mn=s}function Sl(s){if(s!==Mn)return!1;if(!_t)return Lh(s),_t=!0,!1;var o;if((o=s.tag!==3)&&!(o=s.tag!==5)&&(o=s.type,o=o!=="head"&&o!=="body"&&!ku(s.type,s.memoizedProps)),o&&(o=Ln)){if(Tu(s))throw Oh(),Error(n(418));for(;o;)Ih(s,o),o=mr(o.nextSibling)}if(Lh(s),s.tag===13){if(s=s.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(n(317));e:{for(s=s.nextSibling,o=0;s;){if(s.nodeType===8){var l=s.data;if(l==="/$"){if(o===0){Ln=mr(s.nextSibling);break e}o--}else l!=="$"&&l!=="$!"&&l!=="$?"||o++}s=s.nextSibling}Ln=null}}else Ln=Mn?mr(s.stateNode.nextSibling):null;return!0}function Oh(){for(var s=Ln;s;)s=mr(s.nextSibling)}function Ka(){Ln=Mn=null,_t=!1}function Iu(s){ss===null?ss=[s]:ss.push(s)}var Dv=C.ReactCurrentBatchConfig;function Yo(s,o,l){if(s=l.ref,s!==null&&typeof s!="function"&&typeof s!="object"){if(l._owner){if(l=l._owner,l){if(l.tag!==1)throw Error(n(309));var h=l.stateNode}if(!h)throw Error(n(147,s));var g=h,v=""+s;return o!==null&&o.ref!==null&&typeof o.ref=="function"&&o.ref._stringRef===v?o.ref:(o=function(k){var L=g.refs;k===null?delete L[v]:L[v]=k},o._stringRef=v,o)}if(typeof s!="string")throw Error(n(284));if(!l._owner)throw Error(n(290,s))}return s}function Nl(s,o){throw s=Object.prototype.toString.call(o),Error(n(31,s==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":s))}function Ph(s){var o=s._init;return o(s._payload)}function Dh(s){function o(G,B){if(s){var K=G.deletions;K===null?(G.deletions=[B],G.flags|=16):K.push(B)}}function l(G,B){if(!s)return null;for(;B!==null;)o(G,B),B=B.sibling;return null}function h(G,B){for(G=new Map;B!==null;)B.key!==null?G.set(B.key,B):G.set(B.index,B),B=B.sibling;return G}function g(G,B){return G=Sr(G,B),G.index=0,G.sibling=null,G}function v(G,B,K){return G.index=K,s?(K=G.alternate,K!==null?(K=K.index,K<B?(G.flags|=2,B):K):(G.flags|=2,B)):(G.flags|=1048576,B)}function k(G){return s&&G.alternate===null&&(G.flags|=2),G}function L(G,B,K,ge){return B===null||B.tag!==6?(B=jd(K,G.mode,ge),B.return=G,B):(B=g(B,K),B.return=G,B)}function z(G,B,K,ge){var Ae=K.type;return Ae===D?ue(G,B,K.props.children,ge,K.key):B!==null&&(B.elementType===Ae||typeof Ae=="object"&&Ae!==null&&Ae.$$typeof===ne&&Ph(Ae)===B.type)?(ge=g(B,K.props),ge.ref=Yo(G,B,K),ge.return=G,ge):(ge=Yl(K.type,K.key,K.props,null,G.mode,ge),ge.ref=Yo(G,B,K),ge.return=G,ge)}function Q(G,B,K,ge){return B===null||B.tag!==4||B.stateNode.containerInfo!==K.containerInfo||B.stateNode.implementation!==K.implementation?(B=Sd(K,G.mode,ge),B.return=G,B):(B=g(B,K.children||[]),B.return=G,B)}function ue(G,B,K,ge,Ae){return B===null||B.tag!==7?(B=na(K,G.mode,ge,Ae),B.return=G,B):(B=g(B,K),B.return=G,B)}function he(G,B,K){if(typeof B=="string"&&B!==""||typeof B=="number")return B=jd(""+B,G.mode,K),B.return=G,B;if(typeof B=="object"&&B!==null){switch(B.$$typeof){case $:return K=Yl(B.type,B.key,B.props,null,G.mode,K),K.ref=Yo(G,null,B),K.return=G,K;case R:return B=Sd(B,G.mode,K),B.return=G,B;case ne:var ge=B._init;return he(G,ge(B._payload),K)}if(X(B)||de(B))return B=na(B,G.mode,K,null),B.return=G,B;Nl(G,B)}return null}function ce(G,B,K,ge){var Ae=B!==null?B.key:null;if(typeof K=="string"&&K!==""||typeof K=="number")return Ae!==null?null:L(G,B,""+K,ge);if(typeof K=="object"&&K!==null){switch(K.$$typeof){case $:return K.key===Ae?z(G,B,K,ge):null;case R:return K.key===Ae?Q(G,B,K,ge):null;case ne:return Ae=K._init,ce(G,B,Ae(K._payload),ge)}if(X(K)||de(K))return Ae!==null?null:ue(G,B,K,ge,null);Nl(G,K)}return null}function ke(G,B,K,ge,Ae){if(typeof ge=="string"&&ge!==""||typeof ge=="number")return G=G.get(K)||null,L(B,G,""+ge,Ae);if(typeof ge=="object"&&ge!==null){switch(ge.$$typeof){case $:return G=G.get(ge.key===null?K:ge.key)||null,z(B,G,ge,Ae);case R:return G=G.get(ge.key===null?K:ge.key)||null,Q(B,G,ge,Ae);case ne:var Ie=ge._init;return ke(G,B,K,Ie(ge._payload),Ae)}if(X(ge)||de(ge))return G=G.get(K)||null,ue(B,G,ge,Ae,null);Nl(B,ge)}return null}function Ce(G,B,K,ge){for(var Ae=null,Ie=null,Me=B,Fe=B=0,Bt=null;Me!==null&&Fe<K.length;Fe++){Me.index>Fe?(Bt=Me,Me=null):Bt=Me.sibling;var Ze=ce(G,Me,K[Fe],ge);if(Ze===null){Me===null&&(Me=Bt);break}s&&Me&&Ze.alternate===null&&o(G,Me),B=v(Ze,B,Fe),Ie===null?Ae=Ze:Ie.sibling=Ze,Ie=Ze,Me=Bt}if(Fe===K.length)return l(G,Me),_t&&Jr(G,Fe),Ae;if(Me===null){for(;Fe<K.length;Fe++)Me=he(G,K[Fe],ge),Me!==null&&(B=v(Me,B,Fe),Ie===null?Ae=Me:Ie.sibling=Me,Ie=Me);return _t&&Jr(G,Fe),Ae}for(Me=h(G,Me);Fe<K.length;Fe++)Bt=ke(Me,G,Fe,K[Fe],ge),Bt!==null&&(s&&Bt.alternate!==null&&Me.delete(Bt.key===null?Fe:Bt.key),B=v(Bt,B,Fe),Ie===null?Ae=Bt:Ie.sibling=Bt,Ie=Bt);return s&&Me.forEach(function(Nr){return o(G,Nr)}),_t&&Jr(G,Fe),Ae}function Ee(G,B,K,ge){var Ae=de(K);if(typeof Ae!="function")throw Error(n(150));if(K=Ae.call(K),K==null)throw Error(n(151));for(var Ie=Ae=null,Me=B,Fe=B=0,Bt=null,Ze=K.next();Me!==null&&!Ze.done;Fe++,Ze=K.next()){Me.index>Fe?(Bt=Me,Me=null):Bt=Me.sibling;var Nr=ce(G,Me,Ze.value,ge);if(Nr===null){Me===null&&(Me=Bt);break}s&&Me&&Nr.alternate===null&&o(G,Me),B=v(Nr,B,Fe),Ie===null?Ae=Nr:Ie.sibling=Nr,Ie=Nr,Me=Bt}if(Ze.done)return l(G,Me),_t&&Jr(G,Fe),Ae;if(Me===null){for(;!Ze.done;Fe++,Ze=K.next())Ze=he(G,Ze.value,ge),Ze!==null&&(B=v(Ze,B,Fe),Ie===null?Ae=Ze:Ie.sibling=Ze,Ie=Ze);return _t&&Jr(G,Fe),Ae}for(Me=h(G,Me);!Ze.done;Fe++,Ze=K.next())Ze=ke(Me,G,Fe,Ze.value,ge),Ze!==null&&(s&&Ze.alternate!==null&&Me.delete(Ze.key===null?Fe:Ze.key),B=v(Ze,B,Fe),Ie===null?Ae=Ze:Ie.sibling=Ze,Ie=Ze);return s&&Me.forEach(function(y_){return o(G,y_)}),_t&&Jr(G,Fe),Ae}function Tt(G,B,K,ge){if(typeof K=="object"&&K!==null&&K.type===D&&K.key===null&&(K=K.props.children),typeof K=="object"&&K!==null){switch(K.$$typeof){case $:e:{for(var Ae=K.key,Ie=B;Ie!==null;){if(Ie.key===Ae){if(Ae=K.type,Ae===D){if(Ie.tag===7){l(G,Ie.sibling),B=g(Ie,K.props.children),B.return=G,G=B;break e}}else if(Ie.elementType===Ae||typeof Ae=="object"&&Ae!==null&&Ae.$$typeof===ne&&Ph(Ae)===Ie.type){l(G,Ie.sibling),B=g(Ie,K.props),B.ref=Yo(G,Ie,K),B.return=G,G=B;break e}l(G,Ie);break}else o(G,Ie);Ie=Ie.sibling}K.type===D?(B=na(K.props.children,G.mode,ge,K.key),B.return=G,G=B):(ge=Yl(K.type,K.key,K.props,null,G.mode,ge),ge.ref=Yo(G,B,K),ge.return=G,G=ge)}return k(G);case R:e:{for(Ie=K.key;B!==null;){if(B.key===Ie)if(B.tag===4&&B.stateNode.containerInfo===K.containerInfo&&B.stateNode.implementation===K.implementation){l(G,B.sibling),B=g(B,K.children||[]),B.return=G,G=B;break e}else{l(G,B);break}else o(G,B);B=B.sibling}B=Sd(K,G.mode,ge),B.return=G,G=B}return k(G);case ne:return Ie=K._init,Tt(G,B,Ie(K._payload),ge)}if(X(K))return Ce(G,B,K,ge);if(de(K))return Ee(G,B,K,ge);Nl(G,K)}return typeof K=="string"&&K!==""||typeof K=="number"?(K=""+K,B!==null&&B.tag===6?(l(G,B.sibling),B=g(B,K),B.return=G,G=B):(l(G,B),B=jd(K,G.mode,ge),B.return=G,G=B),k(G)):l(G,B)}return Tt}var Ja=Dh(!0),Fh=Dh(!1),Cl=pr(null),El=null,Qa=null,Mu=null;function Lu(){Mu=Qa=El=null}function Ou(s){var o=Cl.current;pt(Cl),s._currentValue=o}function Pu(s,o,l){for(;s!==null;){var h=s.alternate;if((s.childLanes&o)!==o?(s.childLanes|=o,h!==null&&(h.childLanes|=o)):h!==null&&(h.childLanes&o)!==o&&(h.childLanes|=o),s===l)break;s=s.return}}function Ya(s,o){El=s,Mu=Qa=null,s=s.dependencies,s!==null&&s.firstContext!==null&&((s.lanes&o)!==0&&(bn=!0),s.firstContext=null)}function Hn(s){var o=s._currentValue;if(Mu!==s)if(s={context:s,memoizedValue:o,next:null},Qa===null){if(El===null)throw Error(n(308));Qa=s,El.dependencies={lanes:0,firstContext:s}}else Qa=Qa.next=s;return o}var Qr=null;function Du(s){Qr===null?Qr=[s]:Qr.push(s)}function zh(s,o,l,h){var g=o.interleaved;return g===null?(l.next=l,Du(o)):(l.next=g.next,g.next=l),o.interleaved=l,Us(s,h)}function Us(s,o){s.lanes|=o;var l=s.alternate;for(l!==null&&(l.lanes|=o),l=s,s=s.return;s!==null;)s.childLanes|=o,l=s.alternate,l!==null&&(l.childLanes|=o),l=s,s=s.return;return l.tag===3?l.stateNode:null}var wr=!1;function Fu(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Wh(s,o){s=s.updateQueue,o.updateQueue===s&&(o.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,effects:s.effects})}function Vs(s,o){return{eventTime:s,lane:o,tag:0,payload:null,callback:null,next:null}}function vr(s,o,l){var h=s.updateQueue;if(h===null)return null;if(h=h.shared,(Xe&2)!==0){var g=h.pending;return g===null?o.next=o:(o.next=g.next,g.next=o),h.pending=o,Us(s,l)}return g=h.interleaved,g===null?(o.next=o,Du(h)):(o.next=g.next,g.next=o),h.interleaved=o,Us(s,l)}function Al(s,o,l){if(o=o.updateQueue,o!==null&&(o=o.shared,(l&4194240)!==0)){var h=o.lanes;h&=s.pendingLanes,l|=h,o.lanes=l,Zn(s,l)}}function Bh(s,o){var l=s.updateQueue,h=s.alternate;if(h!==null&&(h=h.updateQueue,l===h)){var g=null,v=null;if(l=l.firstBaseUpdate,l!==null){do{var k={eventTime:l.eventTime,lane:l.lane,tag:l.tag,payload:l.payload,callback:l.callback,next:null};v===null?g=v=k:v=v.next=k,l=l.next}while(l!==null);v===null?g=v=o:v=v.next=o}else g=v=o;l={baseState:h.baseState,firstBaseUpdate:g,lastBaseUpdate:v,shared:h.shared,effects:h.effects},s.updateQueue=l;return}s=l.lastBaseUpdate,s===null?l.firstBaseUpdate=o:s.next=o,l.lastBaseUpdate=o}function $l(s,o,l,h){var g=s.updateQueue;wr=!1;var v=g.firstBaseUpdate,k=g.lastBaseUpdate,L=g.shared.pending;if(L!==null){g.shared.pending=null;var z=L,Q=z.next;z.next=null,k===null?v=Q:k.next=Q,k=z;var ue=s.alternate;ue!==null&&(ue=ue.updateQueue,L=ue.lastBaseUpdate,L!==k&&(L===null?ue.firstBaseUpdate=Q:L.next=Q,ue.lastBaseUpdate=z))}if(v!==null){var he=g.baseState;k=0,ue=Q=z=null,L=v;do{var ce=L.lane,ke=L.eventTime;if((h&ce)===ce){ue!==null&&(ue=ue.next={eventTime:ke,lane:0,tag:L.tag,payload:L.payload,callback:L.callback,next:null});e:{var Ce=s,Ee=L;switch(ce=o,ke=l,Ee.tag){case 1:if(Ce=Ee.payload,typeof Ce=="function"){he=Ce.call(ke,he,ce);break e}he=Ce;break e;case 3:Ce.flags=Ce.flags&-65537|128;case 0:if(Ce=Ee.payload,ce=typeof Ce=="function"?Ce.call(ke,he,ce):Ce,ce==null)break e;he=re({},he,ce);break e;case 2:wr=!0}}L.callback!==null&&L.lane!==0&&(s.flags|=64,ce=g.effects,ce===null?g.effects=[L]:ce.push(L))}else ke={eventTime:ke,lane:ce,tag:L.tag,payload:L.payload,callback:L.callback,next:null},ue===null?(Q=ue=ke,z=he):ue=ue.next=ke,k|=ce;if(L=L.next,L===null){if(L=g.shared.pending,L===null)break;ce=L,L=ce.next,ce.next=null,g.lastBaseUpdate=ce,g.shared.pending=null}}while(!0);if(ue===null&&(z=he),g.baseState=z,g.firstBaseUpdate=Q,g.lastBaseUpdate=ue,o=g.shared.interleaved,o!==null){g=o;do k|=g.lane,g=g.next;while(g!==o)}else v===null&&(g.shared.lanes=0);qr|=k,s.lanes=k,s.memoizedState=he}}function Uh(s,o,l){if(s=o.effects,o.effects=null,s!==null)for(o=0;o<s.length;o++){var h=s[o],g=h.callback;if(g!==null){if(h.callback=null,h=l,typeof g!="function")throw Error(n(191,g));g.call(h)}}}var Xo={},Ss=pr(Xo),qo=pr(Xo),Zo=pr(Xo);function Yr(s){if(s===Xo)throw Error(n(174));return s}function zu(s,o){switch(ft(Zo,o),ft(qo,s),ft(Ss,Xo),s=o.nodeType,s){case 9:case 11:o=(o=o.documentElement)?o.namespaceURI:xe(null,"");break;default:s=s===8?o.parentNode:o,o=s.namespaceURI||null,s=s.tagName,o=xe(o,s)}pt(Ss),ft(Ss,o)}function Xa(){pt(Ss),pt(qo),pt(Zo)}function Vh(s){Yr(Zo.current);var o=Yr(Ss.current),l=xe(o,s.type);o!==l&&(ft(qo,s),ft(Ss,l))}function Wu(s){qo.current===s&&(pt(Ss),pt(qo))}var kt=pr(0);function Tl(s){for(var o=s;o!==null;){if(o.tag===13){var l=o.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||l.data==="$?"||l.data==="$!"))return o}else if(o.tag===19&&o.memoizedProps.revealOrder!==void 0){if((o.flags&128)!==0)return o}else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===s)break;for(;o.sibling===null;){if(o.return===null||o.return===s)return null;o=o.return}o.sibling.return=o.return,o=o.sibling}return null}var Bu=[];function Uu(){for(var s=0;s<Bu.length;s++)Bu[s]._workInProgressVersionPrimary=null;Bu.length=0}var Rl=C.ReactCurrentDispatcher,Vu=C.ReactCurrentBatchConfig,Xr=0,jt=null,Ot=null,zt=null,Il=!1,ei=!1,ti=0,Fv=0;function tn(){throw Error(n(321))}function Hu(s,o){if(o===null)return!1;for(var l=0;l<o.length&&l<s.length;l++)if(!ns(s[l],o[l]))return!1;return!0}function Gu(s,o,l,h,g,v){if(Xr=v,jt=o,o.memoizedState=null,o.updateQueue=null,o.lanes=0,Rl.current=s===null||s.memoizedState===null?Uv:Vv,s=l(h,g),ei){v=0;do{if(ei=!1,ti=0,25<=v)throw Error(n(301));v+=1,zt=Ot=null,o.updateQueue=null,Rl.current=Hv,s=l(h,g)}while(ei)}if(Rl.current=Ol,o=Ot!==null&&Ot.next!==null,Xr=0,zt=Ot=jt=null,Il=!1,o)throw Error(n(300));return s}function Ku(){var s=ti!==0;return ti=0,s}function Ns(){var s={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return zt===null?jt.memoizedState=zt=s:zt=zt.next=s,zt}function Gn(){if(Ot===null){var s=jt.alternate;s=s!==null?s.memoizedState:null}else s=Ot.next;var o=zt===null?jt.memoizedState:zt.next;if(o!==null)zt=o,Ot=s;else{if(s===null)throw Error(n(310));Ot=s,s={memoizedState:Ot.memoizedState,baseState:Ot.baseState,baseQueue:Ot.baseQueue,queue:Ot.queue,next:null},zt===null?jt.memoizedState=zt=s:zt=zt.next=s}return zt}function ni(s,o){return typeof o=="function"?o(s):o}function Ju(s){var o=Gn(),l=o.queue;if(l===null)throw Error(n(311));l.lastRenderedReducer=s;var h=Ot,g=h.baseQueue,v=l.pending;if(v!==null){if(g!==null){var k=g.next;g.next=v.next,v.next=k}h.baseQueue=g=v,l.pending=null}if(g!==null){v=g.next,h=h.baseState;var L=k=null,z=null,Q=v;do{var ue=Q.lane;if((Xr&ue)===ue)z!==null&&(z=z.next={lane:0,action:Q.action,hasEagerState:Q.hasEagerState,eagerState:Q.eagerState,next:null}),h=Q.hasEagerState?Q.eagerState:s(h,Q.action);else{var he={lane:ue,action:Q.action,hasEagerState:Q.hasEagerState,eagerState:Q.eagerState,next:null};z===null?(L=z=he,k=h):z=z.next=he,jt.lanes|=ue,qr|=ue}Q=Q.next}while(Q!==null&&Q!==v);z===null?k=h:z.next=L,ns(h,o.memoizedState)||(bn=!0),o.memoizedState=h,o.baseState=k,o.baseQueue=z,l.lastRenderedState=h}if(s=l.interleaved,s!==null){g=s;do v=g.lane,jt.lanes|=v,qr|=v,g=g.next;while(g!==s)}else g===null&&(l.lanes=0);return[o.memoizedState,l.dispatch]}function Qu(s){var o=Gn(),l=o.queue;if(l===null)throw Error(n(311));l.lastRenderedReducer=s;var h=l.dispatch,g=l.pending,v=o.memoizedState;if(g!==null){l.pending=null;var k=g=g.next;do v=s(v,k.action),k=k.next;while(k!==g);ns(v,o.memoizedState)||(bn=!0),o.memoizedState=v,o.baseQueue===null&&(o.baseState=v),l.lastRenderedState=v}return[v,h]}function Hh(){}function Gh(s,o){var l=jt,h=Gn(),g=o(),v=!ns(h.memoizedState,g);if(v&&(h.memoizedState=g,bn=!0),h=h.queue,Yu(Qh.bind(null,l,h,s),[s]),h.getSnapshot!==o||v||zt!==null&&zt.memoizedState.tag&1){if(l.flags|=2048,si(9,Jh.bind(null,l,h,g,o),void 0,null),Wt===null)throw Error(n(349));(Xr&30)!==0||Kh(l,o,g)}return g}function Kh(s,o,l){s.flags|=16384,s={getSnapshot:o,value:l},o=jt.updateQueue,o===null?(o={lastEffect:null,stores:null},jt.updateQueue=o,o.stores=[s]):(l=o.stores,l===null?o.stores=[s]:l.push(s))}function Jh(s,o,l,h){o.value=l,o.getSnapshot=h,Yh(o)&&Xh(s)}function Qh(s,o,l){return l(function(){Yh(o)&&Xh(s)})}function Yh(s){var o=s.getSnapshot;s=s.value;try{var l=o();return!ns(s,l)}catch{return!0}}function Xh(s){var o=Us(s,1);o!==null&&is(o,s,1,-1)}function qh(s){var o=Ns();return typeof s=="function"&&(s=s()),o.memoizedState=o.baseState=s,s={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ni,lastRenderedState:s},o.queue=s,s=s.dispatch=Bv.bind(null,jt,s),[o.memoizedState,s]}function si(s,o,l,h){return s={tag:s,create:o,destroy:l,deps:h,next:null},o=jt.updateQueue,o===null?(o={lastEffect:null,stores:null},jt.updateQueue=o,o.lastEffect=s.next=s):(l=o.lastEffect,l===null?o.lastEffect=s.next=s:(h=l.next,l.next=s,s.next=h,o.lastEffect=s)),s}function Zh(){return Gn().memoizedState}function Ml(s,o,l,h){var g=Ns();jt.flags|=s,g.memoizedState=si(1|o,l,void 0,h===void 0?null:h)}function Ll(s,o,l,h){var g=Gn();h=h===void 0?null:h;var v=void 0;if(Ot!==null){var k=Ot.memoizedState;if(v=k.destroy,h!==null&&Hu(h,k.deps)){g.memoizedState=si(o,l,v,h);return}}jt.flags|=s,g.memoizedState=si(1|o,l,v,h)}function em(s,o){return Ml(8390656,8,s,o)}function Yu(s,o){return Ll(2048,8,s,o)}function tm(s,o){return Ll(4,2,s,o)}function nm(s,o){return Ll(4,4,s,o)}function sm(s,o){if(typeof o=="function")return s=s(),o(s),function(){o(null)};if(o!=null)return s=s(),o.current=s,function(){o.current=null}}function rm(s,o,l){return l=l!=null?l.concat([s]):null,Ll(4,4,sm.bind(null,o,s),l)}function Xu(){}function am(s,o){var l=Gn();o=o===void 0?null:o;var h=l.memoizedState;return h!==null&&o!==null&&Hu(o,h[1])?h[0]:(l.memoizedState=[s,o],s)}function om(s,o){var l=Gn();o=o===void 0?null:o;var h=l.memoizedState;return h!==null&&o!==null&&Hu(o,h[1])?h[0]:(s=s(),l.memoizedState=[s,o],s)}function im(s,o,l){return(Xr&21)===0?(s.baseState&&(s.baseState=!1,bn=!0),s.memoizedState=l):(ns(l,o)||(l=Xn(),jt.lanes|=l,qr|=l,s.baseState=!0),o)}function zv(s,o){var l=Je;Je=l!==0&&4>l?l:4,s(!0);var h=Vu.transition;Vu.transition={};try{s(!1),o()}finally{Je=l,Vu.transition=h}}function lm(){return Gn().memoizedState}function Wv(s,o,l){var h=kr(s);if(l={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null},cm(s))um(o,l);else if(l=zh(s,o,l,h),l!==null){var g=un();is(l,s,h,g),dm(l,o,h)}}function Bv(s,o,l){var h=kr(s),g={lane:h,action:l,hasEagerState:!1,eagerState:null,next:null};if(cm(s))um(o,g);else{var v=s.alternate;if(s.lanes===0&&(v===null||v.lanes===0)&&(v=o.lastRenderedReducer,v!==null))try{var k=o.lastRenderedState,L=v(k,l);if(g.hasEagerState=!0,g.eagerState=L,ns(L,k)){var z=o.interleaved;z===null?(g.next=g,Du(o)):(g.next=z.next,z.next=g),o.interleaved=g;return}}catch{}finally{}l=zh(s,o,g,h),l!==null&&(g=un(),is(l,s,h,g),dm(l,o,h))}}function cm(s){var o=s.alternate;return s===jt||o!==null&&o===jt}function um(s,o){ei=Il=!0;var l=s.pending;l===null?o.next=o:(o.next=l.next,l.next=o),s.pending=o}function dm(s,o,l){if((l&4194240)!==0){var h=o.lanes;h&=s.pendingLanes,l|=h,o.lanes=l,Zn(s,l)}}var Ol={readContext:Hn,useCallback:tn,useContext:tn,useEffect:tn,useImperativeHandle:tn,useInsertionEffect:tn,useLayoutEffect:tn,useMemo:tn,useReducer:tn,useRef:tn,useState:tn,useDebugValue:tn,useDeferredValue:tn,useTransition:tn,useMutableSource:tn,useSyncExternalStore:tn,useId:tn,unstable_isNewReconciler:!1},Uv={readContext:Hn,useCallback:function(s,o){return Ns().memoizedState=[s,o===void 0?null:o],s},useContext:Hn,useEffect:em,useImperativeHandle:function(s,o,l){return l=l!=null?l.concat([s]):null,Ml(4194308,4,sm.bind(null,o,s),l)},useLayoutEffect:function(s,o){return Ml(4194308,4,s,o)},useInsertionEffect:function(s,o){return Ml(4,2,s,o)},useMemo:function(s,o){var l=Ns();return o=o===void 0?null:o,s=s(),l.memoizedState=[s,o],s},useReducer:function(s,o,l){var h=Ns();return o=l!==void 0?l(o):o,h.memoizedState=h.baseState=o,s={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:o},h.queue=s,s=s.dispatch=Wv.bind(null,jt,s),[h.memoizedState,s]},useRef:function(s){var o=Ns();return s={current:s},o.memoizedState=s},useState:qh,useDebugValue:Xu,useDeferredValue:function(s){return Ns().memoizedState=s},useTransition:function(){var s=qh(!1),o=s[0];return s=zv.bind(null,s[1]),Ns().memoizedState=s,[o,s]},useMutableSource:function(){},useSyncExternalStore:function(s,o,l){var h=jt,g=Ns();if(_t){if(l===void 0)throw Error(n(407));l=l()}else{if(l=o(),Wt===null)throw Error(n(349));(Xr&30)!==0||Kh(h,o,l)}g.memoizedState=l;var v={value:l,getSnapshot:o};return g.queue=v,em(Qh.bind(null,h,v,s),[s]),h.flags|=2048,si(9,Jh.bind(null,h,v,l,o),void 0,null),l},useId:function(){var s=Ns(),o=Wt.identifierPrefix;if(_t){var l=Bs,h=Ws;l=(h&~(1<<32-yn(h)-1)).toString(32)+l,o=":"+o+"R"+l,l=ti++,0<l&&(o+="H"+l.toString(32)),o+=":"}else l=Fv++,o=":"+o+"r"+l.toString(32)+":";return s.memoizedState=o},unstable_isNewReconciler:!1},Vv={readContext:Hn,useCallback:am,useContext:Hn,useEffect:Yu,useImperativeHandle:rm,useInsertionEffect:tm,useLayoutEffect:nm,useMemo:om,useReducer:Ju,useRef:Zh,useState:function(){return Ju(ni)},useDebugValue:Xu,useDeferredValue:function(s){var o=Gn();return im(o,Ot.memoizedState,s)},useTransition:function(){var s=Ju(ni)[0],o=Gn().memoizedState;return[s,o]},useMutableSource:Hh,useSyncExternalStore:Gh,useId:lm,unstable_isNewReconciler:!1},Hv={readContext:Hn,useCallback:am,useContext:Hn,useEffect:Yu,useImperativeHandle:rm,useInsertionEffect:tm,useLayoutEffect:nm,useMemo:om,useReducer:Qu,useRef:Zh,useState:function(){return Qu(ni)},useDebugValue:Xu,useDeferredValue:function(s){var o=Gn();return Ot===null?o.memoizedState=s:im(o,Ot.memoizedState,s)},useTransition:function(){var s=Qu(ni)[0],o=Gn().memoizedState;return[s,o]},useMutableSource:Hh,useSyncExternalStore:Gh,useId:lm,unstable_isNewReconciler:!1};function rs(s,o){if(s&&s.defaultProps){o=re({},o),s=s.defaultProps;for(var l in s)o[l]===void 0&&(o[l]=s[l]);return o}return o}function qu(s,o,l,h){o=s.memoizedState,l=l(h,o),l=l==null?o:re({},o,l),s.memoizedState=l,s.lanes===0&&(s.updateQueue.baseState=l)}var Pl={isMounted:function(s){return(s=s._reactInternals)?pn(s)===s:!1},enqueueSetState:function(s,o,l){s=s._reactInternals;var h=un(),g=kr(s),v=Vs(h,g);v.payload=o,l!=null&&(v.callback=l),o=vr(s,v,g),o!==null&&(is(o,s,g,h),Al(o,s,g))},enqueueReplaceState:function(s,o,l){s=s._reactInternals;var h=un(),g=kr(s),v=Vs(h,g);v.tag=1,v.payload=o,l!=null&&(v.callback=l),o=vr(s,v,g),o!==null&&(is(o,s,g,h),Al(o,s,g))},enqueueForceUpdate:function(s,o){s=s._reactInternals;var l=un(),h=kr(s),g=Vs(l,h);g.tag=2,o!=null&&(g.callback=o),o=vr(s,g,h),o!==null&&(is(o,s,h,l),Al(o,s,h))}};function fm(s,o,l,h,g,v,k){return s=s.stateNode,typeof s.shouldComponentUpdate=="function"?s.shouldComponentUpdate(h,v,k):o.prototype&&o.prototype.isPureReactComponent?!Uo(l,h)||!Uo(g,v):!0}function hm(s,o,l){var h=!1,g=gr,v=o.contextType;return typeof v=="object"&&v!==null?v=Hn(v):(g=_n(o)?Gr:en.current,h=o.contextTypes,v=(h=h!=null)?Va(s,g):gr),o=new o(l,v),s.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,o.updater=Pl,s.stateNode=o,o._reactInternals=s,h&&(s=s.stateNode,s.__reactInternalMemoizedUnmaskedChildContext=g,s.__reactInternalMemoizedMaskedChildContext=v),o}function mm(s,o,l,h){s=o.state,typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps(l,h),typeof o.UNSAFE_componentWillReceiveProps=="function"&&o.UNSAFE_componentWillReceiveProps(l,h),o.state!==s&&Pl.enqueueReplaceState(o,o.state,null)}function Zu(s,o,l,h){var g=s.stateNode;g.props=l,g.state=s.memoizedState,g.refs={},Fu(s);var v=o.contextType;typeof v=="object"&&v!==null?g.context=Hn(v):(v=_n(o)?Gr:en.current,g.context=Va(s,v)),g.state=s.memoizedState,v=o.getDerivedStateFromProps,typeof v=="function"&&(qu(s,o,v,l),g.state=s.memoizedState),typeof o.getDerivedStateFromProps=="function"||typeof g.getSnapshotBeforeUpdate=="function"||typeof g.UNSAFE_componentWillMount!="function"&&typeof g.componentWillMount!="function"||(o=g.state,typeof g.componentWillMount=="function"&&g.componentWillMount(),typeof g.UNSAFE_componentWillMount=="function"&&g.UNSAFE_componentWillMount(),o!==g.state&&Pl.enqueueReplaceState(g,g.state,null),$l(s,l,g,h),g.state=s.memoizedState),typeof g.componentDidMount=="function"&&(s.flags|=4194308)}function qa(s,o){try{var l="",h=o;do l+=q(h),h=h.return;while(h);var g=l}catch(v){g=`
|
|
39
|
-
Error generating stack: `+v.message+`
|
|
40
|
-
`+v.stack}return{value:s,source:o,stack:g,digest:null}}function ed(s,o,l){return{value:s,source:null,stack:l??null,digest:o??null}}function td(s,o){try{console.error(o.value)}catch(l){setTimeout(function(){throw l})}}var Gv=typeof WeakMap=="function"?WeakMap:Map;function pm(s,o,l){l=Vs(-1,l),l.tag=3,l.payload={element:null};var h=o.value;return l.callback=function(){Vl||(Vl=!0,gd=h),td(s,o)},l}function gm(s,o,l){l=Vs(-1,l),l.tag=3;var h=s.type.getDerivedStateFromError;if(typeof h=="function"){var g=o.value;l.payload=function(){return h(g)},l.callback=function(){td(s,o)}}var v=s.stateNode;return v!==null&&typeof v.componentDidCatch=="function"&&(l.callback=function(){td(s,o),typeof h!="function"&&(br===null?br=new Set([this]):br.add(this));var k=o.stack;this.componentDidCatch(o.value,{componentStack:k!==null?k:""})}),l}function ym(s,o,l){var h=s.pingCache;if(h===null){h=s.pingCache=new Gv;var g=new Set;h.set(o,g)}else g=h.get(o),g===void 0&&(g=new Set,h.set(o,g));g.has(l)||(g.add(l),s=o_.bind(null,s,o,l),o.then(s,s))}function wm(s){do{var o;if((o=s.tag===13)&&(o=s.memoizedState,o=o!==null?o.dehydrated!==null:!0),o)return s;s=s.return}while(s!==null);return null}function vm(s,o,l,h,g){return(s.mode&1)===0?(s===o?s.flags|=65536:(s.flags|=128,l.flags|=131072,l.flags&=-52805,l.tag===1&&(l.alternate===null?l.tag=17:(o=Vs(-1,1),o.tag=2,vr(l,o,1))),l.lanes|=1),s):(s.flags|=65536,s.lanes=g,s)}var Kv=C.ReactCurrentOwner,bn=!1;function cn(s,o,l,h){o.child=s===null?Fh(o,null,l,h):Ja(o,s.child,l,h)}function _m(s,o,l,h,g){l=l.render;var v=o.ref;return Ya(o,g),h=Gu(s,o,l,h,v,g),l=Ku(),s!==null&&!bn?(o.updateQueue=s.updateQueue,o.flags&=-2053,s.lanes&=~g,Hs(s,o,g)):(_t&&l&&Au(o),o.flags|=1,cn(s,o,h,g),o.child)}function bm(s,o,l,h,g){if(s===null){var v=l.type;return typeof v=="function"&&!kd(v)&&v.defaultProps===void 0&&l.compare===null&&l.defaultProps===void 0?(o.tag=15,o.type=v,xm(s,o,v,h,g)):(s=Yl(l.type,null,h,o,o.mode,g),s.ref=o.ref,s.return=o,o.child=s)}if(v=s.child,(s.lanes&g)===0){var k=v.memoizedProps;if(l=l.compare,l=l!==null?l:Uo,l(k,h)&&s.ref===o.ref)return Hs(s,o,g)}return o.flags|=1,s=Sr(v,h),s.ref=o.ref,s.return=o,o.child=s}function xm(s,o,l,h,g){if(s!==null){var v=s.memoizedProps;if(Uo(v,h)&&s.ref===o.ref)if(bn=!1,o.pendingProps=h=v,(s.lanes&g)!==0)(s.flags&131072)!==0&&(bn=!0);else return o.lanes=s.lanes,Hs(s,o,g)}return nd(s,o,l,h,g)}function km(s,o,l){var h=o.pendingProps,g=h.children,v=s!==null?s.memoizedState:null;if(h.mode==="hidden")if((o.mode&1)===0)o.memoizedState={baseLanes:0,cachePool:null,transitions:null},ft(eo,On),On|=l;else{if((l&1073741824)===0)return s=v!==null?v.baseLanes|l:l,o.lanes=o.childLanes=1073741824,o.memoizedState={baseLanes:s,cachePool:null,transitions:null},o.updateQueue=null,ft(eo,On),On|=s,null;o.memoizedState={baseLanes:0,cachePool:null,transitions:null},h=v!==null?v.baseLanes:l,ft(eo,On),On|=h}else v!==null?(h=v.baseLanes|l,o.memoizedState=null):h=l,ft(eo,On),On|=h;return cn(s,o,g,l),o.child}function jm(s,o){var l=o.ref;(s===null&&l!==null||s!==null&&s.ref!==l)&&(o.flags|=512,o.flags|=2097152)}function nd(s,o,l,h,g){var v=_n(l)?Gr:en.current;return v=Va(o,v),Ya(o,g),l=Gu(s,o,l,h,v,g),h=Ku(),s!==null&&!bn?(o.updateQueue=s.updateQueue,o.flags&=-2053,s.lanes&=~g,Hs(s,o,g)):(_t&&h&&Au(o),o.flags|=1,cn(s,o,l,g),o.child)}function Sm(s,o,l,h,g){if(_n(l)){var v=!0;bl(o)}else v=!1;if(Ya(o,g),o.stateNode===null)Fl(s,o),hm(o,l,h),Zu(o,l,h,g),h=!0;else if(s===null){var k=o.stateNode,L=o.memoizedProps;k.props=L;var z=k.context,Q=l.contextType;typeof Q=="object"&&Q!==null?Q=Hn(Q):(Q=_n(l)?Gr:en.current,Q=Va(o,Q));var ue=l.getDerivedStateFromProps,he=typeof ue=="function"||typeof k.getSnapshotBeforeUpdate=="function";he||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(L!==h||z!==Q)&&mm(o,k,h,Q),wr=!1;var ce=o.memoizedState;k.state=ce,$l(o,h,k,g),z=o.memoizedState,L!==h||ce!==z||vn.current||wr?(typeof ue=="function"&&(qu(o,l,ue,h),z=o.memoizedState),(L=wr||fm(o,l,L,h,ce,z,Q))?(he||typeof k.UNSAFE_componentWillMount!="function"&&typeof k.componentWillMount!="function"||(typeof k.componentWillMount=="function"&&k.componentWillMount(),typeof k.UNSAFE_componentWillMount=="function"&&k.UNSAFE_componentWillMount()),typeof k.componentDidMount=="function"&&(o.flags|=4194308)):(typeof k.componentDidMount=="function"&&(o.flags|=4194308),o.memoizedProps=h,o.memoizedState=z),k.props=h,k.state=z,k.context=Q,h=L):(typeof k.componentDidMount=="function"&&(o.flags|=4194308),h=!1)}else{k=o.stateNode,Wh(s,o),L=o.memoizedProps,Q=o.type===o.elementType?L:rs(o.type,L),k.props=Q,he=o.pendingProps,ce=k.context,z=l.contextType,typeof z=="object"&&z!==null?z=Hn(z):(z=_n(l)?Gr:en.current,z=Va(o,z));var ke=l.getDerivedStateFromProps;(ue=typeof ke=="function"||typeof k.getSnapshotBeforeUpdate=="function")||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(L!==he||ce!==z)&&mm(o,k,h,z),wr=!1,ce=o.memoizedState,k.state=ce,$l(o,h,k,g);var Ce=o.memoizedState;L!==he||ce!==Ce||vn.current||wr?(typeof ke=="function"&&(qu(o,l,ke,h),Ce=o.memoizedState),(Q=wr||fm(o,l,Q,h,ce,Ce,z)||!1)?(ue||typeof k.UNSAFE_componentWillUpdate!="function"&&typeof k.componentWillUpdate!="function"||(typeof k.componentWillUpdate=="function"&&k.componentWillUpdate(h,Ce,z),typeof k.UNSAFE_componentWillUpdate=="function"&&k.UNSAFE_componentWillUpdate(h,Ce,z)),typeof k.componentDidUpdate=="function"&&(o.flags|=4),typeof k.getSnapshotBeforeUpdate=="function"&&(o.flags|=1024)):(typeof k.componentDidUpdate!="function"||L===s.memoizedProps&&ce===s.memoizedState||(o.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||L===s.memoizedProps&&ce===s.memoizedState||(o.flags|=1024),o.memoizedProps=h,o.memoizedState=Ce),k.props=h,k.state=Ce,k.context=z,h=Q):(typeof k.componentDidUpdate!="function"||L===s.memoizedProps&&ce===s.memoizedState||(o.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||L===s.memoizedProps&&ce===s.memoizedState||(o.flags|=1024),h=!1)}return sd(s,o,l,h,v,g)}function sd(s,o,l,h,g,v){jm(s,o);var k=(o.flags&128)!==0;if(!h&&!k)return g&&$h(o,l,!1),Hs(s,o,v);h=o.stateNode,Kv.current=o;var L=k&&typeof l.getDerivedStateFromError!="function"?null:h.render();return o.flags|=1,s!==null&&k?(o.child=Ja(o,s.child,null,v),o.child=Ja(o,null,L,v)):cn(s,o,L,v),o.memoizedState=h.state,g&&$h(o,l,!0),o.child}function Nm(s){var o=s.stateNode;o.pendingContext?Eh(s,o.pendingContext,o.pendingContext!==o.context):o.context&&Eh(s,o.context,!1),zu(s,o.containerInfo)}function Cm(s,o,l,h,g){return Ka(),Iu(g),o.flags|=256,cn(s,o,l,h),o.child}var rd={dehydrated:null,treeContext:null,retryLane:0};function ad(s){return{baseLanes:s,cachePool:null,transitions:null}}function Em(s,o,l){var h=o.pendingProps,g=kt.current,v=!1,k=(o.flags&128)!==0,L;if((L=k)||(L=s!==null&&s.memoizedState===null?!1:(g&2)!==0),L?(v=!0,o.flags&=-129):(s===null||s.memoizedState!==null)&&(g|=1),ft(kt,g&1),s===null)return Ru(o),s=o.memoizedState,s!==null&&(s=s.dehydrated,s!==null)?((o.mode&1)===0?o.lanes=1:s.data==="$!"?o.lanes=8:o.lanes=1073741824,null):(k=h.children,s=h.fallback,v?(h=o.mode,v=o.child,k={mode:"hidden",children:k},(h&1)===0&&v!==null?(v.childLanes=0,v.pendingProps=k):v=Xl(k,h,0,null),s=na(s,h,l,null),v.return=o,s.return=o,v.sibling=s,o.child=v,o.child.memoizedState=ad(l),o.memoizedState=rd,s):od(o,k));if(g=s.memoizedState,g!==null&&(L=g.dehydrated,L!==null))return Jv(s,o,k,h,L,g,l);if(v){v=h.fallback,k=o.mode,g=s.child,L=g.sibling;var z={mode:"hidden",children:h.children};return(k&1)===0&&o.child!==g?(h=o.child,h.childLanes=0,h.pendingProps=z,o.deletions=null):(h=Sr(g,z),h.subtreeFlags=g.subtreeFlags&14680064),L!==null?v=Sr(L,v):(v=na(v,k,l,null),v.flags|=2),v.return=o,h.return=o,h.sibling=v,o.child=h,h=v,v=o.child,k=s.child.memoizedState,k=k===null?ad(l):{baseLanes:k.baseLanes|l,cachePool:null,transitions:k.transitions},v.memoizedState=k,v.childLanes=s.childLanes&~l,o.memoizedState=rd,h}return v=s.child,s=v.sibling,h=Sr(v,{mode:"visible",children:h.children}),(o.mode&1)===0&&(h.lanes=l),h.return=o,h.sibling=null,s!==null&&(l=o.deletions,l===null?(o.deletions=[s],o.flags|=16):l.push(s)),o.child=h,o.memoizedState=null,h}function od(s,o){return o=Xl({mode:"visible",children:o},s.mode,0,null),o.return=s,s.child=o}function Dl(s,o,l,h){return h!==null&&Iu(h),Ja(o,s.child,null,l),s=od(o,o.pendingProps.children),s.flags|=2,o.memoizedState=null,s}function Jv(s,o,l,h,g,v,k){if(l)return o.flags&256?(o.flags&=-257,h=ed(Error(n(422))),Dl(s,o,k,h)):o.memoizedState!==null?(o.child=s.child,o.flags|=128,null):(v=h.fallback,g=o.mode,h=Xl({mode:"visible",children:h.children},g,0,null),v=na(v,g,k,null),v.flags|=2,h.return=o,v.return=o,h.sibling=v,o.child=h,(o.mode&1)!==0&&Ja(o,s.child,null,k),o.child.memoizedState=ad(k),o.memoizedState=rd,v);if((o.mode&1)===0)return Dl(s,o,k,null);if(g.data==="$!"){if(h=g.nextSibling&&g.nextSibling.dataset,h)var L=h.dgst;return h=L,v=Error(n(419)),h=ed(v,h,void 0),Dl(s,o,k,h)}if(L=(k&s.childLanes)!==0,bn||L){if(h=Wt,h!==null){switch(k&-k){case 4:g=2;break;case 16:g=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:g=32;break;case 536870912:g=268435456;break;default:g=0}g=(g&(h.suspendedLanes|k))!==0?0:g,g!==0&&g!==v.retryLane&&(v.retryLane=g,Us(s,g),is(h,s,g,-1))}return xd(),h=ed(Error(n(421))),Dl(s,o,k,h)}return g.data==="$?"?(o.flags|=128,o.child=s.child,o=i_.bind(null,s),g._reactRetry=o,null):(s=v.treeContext,Ln=mr(g.nextSibling),Mn=o,_t=!0,ss=null,s!==null&&(Un[Vn++]=Ws,Un[Vn++]=Bs,Un[Vn++]=Kr,Ws=s.id,Bs=s.overflow,Kr=o),o=od(o,h.children),o.flags|=4096,o)}function Am(s,o,l){s.lanes|=o;var h=s.alternate;h!==null&&(h.lanes|=o),Pu(s.return,o,l)}function id(s,o,l,h,g){var v=s.memoizedState;v===null?s.memoizedState={isBackwards:o,rendering:null,renderingStartTime:0,last:h,tail:l,tailMode:g}:(v.isBackwards=o,v.rendering=null,v.renderingStartTime=0,v.last=h,v.tail=l,v.tailMode=g)}function $m(s,o,l){var h=o.pendingProps,g=h.revealOrder,v=h.tail;if(cn(s,o,h.children,l),h=kt.current,(h&2)!==0)h=h&1|2,o.flags|=128;else{if(s!==null&&(s.flags&128)!==0)e:for(s=o.child;s!==null;){if(s.tag===13)s.memoizedState!==null&&Am(s,l,o);else if(s.tag===19)Am(s,l,o);else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===o)break e;for(;s.sibling===null;){if(s.return===null||s.return===o)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}h&=1}if(ft(kt,h),(o.mode&1)===0)o.memoizedState=null;else switch(g){case"forwards":for(l=o.child,g=null;l!==null;)s=l.alternate,s!==null&&Tl(s)===null&&(g=l),l=l.sibling;l=g,l===null?(g=o.child,o.child=null):(g=l.sibling,l.sibling=null),id(o,!1,g,l,v);break;case"backwards":for(l=null,g=o.child,o.child=null;g!==null;){if(s=g.alternate,s!==null&&Tl(s)===null){o.child=g;break}s=g.sibling,g.sibling=l,l=g,g=s}id(o,!0,l,null,v);break;case"together":id(o,!1,null,null,void 0);break;default:o.memoizedState=null}return o.child}function Fl(s,o){(o.mode&1)===0&&s!==null&&(s.alternate=null,o.alternate=null,o.flags|=2)}function Hs(s,o,l){if(s!==null&&(o.dependencies=s.dependencies),qr|=o.lanes,(l&o.childLanes)===0)return null;if(s!==null&&o.child!==s.child)throw Error(n(153));if(o.child!==null){for(s=o.child,l=Sr(s,s.pendingProps),o.child=l,l.return=o;s.sibling!==null;)s=s.sibling,l=l.sibling=Sr(s,s.pendingProps),l.return=o;l.sibling=null}return o.child}function Qv(s,o,l){switch(o.tag){case 3:Nm(o),Ka();break;case 5:Vh(o);break;case 1:_n(o.type)&&bl(o);break;case 4:zu(o,o.stateNode.containerInfo);break;case 10:var h=o.type._context,g=o.memoizedProps.value;ft(Cl,h._currentValue),h._currentValue=g;break;case 13:if(h=o.memoizedState,h!==null)return h.dehydrated!==null?(ft(kt,kt.current&1),o.flags|=128,null):(l&o.child.childLanes)!==0?Em(s,o,l):(ft(kt,kt.current&1),s=Hs(s,o,l),s!==null?s.sibling:null);ft(kt,kt.current&1);break;case 19:if(h=(l&o.childLanes)!==0,(s.flags&128)!==0){if(h)return $m(s,o,l);o.flags|=128}if(g=o.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),ft(kt,kt.current),h)break;return null;case 22:case 23:return o.lanes=0,km(s,o,l)}return Hs(s,o,l)}var Tm,ld,Rm,Im;Tm=function(s,o){for(var l=o.child;l!==null;){if(l.tag===5||l.tag===6)s.appendChild(l.stateNode);else if(l.tag!==4&&l.child!==null){l.child.return=l,l=l.child;continue}if(l===o)break;for(;l.sibling===null;){if(l.return===null||l.return===o)return;l=l.return}l.sibling.return=l.return,l=l.sibling}},ld=function(){},Rm=function(s,o,l,h){var g=s.memoizedProps;if(g!==h){s=o.stateNode,Yr(Ss.current);var v=null;switch(l){case"input":g=Ue(s,g),h=Ue(s,h),v=[];break;case"select":g=re({},g,{value:void 0}),h=re({},h,{value:void 0}),v=[];break;case"textarea":g=_e(s,g),h=_e(s,h),v=[];break;default:typeof g.onClick!="function"&&typeof h.onClick=="function"&&(s.onclick=wl)}ma(l,h);var k;l=null;for(Q in g)if(!h.hasOwnProperty(Q)&&g.hasOwnProperty(Q)&&g[Q]!=null)if(Q==="style"){var L=g[Q];for(k in L)L.hasOwnProperty(k)&&(l||(l={}),l[k]="")}else Q!=="dangerouslySetInnerHTML"&&Q!=="children"&&Q!=="suppressContentEditableWarning"&&Q!=="suppressHydrationWarning"&&Q!=="autoFocus"&&(i.hasOwnProperty(Q)?v||(v=[]):(v=v||[]).push(Q,null));for(Q in h){var z=h[Q];if(L=g!=null?g[Q]:void 0,h.hasOwnProperty(Q)&&z!==L&&(z!=null||L!=null))if(Q==="style")if(L){for(k in L)!L.hasOwnProperty(k)||z&&z.hasOwnProperty(k)||(l||(l={}),l[k]="");for(k in z)z.hasOwnProperty(k)&&L[k]!==z[k]&&(l||(l={}),l[k]=z[k])}else l||(v||(v=[]),v.push(Q,l)),l=z;else Q==="dangerouslySetInnerHTML"?(z=z?z.__html:void 0,L=L?L.__html:void 0,z!=null&&L!==z&&(v=v||[]).push(Q,z)):Q==="children"?typeof z!="string"&&typeof z!="number"||(v=v||[]).push(Q,""+z):Q!=="suppressContentEditableWarning"&&Q!=="suppressHydrationWarning"&&(i.hasOwnProperty(Q)?(z!=null&&Q==="onScroll"&&mt("scroll",s),v||L===z||(v=[])):(v=v||[]).push(Q,z))}l&&(v=v||[]).push("style",l);var Q=v;(o.updateQueue=Q)&&(o.flags|=4)}},Im=function(s,o,l,h){l!==h&&(o.flags|=4)};function ri(s,o){if(!_t)switch(s.tailMode){case"hidden":o=s.tail;for(var l=null;o!==null;)o.alternate!==null&&(l=o),o=o.sibling;l===null?s.tail=null:l.sibling=null;break;case"collapsed":l=s.tail;for(var h=null;l!==null;)l.alternate!==null&&(h=l),l=l.sibling;h===null?o||s.tail===null?s.tail=null:s.tail.sibling=null:h.sibling=null}}function nn(s){var o=s.alternate!==null&&s.alternate.child===s.child,l=0,h=0;if(o)for(var g=s.child;g!==null;)l|=g.lanes|g.childLanes,h|=g.subtreeFlags&14680064,h|=g.flags&14680064,g.return=s,g=g.sibling;else for(g=s.child;g!==null;)l|=g.lanes|g.childLanes,h|=g.subtreeFlags,h|=g.flags,g.return=s,g=g.sibling;return s.subtreeFlags|=h,s.childLanes=l,o}function Yv(s,o,l){var h=o.pendingProps;switch($u(o),o.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return nn(o),null;case 1:return _n(o.type)&&_l(),nn(o),null;case 3:return h=o.stateNode,Xa(),pt(vn),pt(en),Uu(),h.pendingContext&&(h.context=h.pendingContext,h.pendingContext=null),(s===null||s.child===null)&&(Sl(o)?o.flags|=4:s===null||s.memoizedState.isDehydrated&&(o.flags&256)===0||(o.flags|=1024,ss!==null&&(vd(ss),ss=null))),ld(s,o),nn(o),null;case 5:Wu(o);var g=Yr(Zo.current);if(l=o.type,s!==null&&o.stateNode!=null)Rm(s,o,l,h,g),s.ref!==o.ref&&(o.flags|=512,o.flags|=2097152);else{if(!h){if(o.stateNode===null)throw Error(n(166));return nn(o),null}if(s=Yr(Ss.current),Sl(o)){h=o.stateNode,l=o.type;var v=o.memoizedProps;switch(h[js]=o,h[Jo]=v,s=(o.mode&1)!==0,l){case"dialog":mt("cancel",h),mt("close",h);break;case"iframe":case"object":case"embed":mt("load",h);break;case"video":case"audio":for(g=0;g<Ho.length;g++)mt(Ho[g],h);break;case"source":mt("error",h);break;case"img":case"image":case"link":mt("error",h),mt("load",h);break;case"details":mt("toggle",h);break;case"input":lt(h,v),mt("invalid",h);break;case"select":h._wrapperState={wasMultiple:!!v.multiple},mt("invalid",h);break;case"textarea":ye(h,v),mt("invalid",h)}ma(l,v),g=null;for(var k in v)if(v.hasOwnProperty(k)){var L=v[k];k==="children"?typeof L=="string"?h.textContent!==L&&(v.suppressHydrationWarning!==!0&&yl(h.textContent,L,s),g=["children",L]):typeof L=="number"&&h.textContent!==""+L&&(v.suppressHydrationWarning!==!0&&yl(h.textContent,L,s),g=["children",""+L]):i.hasOwnProperty(k)&&L!=null&&k==="onScroll"&&mt("scroll",h)}switch(l){case"input":nt(h),ee(h,v,!0);break;case"textarea":nt(h),Be(h);break;case"select":case"option":break;default:typeof v.onClick=="function"&&(h.onclick=wl)}h=g,o.updateQueue=h,h!==null&&(o.flags|=4)}else{k=g.nodeType===9?g:g.ownerDocument,s==="http://www.w3.org/1999/xhtml"&&(s=Ke(l)),s==="http://www.w3.org/1999/xhtml"?l==="script"?(s=k.createElement("div"),s.innerHTML="<script><\/script>",s=s.removeChild(s.firstChild)):typeof h.is=="string"?s=k.createElement(l,{is:h.is}):(s=k.createElement(l),l==="select"&&(k=s,h.multiple?k.multiple=!0:h.size&&(k.size=h.size))):s=k.createElementNS(s,l),s[js]=o,s[Jo]=h,Tm(s,o,!1,!1),o.stateNode=s;e:{switch(k=Fn(l,h),l){case"dialog":mt("cancel",s),mt("close",s),g=h;break;case"iframe":case"object":case"embed":mt("load",s),g=h;break;case"video":case"audio":for(g=0;g<Ho.length;g++)mt(Ho[g],s);g=h;break;case"source":mt("error",s),g=h;break;case"img":case"image":case"link":mt("error",s),mt("load",s),g=h;break;case"details":mt("toggle",s),g=h;break;case"input":lt(s,h),g=Ue(s,h),mt("invalid",s);break;case"option":g=h;break;case"select":s._wrapperState={wasMultiple:!!h.multiple},g=re({},h,{value:void 0}),mt("invalid",s);break;case"textarea":ye(s,h),g=_e(s,h),mt("invalid",s);break;default:g=h}ma(l,g),L=g;for(v in L)if(L.hasOwnProperty(v)){var z=L[v];v==="style"?ha(s,z):v==="dangerouslySetInnerHTML"?(z=z?z.__html:void 0,z!=null&&Yt(s,z)):v==="children"?typeof z=="string"?(l!=="textarea"||z!=="")&&on(s,z):typeof z=="number"&&on(s,""+z):v!=="suppressContentEditableWarning"&&v!=="suppressHydrationWarning"&&v!=="autoFocus"&&(i.hasOwnProperty(v)?z!=null&&v==="onScroll"&&mt("scroll",s):z!=null&&N(s,v,z,k))}switch(l){case"input":nt(s),ee(s,h,!1);break;case"textarea":nt(s),Be(s);break;case"option":h.value!=null&&s.setAttribute("value",""+oe(h.value));break;case"select":s.multiple=!!h.multiple,v=h.value,v!=null?pe(s,!!h.multiple,v,!1):h.defaultValue!=null&&pe(s,!!h.multiple,h.defaultValue,!0);break;default:typeof g.onClick=="function"&&(s.onclick=wl)}switch(l){case"button":case"input":case"select":case"textarea":h=!!h.autoFocus;break e;case"img":h=!0;break e;default:h=!1}}h&&(o.flags|=4)}o.ref!==null&&(o.flags|=512,o.flags|=2097152)}return nn(o),null;case 6:if(s&&o.stateNode!=null)Im(s,o,s.memoizedProps,h);else{if(typeof h!="string"&&o.stateNode===null)throw Error(n(166));if(l=Yr(Zo.current),Yr(Ss.current),Sl(o)){if(h=o.stateNode,l=o.memoizedProps,h[js]=o,(v=h.nodeValue!==l)&&(s=Mn,s!==null))switch(s.tag){case 3:yl(h.nodeValue,l,(s.mode&1)!==0);break;case 5:s.memoizedProps.suppressHydrationWarning!==!0&&yl(h.nodeValue,l,(s.mode&1)!==0)}v&&(o.flags|=4)}else h=(l.nodeType===9?l:l.ownerDocument).createTextNode(h),h[js]=o,o.stateNode=h}return nn(o),null;case 13:if(pt(kt),h=o.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(_t&&Ln!==null&&(o.mode&1)!==0&&(o.flags&128)===0)Oh(),Ka(),o.flags|=98560,v=!1;else if(v=Sl(o),h!==null&&h.dehydrated!==null){if(s===null){if(!v)throw Error(n(318));if(v=o.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(n(317));v[js]=o}else Ka(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;nn(o),v=!1}else ss!==null&&(vd(ss),ss=null),v=!0;if(!v)return o.flags&65536?o:null}return(o.flags&128)!==0?(o.lanes=l,o):(h=h!==null,h!==(s!==null&&s.memoizedState!==null)&&h&&(o.child.flags|=8192,(o.mode&1)!==0&&(s===null||(kt.current&1)!==0?Pt===0&&(Pt=3):xd())),o.updateQueue!==null&&(o.flags|=4),nn(o),null);case 4:return Xa(),ld(s,o),s===null&&Go(o.stateNode.containerInfo),nn(o),null;case 10:return Ou(o.type._context),nn(o),null;case 17:return _n(o.type)&&_l(),nn(o),null;case 19:if(pt(kt),v=o.memoizedState,v===null)return nn(o),null;if(h=(o.flags&128)!==0,k=v.rendering,k===null)if(h)ri(v,!1);else{if(Pt!==0||s!==null&&(s.flags&128)!==0)for(s=o.child;s!==null;){if(k=Tl(s),k!==null){for(o.flags|=128,ri(v,!1),h=k.updateQueue,h!==null&&(o.updateQueue=h,o.flags|=4),o.subtreeFlags=0,h=l,l=o.child;l!==null;)v=l,s=h,v.flags&=14680066,k=v.alternate,k===null?(v.childLanes=0,v.lanes=s,v.child=null,v.subtreeFlags=0,v.memoizedProps=null,v.memoizedState=null,v.updateQueue=null,v.dependencies=null,v.stateNode=null):(v.childLanes=k.childLanes,v.lanes=k.lanes,v.child=k.child,v.subtreeFlags=0,v.deletions=null,v.memoizedProps=k.memoizedProps,v.memoizedState=k.memoizedState,v.updateQueue=k.updateQueue,v.type=k.type,s=k.dependencies,v.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext}),l=l.sibling;return ft(kt,kt.current&1|2),o.child}s=s.sibling}v.tail!==null&&rt()>to&&(o.flags|=128,h=!0,ri(v,!1),o.lanes=4194304)}else{if(!h)if(s=Tl(k),s!==null){if(o.flags|=128,h=!0,l=s.updateQueue,l!==null&&(o.updateQueue=l,o.flags|=4),ri(v,!0),v.tail===null&&v.tailMode==="hidden"&&!k.alternate&&!_t)return nn(o),null}else 2*rt()-v.renderingStartTime>to&&l!==1073741824&&(o.flags|=128,h=!0,ri(v,!1),o.lanes=4194304);v.isBackwards?(k.sibling=o.child,o.child=k):(l=v.last,l!==null?l.sibling=k:o.child=k,v.last=k)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=rt(),o.sibling=null,l=kt.current,ft(kt,h?l&1|2:l&1),o):(nn(o),null);case 22:case 23:return bd(),h=o.memoizedState!==null,s!==null&&s.memoizedState!==null!==h&&(o.flags|=8192),h&&(o.mode&1)!==0?(On&1073741824)!==0&&(nn(o),o.subtreeFlags&6&&(o.flags|=8192)):nn(o),null;case 24:return null;case 25:return null}throw Error(n(156,o.tag))}function Xv(s,o){switch($u(o),o.tag){case 1:return _n(o.type)&&_l(),s=o.flags,s&65536?(o.flags=s&-65537|128,o):null;case 3:return Xa(),pt(vn),pt(en),Uu(),s=o.flags,(s&65536)!==0&&(s&128)===0?(o.flags=s&-65537|128,o):null;case 5:return Wu(o),null;case 13:if(pt(kt),s=o.memoizedState,s!==null&&s.dehydrated!==null){if(o.alternate===null)throw Error(n(340));Ka()}return s=o.flags,s&65536?(o.flags=s&-65537|128,o):null;case 19:return pt(kt),null;case 4:return Xa(),null;case 10:return Ou(o.type._context),null;case 22:case 23:return bd(),null;case 24:return null;default:return null}}var zl=!1,sn=!1,qv=typeof WeakSet=="function"?WeakSet:Set,Se=null;function Za(s,o){var l=s.ref;if(l!==null)if(typeof l=="function")try{l(null)}catch(h){Ct(s,o,h)}else l.current=null}function cd(s,o,l){try{l()}catch(h){Ct(s,o,h)}}var Mm=!1;function Zv(s,o){if(bu=vs,s=fh(),hu(s)){if("selectionStart"in s)var l={start:s.selectionStart,end:s.selectionEnd};else e:{l=(l=s.ownerDocument)&&l.defaultView||window;var h=l.getSelection&&l.getSelection();if(h&&h.rangeCount!==0){l=h.anchorNode;var g=h.anchorOffset,v=h.focusNode;h=h.focusOffset;try{l.nodeType,v.nodeType}catch{l=null;break e}var k=0,L=-1,z=-1,Q=0,ue=0,he=s,ce=null;t:for(;;){for(var ke;he!==l||g!==0&&he.nodeType!==3||(L=k+g),he!==v||h!==0&&he.nodeType!==3||(z=k+h),he.nodeType===3&&(k+=he.nodeValue.length),(ke=he.firstChild)!==null;)ce=he,he=ke;for(;;){if(he===s)break t;if(ce===l&&++Q===g&&(L=k),ce===v&&++ue===h&&(z=k),(ke=he.nextSibling)!==null)break;he=ce,ce=he.parentNode}he=ke}l=L===-1||z===-1?null:{start:L,end:z}}else l=null}l=l||{start:0,end:0}}else l=null;for(xu={focusedElem:s,selectionRange:l},vs=!1,Se=o;Se!==null;)if(o=Se,s=o.child,(o.subtreeFlags&1028)!==0&&s!==null)s.return=o,Se=s;else for(;Se!==null;){o=Se;try{var Ce=o.alternate;if((o.flags&1024)!==0)switch(o.tag){case 0:case 11:case 15:break;case 1:if(Ce!==null){var Ee=Ce.memoizedProps,Tt=Ce.memoizedState,G=o.stateNode,B=G.getSnapshotBeforeUpdate(o.elementType===o.type?Ee:rs(o.type,Ee),Tt);G.__reactInternalSnapshotBeforeUpdate=B}break;case 3:var K=o.stateNode.containerInfo;K.nodeType===1?K.textContent="":K.nodeType===9&&K.documentElement&&K.removeChild(K.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(ge){Ct(o,o.return,ge)}if(s=o.sibling,s!==null){s.return=o.return,Se=s;break}Se=o.return}return Ce=Mm,Mm=!1,Ce}function ai(s,o,l){var h=o.updateQueue;if(h=h!==null?h.lastEffect:null,h!==null){var g=h=h.next;do{if((g.tag&s)===s){var v=g.destroy;g.destroy=void 0,v!==void 0&&cd(o,l,v)}g=g.next}while(g!==h)}}function Wl(s,o){if(o=o.updateQueue,o=o!==null?o.lastEffect:null,o!==null){var l=o=o.next;do{if((l.tag&s)===s){var h=l.create;l.destroy=h()}l=l.next}while(l!==o)}}function ud(s){var o=s.ref;if(o!==null){var l=s.stateNode;switch(s.tag){case 5:s=l;break;default:s=l}typeof o=="function"?o(s):o.current=s}}function Lm(s){var o=s.alternate;o!==null&&(s.alternate=null,Lm(o)),s.child=null,s.deletions=null,s.sibling=null,s.tag===5&&(o=s.stateNode,o!==null&&(delete o[js],delete o[Jo],delete o[Nu],delete o[Lv],delete o[Ov])),s.stateNode=null,s.return=null,s.dependencies=null,s.memoizedProps=null,s.memoizedState=null,s.pendingProps=null,s.stateNode=null,s.updateQueue=null}function Om(s){return s.tag===5||s.tag===3||s.tag===4}function Pm(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||Om(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function dd(s,o,l){var h=s.tag;if(h===5||h===6)s=s.stateNode,o?l.nodeType===8?l.parentNode.insertBefore(s,o):l.insertBefore(s,o):(l.nodeType===8?(o=l.parentNode,o.insertBefore(s,l)):(o=l,o.appendChild(s)),l=l._reactRootContainer,l!=null||o.onclick!==null||(o.onclick=wl));else if(h!==4&&(s=s.child,s!==null))for(dd(s,o,l),s=s.sibling;s!==null;)dd(s,o,l),s=s.sibling}function fd(s,o,l){var h=s.tag;if(h===5||h===6)s=s.stateNode,o?l.insertBefore(s,o):l.appendChild(s);else if(h!==4&&(s=s.child,s!==null))for(fd(s,o,l),s=s.sibling;s!==null;)fd(s,o,l),s=s.sibling}var Ht=null,as=!1;function _r(s,o,l){for(l=l.child;l!==null;)Dm(s,o,l),l=l.sibling}function Dm(s,o,l){if(gn&&typeof gn.onCommitFiberUnmount=="function")try{gn.onCommitFiberUnmount(ka,l)}catch{}switch(l.tag){case 5:sn||Za(l,o);case 6:var h=Ht,g=as;Ht=null,_r(s,o,l),Ht=h,as=g,Ht!==null&&(as?(s=Ht,l=l.stateNode,s.nodeType===8?s.parentNode.removeChild(l):s.removeChild(l)):Ht.removeChild(l.stateNode));break;case 18:Ht!==null&&(as?(s=Ht,l=l.stateNode,s.nodeType===8?Su(s.parentNode,l):s.nodeType===1&&Su(s,l),ir(s)):Su(Ht,l.stateNode));break;case 4:h=Ht,g=as,Ht=l.stateNode.containerInfo,as=!0,_r(s,o,l),Ht=h,as=g;break;case 0:case 11:case 14:case 15:if(!sn&&(h=l.updateQueue,h!==null&&(h=h.lastEffect,h!==null))){g=h=h.next;do{var v=g,k=v.destroy;v=v.tag,k!==void 0&&((v&2)!==0||(v&4)!==0)&&cd(l,o,k),g=g.next}while(g!==h)}_r(s,o,l);break;case 1:if(!sn&&(Za(l,o),h=l.stateNode,typeof h.componentWillUnmount=="function"))try{h.props=l.memoizedProps,h.state=l.memoizedState,h.componentWillUnmount()}catch(L){Ct(l,o,L)}_r(s,o,l);break;case 21:_r(s,o,l);break;case 22:l.mode&1?(sn=(h=sn)||l.memoizedState!==null,_r(s,o,l),sn=h):_r(s,o,l);break;default:_r(s,o,l)}}function Fm(s){var o=s.updateQueue;if(o!==null){s.updateQueue=null;var l=s.stateNode;l===null&&(l=s.stateNode=new qv),o.forEach(function(h){var g=l_.bind(null,s,h);l.has(h)||(l.add(h),h.then(g,g))})}}function os(s,o){var l=o.deletions;if(l!==null)for(var h=0;h<l.length;h++){var g=l[h];try{var v=s,k=o,L=k;e:for(;L!==null;){switch(L.tag){case 5:Ht=L.stateNode,as=!1;break e;case 3:Ht=L.stateNode.containerInfo,as=!0;break e;case 4:Ht=L.stateNode.containerInfo,as=!0;break e}L=L.return}if(Ht===null)throw Error(n(160));Dm(v,k,g),Ht=null,as=!1;var z=g.alternate;z!==null&&(z.return=null),g.return=null}catch(Q){Ct(g,o,Q)}}if(o.subtreeFlags&12854)for(o=o.child;o!==null;)zm(o,s),o=o.sibling}function zm(s,o){var l=s.alternate,h=s.flags;switch(s.tag){case 0:case 11:case 14:case 15:if(os(o,s),Cs(s),h&4){try{ai(3,s,s.return),Wl(3,s)}catch(Ee){Ct(s,s.return,Ee)}try{ai(5,s,s.return)}catch(Ee){Ct(s,s.return,Ee)}}break;case 1:os(o,s),Cs(s),h&512&&l!==null&&Za(l,l.return);break;case 5:if(os(o,s),Cs(s),h&512&&l!==null&&Za(l,l.return),s.flags&32){var g=s.stateNode;try{on(g,"")}catch(Ee){Ct(s,s.return,Ee)}}if(h&4&&(g=s.stateNode,g!=null)){var v=s.memoizedProps,k=l!==null?l.memoizedProps:v,L=s.type,z=s.updateQueue;if(s.updateQueue=null,z!==null)try{L==="input"&&v.type==="radio"&&v.name!=null&&Pe(g,v),Fn(L,k);var Q=Fn(L,v);for(k=0;k<z.length;k+=2){var ue=z[k],he=z[k+1];ue==="style"?ha(g,he):ue==="dangerouslySetInnerHTML"?Yt(g,he):ue==="children"?on(g,he):N(g,ue,he,Q)}switch(L){case"input":ie(g,v);break;case"textarea":Oe(g,v);break;case"select":var ce=g._wrapperState.wasMultiple;g._wrapperState.wasMultiple=!!v.multiple;var ke=v.value;ke!=null?pe(g,!!v.multiple,ke,!1):ce!==!!v.multiple&&(v.defaultValue!=null?pe(g,!!v.multiple,v.defaultValue,!0):pe(g,!!v.multiple,v.multiple?[]:"",!1))}g[Jo]=v}catch(Ee){Ct(s,s.return,Ee)}}break;case 6:if(os(o,s),Cs(s),h&4){if(s.stateNode===null)throw Error(n(162));g=s.stateNode,v=s.memoizedProps;try{g.nodeValue=v}catch(Ee){Ct(s,s.return,Ee)}}break;case 3:if(os(o,s),Cs(s),h&4&&l!==null&&l.memoizedState.isDehydrated)try{ir(o.containerInfo)}catch(Ee){Ct(s,s.return,Ee)}break;case 4:os(o,s),Cs(s);break;case 13:os(o,s),Cs(s),g=s.child,g.flags&8192&&(v=g.memoizedState!==null,g.stateNode.isHidden=v,!v||g.alternate!==null&&g.alternate.memoizedState!==null||(pd=rt())),h&4&&Fm(s);break;case 22:if(ue=l!==null&&l.memoizedState!==null,s.mode&1?(sn=(Q=sn)||ue,os(o,s),sn=Q):os(o,s),Cs(s),h&8192){if(Q=s.memoizedState!==null,(s.stateNode.isHidden=Q)&&!ue&&(s.mode&1)!==0)for(Se=s,ue=s.child;ue!==null;){for(he=Se=ue;Se!==null;){switch(ce=Se,ke=ce.child,ce.tag){case 0:case 11:case 14:case 15:ai(4,ce,ce.return);break;case 1:Za(ce,ce.return);var Ce=ce.stateNode;if(typeof Ce.componentWillUnmount=="function"){h=ce,l=ce.return;try{o=h,Ce.props=o.memoizedProps,Ce.state=o.memoizedState,Ce.componentWillUnmount()}catch(Ee){Ct(h,l,Ee)}}break;case 5:Za(ce,ce.return);break;case 22:if(ce.memoizedState!==null){Um(he);continue}}ke!==null?(ke.return=ce,Se=ke):Um(he)}ue=ue.sibling}e:for(ue=null,he=s;;){if(he.tag===5){if(ue===null){ue=he;try{g=he.stateNode,Q?(v=g.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none"):(L=he.stateNode,z=he.memoizedProps.style,k=z!=null&&z.hasOwnProperty("display")?z.display:null,L.style.display=Xs("display",k))}catch(Ee){Ct(s,s.return,Ee)}}}else if(he.tag===6){if(ue===null)try{he.stateNode.nodeValue=Q?"":he.memoizedProps}catch(Ee){Ct(s,s.return,Ee)}}else if((he.tag!==22&&he.tag!==23||he.memoizedState===null||he===s)&&he.child!==null){he.child.return=he,he=he.child;continue}if(he===s)break e;for(;he.sibling===null;){if(he.return===null||he.return===s)break e;ue===he&&(ue=null),he=he.return}ue===he&&(ue=null),he.sibling.return=he.return,he=he.sibling}}break;case 19:os(o,s),Cs(s),h&4&&Fm(s);break;case 21:break;default:os(o,s),Cs(s)}}function Cs(s){var o=s.flags;if(o&2){try{e:{for(var l=s.return;l!==null;){if(Om(l)){var h=l;break e}l=l.return}throw Error(n(160))}switch(h.tag){case 5:var g=h.stateNode;h.flags&32&&(on(g,""),h.flags&=-33);var v=Pm(s);fd(s,v,g);break;case 3:case 4:var k=h.stateNode.containerInfo,L=Pm(s);dd(s,L,k);break;default:throw Error(n(161))}}catch(z){Ct(s,s.return,z)}s.flags&=-3}o&4096&&(s.flags&=-4097)}function e_(s,o,l){Se=s,Wm(s)}function Wm(s,o,l){for(var h=(s.mode&1)!==0;Se!==null;){var g=Se,v=g.child;if(g.tag===22&&h){var k=g.memoizedState!==null||zl;if(!k){var L=g.alternate,z=L!==null&&L.memoizedState!==null||sn;L=zl;var Q=sn;if(zl=k,(sn=z)&&!Q)for(Se=g;Se!==null;)k=Se,z=k.child,k.tag===22&&k.memoizedState!==null?Vm(g):z!==null?(z.return=k,Se=z):Vm(g);for(;v!==null;)Se=v,Wm(v),v=v.sibling;Se=g,zl=L,sn=Q}Bm(s)}else(g.subtreeFlags&8772)!==0&&v!==null?(v.return=g,Se=v):Bm(s)}}function Bm(s){for(;Se!==null;){var o=Se;if((o.flags&8772)!==0){var l=o.alternate;try{if((o.flags&8772)!==0)switch(o.tag){case 0:case 11:case 15:sn||Wl(5,o);break;case 1:var h=o.stateNode;if(o.flags&4&&!sn)if(l===null)h.componentDidMount();else{var g=o.elementType===o.type?l.memoizedProps:rs(o.type,l.memoizedProps);h.componentDidUpdate(g,l.memoizedState,h.__reactInternalSnapshotBeforeUpdate)}var v=o.updateQueue;v!==null&&Uh(o,v,h);break;case 3:var k=o.updateQueue;if(k!==null){if(l=null,o.child!==null)switch(o.child.tag){case 5:l=o.child.stateNode;break;case 1:l=o.child.stateNode}Uh(o,k,l)}break;case 5:var L=o.stateNode;if(l===null&&o.flags&4){l=L;var z=o.memoizedProps;switch(o.type){case"button":case"input":case"select":case"textarea":z.autoFocus&&l.focus();break;case"img":z.src&&(l.src=z.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(o.memoizedState===null){var Q=o.alternate;if(Q!==null){var ue=Q.memoizedState;if(ue!==null){var he=ue.dehydrated;he!==null&&ir(he)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}sn||o.flags&512&&ud(o)}catch(ce){Ct(o,o.return,ce)}}if(o===s){Se=null;break}if(l=o.sibling,l!==null){l.return=o.return,Se=l;break}Se=o.return}}function Um(s){for(;Se!==null;){var o=Se;if(o===s){Se=null;break}var l=o.sibling;if(l!==null){l.return=o.return,Se=l;break}Se=o.return}}function Vm(s){for(;Se!==null;){var o=Se;try{switch(o.tag){case 0:case 11:case 15:var l=o.return;try{Wl(4,o)}catch(z){Ct(o,l,z)}break;case 1:var h=o.stateNode;if(typeof h.componentDidMount=="function"){var g=o.return;try{h.componentDidMount()}catch(z){Ct(o,g,z)}}var v=o.return;try{ud(o)}catch(z){Ct(o,v,z)}break;case 5:var k=o.return;try{ud(o)}catch(z){Ct(o,k,z)}}}catch(z){Ct(o,o.return,z)}if(o===s){Se=null;break}var L=o.sibling;if(L!==null){L.return=o.return,Se=L;break}Se=o.return}}var t_=Math.ceil,Bl=C.ReactCurrentDispatcher,hd=C.ReactCurrentOwner,Kn=C.ReactCurrentBatchConfig,Xe=0,Wt=null,Mt=null,Gt=0,On=0,eo=pr(0),Pt=0,oi=null,qr=0,Ul=0,md=0,ii=null,xn=null,pd=0,to=1/0,Gs=null,Vl=!1,gd=null,br=null,Hl=!1,xr=null,Gl=0,li=0,yd=null,Kl=-1,Jl=0;function un(){return(Xe&6)!==0?rt():Kl!==-1?Kl:Kl=rt()}function kr(s){return(s.mode&1)===0?1:(Xe&2)!==0&&Gt!==0?Gt&-Gt:Dv.transition!==null?(Jl===0&&(Jl=Xn()),Jl):(s=Je,s!==0||(s=window.event,s=s===void 0?16:Mo(s.type)),s)}function is(s,o,l,h){if(50<li)throw li=0,yd=null,Error(n(185));rr(s,l,h),((Xe&2)===0||s!==Wt)&&(s===Wt&&((Xe&2)===0&&(Ul|=l),Pt===4&&jr(s,Gt)),kn(s,h),l===1&&Xe===0&&(o.mode&1)===0&&(to=rt()+500,xl&&yr()))}function kn(s,o){var l=s.callbackNode;ja(s,o);var h=nr(s,s===Wt?Gt:0);if(h===0)l!==null&&er(l),s.callbackNode=null,s.callbackPriority=0;else if(o=h&-h,s.callbackPriority!==o){if(l!=null&&er(l),o===1)s.tag===0?Pv(Gm.bind(null,s)):Th(Gm.bind(null,s)),Iv(function(){(Xe&6)===0&&yr()}),l=null;else{switch(Sa(h)){case 1:l=Tn;break;case 4:l=Eo;break;case 16:l=tr;break;case 536870912:l=xa;break;default:l=tr}l=ep(l,Hm.bind(null,s))}s.callbackPriority=o,s.callbackNode=l}}function Hm(s,o){if(Kl=-1,Jl=0,(Xe&6)!==0)throw Error(n(327));var l=s.callbackNode;if(no()&&s.callbackNode!==l)return null;var h=nr(s,s===Wt?Gt:0);if(h===0)return null;if((h&30)!==0||(h&s.expiredLanes)!==0||o)o=Ql(s,h);else{o=h;var g=Xe;Xe|=2;var v=Jm();(Wt!==s||Gt!==o)&&(Gs=null,to=rt()+500,ea(s,o));do try{r_();break}catch(L){Km(s,L)}while(!0);Lu(),Bl.current=v,Xe=g,Mt!==null?o=0:(Wt=null,Gt=0,o=Pt)}if(o!==0){if(o===2&&(g=sr(s),g!==0&&(h=g,o=wd(s,g))),o===1)throw l=oi,ea(s,0),jr(s,h),kn(s,rt()),l;if(o===6)jr(s,h);else{if(g=s.current.alternate,(h&30)===0&&!n_(g)&&(o=Ql(s,h),o===2&&(v=sr(s),v!==0&&(h=v,o=wd(s,v))),o===1))throw l=oi,ea(s,0),jr(s,h),kn(s,rt()),l;switch(s.finishedWork=g,s.finishedLanes=h,o){case 0:case 1:throw Error(n(345));case 2:ta(s,xn,Gs);break;case 3:if(jr(s,h),(h&130023424)===h&&(o=pd+500-rt(),10<o)){if(nr(s,0)!==0)break;if(g=s.suspendedLanes,(g&h)!==h){un(),s.pingedLanes|=s.suspendedLanes&g;break}s.timeoutHandle=ju(ta.bind(null,s,xn,Gs),o);break}ta(s,xn,Gs);break;case 4:if(jr(s,h),(h&4194240)===h)break;for(o=s.eventTimes,g=-1;0<h;){var k=31-yn(h);v=1<<k,k=o[k],k>g&&(g=k),h&=~v}if(h=g,h=rt()-h,h=(120>h?120:480>h?480:1080>h?1080:1920>h?1920:3e3>h?3e3:4320>h?4320:1960*t_(h/1960))-h,10<h){s.timeoutHandle=ju(ta.bind(null,s,xn,Gs),h);break}ta(s,xn,Gs);break;case 5:ta(s,xn,Gs);break;default:throw Error(n(329))}}}return kn(s,rt()),s.callbackNode===l?Hm.bind(null,s):null}function wd(s,o){var l=ii;return s.current.memoizedState.isDehydrated&&(ea(s,o).flags|=256),s=Ql(s,o),s!==2&&(o=xn,xn=l,o!==null&&vd(o)),s}function vd(s){xn===null?xn=s:xn.push.apply(xn,s)}function n_(s){for(var o=s;;){if(o.flags&16384){var l=o.updateQueue;if(l!==null&&(l=l.stores,l!==null))for(var h=0;h<l.length;h++){var g=l[h],v=g.getSnapshot;g=g.value;try{if(!ns(v(),g))return!1}catch{return!1}}}if(l=o.child,o.subtreeFlags&16384&&l!==null)l.return=o,o=l;else{if(o===s)break;for(;o.sibling===null;){if(o.return===null||o.return===s)return!0;o=o.return}o.sibling.return=o.return,o=o.sibling}}return!0}function jr(s,o){for(o&=~md,o&=~Ul,s.suspendedLanes|=o,s.pingedLanes&=~o,s=s.expirationTimes;0<o;){var l=31-yn(o),h=1<<l;s[l]=-1,o&=~h}}function Gm(s){if((Xe&6)!==0)throw Error(n(327));no();var o=nr(s,0);if((o&1)===0)return kn(s,rt()),null;var l=Ql(s,o);if(s.tag!==0&&l===2){var h=sr(s);h!==0&&(o=h,l=wd(s,h))}if(l===1)throw l=oi,ea(s,0),jr(s,o),kn(s,rt()),l;if(l===6)throw Error(n(345));return s.finishedWork=s.current.alternate,s.finishedLanes=o,ta(s,xn,Gs),kn(s,rt()),null}function _d(s,o){var l=Xe;Xe|=1;try{return s(o)}finally{Xe=l,Xe===0&&(to=rt()+500,xl&&yr())}}function Zr(s){xr!==null&&xr.tag===0&&(Xe&6)===0&&no();var o=Xe;Xe|=1;var l=Kn.transition,h=Je;try{if(Kn.transition=null,Je=1,s)return s()}finally{Je=h,Kn.transition=l,Xe=o,(Xe&6)===0&&yr()}}function bd(){On=eo.current,pt(eo)}function ea(s,o){s.finishedWork=null,s.finishedLanes=0;var l=s.timeoutHandle;if(l!==-1&&(s.timeoutHandle=-1,Rv(l)),Mt!==null)for(l=Mt.return;l!==null;){var h=l;switch($u(h),h.tag){case 1:h=h.type.childContextTypes,h!=null&&_l();break;case 3:Xa(),pt(vn),pt(en),Uu();break;case 5:Wu(h);break;case 4:Xa();break;case 13:pt(kt);break;case 19:pt(kt);break;case 10:Ou(h.type._context);break;case 22:case 23:bd()}l=l.return}if(Wt=s,Mt=s=Sr(s.current,null),Gt=On=o,Pt=0,oi=null,md=Ul=qr=0,xn=ii=null,Qr!==null){for(o=0;o<Qr.length;o++)if(l=Qr[o],h=l.interleaved,h!==null){l.interleaved=null;var g=h.next,v=l.pending;if(v!==null){var k=v.next;v.next=g,h.next=k}l.pending=h}Qr=null}return s}function Km(s,o){do{var l=Mt;try{if(Lu(),Rl.current=Ol,Il){for(var h=jt.memoizedState;h!==null;){var g=h.queue;g!==null&&(g.pending=null),h=h.next}Il=!1}if(Xr=0,zt=Ot=jt=null,ei=!1,ti=0,hd.current=null,l===null||l.return===null){Pt=1,oi=o,Mt=null;break}e:{var v=s,k=l.return,L=l,z=o;if(o=Gt,L.flags|=32768,z!==null&&typeof z=="object"&&typeof z.then=="function"){var Q=z,ue=L,he=ue.tag;if((ue.mode&1)===0&&(he===0||he===11||he===15)){var ce=ue.alternate;ce?(ue.updateQueue=ce.updateQueue,ue.memoizedState=ce.memoizedState,ue.lanes=ce.lanes):(ue.updateQueue=null,ue.memoizedState=null)}var ke=wm(k);if(ke!==null){ke.flags&=-257,vm(ke,k,L,v,o),ke.mode&1&&ym(v,Q,o),o=ke,z=Q;var Ce=o.updateQueue;if(Ce===null){var Ee=new Set;Ee.add(z),o.updateQueue=Ee}else Ce.add(z);break e}else{if((o&1)===0){ym(v,Q,o),xd();break e}z=Error(n(426))}}else if(_t&&L.mode&1){var Tt=wm(k);if(Tt!==null){(Tt.flags&65536)===0&&(Tt.flags|=256),vm(Tt,k,L,v,o),Iu(qa(z,L));break e}}v=z=qa(z,L),Pt!==4&&(Pt=2),ii===null?ii=[v]:ii.push(v),v=k;do{switch(v.tag){case 3:v.flags|=65536,o&=-o,v.lanes|=o;var G=pm(v,z,o);Bh(v,G);break e;case 1:L=z;var B=v.type,K=v.stateNode;if((v.flags&128)===0&&(typeof B.getDerivedStateFromError=="function"||K!==null&&typeof K.componentDidCatch=="function"&&(br===null||!br.has(K)))){v.flags|=65536,o&=-o,v.lanes|=o;var ge=gm(v,L,o);Bh(v,ge);break e}}v=v.return}while(v!==null)}Ym(l)}catch(Ae){o=Ae,Mt===l&&l!==null&&(Mt=l=l.return);continue}break}while(!0)}function Jm(){var s=Bl.current;return Bl.current=Ol,s===null?Ol:s}function xd(){(Pt===0||Pt===3||Pt===2)&&(Pt=4),Wt===null||(qr&268435455)===0&&(Ul&268435455)===0||jr(Wt,Gt)}function Ql(s,o){var l=Xe;Xe|=2;var h=Jm();(Wt!==s||Gt!==o)&&(Gs=null,ea(s,o));do try{s_();break}catch(g){Km(s,g)}while(!0);if(Lu(),Xe=l,Bl.current=h,Mt!==null)throw Error(n(261));return Wt=null,Gt=0,Pt}function s_(){for(;Mt!==null;)Qm(Mt)}function r_(){for(;Mt!==null&&!tu();)Qm(Mt)}function Qm(s){var o=Zm(s.alternate,s,On);s.memoizedProps=s.pendingProps,o===null?Ym(s):Mt=o,hd.current=null}function Ym(s){var o=s;do{var l=o.alternate;if(s=o.return,(o.flags&32768)===0){if(l=Yv(l,o,On),l!==null){Mt=l;return}}else{if(l=Xv(l,o),l!==null){l.flags&=32767,Mt=l;return}if(s!==null)s.flags|=32768,s.subtreeFlags=0,s.deletions=null;else{Pt=6,Mt=null;return}}if(o=o.sibling,o!==null){Mt=o;return}Mt=o=s}while(o!==null);Pt===0&&(Pt=5)}function ta(s,o,l){var h=Je,g=Kn.transition;try{Kn.transition=null,Je=1,a_(s,o,l,h)}finally{Kn.transition=g,Je=h}return null}function a_(s,o,l,h){do no();while(xr!==null);if((Xe&6)!==0)throw Error(n(327));l=s.finishedWork;var g=s.finishedLanes;if(l===null)return null;if(s.finishedWork=null,s.finishedLanes=0,l===s.current)throw Error(n(177));s.callbackNode=null,s.callbackPriority=0;var v=l.lanes|l.childLanes;if(qn(s,v),s===Wt&&(Mt=Wt=null,Gt=0),(l.subtreeFlags&2064)===0&&(l.flags&2064)===0||Hl||(Hl=!0,ep(tr,function(){return no(),null})),v=(l.flags&15990)!==0,(l.subtreeFlags&15990)!==0||v){v=Kn.transition,Kn.transition=null;var k=Je;Je=1;var L=Xe;Xe|=4,hd.current=null,Zv(s,l),zm(l,s),Sv(xu),vs=!!bu,xu=bu=null,s.current=l,e_(l),Ms(),Xe=L,Je=k,Kn.transition=v}else s.current=l;if(Hl&&(Hl=!1,xr=s,Gl=g),v=s.pendingLanes,v===0&&(br=null),Ji(l.stateNode),kn(s,rt()),o!==null)for(h=s.onRecoverableError,l=0;l<o.length;l++)g=o[l],h(g.value,{componentStack:g.stack,digest:g.digest});if(Vl)throw Vl=!1,s=gd,gd=null,s;return(Gl&1)!==0&&s.tag!==0&&no(),v=s.pendingLanes,(v&1)!==0?s===yd?li++:(li=0,yd=s):li=0,yr(),null}function no(){if(xr!==null){var s=Sa(Gl),o=Kn.transition,l=Je;try{if(Kn.transition=null,Je=16>s?16:s,xr===null)var h=!1;else{if(s=xr,xr=null,Gl=0,(Xe&6)!==0)throw Error(n(331));var g=Xe;for(Xe|=4,Se=s.current;Se!==null;){var v=Se,k=v.child;if((Se.flags&16)!==0){var L=v.deletions;if(L!==null){for(var z=0;z<L.length;z++){var Q=L[z];for(Se=Q;Se!==null;){var ue=Se;switch(ue.tag){case 0:case 11:case 15:ai(8,ue,v)}var he=ue.child;if(he!==null)he.return=ue,Se=he;else for(;Se!==null;){ue=Se;var ce=ue.sibling,ke=ue.return;if(Lm(ue),ue===Q){Se=null;break}if(ce!==null){ce.return=ke,Se=ce;break}Se=ke}}}var Ce=v.alternate;if(Ce!==null){var Ee=Ce.child;if(Ee!==null){Ce.child=null;do{var Tt=Ee.sibling;Ee.sibling=null,Ee=Tt}while(Ee!==null)}}Se=v}}if((v.subtreeFlags&2064)!==0&&k!==null)k.return=v,Se=k;else e:for(;Se!==null;){if(v=Se,(v.flags&2048)!==0)switch(v.tag){case 0:case 11:case 15:ai(9,v,v.return)}var G=v.sibling;if(G!==null){G.return=v.return,Se=G;break e}Se=v.return}}var B=s.current;for(Se=B;Se!==null;){k=Se;var K=k.child;if((k.subtreeFlags&2064)!==0&&K!==null)K.return=k,Se=K;else e:for(k=B;Se!==null;){if(L=Se,(L.flags&2048)!==0)try{switch(L.tag){case 0:case 11:case 15:Wl(9,L)}}catch(Ae){Ct(L,L.return,Ae)}if(L===k){Se=null;break e}var ge=L.sibling;if(ge!==null){ge.return=L.return,Se=ge;break e}Se=L.return}}if(Xe=g,yr(),gn&&typeof gn.onPostCommitFiberRoot=="function")try{gn.onPostCommitFiberRoot(ka,s)}catch{}h=!0}return h}finally{Je=l,Kn.transition=o}}return!1}function Xm(s,o,l){o=qa(l,o),o=pm(s,o,1),s=vr(s,o,1),o=un(),s!==null&&(rr(s,1,o),kn(s,o))}function Ct(s,o,l){if(s.tag===3)Xm(s,s,l);else for(;o!==null;){if(o.tag===3){Xm(o,s,l);break}else if(o.tag===1){var h=o.stateNode;if(typeof o.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(br===null||!br.has(h))){s=qa(l,s),s=gm(o,s,1),o=vr(o,s,1),s=un(),o!==null&&(rr(o,1,s),kn(o,s));break}}o=o.return}}function o_(s,o,l){var h=s.pingCache;h!==null&&h.delete(o),o=un(),s.pingedLanes|=s.suspendedLanes&l,Wt===s&&(Gt&l)===l&&(Pt===4||Pt===3&&(Gt&130023424)===Gt&&500>rt()-pd?ea(s,0):md|=l),kn(s,o)}function qm(s,o){o===0&&((s.mode&1)===0?o=1:(o=Ve,Ve<<=1,(Ve&130023424)===0&&(Ve=4194304)));var l=un();s=Us(s,o),s!==null&&(rr(s,o,l),kn(s,l))}function i_(s){var o=s.memoizedState,l=0;o!==null&&(l=o.retryLane),qm(s,l)}function l_(s,o){var l=0;switch(s.tag){case 13:var h=s.stateNode,g=s.memoizedState;g!==null&&(l=g.retryLane);break;case 19:h=s.stateNode;break;default:throw Error(n(314))}h!==null&&h.delete(o),qm(s,l)}var Zm;Zm=function(s,o,l){if(s!==null)if(s.memoizedProps!==o.pendingProps||vn.current)bn=!0;else{if((s.lanes&l)===0&&(o.flags&128)===0)return bn=!1,Qv(s,o,l);bn=(s.flags&131072)!==0}else bn=!1,_t&&(o.flags&1048576)!==0&&Rh(o,jl,o.index);switch(o.lanes=0,o.tag){case 2:var h=o.type;Fl(s,o),s=o.pendingProps;var g=Va(o,en.current);Ya(o,l),g=Gu(null,o,h,s,g,l);var v=Ku();return o.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(o.tag=1,o.memoizedState=null,o.updateQueue=null,_n(h)?(v=!0,bl(o)):v=!1,o.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Fu(o),g.updater=Pl,o.stateNode=g,g._reactInternals=o,Zu(o,h,s,l),o=sd(null,o,h,!0,v,l)):(o.tag=0,_t&&v&&Au(o),cn(null,o,g,l),o=o.child),o;case 16:h=o.elementType;e:{switch(Fl(s,o),s=o.pendingProps,g=h._init,h=g(h._payload),o.type=h,g=o.tag=u_(h),s=rs(h,s),g){case 0:o=nd(null,o,h,s,l);break e;case 1:o=Sm(null,o,h,s,l);break e;case 11:o=_m(null,o,h,s,l);break e;case 14:o=bm(null,o,h,rs(h.type,s),l);break e}throw Error(n(306,h,""))}return o;case 0:return h=o.type,g=o.pendingProps,g=o.elementType===h?g:rs(h,g),nd(s,o,h,g,l);case 1:return h=o.type,g=o.pendingProps,g=o.elementType===h?g:rs(h,g),Sm(s,o,h,g,l);case 3:e:{if(Nm(o),s===null)throw Error(n(387));h=o.pendingProps,v=o.memoizedState,g=v.element,Wh(s,o),$l(o,h,null,l);var k=o.memoizedState;if(h=k.element,v.isDehydrated)if(v={element:h,isDehydrated:!1,cache:k.cache,pendingSuspenseBoundaries:k.pendingSuspenseBoundaries,transitions:k.transitions},o.updateQueue.baseState=v,o.memoizedState=v,o.flags&256){g=qa(Error(n(423)),o),o=Cm(s,o,h,l,g);break e}else if(h!==g){g=qa(Error(n(424)),o),o=Cm(s,o,h,l,g);break e}else for(Ln=mr(o.stateNode.containerInfo.firstChild),Mn=o,_t=!0,ss=null,l=Fh(o,null,h,l),o.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling;else{if(Ka(),h===g){o=Hs(s,o,l);break e}cn(s,o,h,l)}o=o.child}return o;case 5:return Vh(o),s===null&&Ru(o),h=o.type,g=o.pendingProps,v=s!==null?s.memoizedProps:null,k=g.children,ku(h,g)?k=null:v!==null&&ku(h,v)&&(o.flags|=32),jm(s,o),cn(s,o,k,l),o.child;case 6:return s===null&&Ru(o),null;case 13:return Em(s,o,l);case 4:return zu(o,o.stateNode.containerInfo),h=o.pendingProps,s===null?o.child=Ja(o,null,h,l):cn(s,o,h,l),o.child;case 11:return h=o.type,g=o.pendingProps,g=o.elementType===h?g:rs(h,g),_m(s,o,h,g,l);case 7:return cn(s,o,o.pendingProps,l),o.child;case 8:return cn(s,o,o.pendingProps.children,l),o.child;case 12:return cn(s,o,o.pendingProps.children,l),o.child;case 10:e:{if(h=o.type._context,g=o.pendingProps,v=o.memoizedProps,k=g.value,ft(Cl,h._currentValue),h._currentValue=k,v!==null)if(ns(v.value,k)){if(v.children===g.children&&!vn.current){o=Hs(s,o,l);break e}}else for(v=o.child,v!==null&&(v.return=o);v!==null;){var L=v.dependencies;if(L!==null){k=v.child;for(var z=L.firstContext;z!==null;){if(z.context===h){if(v.tag===1){z=Vs(-1,l&-l),z.tag=2;var Q=v.updateQueue;if(Q!==null){Q=Q.shared;var ue=Q.pending;ue===null?z.next=z:(z.next=ue.next,ue.next=z),Q.pending=z}}v.lanes|=l,z=v.alternate,z!==null&&(z.lanes|=l),Pu(v.return,l,o),L.lanes|=l;break}z=z.next}}else if(v.tag===10)k=v.type===o.type?null:v.child;else if(v.tag===18){if(k=v.return,k===null)throw Error(n(341));k.lanes|=l,L=k.alternate,L!==null&&(L.lanes|=l),Pu(k,l,o),k=v.sibling}else k=v.child;if(k!==null)k.return=v;else for(k=v;k!==null;){if(k===o){k=null;break}if(v=k.sibling,v!==null){v.return=k.return,k=v;break}k=k.return}v=k}cn(s,o,g.children,l),o=o.child}return o;case 9:return g=o.type,h=o.pendingProps.children,Ya(o,l),g=Hn(g),h=h(g),o.flags|=1,cn(s,o,h,l),o.child;case 14:return h=o.type,g=rs(h,o.pendingProps),g=rs(h.type,g),bm(s,o,h,g,l);case 15:return xm(s,o,o.type,o.pendingProps,l);case 17:return h=o.type,g=o.pendingProps,g=o.elementType===h?g:rs(h,g),Fl(s,o),o.tag=1,_n(h)?(s=!0,bl(o)):s=!1,Ya(o,l),hm(o,h,g),Zu(o,h,g,l),sd(null,o,h,!0,s,l);case 19:return $m(s,o,l);case 22:return km(s,o,l)}throw Error(n(156,o.tag))};function ep(s,o){return No(s,o)}function c_(s,o,l,h){this.tag=s,this.key=l,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=o,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=h,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Jn(s,o,l,h){return new c_(s,o,l,h)}function kd(s){return s=s.prototype,!(!s||!s.isReactComponent)}function u_(s){if(typeof s=="function")return kd(s)?1:0;if(s!=null){if(s=s.$$typeof,s===te)return 11;if(s===W)return 14}return 2}function Sr(s,o){var l=s.alternate;return l===null?(l=Jn(s.tag,o,s.key,s.mode),l.elementType=s.elementType,l.type=s.type,l.stateNode=s.stateNode,l.alternate=s,s.alternate=l):(l.pendingProps=o,l.type=s.type,l.flags=0,l.subtreeFlags=0,l.deletions=null),l.flags=s.flags&14680064,l.childLanes=s.childLanes,l.lanes=s.lanes,l.child=s.child,l.memoizedProps=s.memoizedProps,l.memoizedState=s.memoizedState,l.updateQueue=s.updateQueue,o=s.dependencies,l.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext},l.sibling=s.sibling,l.index=s.index,l.ref=s.ref,l}function Yl(s,o,l,h,g,v){var k=2;if(h=s,typeof s=="function")kd(s)&&(k=1);else if(typeof s=="string")k=5;else e:switch(s){case D:return na(l.children,g,v,o);case M:k=8,g|=8;break;case J:return s=Jn(12,l,o,g|2),s.elementType=J,s.lanes=v,s;case P:return s=Jn(13,l,o,g),s.elementType=P,s.lanes=v,s;case Z:return s=Jn(19,l,o,g),s.elementType=Z,s.lanes=v,s;case ae:return Xl(l,g,v,o);default:if(typeof s=="object"&&s!==null)switch(s.$$typeof){case V:k=10;break e;case O:k=9;break e;case te:k=11;break e;case W:k=14;break e;case ne:k=16,h=null;break e}throw Error(n(130,s==null?s:typeof s,""))}return o=Jn(k,l,o,g),o.elementType=s,o.type=h,o.lanes=v,o}function na(s,o,l,h){return s=Jn(7,s,h,o),s.lanes=l,s}function Xl(s,o,l,h){return s=Jn(22,s,h,o),s.elementType=ae,s.lanes=l,s.stateNode={isHidden:!1},s}function jd(s,o,l){return s=Jn(6,s,null,o),s.lanes=l,s}function Sd(s,o,l){return o=Jn(4,s.children!==null?s.children:[],s.key,o),o.lanes=l,o.stateNode={containerInfo:s.containerInfo,pendingChildren:null,implementation:s.implementation},o}function d_(s,o,l,h,g){this.tag=o,this.containerInfo=s,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Wr(0),this.expirationTimes=Wr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Wr(0),this.identifierPrefix=h,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Nd(s,o,l,h,g,v,k,L,z){return s=new d_(s,o,l,L,z),o===1?(o=1,v===!0&&(o|=8)):o=0,v=Jn(3,null,null,o),s.current=v,v.stateNode=s,v.memoizedState={element:h,isDehydrated:l,cache:null,transitions:null,pendingSuspenseBoundaries:null},Fu(v),s}function f_(s,o,l){var h=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:R,key:h==null?null:""+h,children:s,containerInfo:o,implementation:l}}function tp(s){if(!s)return gr;s=s._reactInternals;e:{if(pn(s)!==s||s.tag!==1)throw Error(n(170));var o=s;do{switch(o.tag){case 3:o=o.stateNode.context;break e;case 1:if(_n(o.type)){o=o.stateNode.__reactInternalMemoizedMergedChildContext;break e}}o=o.return}while(o!==null);throw Error(n(171))}if(s.tag===1){var l=s.type;if(_n(l))return Ah(s,l,o)}return o}function np(s,o,l,h,g,v,k,L,z){return s=Nd(l,h,!0,s,g,v,k,L,z),s.context=tp(null),l=s.current,h=un(),g=kr(l),v=Vs(h,g),v.callback=o??null,vr(l,v,g),s.current.lanes=g,rr(s,g,h),kn(s,h),s}function ql(s,o,l,h){var g=o.current,v=un(),k=kr(g);return l=tp(l),o.context===null?o.context=l:o.pendingContext=l,o=Vs(v,k),o.payload={element:s},h=h===void 0?null:h,h!==null&&(o.callback=h),s=vr(g,o,k),s!==null&&(is(s,g,k,v),Al(s,g,k)),k}function Zl(s){if(s=s.current,!s.child)return null;switch(s.child.tag){case 5:return s.child.stateNode;default:return s.child.stateNode}}function sp(s,o){if(s=s.memoizedState,s!==null&&s.dehydrated!==null){var l=s.retryLane;s.retryLane=l!==0&&l<o?l:o}}function Cd(s,o){sp(s,o),(s=s.alternate)&&sp(s,o)}function h_(){return null}var rp=typeof reportError=="function"?reportError:function(s){console.error(s)};function Ed(s){this._internalRoot=s}ec.prototype.render=Ed.prototype.render=function(s){var o=this._internalRoot;if(o===null)throw Error(n(409));ql(s,o,null,null)},ec.prototype.unmount=Ed.prototype.unmount=function(){var s=this._internalRoot;if(s!==null){this._internalRoot=null;var o=s.containerInfo;Zr(function(){ql(null,s,null,null)}),o[Fs]=null}};function ec(s){this._internalRoot=s}ec.prototype.unstable_scheduleHydration=function(s){if(s){var o=Wn();s={blockedOn:null,target:s,priority:o};for(var l=0;l<Bn.length&&o!==0&&o<Bn[l].priority;l++);Bn.splice(l,0,s),l===0&&Na(s)}};function Ad(s){return!(!s||s.nodeType!==1&&s.nodeType!==9&&s.nodeType!==11)}function tc(s){return!(!s||s.nodeType!==1&&s.nodeType!==9&&s.nodeType!==11&&(s.nodeType!==8||s.nodeValue!==" react-mount-point-unstable "))}function ap(){}function m_(s,o,l,h,g){if(g){if(typeof h=="function"){var v=h;h=function(){var Q=Zl(k);v.call(Q)}}var k=np(o,h,s,0,null,!1,!1,"",ap);return s._reactRootContainer=k,s[Fs]=k.current,Go(s.nodeType===8?s.parentNode:s),Zr(),k}for(;g=s.lastChild;)s.removeChild(g);if(typeof h=="function"){var L=h;h=function(){var Q=Zl(z);L.call(Q)}}var z=Nd(s,0,!1,null,null,!1,!1,"",ap);return s._reactRootContainer=z,s[Fs]=z.current,Go(s.nodeType===8?s.parentNode:s),Zr(function(){ql(o,z,l,h)}),z}function nc(s,o,l,h,g){var v=l._reactRootContainer;if(v){var k=v;if(typeof g=="function"){var L=g;g=function(){var z=Zl(k);L.call(z)}}ql(o,k,s,g)}else k=m_(l,o,s,g,h);return Zl(k)}Ao=function(s){switch(s.tag){case 3:var o=s.stateNode;if(o.current.memoizedState.isDehydrated){var l=Vt(o.pendingLanes);l!==0&&(Zn(o,l|1),kn(o,rt()),(Xe&6)===0&&(to=rt()+500,yr()))}break;case 13:Zr(function(){var h=Us(s,1);if(h!==null){var g=un();is(h,s,1,g)}}),Cd(s,1)}},wn=function(s){if(s.tag===13){var o=Us(s,134217728);if(o!==null){var l=un();is(o,s,134217728,l)}Cd(s,134217728)}},$o=function(s){if(s.tag===13){var o=kr(s),l=Us(s,o);if(l!==null){var h=un();is(l,s,o,h)}Cd(s,o)}},Wn=function(){return Je},To=function(s,o){var l=Je;try{return Je=s,o()}finally{Je=l}},ds=function(s,o,l){switch(o){case"input":if(ie(s,l),o=l.name,l.type==="radio"&&o!=null){for(l=s;l.parentNode;)l=l.parentNode;for(l=l.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),o=0;o<l.length;o++){var h=l[o];if(h!==s&&h.form===s.form){var g=vl(h);if(!g)throw Error(n(90));qe(h),ie(h,g)}}}break;case"textarea":Oe(s,l);break;case"select":o=l.value,o!=null&&pe(s,!!l.multiple,o,!1)}},ya=_d,Gi=Zr;var p_={usingClientEntryPoint:!1,Events:[Qo,Ba,vl,ga,Rs,_d]},ci={findFiberByHostInstance:Hr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},g_={bundleType:ci.bundleType,version:ci.version,rendererPackageName:ci.rendererPackageName,rendererConfig:ci.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:C.ReactCurrentDispatcher,findHostInstanceByFiber:function(s){return s=ba(s),s===null?null:s.stateNode},findFiberByHostInstance:ci.findFiberByHostInstance||h_,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var sc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!sc.isDisabled&&sc.supportsFiber)try{ka=sc.inject(g_),gn=sc}catch{}}return jn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=p_,jn.createPortal=function(s,o){var l=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Ad(o))throw Error(n(200));return f_(s,o,null,l)},jn.createRoot=function(s,o){if(!Ad(s))throw Error(n(299));var l=!1,h="",g=rp;return o!=null&&(o.unstable_strictMode===!0&&(l=!0),o.identifierPrefix!==void 0&&(h=o.identifierPrefix),o.onRecoverableError!==void 0&&(g=o.onRecoverableError)),o=Nd(s,1,!1,null,null,l,!1,h,g),s[Fs]=o.current,Go(s.nodeType===8?s.parentNode:s),new Ed(o)},jn.findDOMNode=function(s){if(s==null)return null;if(s.nodeType===1)return s;var o=s._reactInternals;if(o===void 0)throw typeof s.render=="function"?Error(n(188)):(s=Object.keys(s).join(","),Error(n(268,s)));return s=ba(o),s=s===null?null:s.stateNode,s},jn.flushSync=function(s){return Zr(s)},jn.hydrate=function(s,o,l){if(!tc(o))throw Error(n(200));return nc(null,s,o,!0,l)},jn.hydrateRoot=function(s,o,l){if(!Ad(s))throw Error(n(405));var h=l!=null&&l.hydratedSources||null,g=!1,v="",k=rp;if(l!=null&&(l.unstable_strictMode===!0&&(g=!0),l.identifierPrefix!==void 0&&(v=l.identifierPrefix),l.onRecoverableError!==void 0&&(k=l.onRecoverableError)),o=np(o,null,s,1,l??null,g,!1,v,k),s[Fs]=o.current,Go(s),h)for(s=0;s<h.length;s++)l=h[s],g=l._getVersion,g=g(l._source),o.mutableSourceEagerHydrationData==null?o.mutableSourceEagerHydrationData=[l,g]:o.mutableSourceEagerHydrationData.push(l,g);return new ec(o)},jn.render=function(s,o,l){if(!tc(o))throw Error(n(200));return nc(null,s,o,!1,l)},jn.unmountComponentAtNode=function(s){if(!tc(s))throw Error(n(40));return s._reactRootContainer?(Zr(function(){nc(null,null,s,!1,function(){s._reactRootContainer=null,s[Fs]=null})}),!0):!1},jn.unstable_batchedUpdates=_d,jn.unstable_renderSubtreeIntoContainer=function(s,o,l,h){if(!tc(l))throw Error(n(200));if(s==null||s._reactInternals===void 0)throw Error(n(38));return nc(s,o,l,!1,h)},jn.version="18.3.1-next-f1338f8080-20240426",jn}var hp;function Vg(){if(hp)return Rd.exports;hp=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Rd.exports=S_(),Rd.exports}var mp;function N_(){if(mp)return rc;mp=1;var e=Vg();return rc.createRoot=e.createRoot,rc.hydrateRoot=e.hydrateRoot,rc}var C_=N_();const E_=Ug(C_),Hg=[{id:"dark",label:"Dark (Abstract)",group:"dark",swatches:["#1a1a2e","#16213e","#0f3460","#e94560","#60a5fa","#27ae60"]},{id:"observer-night",label:"Observer Night",group:"dark",swatches:["#0b0f14","#10161e","#161e28","#e8a54a","#6ea8d8","#7bc98c"]},{id:"catppuccin-mocha",label:"Catppuccin Mocha",group:"dark",swatches:["#1e1e2e","#181825","#313244","#cba6f7","#89b4fa","#a6e3a1"]},{id:"catppuccin-macchiato",label:"Catppuccin Macchiato",group:"dark",swatches:["#24273a","#1e2030","#363a4f","#c6a0f6","#8aadf4","#a6da95"]},{id:"catppuccin-frappe",label:"Catppuccin Frappe",group:"dark",swatches:["#303446","#292c3c","#414559","#ca9ee6","#8caaee","#a6d189"]},{id:"rose-pine",label:"Rose Pine",group:"dark",swatches:["#191724","#1f1d2e","#26233a","#c4a7e7","#31748f","#9ccfd8"]},{id:"rose-pine-moon",label:"Rose Pine Moon",group:"dark",swatches:["#232136","#2a273f","#393552","#c4a7e7","#3e8fb0","#9ccfd8"]},{id:"tokyo-night",label:"Tokyo Night",group:"dark",swatches:["#1a1b26","#24283b","#414868","#7aa2f7","#2ac3de","#9ece6a"]},{id:"nord",label:"Nord",group:"dark",swatches:["#2e3440","#3b4252","#434c5e","#88c0d0","#5e81ac","#a3be8c"]},{id:"one-dark",label:"One Dark",group:"dark",swatches:["#282c34","#21252b","#3a3f4b","#61afef","#c678dd","#98c379"]},{id:"dracula",label:"Dracula",group:"dark",swatches:["#282a36","#343746","#44475a","#ff79c6","#8be9fd","#50fa7b"]},{id:"monokai",label:"Monokai",group:"dark",swatches:["#272822","#2d2e27","#3e3d32","#66d9ef","#a1efe4","#a6e22e"]},{id:"gruvbox",label:"Gruvbox",group:"dark",swatches:["#282828","#3c3836","#504945","#fe8019","#83a598","#b8bb26"]},{id:"solarized-dark",label:"Solarized Dark",group:"dark",swatches:["#002b36","#073642","#0b4b5a","#268bd2","#2aa198","#859900"]},{id:"everforest-dark",label:"Everforest Dark",group:"dark",swatches:["#2b3339","#323c41","#3a464c","#a7c080","#7fbbb3","#a7c080"]},{id:"catppuccin-latte",label:"Catppuccin Latte",group:"light",swatches:["#eff1f5","#e6e9ef","#ccd0da","#8839ef","#1e66f5","#40a02b"]},{id:"rose-pine-dawn",label:"Rose Pine Dawn",group:"light",swatches:["#faf4ed","#fffaf3","#f2e9e1","#907aa9","#56949f","#286983"]},{id:"one-light",label:"One Light",group:"light",swatches:["#fafafa","#ffffff","#e5e5e6","#4078f2","#a626a4","#50a14f"]},{id:"everforest-light",label:"Everforest Light",group:"light",swatches:["#fdf6e3","#fffbef","#e8e0cc","#4f8f5a","#3a94c5","#4f8f5a"]},{id:"solarized-light",label:"Solarized Light",group:"light",swatches:["#fdf6e3","#eee8d5","#e3ddc9","#268bd2","#2aa198","#859900"]},{id:"light",label:"Light",group:"light",swatches:["#f7f7fb","#ffffff","#e6e8f0","#e94560","#2563eb","#16a34a"]}];Hg.map(e=>({id:e.id,label:e.label}));function A_(e){return`theme-${String(e||"").trim()||"dark"}`}function pp(e){try{const t=document.documentElement,n=Array.from(t.classList).filter(a=>a.startsWith("theme-"));for(const a of n)t.classList.remove(a);t.classList.add(A_(e))}catch{}}const lf=[{id:"sm",label:"Small",scale:.9},{id:"md",label:"Medium",scale:1},{id:"lg",label:"Large",scale:1.1},{id:"xl",label:"Extra Large",scale:1.2}],cf=[{id:"compact",label:"Compact",density:.85},{id:"standard",label:"Standard",density:1},{id:"spacious",label:"Spacious",density:1.2}];function $_(e){const t=String(e).trim();return lf.find(n=>n.id===t)||lf[1]}function T_(e){const t=String(e).trim();return cf.find(n=>n.id===t)||cf[1]}function gp(e){try{const t=document.documentElement,n=$_(e.font_scale||"md"),a=T_(e.header_density||"standard");t.style.setProperty("--font-scale",String(n.scale)),t.style.setProperty("--header-density",String(a.density))}catch{}}const Li={md:"(max-width: 1023.98px)",lg:"(max-width: 1439.98px)"};function R_(e){try{return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(e).matches}catch{return!1}}function kc(e){const[t,n]=y.useState(()=>R_(e));return y.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const a=window.matchMedia(e),i=()=>n(a.matches);return i(),typeof a.addEventListener=="function"?a.addEventListener("change",i):a.addListener(i),()=>{typeof a.removeEventListener=="function"?a.removeEventListener("change",i):a.removeListener(i)}},[e]),t}let di=null;function I_(e,t){const n=Math.max(0,Math.round(e));if(!(t.scale<=1.01))return{vvHeight:n,keyboardInset:0};const a=Math.max(0,Math.min(n,Math.round(t.height))),i=Math.max(0,Math.round(e-t.height-Math.max(0,t.offsetTop)));return{vvHeight:a,keyboardInset:i}}function M_(){if(di)return di;if(typeof window>"u"||typeof document>"u")return()=>{};const e=window.visualViewport;if(!e)return()=>{};const t=document.documentElement;let n=0;const a=()=>{n=0;const{vvHeight:c,keyboardInset:u}=I_(window.innerHeight,{height:e.height,offsetTop:e.offsetTop,scale:e.scale||1});t.style.setProperty("--vv-height",`${c}px`),t.style.setProperty("--keyboard-inset",`${u}px`)},i=()=>{n||(n=window.requestAnimationFrame(a))};return a(),e.addEventListener("resize",i),e.addEventListener("scroll",i),window.addEventListener("orientationchange",i),di=()=>{e.removeEventListener("resize",i),e.removeEventListener("scroll",i),window.removeEventListener("orientationchange",i),n&&window.cancelAnimationFrame(n),t.style.removeProperty("--vv-height"),t.style.removeProperty("--keyboard-inset"),di=null},di}var zc=Vg();function so(...e){return e.filter(Boolean).join(" ")}function Pn({value:e,options:t,placeholder:n="Select…",disabled:a=!1,loading:i=!1,searchable:c=!0,searchPlaceholder:u="Search…",allowCustom:d=!1,clearable:f=!1,minPopoverWidth:m=240,variant:p="panel",className:w,triggerClassName:_,ariaLabel:b,id:A,includeValueOption:x=!1,onOpen:j,customOptionLabel:S,validateCustomValue:E,onChange:N,renderOption:C,renderValue:$}){const R=y.useRef(null),D=y.useRef(null),M=y.useRef(null),J=y.useRef(j),V=y.useId(),O=A||`af-select-${V.replace(/[^a-zA-Z0-9_-]/g,"")}`,te=`${O}-listbox`,[P,Z]=y.useState(!1),[W,ne]=y.useState(""),[ae,H]=y.useState(0),[de,re]=y.useState("bottom"),[F,I]=y.useState({left:0,top:0,width:0});y.useEffect(()=>{J.current=j},[j]);const U=y.useMemo(()=>{if(!x)return t;const X=String(e??"").trim();return!X||t.some(pe=>pe.value===X)?t:[...t,{value:X,label:X}]},[x,t,e]),fe=y.useMemo(()=>{const X=String(e??"");return U.find(pe=>pe.value===X)||null},[U,e]),q=y.useMemo(()=>(fe==null?void 0:fe.label)||String(e||"").trim()||"",[fe,e]),le=y.useMemo(()=>{const X=W.trim().toLowerCase();return X?U.filter(pe=>pe.label.toLowerCase().includes(X)||pe.value.toLowerCase().includes(X)):U},[U,W]),me=y.useMemo(()=>{if(!d)return null;const X=W.trim();if(!X||U.some(ye=>ye.value===X))return null;const _e=(E==null?void 0:E(X,{options:U}))||"";return{value:X,label:S?S(X):`Use "${X}"`,disabled:!!_e,reason:_e}},[d,S,U,W,E]),oe=y.useMemo(()=>{const X=me?[me,...le]:le;if(X.length>0)return X;const pe=String(e??"").trim();return i&&pe?[{value:pe,label:q||pe}]:X},[me,le,i,q,e]),ve=y.useCallback(()=>{const X=R.current;if(!X)return;const pe=X.getBoundingClientRect(),_e=Math.max(pe.width,m),ye=Math.max(8,Math.min(pe.left,window.innerWidth-_e-8)),Oe=window.innerHeight-pe.bottom,Be=pe.top,Ke=Oe>=220||Oe>=Be?"bottom":"top";re(Ke);const xe=Ke==="bottom"?pe.bottom+6:pe.top-6;I({left:ye,top:xe,width:_e})},[m]),We=y.useCallback(()=>{Z(!1),ne("")},[]);y.useEffect(()=>{var X;P&&((X=J.current)==null||X.call(J))},[P]),y.useEffect(()=>{if(!P)return;ve();const X=()=>ve();return window.addEventListener("resize",X),window.addEventListener("scroll",X,!0),()=>{window.removeEventListener("resize",X),window.removeEventListener("scroll",X,!0)}},[P,ve]),y.useEffect(()=>{if(!P)return;const X=pe=>{var ye,Oe;const _e=pe.target;_e&&((ye=R.current)!=null&&ye.contains(_e)||(Oe=D.current)!=null&&Oe.contains(_e)||We())};return document.addEventListener("mousedown",X,!0),()=>document.removeEventListener("mousedown",X,!0)},[P,We]),y.useEffect(()=>{if(!P)return;const X=Math.max(0,oe.findIndex(pe=>pe.value===e));H(X===-1?0:X),c&&setTimeout(()=>{var pe;return(pe=M.current)==null?void 0:pe.focus()},0)},[P,c,e,oe]);const nt=X=>{var _e;const pe=oe.find(ye=>ye.value===X);pe!=null&&pe.disabled||(N(X),We(),(_e=R.current)==null||_e.focus())},qe=X=>{var pe,_e;if(X.key==="Escape")return X.preventDefault(),We(),(pe=R.current)==null||pe.focus(),!0;if(X.key==="Tab")return We(),(_e=R.current)==null||_e.focus(),!1;if(X.key==="ArrowDown")return X.preventDefault(),H(ye=>Math.min(ye+1,Math.max(0,oe.length-1))),!0;if(X.key==="ArrowUp")return X.preventDefault(),H(ye=>Math.max(ye-1,0)),!0;if(X.key==="Home")return X.preventDefault(),H(0),!0;if(X.key==="End")return X.preventDefault(),H(Math.max(0,oe.length-1)),!0;if(X.key==="Enter"){X.preventDefault();const ye=oe[ae];return ye&&nt(ye.value),!0}return!1},$e=X=>{if(!a){if(P){if(qe(X))return;if(X.key===" "&&!c){X.preventDefault();const pe=oe[ae];pe&&nt(pe.value)}return}(X.key==="Enter"||X.key===" "||X.key==="ArrowDown"||X.key==="ArrowUp")&&(X.preventDefault(),Z(!0))}},Ue=!!String(e||"").trim(),lt=Ue?q:n,Pe=me!=null&&me.disabled?me.reason||"Unavailable":"",ie=P&&oe.length>0?`${O}-opt-${ae}`:void 0,ee=r.jsx("span",{className:so("af-select-value",!Ue&&"af-select-value--placeholder"),children:i&&!Ue?"Loading…":lt}),Ne=$?$(fe,String(e||"")):ee;return r.jsxs("span",{className:so("af-select",p==="pin"?"af-select--pin":"af-select--panel",w),children:[r.jsxs("button",{ref:R,id:O,type:"button",className:so("af-select-trigger",f&&Ue&&"af-select-trigger--clearable",_),disabled:a,onMouseDown:X=>X.stopPropagation(),onClick:X=>{X.stopPropagation(),!a&&Z(pe=>!pe)},onKeyDown:$e,role:c?void 0:"combobox","aria-haspopup":"listbox","aria-expanded":P,"aria-controls":P?te:void 0,"aria-activedescendant":c?void 0:ie,"aria-label":b,children:[Ne,r.jsx("span",{className:so("af-select-caret",P&&"af-select-caret--open"),children:"▾"})]}),f&&Ue?r.jsx("button",{type:"button",className:"af-select-clear-btn","aria-label":"Clear selection",disabled:a,onMouseDown:X=>{X.preventDefault(),X.stopPropagation()},onClick:X=>{var pe;X.preventDefault(),X.stopPropagation(),N(""),We(),(pe=R.current)==null||pe.focus()},title:"Clear",children:"×"}):null,P?zc.createPortal(r.jsxs("div",{ref:D,className:so("af-select-popover",de==="top"&&"af-select-popover--top"),style:{position:"fixed",left:`${F.left}px`,top:`${F.top}px`,width:`${F.width}px`},onMouseDown:X=>X.stopPropagation(),onClick:X=>X.stopPropagation(),onWheel:X=>X.stopPropagation(),onKeyDown:qe,tabIndex:-1,children:[c?r.jsxs("div",{className:"af-select-search",children:[r.jsx("input",{ref:M,className:"af-select-search-input",value:W,onChange:X=>ne(X.target.value),placeholder:u,onKeyDown:qe,role:"combobox","aria-expanded":!0,"aria-controls":te,"aria-activedescendant":ie,"aria-invalid":!!Pe,"aria-describedby":Pe?`${O}-custom-error`:void 0}),Pe?r.jsx("div",{id:`${O}-custom-error`,className:"af-select-custom-error",role:"alert",children:Pe}):null]}):null,r.jsx("div",{className:"af-select-options",role:"listbox",id:te,"aria-label":b,children:i&&oe.length===0?r.jsx("div",{className:"af-select-empty",children:"Loading…"}):oe.length===0?r.jsx("div",{className:"af-select-empty",children:"No results"}):oe.map((X,pe)=>{var xe;const _e=X.value===e,ye=pe===ae,Oe=String(X.group||"").trim(),Be=pe>0?String(((xe=oe[pe-1])==null?void 0:xe.group)||"").trim():"",Ke=!!Oe&&Oe!==Be;return r.jsxs(ut.Fragment,{children:[Ke?r.jsx("div",{className:"af-select-group",role:"presentation",children:Oe}):null,r.jsx("div",{id:`${O}-opt-${pe}`,role:"option","aria-selected":_e,className:so("af-select-option",_e&&"af-select-option--selected",ye&&"af-select-option--highlighted",X.disabled&&"af-select-option--disabled"),title:X.disabled?X.reason||"Unavailable":void 0,onMouseEnter:()=>H(pe),onMouseDown:Ye=>{Ye.preventDefault(),Ye.stopPropagation()},onClick:()=>nt(X.value),"aria-disabled":X.disabled?!0:void 0,children:C?C(X,{selected:_e,highlighted:ye}):r.jsxs(r.Fragment,{children:[r.jsxs("span",{className:"af-select-option-label",children:[r.jsx("span",{children:X.label}),X.reason?r.jsx("small",{className:"af-select-option-reason",children:X.reason}):null]}),_e?r.jsx("span",{className:"af-select-check",children:"✓"}):null]})})]},X.value)})})]}),document.body):null]})}function L_(e){const t=new Set,n=[];for(const a of e||[]){if(!a||typeof a!="object")continue;const i=String(a.name||"").trim();!i||t.has(i)||(t.add(i),n.push({name:i,display_name:typeof a.display_name=="string"?a.display_name:void 0}))}return n.sort((a,i)=>a.name.localeCompare(i.name)),n}function O_(e){const t=new Set,n=[];for(const a of e||[]){const i=String(a||"").trim();!i||t.has(i)||(t.add(i),n.push(i))}return n.sort(),n}function P_(e){const t=e.disabled===!0,n=e.layout||"stack",a=e.allowGatewayDefault!==!1,i=String(e.gatewayDefaultLabel||"(gateway default)"),c=String(e.providerLabel||"Provider"),u=String(e.modelLabel||"Model"),d=String(e.providerPlaceholder||"(select)"),f=String(e.modelPlaceholder||"(select)"),m=String(e.provider||"").trim(),p=String(e.model||"").trim(),w=L_(e.providers),_=O_(e.models),b=t||!!e.loadingProviders,A=t||!!e.loadingModels,x=[...a?[{value:"",label:i}]:[],...w.map(S=>({value:S.name,label:S.display_name?`${S.display_name} (${S.name})`:S.name}))],j=[...a?[{value:"",label:i}]:[],..._.map(S=>({value:S,label:S}))];return r.jsxs("div",{className:e.className,style:n==="row"?{display:"flex",gap:"10px",flexWrap:"wrap",alignItems:"flex-start"}:{display:"flex",flexDirection:"column",gap:"10px"},children:[r.jsxs("div",{style:n==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[r.jsx("label",{children:c}),r.jsx(Pn,{value:m,options:x,placeholder:a?i:d,disabled:b,loading:!!e.loadingProviders,searchable:!0,allowCustom:e.allowCustomProvider===!0,clearable:a,variant:"panel",triggerClassName:e.selectClassName,ariaLabel:c,onChange:S=>e.onChange({provider:String(S||"").trim(),model:""})}),e.loadingProviders?r.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading providers…"}):null,e.providerError?r.jsx("div",{className:"mono",style:{color:"var(--error)",fontSize:"12px",marginTop:"6px"},children:e.providerError}):null]}),r.jsxs("div",{style:n==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[r.jsx("label",{children:u}),r.jsx(Pn,{value:p,options:j,placeholder:a?i:f,disabled:A,loading:!!e.loadingModels,searchable:!0,allowCustom:e.allowCustomModel===!0,clearable:a,variant:"panel",triggerClassName:e.selectClassName,ariaLabel:u,onChange:S=>e.onChange({provider:m,model:String(S||"").trim()})}),e.loadingModels?r.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading models…"}):null,e.modelError?r.jsx("div",{className:"mono",style:{color:"var(--error)",fontSize:"12px",marginTop:"6px"},children:e.modelError}):null]})]})}function Gg(e){if(e===!1||e&&typeof e=="object"&&e.mode==="off")return!1;if(!e||typeof e!="object")return;const t=e;if(!(t.mode!=="native_mtp"||!Number.isInteger(t.num_draft_tokens)||Number(t.num_draft_tokens)<1))return{mode:"native_mtp",num_draft_tokens:Number(t.num_draft_tokens),require_acceleration:!0}}function D_(e){var n;const t=(n=e==null?void 0:e.execution)==null?void 0:n.speculation;return!t||typeof t.supported!="boolean"?null:{supported:t.supported,ready:typeof t.ready=="boolean"?t.ready:null,reason:typeof t.reason=="string"?t.reason:null,supported_depths:t.supported&&Array.isArray(t.supported_depths)?[...new Set(t.supported_depths.filter(a=>typeof a=="number"&&Number.isInteger(a)&&a>0))]:[],default:Object.prototype.hasOwnProperty.call(t,"effective_default")?t.effective_default:t.default,requires_reload:typeof t.requires_reload=="boolean"?t.requires_reload:null}}function yp(e){const t=Gg(e);return t===!1?"off":t?String(t.num_draft_tokens):""}function F_(e){if(e==="off")return!1;if(!(!/^\d+$/.test(e)||Number(e)<1))return{mode:"native_mtp",num_draft_tokens:Number(e),require_acceleration:!0}}function z_(e){const t=D_(e.capabilities),n=yp(e.value),a=(t==null?void 0:t.supported_depths.map(String))||[],i=yp(t==null?void 0:t.default),c=e.inheritLabel||"Workflow / Gateway default",u=i?`${c} (${i==="off"?"Off":`depth ${i}`})`:c,d=e.error||(e.loading?"Checking MTP capability…":t?t.reason||(t.requires_reload?"Model reload required before MTP can run.":t.ready===!1?"MTP is supported but not ready on this instance.":t.ready===null&&t.supported?"MTP support verified; loaded-instance readiness is unknown.":t.supported?"":"MTP is not supported on this model/backend."):"MTP capability unknown; no depth is assumed.");return r.jsxs("div",{className:"af-pmp__speculation",children:[r.jsx("label",{children:"MTP depth"}),r.jsx(Pn,{ariaLabel:"MTP depth",value:n,placeholder:u,disabled:e.disabled||e.loading,options:[{value:"",label:u},{value:"off",label:"Off"},...a.map(f=>({value:f,label:`Depth ${f}`})),...n&&n!=="off"&&!a.includes(n)?[{value:n,label:`Depth ${n} (saved; not available)`}]:[]],onChange:f=>e.onChange(F_(f))}),d&&!e.hideNote?r.jsx("div",{role:"status",className:"af-pmp__hint",children:d}):null]})}const W_="Reasoning and MTP choices appear when the gateway can describe the selected model.",B_="Reasoning choices appear when the gateway can describe the selected model.";function Wc(e){var re,F;const t=e.disabled===!0,n=e.value||{provider:"",model:""},a=!String(n.provider||"").trim()&&!String(n.model||"").trim(),[i,c]=y.useState(!a),u=a&&!i,d=y.useRef(a);y.useEffect(()=>{a&&!d.current&&c(!1),d.current=a},[a]);const[f,m]=y.useState([]),[p,w]=y.useState(!1),[_,b]=y.useState(""),[A,x]=y.useState([]),[j,S]=y.useState(!1),[E,N]=y.useState(""),C=y.useRef(e);C.current=e,y.useEffect(()=>{if(u||t)return;let I=!0;return w(!0),(async()=>{try{const U=await C.current.fetchProviders();if(!I)return;m(Array.isArray(U)?U:[]),b("")}catch(U){if(!I)return;m([]),b(`#FALLBACK provider discovery failed: ${String((U==null?void 0:U.message)||U)}`)}finally{I&&w(!1)}})(),()=>{I=!1}},[u,t]);const $=String(n.provider||"").trim();y.useEffect(()=>{if(!$||t){x([]),N(""),S(!1);return}let I=!0;return x([]),S(!0),N(""),(async()=>{try{const U=await C.current.fetchModels($);if(!I)return;x(Array.isArray(U)?U:[])}catch(U){if(!I)return;x([]),N(`#FALLBACK model discovery failed: ${String((U==null?void 0:U.message)||U)}`)}finally{I&&S(!1)}})(),()=>{I=!1}},[$,t]);const R=y.useMemo(()=>{const I=[...f];return $&&!I.some(U=>U.name===$)&&I.unshift({name:$}),I},[f,$]),D=String(n.model||"").trim(),M=y.useMemo(()=>{const I=[...A];return D&&!I.includes(D)&&I.unshift(D),I},[A,D]),J=e.defaultModeLabel||"Gateway default",V=e.customModeLabel||"Custom",O=$||((re=e.effectiveDefault)==null?void 0:re.provider)||"",te=D||($?"":(F=e.effectiveDefault)==null?void 0:F.model)||"",[P,Z]=y.useState({levels:[],error:"",loading:!1}),W=!!e.fetchModelCapabilities,[ne,ae]=y.useState();y.useEffect(()=>{let I=!0;if(ae(void 0),Z({levels:[],error:"",loading:W&&!!te}),!(!W||!te||t))return C.current.fetchModelCapabilities(te,O).then(U=>{var me;if(!I)return;if(U!=null&&U.error)throw new Error(String(U.error));ae(U);const fe=(U==null?void 0:U.capabilities)||U||{},q=fe.reasoning_levels||fe.thinking_levels,le=Array.isArray(q)?[...new Set(q.filter(oe=>typeof oe=="string"&&!!oe.trim()))]:[];!le.length&&fe.thinking_support===!0&&((me=fe.thinking_control)!=null&&me.prompt_disable_token)&&le.push("off","auto"),Z({levels:le,error:"",loading:!1})}).catch(U=>{I&&Z({levels:[],error:String((U==null?void 0:U.message)||U),loading:!1})}),()=>{I=!1}},[O,te,W,t]);const H=e.inheritLabel||"Workflow / Gateway default",de=!u||e.optionsInDefaultMode!==!1;return r.jsxs("div",{className:`af-pmp${e.className?` ${e.className}`:""}`,children:[r.jsxs("div",{className:"af-pmp__seg",role:"tablist","aria-label":"Provider mode",children:[r.jsx("button",{type:"button",role:"tab","aria-selected":u,className:`af-pmp__seg-btn${u?" is-active":""}`,onClick:()=>{c(!1),e.onChange({...n,provider:"",model:"",...W?{reasoning:""}:{}})},disabled:t,children:J}),r.jsx("button",{type:"button",role:"tab","aria-selected":!u,className:`af-pmp__seg-btn${u?"":" is-active"}`,onClick:()=>{c(!0)},disabled:t,children:V})]}),u?r.jsx("div",{className:"af-pmp__hint",children:e.defaultHint||"The gateway picks its configured default provider and model for this task."}):r.jsx(P_,{provider:$,model:D,providers:R,models:M,disabled:t,loadingProviders:p,loadingModels:j,providerError:_||void 0,modelError:E||void 0,providerLabel:e.providerLabel,modelLabel:e.modelLabel,allowGatewayDefault:!1,allowCustomProvider:e.allowCustom!==!1,allowCustomModel:e.allowCustom!==!1,onChange:I=>e.onChange({...n,provider:I.provider,model:I.model,...W?{reasoning:""}:{}})}),de&&W&&(P.levels.length>0||n.reasoning)?r.jsxs("div",{className:"af-pmp__reasoning",children:[r.jsx("label",{children:e.reasoningLabel||"Reasoning effort"}),r.jsx(Pn,{ariaLabel:e.reasoningLabel||"Reasoning effort",placeholder:H,value:n.reasoning||"",options:[{value:"",label:H},...P.levels.map(I=>({value:I,label:I})),...n.reasoning&&!P.levels.includes(n.reasoning)?[{value:n.reasoning,label:`${n.reasoning} (saved; not advertised)`}]:[]],disabled:t||P.loading,onChange:I=>e.onChange({...n,reasoning:I})})]}):null,de&&e.enableSpeculation?r.jsx(z_,{value:n.speculation,inheritLabel:H,onChange:I=>e.onChange({...n,speculation:I}),capabilities:ne,disabled:t,loading:P.loading,hideNote:!!P.error}):null,de&&P.error?r.jsxs("div",{role:"status",className:"af-pmp__hint","data-discovery":"unavailable",children:[e.enableSpeculation?W_:B_,r.jsxs("details",{className:"af-pmp__details",children:[r.jsx("summary",{children:"Technical details"}),r.jsx("span",{children:P.error})]})]}):null]})}function wp(...e){return e.filter(Boolean).join(" ")}function U_({kicker:e="AbstractGateway connection",title:t="Connect to AbstractGateway",description:n="Sign in with the Gateway user token assigned by the Gateway admin.",statusLabel:a="Not signed in",statusTone:i="neutral",showGatewayUrl:c=!1,gatewayUrl:u="",gatewayUrlPlaceholder:d="http://127.0.0.1:8080",onGatewayUrlChange:f,userId:m,userPlaceholder:p="admin",onUserIdChange:w,token:_,tokenPlaceholder:b="Paste Gateway user token",showToken:A=!1,onTokenChange:x,onShowTokenChange:j,remember:S=!1,rememberLabel:E="Remember this browser",onRememberChange:N,loading:C=!1,submitting:$=!1,submitDisabled:R=!1,submitLabel:D="Sign in",submittingLabel:M="Signing in...",closeLabel:J="Close",signOutLabel:V="Sign out",showClose:O=!1,showSignOut:te=!1,error:P,message:Z,className:W,onSubmit:ne,onClose:ae,onSignOut:H}){const de=C||$,re=de||R||!String(m||"").trim()||!String(_||"").trim(),F=I=>{I.preventDefault(),!re&&ne()};return r.jsxs("form",{className:wp("af-gateway-signin",W),onSubmit:F,children:[r.jsxs("div",{className:"af-gateway-signin__hero",children:[r.jsxs("div",{children:[r.jsx("div",{className:"af-gateway-signin__kicker",children:e}),r.jsx("h2",{children:t}),n?r.jsx("p",{children:n}):null]}),r.jsx("div",{className:"af-gateway-signin__mark","aria-hidden":"true",children:"↔"})]}),r.jsx("div",{className:"af-gateway-signin__status-row",children:r.jsx("span",{className:wp("af-gateway-signin__status",`af-gateway-signin__status--${i}`),children:a})}),r.jsxs("div",{className:"af-gateway-signin__form",children:[c?r.jsxs(r.Fragment,{children:[r.jsx("label",{className:"af-gateway-signin__label",htmlFor:"gateway-session-url",children:"Gateway URL"}),r.jsx("input",{id:"gateway-session-url",value:u,onChange:I=>f==null?void 0:f(I.target.value),placeholder:d,autoComplete:"url",disabled:de})]}):null,r.jsx("label",{className:"af-gateway-signin__label",htmlFor:"gateway-session-user",children:"Gateway user"}),r.jsx("input",{id:"gateway-session-user",value:m,onChange:I=>w(I.target.value),placeholder:p,autoComplete:"username",disabled:de}),r.jsx("label",{className:"af-gateway-signin__label",htmlFor:"gateway-session-token",children:"Gateway token"}),r.jsxs("div",{className:"af-gateway-signin__token-input",children:[r.jsx("input",{id:"gateway-session-token",type:A?"text":"password",value:_,onChange:I=>x(I.target.value),placeholder:b,autoComplete:"off","data-1p-ignore":"","data-lpignore":"true","data-bwignore":"",spellCheck:!1,disabled:de}),r.jsx("button",{className:"af-gateway-signin__secondary",type:"button",onClick:()=>j==null?void 0:j(!A),disabled:de,children:A?"Hide":"Show"})]}),r.jsxs("label",{className:"af-gateway-signin__checkbox",children:[r.jsx("input",{type:"checkbox",checked:!!S,onChange:I=>N==null?void 0:N(I.target.checked),disabled:de}),E]})]}),P?r.jsx("div",{className:"af-gateway-signin__message af-gateway-signin__message--error",children:P}):null,!P&&Z?r.jsx("div",{className:"af-gateway-signin__message af-gateway-signin__message--ok",children:Z}):null,r.jsxs("div",{className:"af-gateway-signin__actions",children:[O?r.jsx("button",{className:"af-gateway-signin__secondary",type:"button",onClick:ae,disabled:de,children:J}):null,te?r.jsx("button",{className:"af-gateway-signin__secondary",type:"button",onClick:()=>void(H==null?void 0:H()),disabled:de,children:V}):null,r.jsx("button",{className:"af-gateway-signin__primary",type:"submit",disabled:re,children:$?M:D})]})]})}function V_(e){return e==="light"?"Light":"Dark"}function H_(e){const t=e.themes&&e.themes.length?e.themes:Hg,n=e.showSwatches!==!1,a=e.variant||"panel",i=y.useMemo(()=>{const u={};for(const d of t)u[d.id]=d;return u},[t]),c=y.useMemo(()=>t.map(u=>({value:u.id,label:u.label,group:V_(u.group)})),[t]);return r.jsx(Pn,{value:e.value,options:c,placeholder:e.placeholder||"Select theme…",disabled:e.disabled===!0,searchable:!0,allowCustom:!1,clearable:!1,variant:a,className:e.className,triggerClassName:e.triggerClassName,onChange:u=>e.onChange(String(u||"").trim()),renderValue:(u,d)=>{const f=String(d||"").trim(),m=i[f],p=(m==null?void 0:m.label)||f||e.placeholder||"Select theme…",w=(m==null?void 0:m.swatches)||null,_=!f;return r.jsxs("span",{className:"af-theme-value",children:[r.jsx("span",{className:`af-theme-label ${_?"af-theme-label--placeholder":""}`.trim(),children:p}),n&&w?r.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:w.map((b,A)=>r.jsx("span",{className:"af-theme-swatch",style:{background:b}},`${f}:${A}`))}):null]})},renderOption:(u,d)=>{const f=String(u.value||"").trim(),m=i[f],p=(m==null?void 0:m.swatches)||null;return r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"af-theme-option-label",children:u.label}),r.jsxs("span",{className:"af-theme-option-right",children:[n&&p?r.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:p.map((w,_)=>r.jsx("span",{className:"af-theme-swatch",style:{background:w}},`${f}:${_}`))}):null,d.selected?r.jsx("span",{className:"af-select-check",children:"✓"}):null]})]})}})}function G_(e){const t=e.scales&&e.scales.length?e.scales:lf,n=e.variant||"panel",a=y.useMemo(()=>t.map(i=>({value:i.id,label:i.label})),[t]);return r.jsx(Pn,{value:e.value,options:a,placeholder:e.placeholder||"Font size…",disabled:e.disabled===!0,searchable:!1,allowCustom:!1,clearable:!1,variant:n,className:e.className,triggerClassName:e.triggerClassName,onChange:i=>e.onChange(String(i||"").trim())})}function K_(e){const t=e.densities&&e.densities.length?e.densities:cf,n=e.variant||"panel",a=y.useMemo(()=>t.map(i=>({value:i.id,label:i.label})),[t]);return r.jsx(Pn,{value:e.value,options:a,placeholder:e.placeholder||"Header size…",disabled:e.disabled===!0,searchable:!1,allowCustom:!1,clearable:!1,variant:n,className:e.className,triggerClassName:e.triggerClassName,onChange:i=>e.onChange(String(i||"").trim())})}const J_=new Set(["board","inbox","server","agent","playCircle","list","gear"]);function Q_(e){switch(e){case"chat":return r.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"});case"plus":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12 5v14"}),r.jsx("path",{d:"M5 12h14"})]});case"history":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"12",cy:"12",r:"9"}),r.jsx("path",{d:"M12 7v5l3 3"})]});case"refresh":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M21 12a9 9 0 0 0-15.5-6.4L3 8"}),r.jsx("path",{d:"M3 3v5h5"}),r.jsx("path",{d:"M3 12a9 9 0 0 0 15.5 6.4L21 16"}),r.jsx("path",{d:"M21 21v-5h-5"})]});case"cog":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),r.jsx("circle",{cx:"12",cy:"12",r:"3"})]});case"activity":return r.jsx("path",{d:"M22 12h-4l-3 9L9 3l-3 9H2"});case"settings":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M4 6h16"}),r.jsx("circle",{cx:"8",cy:"6",r:"2"}),r.jsx("path",{d:"M4 12h16"}),r.jsx("circle",{cx:"16",cy:"12",r:"2"}),r.jsx("path",{d:"M4 18h16"}),r.jsx("circle",{cx:"10",cy:"18",r:"2"})]});case"user":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"12",cy:"8",r:"4"}),r.jsx("path",{d:"M4 21a8 8 0 0 1 16 0"})]});case"bot":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12 2v3"}),r.jsx("rect",{x:"5",y:"6",width:"14",height:"14",rx:"3"}),r.jsx("circle",{cx:"9",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),r.jsx("circle",{cx:"15",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),r.jsx("path",{d:"M9 17h6"})]});case"paperclip":return r.jsx("path",{d:"M21.44 11.05l-9.19 9.19a5.5 5.5 0 0 1-7.78-7.78l9.19-9.19a3.5 3.5 0 0 1 4.95 4.95l-9.2 9.19a1.5 1.5 0 0 1-2.12-2.12l8.49-8.48"});case"mic":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-6 0v6a3 3 0 0 0 3 3z"}),r.jsx("path",{d:"M19 11a7 7 0 0 1-14 0"}),r.jsx("path",{d:"M12 18v4"}),r.jsx("path",{d:"M8 22h8"})]});case"speaker":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M11 5L6 9H2v6h4l5 4V5z"}),r.jsx("path",{d:"M15.5 8.5a5 5 0 0 1 0 7"}),r.jsx("path",{d:"M18 6a9 9 0 0 1 0 12"})]});case"pause":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"}),r.jsx("rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"})]});case"terminal":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2",ry:"2"}),r.jsx("path",{d:"M7 9l3 3-3 3"}),r.jsx("path",{d:"M12 15h5"})]});case"edit":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12 20h9"}),r.jsx("path",{d:"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z"})]});case"download":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),r.jsx("path",{d:"M7 10l5 5 5-5"}),r.jsx("path",{d:"M12 15V3"})]});case"loader":return r.jsx("path",{d:"M21 12a9 9 0 1 1-3.3-6.9"});case"info":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("path",{d:"M12 16v-4"}),r.jsx("circle",{cx:"12",cy:"8",r:"0.75",fill:"currentColor",stroke:"none"})]});case"warning":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12 3l10 18H2L12 3z"}),r.jsx("path",{d:"M12 9v4"}),r.jsx("circle",{cx:"12",cy:"17",r:"0.75",fill:"currentColor",stroke:"none"})]});case"error":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("path",{d:"M15 9l-6 6"}),r.jsx("path",{d:"M9 9l6 6"})]});case"copy":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),r.jsx("path",{d:"M5 15V5a2 2 0 0 1 2-2h10"})]});case"check":return r.jsx("path",{d:"M20 6L9 17l-5-5"});case"x":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M18 6L6 18"}),r.jsx("path",{d:"M6 6l12 12"})]});case"chevronDown":return r.jsx("path",{d:"M6 9l6 6 6-6"});case"chevronRight":return r.jsx("path",{d:"M9 18l6-6-6-6"});case"trash":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M3 6h18"}),r.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),r.jsx("path",{d:"M6 6l1 16h10l1-16"}),r.jsx("path",{d:"M10 11v6"}),r.jsx("path",{d:"M14 11v6"})]});case"send":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M22 2L11 13"}),r.jsx("path",{d:"M22 2L15 22l-4-9-9-4 20-7z"})]});case"thumbsUp":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M7 10v11"}),r.jsx("path",{d:"M7 10l4.5-8a2 2 0 0 1 3.6 1.5L14 8h5.2a2 2 0 0 1 2 2.4l-1.6 8a2 2 0 0 1-2 1.6H7"})]});case"thumbsDown":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M17 14V3"}),r.jsx("path",{d:"M17 14l-4.5 8a2 2 0 0 1-3.6-1.5L10 16H4.8a2 2 0 0 1-2-2.4l1.6-8a2 2 0 0 1 2-1.6H17"})]});case"thumbsUpFilled":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M7 10v11"}),r.jsx("path",{d:"M7 10l4.5-8a2 2 0 0 1 3.6 1.5L14 8h5.2a2 2 0 0 1 2 2.4l-1.6 8a2 2 0 0 1-2 1.6H7z",fill:"currentColor",stroke:"none"})]});case"thumbsDownFilled":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M17 14V3"}),r.jsx("path",{d:"M17 14l-4.5 8a2 2 0 0 1-3.6-1.5L10 16H4.8a2 2 0 0 1-2-2.4l1.6-8a2 2 0 0 1 2-1.6H17z",fill:"currentColor",stroke:"none"})]});case"board":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"1.5",y:"2",width:"3.6",height:"12",rx:"1"}),r.jsx("rect",{x:"6.2",y:"2",width:"3.6",height:"8.5",rx:"1"}),r.jsx("rect",{x:"10.9",y:"2",width:"3.6",height:"5.5",rx:"1"})]});case"inbox":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M2 9.5 L4 3.5 h8 l2 6"}),r.jsx("path",{d:"M2 9.5 v3 h12 v-3"}),r.jsx("path",{d:"M2 9.5 h3.4 l1 1.6 h3.2 l1-1.6 H14"})]});case"server":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"2",y:"2.5",width:"12",height:"4.6",rx:"1.2"}),r.jsx("rect",{x:"2",y:"8.9",width:"12",height:"4.6",rx:"1.2"}),r.jsx("circle",{cx:"4.6",cy:"4.8",r:"0.8",fill:"currentColor",stroke:"none"}),r.jsx("circle",{cx:"4.6",cy:"11.2",r:"0.8",fill:"currentColor",stroke:"none"})]});case"agent":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"3",y:"4.5",width:"10",height:"8",rx:"2"}),r.jsx("path",{d:"M8 4.5V2.2"}),r.jsx("circle",{cx:"8",cy:"1.8",r:"0.9",fill:"currentColor",stroke:"none"}),r.jsx("circle",{cx:"5.8",cy:"8.4",r:"0.9",fill:"currentColor",stroke:"none"}),r.jsx("circle",{cx:"10.2",cy:"8.4",r:"0.9",fill:"currentColor",stroke:"none"})]});case"playCircle":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"8",cy:"8",r:"6.2"}),r.jsx("path",{d:"M6.5 5.6 L11 8 L6.5 10.4 Z",fill:"currentColor",stroke:"none"})]});case"list":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M2.5 4h11"}),r.jsx("path",{d:"M2.5 8h11"}),r.jsx("path",{d:"M2.5 12h7"})]});case"gear":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"8",cy:"8",r:"2.2"}),r.jsx("path",{d:"M8 1.6v2"}),r.jsx("path",{d:"M8 12.4v2"}),r.jsx("path",{d:"M1.6 8h2"}),r.jsx("path",{d:"M12.4 8h2"}),r.jsx("path",{d:"M3.5 3.5l1.4 1.4"}),r.jsx("path",{d:"M11.1 11.1l1.4 1.4"}),r.jsx("path",{d:"M12.5 3.5l-1.4 1.4"}),r.jsx("path",{d:"M4.9 11.1l-1.4 1.4"})]});case"sparkle":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"}),r.jsx("path",{d:"M18.5 15.5l.8 2.2 2.2.8-2.2.8-.8 2.2-.8-2.2-2.2-.8 2.2-.8z"})]});case"contrast":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"12",cy:"12",r:"9"}),r.jsx("path",{d:"M12 3a9 9 0 0 1 0 18z",fill:"currentColor",stroke:"none"})]});case"logout":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),r.jsx("path",{d:"M16 17l5-5-5-5"}),r.jsx("path",{d:"M21 12H9"})]});case"play":return r.jsx("path",{d:"M7 4.5v15a1 1 0 0 0 1.5.86l12-7.5a1 1 0 0 0 0-1.72l-12-7.5A1 1 0 0 0 7 4.5z",fill:"currentColor",stroke:"none"});case"stop":return r.jsx("rect",{x:"5",y:"5",width:"14",height:"14",rx:"2",fill:"currentColor",stroke:"none"});case"folder":return r.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"});case"file":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),r.jsx("path",{d:"M14 2v6h6"})]});case"archive":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),r.jsx("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),r.jsx("path",{d:"M10 12h4"})]});case"unarchive":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),r.jsx("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),r.jsx("path",{d:"M12 18v-6"}),r.jsx("path",{d:"m9 14 3-3 3 3"})]});case"clock":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("path",{d:"M12 6v6h4"})]});case"book":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M2 4h6a4 4 0 0 1 4 4v13a3 3 0 0 0-3-3H2z"}),r.jsx("path",{d:"M22 4h-6a4 4 0 0 0-4 4v13a3 3 0 0 1 3-3h7z"})]});case"compose":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),r.jsx("path",{d:"M18.4 2.6a2.1 2.1 0 0 1 3 3L12 15l-4 1 1-4z"})]});case"image":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),r.jsx("circle",{cx:"9",cy:"9",r:"2"}),r.jsx("path",{d:"M21 15l-3.1-3.1a2 2 0 0 0-2.8 0L6 21"})]});case"video":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"2",y:"6",width:"14",height:"12",rx:"2"}),r.jsx("path",{d:"M16 10.5l5.2-3.1a.5.5 0 0 1 .8.4v8.4a.5.5 0 0 1-.8.4L16 13.5"})]});case"camera":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3z"}),r.jsx("circle",{cx:"12",cy:"13",r:"3"})]});case"music":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M9 18V5l12-2v13"}),r.jsx("circle",{cx:"6",cy:"18",r:"3"}),r.jsx("circle",{cx:"18",cy:"16",r:"3"})]});case"database":return r.jsxs(r.Fragment,{children:[r.jsx("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),r.jsx("path",{d:"M3 5v14a9 3 0 0 0 18 0V5"}),r.jsx("path",{d:"M3 12a9 3 0 0 0 18 0"})]});case"branch":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M6 3v12"}),r.jsx("circle",{cx:"18",cy:"6",r:"3"}),r.jsx("circle",{cx:"6",cy:"18",r:"3"}),r.jsx("path",{d:"M18 9a9 9 0 0 1-9 9"})]});case"loop":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M17 2l4 4-4 4"}),r.jsx("path",{d:"M3 11v-1a4 4 0 0 1 4-4h14"}),r.jsx("path",{d:"M7 22l-4-4 4-4"}),r.jsx("path",{d:"M21 13v1a4 4 0 0 1-4 4H3"})]});case"variable":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M8 21s-4-3-4-9 4-9 4-9"}),r.jsx("path",{d:"M16 3s4 3 4 9-4 9-4 9"}),r.jsx("path",{d:"M15 9l-6 6"}),r.jsx("path",{d:"M9 9l6 6"})]});case"minus":return r.jsx("path",{d:"M5 12h14"});case"divide":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"12",cy:"6",r:"1.25",fill:"currentColor",stroke:"none"}),r.jsx("path",{d:"M5 12h14"}),r.jsx("circle",{cx:"12",cy:"18",r:"1.25",fill:"currentColor",stroke:"none"})]});case"function":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),r.jsx("path",{d:"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3"}),r.jsx("path",{d:"M9 11.2h5.7"})]});case"zoomIn":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"11",cy:"11",r:"8"}),r.jsx("path",{d:"M21 21l-4.35-4.35"}),r.jsx("path",{d:"M11 8v6"}),r.jsx("path",{d:"M8 11h6"})]});case"zoomOut":return r.jsxs(r.Fragment,{children:[r.jsx("circle",{cx:"11",cy:"11",r:"8"}),r.jsx("path",{d:"M21 21l-4.35-4.35"}),r.jsx("path",{d:"M8 11h6"})]});case"fitView":return r.jsxs(r.Fragment,{children:[r.jsx("path",{d:"M8 3H5a2 2 0 0 0-2 2v3"}),r.jsx("path",{d:"M21 8V5a2 2 0 0 0-2-2h-3"}),r.jsx("path",{d:"M3 16v3a2 2 0 0 0 2 2h3"}),r.jsx("path",{d:"M16 21h3a2 2 0 0 0 2-2v-3"})]});case"lock":return r.jsxs(r.Fragment,{children:[r.jsx("rect",{x:"4",y:"11",width:"16",height:"10",rx:"2"}),r.jsx("path",{d:"M8 11V7a4 4 0 0 1 8 0v4"})]});default:return null}}function se({name:e,size:t=16,className:n,title:a,...i}){const c=a?void 0:!0,u=J_.has(e);return r.jsxs("svg",{width:t,height:t,viewBox:u?"0 0 16 16":"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:u?1.4:2,strokeLinecap:"round",strokeLinejoin:"round",className:n,"aria-hidden":c,role:a?"img":"presentation",...i,children:[a?r.jsx("title",{children:a}):null,Q_(e)]})}const Lr="api/gateway",Di="api/connection/gateway";function we(e){const t=String(e||"");if(t.startsWith("/"))throw new Error(`gatewayApiPath takes a route relative to the gateway API, got ${JSON.stringify(t)}.`);return t?`${Lr}/${t}`:Lr}function et(e,t){const n=String(t||"");if(n.startsWith("/"))throw new Error(`joinBaseUrl takes a relative path, got ${JSON.stringify(n)}.`);let a=String(e??"");for(;a.endsWith("/");)a=a.slice(0,-1);return a?`${a}/${n}`:n}function Y_(e){const t=String(e||""),n=`/${Lr}/`;if(!t.startsWith(n)||t.length===n.length)throw new Error(`Not a gateway API path: ${JSON.stringify(t)} (expected ${JSON.stringify(n)}…).`);const a=t.slice(n.length).split(/[?#]/,1)[0];if(/\\|%2f|%5c/i.test(a))throw new Error(`Not a gateway API path: ${JSON.stringify(t)} (encoded slash or backslash).`);for(const i of a.split("/")){const c=i.replace(/%2e/gi,".");if(c==="."||c==="..")throw new Error(`Not a gateway API path: ${JSON.stringify(t)} (a "." or ".." segment).`)}return t.slice(1)}function X_(e){return!String(e.unavailableReason||"").trim()&&!e.busy}function q_(e){return X_(e)?!e.checked:null}let Z_=0;function Or(e){const{label:t,checked:n,onChange:a,description:i,reasonVisible:c=!0,describedBy:u,hint:d,busy:f=!1,variant:m="inline",ariaLabel:p,className:w,id:_,action:b}=e,A=String(e.unavailableReason||"").trim(),x=!!A,j=u||(_?`${_}-reason`:x?`af-switch-reason-${++Z_}`:void 0),S=["af-switch",m==="row"?"af-switch--row":m==="sm"?"af-switch--sm":"",x?"af-switch--unavailable":"",w||""].filter(Boolean).join(" "),E=C=>{const $=q_({checked:n,unavailableReason:A,busy:f});if($===null){C.preventDefault();return}a==null||a($)},N=r.jsxs("button",{type:"button",role:"switch",id:_,className:S,"data-action":b,"aria-checked":n?"true":"false","aria-disabled":x?"true":void 0,"aria-describedby":x?j:void 0,"aria-busy":f?"true":void 0,"aria-label":p,"aria-description":i?void 0:d,title:x?d?`${A}
|
|
41
|
-
${d}`:A:d,onClick:E,children:[r.jsx("span",{className:"af-switch__track","aria-hidden":"true",children:r.jsx("span",{className:"af-switch__thumb"})}),r.jsxs("span",{className:"af-switch__text",children:[r.jsx("span",{className:"af-switch__label",children:t}),i?r.jsx("span",{className:"af-switch__desc",children:i}):null]})]});return!x||u?N:r.jsxs("span",{className:m==="row"?"af-switch-wrap af-switch-wrap--row":"af-switch-wrap",children:[N,r.jsx("span",{id:j,className:c?"af-switch__reason":"af-switch__reason af-switch__reason--hidden",children:A})]})}function eb(e){const t=String(e.unavailableReason||"").trim(),n=["af-switch","af-switch--native",e.variant==="row"?"af-switch--row":"",t?"af-switch--unavailable":""].filter(Boolean).join(" "),a=t?`${e.id||e.name}-reason`:void 0,i=r.jsxs("label",{className:n,title:t||void 0,"data-action":e.action,children:[r.jsx("input",{type:"checkbox",role:"switch",className:"af-switch__input",id:e.id,name:e.name,defaultChecked:e.defaultChecked,onChange:c=>{var u;return(u=e.onChange)==null?void 0:u.call(e,c.target.checked)},disabled:!!t,"aria-describedby":a}),r.jsx("span",{className:"af-switch__track","aria-hidden":"true",children:r.jsx("span",{className:"af-switch__thumb"})}),r.jsx("span",{className:"af-switch__text",children:r.jsx("span",{className:"af-switch__label",children:e.label})})]});return t?r.jsxs("span",{className:e.variant==="row"?"af-switch-wrap af-switch-wrap--row":"af-switch-wrap",children:[i,r.jsx("span",{id:a,className:"af-switch__reason",children:t})]}):i}const tb=150,Of="data-af-tip";function nb(e,t,n,a=6,i=8){let c="top",u=e.top-a-t.height;if(u<i){const m=e.bottom+a;(m+t.height<=n.height-i||n.height-e.bottom>e.top)&&(u=m,c="bottom")}let f=(e.left+e.right)/2-t.width/2;return f=Math.max(i,Math.min(f,n.width-i-t.width)),u=Math.max(i,Math.min(u,n.height-i-t.height)),{top:Math.round(u),left:Math.round(f),side:c}}let vp=0;function Kg(e){return e?String(e.getAttribute(Of)||"").trim():""}function Ld(e,t){const n=e;if(!n||typeof n.closest!="function")return null;const a=n.closest(`[${Of}]`);return!a||!t.contains(a)||!Kg(a)?null:a}function sb(e,t={}){if(!e)throw new Error("bindAfTooltips: a root (document or element) is required");const n=e.nodeType===9?e:e.ownerDocument,a=n.defaultView||globalThis,i=typeof t.delayMs=="number"&&t.delayMs>=0?t.delayMs:tb;vp+=1;const c=n.createElement("div");c.className="af-tooltip",c.setAttribute("role","tooltip");const u=`af-tooltip-${vp}`;c.setAttribute("id",u),c.hidden=!0,(n.body||n.documentElement).appendChild(c);let d=null,f=null,m=null,p=null,w=!1,_=null;const b=()=>{m&&clearTimeout(m),m=null,f=null},A=()=>{p&&clearTimeout(p),p=null},x=()=>{if(!d)return;const W=d.getBoundingClientRect(),ne=c.getBoundingClientRect(),ae=nb(W,{width:ne.width,height:ne.height},{width:a.innerWidth,height:a.innerHeight});c.style.top=`${ae.top}px`,c.style.left=`${ae.left}px`,c.setAttribute("data-side",ae.side)},j=()=>{if(b(),A(),!d)return;String(d.getAttribute("aria-describedby")||"").split(/\s+/).includes(u)&&(_?d.setAttribute("aria-describedby",_):d.removeAttribute("aria-describedby")),_=null,d=null,c.hidden=!0,c.textContent=""},S=W=>{b(),A(),d&&d!==W&&j();const ne=Kg(W);if(!ne||W.isConnected===!1)return;if(d=W,c.textContent=ne,c.hidden=!1,String(W.getAttribute("aria-label")||"").trim()!==ne){const H=W.getAttribute("aria-describedby");_=H&&H!==u?H:null,W.setAttribute("aria-describedby",_?`${_} ${u}`:u)}x()},E=W=>{A(),d!==W&&f!==W&&(b(),f=W,m=setTimeout(()=>{const ne=f;m=null,f=null,ne&&S(ne)},i))},N=()=>{b(),d&&(A(),p=setTimeout(j,100))},C=W=>{try{if(typeof W.matches=="function")return W.matches(":focus-visible")}catch{}return w},$=W=>{if(W.pointerType==="touch")return;if(c.contains(W.target)){A();return}const ae=Ld(W.target,e);ae&&E(ae)},R=W=>{const ae=W.relatedTarget||null;if(!(ae&&(c.contains(ae)||d&&d.contains(ae)||f&&f.contains(ae)))){if(f&&!d){b();return}d&&N()}},D=W=>{const ne=W.relatedTarget||null;ne&&(c.contains(ne)||d&&d.contains(ne))||N()},M=W=>{const ne=Ld(W.target,e);ne&&C(ne)&&E(ne)},J=W=>{const ne=Ld(W.target,e);ne&&(ne===d||ne===f)&&j()},V=()=>{w=!1,j()},O=W=>{if(W.key==="Escape"||W.key==="Esc"){d?(W.preventDefault(),j()):b();return}!W.metaKey&&!W.ctrlKey&&!W.altKey&&(w=!0)},te=()=>j(),P=e;P.addEventListener("pointerover",$),P.addEventListener("pointerout",R),P.addEventListener("focusin",M),P.addEventListener("focusout",J),c.addEventListener("pointerover",$),c.addEventListener("pointerout",D),n.addEventListener("pointerdown",V,!0),a.addEventListener("keydown",O,!0),a.addEventListener("scroll",te,!0),a.addEventListener("resize",te);let Z=!1;return()=>{Z||(Z=!0,j(),P.removeEventListener("pointerover",$),P.removeEventListener("pointerout",R),P.removeEventListener("focusin",M),P.removeEventListener("focusout",J),c.removeEventListener("pointerover",$),c.removeEventListener("pointerout",D),n.removeEventListener("pointerdown",V,!0),a.removeEventListener("keydown",O,!0),a.removeEventListener("scroll",te,!0),a.removeEventListener("resize",te),c.parentNode&&c.parentNode.removeChild(c))}}const ac=new WeakMap;function rb(e){let t=ac.get(e);t||(t={count:0,release:sb(e)},ac.set(e,t)),t.count+=1;let n=!1;return()=>{if(n)return;n=!0;const a=ac.get(e);a&&(a.count-=1,a.count<=0&&(a.release(),ac.delete(e)))}}function _o(){y.useEffect(()=>{if(!(typeof document>"u"))return rb(document)},[])}function jc(e){_o();const t=ut.Children.only(e.children),n=String(e.content||"").trim();return n?ut.cloneElement(t,{[Of]:n}):t}function ab(e){if(!e||typeof e!="object")return;const t=e,n=typeof t.label=="string"?t.label.trim():"";if(!n)return;const a=typeof t.tooltip=="string"&&t.tooltip.trim()?t.tooltip.trim():void 0,i=t.tone==="ok"||t.tone==="warn"||t.tone==="danger"?t.tone:void 0;return{label:n,...a?{tooltip:a}:{},...i?{tone:i}:{}}}const ob={autoApprove:["list_files","skim_folders","analyze_code","read_file","skim_files","search_files","open_attachment","web_search","skim_websearch","skim_url","fetch_url","list_email_accounts","list_emails","read_email","list_whatsapp_messages","read_whatsapp_message","send_email","send_whatsapp_message","send_telegram_message","send_telegram_artifact"],requireApproval:["write_file","edit_file","execute_command"]};function ib(e){const t=new Set,n=[];for(const a of e||[]){if(!a)continue;const i=String(a.name||"").trim();!i||t.has(i)||(t.add(i),n.push({name:i,description:typeof a.description=="string"?a.description:void 0,toolset:typeof a.toolset=="string"?a.toolset:void 0,when_to_use:typeof a.when_to_use=="string"?a.when_to_use:void 0,default_approval:a.default_approval==="approve"||a.default_approval==="ask"?a.default_approval:void 0,state:ab(a.state)}))}return n.sort((a,i)=>{const c=String(a.toolset||""),u=String(i.toolset||"");return c!==u?c.localeCompare(u):a.name.localeCompare(i.name)}),n}function lb(e,t){return e.default_approval?e.default_approval:t.requireApproval.includes(e.name)?"ask":t.autoApprove.includes(e.name)?"approve":"ask"}function cb(e,t,n){const a=String(e||"").trim().toLowerCase();if(!a&&!t&&!n)return null;let i;return a==="approval"||a==="local_approval"||a==="local-approval"?i={label:"APPROVAL",detail:"Safe tools auto-run; mutating tools ask for approval.",tone:"safe"}:a==="passthrough"?i={label:"PASSTHROUGH",detail:"All tools require approval before execution.",tone:"warn"}:a==="delegated"||a==="delegate"||a==="job"?i={label:"DELEGATED",detail:"Tool calls wait for external executors.",tone:"info"}:a==="local"||a==="local_all"||a==="local-all"?i={label:"LOCAL",detail:"All tools run locally; client policy may still require approval.",tone:"danger"}:i={label:"UNKNOWN",detail:"#FALLBACK: gateway tool mode not reported.",tone:"warn"},t&&(i={...i,label:t}),n&&(i={...i,detail:n}),i}function ub(e){const t=e.split("_");return t.map((n,a)=>a<t.length-1?r.jsxs(ut.Fragment,{children:[n,"_",r.jsx("wbr",{})]},a):r.jsx(ut.Fragment,{children:n},a))}function db(e){var J,V;const t=e.defaults||ob,n=e.disabled===!0,a=e.title||"Tools",i=e.subtitle||"Default is all tools. Safe/read-only tools auto-approve; mutating tools ask for approval.",c=String(e.note||"").trim(),u=y.useMemo(()=>cb(e.toolMode,e.toolModeLabel,e.toolModeDetail),[e.toolMode,e.toolModeLabel,e.toolModeDetail]),d=y.useMemo(()=>ib(e.tools),[e.tools]),f=y.useMemo(()=>d.map(O=>O.name),[d]),m=y.useMemo(()=>new Set(f),[f]),[p,w]=y.useState(""),_=y.useMemo(()=>{var Z;const O=Array.isArray((Z=e.value)==null?void 0:Z.selected)?e.value.selected:[],te=new Set,P=[];for(const W of O){const ne=String(W||"").trim();!ne||te.has(ne)||(te.add(ne),P.push(ne))}return P},[(J=e.value)==null?void 0:J.selected]),b=y.useMemo(()=>_.filter(O=>m.has(O)),[_,m]),A=y.useMemo(()=>_.filter(O=>!m.has(O)),[_,m]),x=((V=e.value)==null?void 0:V.mode)==="custom"?"custom":"all",j=y.useMemo(()=>{const O=p.trim().toLowerCase();return O?d.filter(te=>{const P=te.name.toLowerCase(),Z=(te.description||"").toLowerCase();return P.includes(O)||Z.includes(O)}):d},[d,p]),S=x==="all"?new Set(f):new Set(b),E=O=>{e.onChange(O)},N=O=>{n||E({...e.value,mode:O,selected:_})},C=(O,te)=>{if(n)return;const P=new Set(b);te?P.add(O):P.delete(O),E({...e.value,selected:[...A,...Array.from(P)],mode:"custom"})},$=(O,te)=>{var Z;if(n)return;const P={...((Z=e.value)==null?void 0:Z.approval)||{}};P[O]=te,E({...e.value,approval:P})},R=()=>{n||E({...e.value,selected:[...A,...f],mode:"custom"})},D=()=>{n||E({...e.value,selected:[...A],mode:"custom"})},M=S.size;return r.jsxs("div",{className:`af-tool-policy ${e.className||""}`.trim(),children:[r.jsxs("div",{className:"af-tool-policy__header",children:[r.jsx("div",{className:"af-tool-policy__title",children:a}),r.jsx("div",{className:"af-tool-policy__subtitle",children:i}),u?r.jsxs("div",{className:`af-tool-policy__mode is-${u.tone}`,children:[r.jsx("div",{className:"af-tool-policy__mode-badge",children:"Tool mode"}),r.jsx("div",{className:"af-tool-policy__mode-value",children:u.label}),r.jsx("div",{className:"af-tool-policy__mode-detail",children:u.detail})]}):null,c?r.jsx("div",{className:"af-tool-policy__note",children:c}):null]}),r.jsxs("div",{className:"af-tool-policy__controls",children:[r.jsxs("div",{className:"af-tool-policy__segmented",role:"group","aria-label":"Tool allowlist mode",children:[r.jsx("button",{type:"button",className:`af-tool-policy__seg-btn ${x==="all"?"is-active":""}`.trim(),onClick:()=>N("all"),disabled:n,"aria-pressed":x==="all",children:"All tools"}),r.jsx("button",{type:"button",className:`af-tool-policy__seg-btn ${x==="custom"?"is-active":""}`.trim(),onClick:()=>N("custom"),disabled:n,"aria-pressed":x==="custom",children:"Custom allowlist"})]}),r.jsxs("div",{className:"af-tool-policy__count",children:[M," / ",f.length," enabled"]}),r.jsxs("div",{className:"af-tool-policy__bulk",children:[r.jsx("button",{type:"button",onClick:R,disabled:n||x!=="custom",children:"Select all"}),r.jsx("button",{type:"button",onClick:D,disabled:n||x!=="custom",children:"Select none"})]})]}),r.jsx("div",{className:"af-tool-policy__filter",children:r.jsx("input",{type:"text",placeholder:"Filter tools...","aria-label":"Filter tools",value:p,onChange:O=>w(O.target.value),disabled:n})}),r.jsxs("div",{className:"af-tool-policy__list",children:[j.map(O=>{var Z,W;const te=S.has(O.name),P=((W=(Z=e.value)==null?void 0:Z.approval)==null?void 0:W[O.name])||lb(O,t);return r.jsxs("div",{className:`af-tool-row ${te?"is-enabled":""}`.trim(),children:[r.jsx("div",{className:"af-tool-row__check",children:r.jsx(Or,{variant:"sm",action:"tool-enabled",label:"",ariaLabel:O.name,checked:te,busy:n,unavailableReason:x!=="custom"?"Choose Custom to pick tools one by one.":null,reasonVisible:!1,onChange:ne=>C(O.name,ne)})}),r.jsxs("div",{className:"af-tool-row__meta",children:[r.jsxs("div",{className:"af-tool-row__title",children:[r.jsx("span",{className:"af-tool-row__name",children:ub(O.name)}),O.toolset?r.jsx("span",{className:"af-tool-row__badge",children:O.toolset}):null]}),O.state?r.jsx("div",{className:"af-tool-row__state-line",children:r.jsx(jc,{content:O.state.tooltip||"",children:r.jsx("span",{className:`af-tool-row__state${O.state.tone?` is-${O.state.tone}`:""}`,"data-tool-state":O.name,tabIndex:O.state.tooltip?0:void 0,"aria-label":O.state.tooltip?`${O.state.label}. ${O.state.tooltip}`:void 0,children:O.state.label})})}):null,O.description?r.jsx("div",{className:"af-tool-row__desc",children:O.description}):null,O.when_to_use?r.jsx("div",{className:"af-tool-row__hint",children:O.when_to_use}):null]}),r.jsx("div",{className:"af-tool-row__approval",children:r.jsxs("select",{value:P,disabled:n||!te,onChange:ne=>$(O.name,ne.target.value),"aria-label":`Approval mode for ${O.name}`,children:[r.jsx("option",{value:"approve",children:"Approve"}),r.jsx("option",{value:"ask",children:"Ask"})]})})]},O.name)}),j.length?null:r.jsx("div",{className:"af-tool-policy__empty",children:"No tools match the filter."})]})]})}async function uf(e=Di){const t=await fetch(e),n=await t.json().catch(()=>null);if(!t.ok){const a=n&&typeof n=="object"&&n.detail?String(n.detail):`HTTP ${t.status}`;throw new Error(a)}return n}async function fb(e,t=Di){const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await n.json().catch(()=>null);if(!n.ok){const i=a&&typeof a=="object"&&a.detail?String(a.detail):`HTTP ${n.status}`;throw new Error(i)}return a}async function Jg(e=Di){const t=await fetch(e,{method:"DELETE"});if(!t.ok){const n=await t.json().catch(()=>({})),a=n&&typeof n=="object"&&n.detail?String(n.detail):`HTTP ${t.status}`;throw new Error(a)}}function Od(e){let t=String(e||"").trim();for(let n=0;n<2&&t;n+=1){try{const c=JSON.parse(t);if(typeof c=="string"&&c!==t){t=c.trim();continue}}catch{}const a=t[0],i=t[t.length-1];if(a==='"'&&i==='"'||a==="'"&&i==="'"){t=t.slice(1,-1).trim();continue}break}return t.replace(/\/+$/,"")}function hb(e){var c,u;if(!e)return{label:"Signed out",tone:"warn"};if(!e.has_session)return{label:"Signed out",tone:"warn"};const t=e.gateway||{},n=(c=t.principal)==null?void 0:c.user_id,a=(u=t.principal)==null?void 0:u.runtime_id;if(t.ok&&n)return{label:`Signed in as ${n}${a?` · runtime ${a}`:""}`,tone:"ok"};if(t.ok)return{label:"Signed in",tone:"ok"};const i=t.error||t.detail;return typeof i=="string"&&i.trim()?{label:"Session rejected — sign in again",tone:"err"}:{label:"Sign in required",tone:"err"}}function mb(e){const t=e.connectionPath||Di,[n,a]=y.useState(!1),[i,c]=y.useState(!1),[u,d]=y.useState(null),[f,m]=y.useState(!1);y.useEffect(()=>{e.isOpen||m(!1)},[e.isOpen]);const[p,w]=y.useState(e.defaultGatewayUrl||"http://127.0.0.1:8080"),[_,b]=y.useState("admin"),[A,x]=y.useState(""),[j,S]=y.useState(!1),[E,N]=y.useState(!0),[C,$]=y.useState(""),[R,D]=y.useState(""),M=y.useMemo(()=>hb(u),[u]),J=P=>{var Z;d(P),(Z=e.onStatusChange)==null||Z.call(e,P)},V=y.useRef(!1);if(y.useEffect(()=>{var Z;if(!e.isOpen)return;const P=!V.current;if(V.current=!0,P&&e.initialStatus!==void 0&&e.initialStatus!==null){const W=e.initialStatus;J(W),typeof W.gateway_url=="string"&&W.gateway_url.trim()&&w(Od(W.gateway_url));const ne=(Z=W.gateway)==null?void 0:Z.principal;ne!=null&&ne.user_id&&b(ne.user_id);return}a(!0),$(""),uf(t).then(W=>{var ae;J(W),typeof W.gateway_url=="string"&&W.gateway_url.trim()&&w(Od(W.gateway_url));const ne=(ae=W.gateway)==null?void 0:ae.principal;ne!=null&&ne.user_id&&b(ne.user_id)}).catch(W=>$(`Failed to load connection status: ${String((W==null?void 0:W.message)||W)}`)).finally(()=>a(!1))},[e.isOpen]),y.useEffect(()=>{if(!e.isOpen)return;const P=Z=>{Z.key==="Escape"&&!Z.defaultPrevented&&!e.blocking&&(Z.preventDefault(),e.onClose())};return window.addEventListener("keydown",P),()=>window.removeEventListener("keydown",P)},[e.isOpen,e.blocking,e.onClose]),!e.isOpen||f)return null;const O=async()=>{c(!0),$(""),D("");try{const P=Od(p);w(P);const Z=await fb({gateway_url:P,gateway_user_id:_,gateway_token:A,persist:E},t);J(Z),x(""),m(!0),e.onClose()}catch(P){$(String((P==null?void 0:P.message)||P))}finally{c(!1)}},te=async()=>{c(!0),$(""),D("");try{await Jg(t),x("");const P=await uf(t).catch(()=>null);J(P),D("Signed out. This browser no longer holds a gateway session.")}catch(P){$(String((P==null?void 0:P.message)||P))}finally{c(!1)}};return r.jsx("div",{className:"af-connect-overlay",role:"presentation",onMouseDown:P=>{!e.blocking&&P.target===P.currentTarget&&e.onClose()},children:r.jsx("div",{className:"af-connect-modal",role:"dialog","aria-modal":"true","aria-label":"Gateway connection",children:r.jsx(U_,{kicker:`${e.appName||"AbstractFramework"} connection`,title:"Connect this browser to AbstractGateway",description:"Sign in with a Gateway user token. The app exchanges it for an HTTP-only browser session and never stores the raw token.",statusLabel:M.label,statusTone:M.tone,showGatewayUrl:!0,gatewayUrl:p,onGatewayUrlChange:P=>w(P),userId:_,onUserIdChange:b,token:A,tokenPlaceholder:u!=null&&u.has_session?"(browser session already signed in)":"Paste Gateway user token",showToken:j,onTokenChange:x,onShowTokenChange:S,remember:E,rememberLabel:"Keep this browser signed in",onRememberChange:N,loading:n,submitting:i,submittingLabel:"Signing in...",showClose:!e.blocking,onClose:e.onClose,showSignOut:!e.blocking&&!!(u!=null&&u.has_session),onSignOut:te,error:C,message:R,onSubmit:O})})})}function pb(e){return!!(e&&e.ok===!0&&e.has_session===!0)}function gb(e){const t=e||{},n=t.connectionPath||Di,a=t.variant||"dismissable",i=y.useRef(t.onStatusChange);i.current=t.onStatusChange;const c=y.useRef(a);c.current=a;const u=y.useRef(!!t.autoOpenMidSession);u.current=!!t.autoOpenMidSession;const[d,f]=y.useState(null),[m,p]=y.useState("loading"),[w,_]=y.useState(!1),b=y.useRef(!1),A=y.useRef(!1),x=y.useRef("loading"),j=y.useRef("none"),S=y.useRef(!1),E=y.useRef(0),N=y.useCallback(Z=>{var ne;E.current+=1,f(Z),(ne=i.current)==null||ne.call(i,Z);const W=pb(Z);if(W)p("connected"),x.current="connected",b.current=!1,j.current="none",A.current||_(!1);else if(Z!==null){const ae=x.current;p("disconnected"),x.current="disconnected",ae!=="disconnected"&&(j.current=S.current?"signout":ae==="connected"?"mid":"boot");const H=c.current==="blocking"||j.current!=="mid"||u.current;!b.current&&H&&_(!0)}Z!==null&&(A.current=W)},[]),C=y.useCallback(async()=>{const Z=E.current;try{const W=await uf(n);if(E.current!==Z)return;N(W)}catch{if(E.current!==Z)return;N(null)}},[n,N]),[$,R]=y.useState(!1),[D,M]=y.useState(null),J=y.useCallback(async()=>{R(!0),M(null),E.current+=1;let Z=null;try{await Jg(n)}catch(W){Z=String((W==null?void 0:W.message)||W||"Sign-out request failed")}S.current=!0;try{await C()}finally{S.current=!1}M(Z),R(!1)},[n,C]),V=y.useRef(!1);y.useEffect(()=>{V.current||(V.current=!0,C())},[C]);const O=y.useCallback(()=>{_(!0)},[]),te=y.useCallback(()=>{const Z=x.current;a==="blocking"&&Z==="disconnected"||(Z==="disconnected"&&(b.current=!0),_(!1))},[a]),P=y.useMemo(()=>({isOpen:w,onClose:te,blocking:a==="blocking"&&m!=="connected",appName:t.appName,connectionPath:n,defaultGatewayUrl:t.defaultGatewayUrl,initialStatus:d,onStatusChange:N}),[w,te,a,m,t.appName,n,t.defaultGatewayUrl,d,N]);return{status:d,phase:m,connected:m==="connected",modalOpen:w,signingOut:$,signOutError:D,openModal:O,refresh:C,signOut:J,modalProps:P}}function yb(){return globalThis.crypto}function wb(e){if(e.length<16)throw new Error("uuidV4FromBytes: needs 16 bytes");const t=Array.from(e.subarray(0,16));t[6]=t[6]&15|64,t[8]=t[8]&63|128;const n=t.map(a=>a.toString(16).padStart(2,"0")).join("");return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}function la(){const e=yb();if(e&&typeof e.randomUUID=="function")try{return e.randomUUID()}catch{}if(e&&typeof e.getRandomValues=="function")return wb(e.getRandomValues(new Uint8Array(16)));throw new Error("randomId: Web Crypto (crypto.getRandomValues) is unavailable")}function Bc(e){return globalThis.isSecureContext!==!1?null:`This page is loaded over http, so ${e} is unavailable — open it over https (for example through tailscale serve; the gateway console's Network page explains how) or on the gateway's own computer.`}const Pd={neutral:"var(--text-secondary)",muted:"var(--text-muted)",accent:"var(--accent)",info:"var(--info)",success:"var(--success)",warning:"var(--warning)",error:"var(--error)"},vb=/^var\(--[a-z0-9-]+\)$/i;function _b(e,t){const n=e||"neutral";if(n==="custom"){const a=String(t||"").trim();return vb.test(a)?a:Pd.neutral}return Pd[n]||Pd.neutral}function Qg(e,t,n){return[e,`${e}--${t.tone||"neutral"}`,t.size==="sm"?`${e}--sm`:"",n||"",t.className||""].filter(Boolean).join(" ")}function Yg(e){return{"--af-chip-hue":_b(e.tone,e.hue)}}function bb(e){return r.jsxs("span",{className:Qg("af-chip",e,e.onRemove?"af-chip--removable":""),style:Yg(e),title:e.title,children:[r.jsx("span",{className:"af-chip__label",children:e.children}),e.onRemove?r.jsx("button",{type:"button",className:"af-chip__remove","aria-label":e.removeLabel||"Remove",onClick:t=>{var n;t.stopPropagation(),(n=e.onRemove)==null||n.call(e)},children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.6",strokeLinecap:"round",children:[r.jsx("path",{d:"M18 6L6 18"}),r.jsx("path",{d:"M6 6l12 12"})]})}):null]})}function xb(e){return r.jsx("button",{type:"button",className:Qg("af-chip",e,"af-chip--button"),style:Yg(e),title:e.title,onClick:e.onClick,"aria-pressed":typeof e.pressed=="boolean"?e.pressed:void 0,"aria-expanded":typeof e.expanded=="boolean"?e.expanded:void 0,"aria-label":e.ariaLabel,disabled:e.disabled,tabIndex:e.tabIndex,children:r.jsx("span",{className:"af-chip__label",children:e.children})})}function kb(e){const t=e.closeOnEscape!==!1,n=y.useRef(null);return y.useEffect(()=>{if(!e.open||!t)return;const a=i=>{i.key!=="Escape"||i.defaultPrevented||(i.preventDefault(),e.onClose())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[e.open,t,e.onClose]),y.useEffect(()=>{const a=n.current;a&&(e.open?a.removeAttribute("inert"):a.setAttribute("inert",""))},[e.open]),r.jsxs(r.Fragment,{children:[e.backdrop&&e.open?r.jsx("div",{className:"af-drawer-backdrop","aria-hidden":"true",onClick:e.onClose,style:{top:e.topOffset||0}}):null,r.jsxs("div",{ref:n,className:`af-drawer${e.side==="left"?" af-drawer--left":""}${e.topOffset?" af-drawer--offset":""}${e.open?" af-drawer--open":""}${e.className?` ${e.className}`:""}`,style:{width:e.width||420,top:e.topOffset||0,display:e.open?void 0:"none"},role:"complementary","aria-label":e.label,"aria-hidden":e.open?void 0:!0,children:[e.title!==void 0?r.jsxs("div",{className:"af-drawer__header",children:[r.jsx("div",{className:"af-drawer__title",children:e.title}),r.jsxs("div",{className:"af-drawer__header-actions",children:[e.headerActions,r.jsx("button",{type:"button",className:"af-drawer__close","aria-label":"Close panel",onClick:e.onClose,children:"×"})]})]}):null,r.jsx("div",{className:"af-drawer__body",children:e.children})]})]})}const jb=["a[href]","area[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","iframe","summary",'[contenteditable="true"]','[tabindex]:not([tabindex="-1"])'].join(", ");function Sb(e,t,n,a){if(e.length===0)return null;const i=e[0],c=e[e.length-1];return a?n&&t===i?c:!n&&t===c?i:null:n?c:i}function Nb(e){for(let t=e.parentElement;t;t=t.parentElement){if(t.tagName.toUpperCase()!=="DETAILS"||t.hasAttribute("open"))continue;if(!(e.tagName.toUpperCase()==="SUMMARY"&&e.parentElement===t))return!0}return!1}function Dd(e){return Array.from(e.querySelectorAll(jb)).filter(n=>!(typeof n.closest=="function"&&n.closest("[hidden], [inert], [aria-hidden='true']")||Nb(n)||typeof n.getClientRects=="function"&&n.getClientRects().length===0))}const _p=new WeakMap;function Cb(e,t){const n=t.document||e.ownerDocument,a=e.querySelector(".af-modal")||e,i=n.activeElement,c=_p.get(n)||[];_p.set(n,c),c.push(e);const u=t.lockScroll!==!1;u&&n.documentElement.classList.add("af-modal-open");const d=()=>{const x=a.querySelector(".af-modal__body"),j=t.initialFocus||a.querySelector("[data-af-autofocus], [autofocus]")||(x?Dd(x)[0]:void 0)||Dd(a)[0]||a;j===a&&!a.hasAttribute("tabindex")&&a.setAttribute("tabindex","-1"),j.focus({preventScroll:!0})};d();const f=()=>c[c.length-1]===e,m=x=>{if(!f())return;if(x.key==="Escape"||x.key==="Esc"){if(x.defaultPrevented||t.closeOnEscape===!1)return;x.preventDefault(),t.onClose();return}if(x.key!=="Tab")return;const j=Dd(a),S=n.activeElement,E=!!S&&a.contains(S);if(j.length===0){x.preventDefault(),a.focus({preventScroll:!0});return}const N=Sb(j,S,x.shiftKey,E&&S!==a);N&&(x.preventDefault(),N.focus({preventScroll:!0}))},p=x=>{if(!f())return;const j=x.target;j&&!a.contains(j)&&d()};let w=!1;const _=x=>{w=x.target===e},b=x=>{const j=x.target===e&&w;w=!1,!(!j||!f()||t.closeOnBackdrop===!1)&&t.onClose()};n.addEventListener("keydown",m,!0),n.addEventListener("focusin",p,!0),e.addEventListener("mousedown",_),e.addEventListener("click",b);let A=!1;return()=>{if(A)return;A=!0,n.removeEventListener("keydown",m,!0),n.removeEventListener("focusin",p,!0),e.removeEventListener("mousedown",_),e.removeEventListener("click",b);const x=c.lastIndexOf(e);x>=0&&c.splice(x,1),u&&c.length===0&&n.documentElement.classList.remove("af-modal-open"),i&&typeof i.focus=="function"&&i.isConnected!==!1&&i.focus({preventScroll:!0})}}function Eb(e){const t=y.useId().replace(/:/g,""),n=e.id||`af-modal-${t}`,a=y.useRef(null),i=y.useRef(e.onClose);if(i.current=e.onClose,y.useEffect(()=>{if(!(!e.open||!a.current))return Cb(a.current,{onClose:()=>i.current(),closeOnEscape:e.closeOnEscape!==!1,closeOnBackdrop:e.closeOnBackdrop!==!1,initialFocus:e.initialFocusRef?e.initialFocusRef.current:null})},[e.open]),!e.open)return null;const c=r.jsx("div",{className:"af-modal-backdrop",ref:a,children:r.jsxs("div",{className:`af-modal${e.size==="narrow"?" af-modal--narrow":e.size==="wide"?" af-modal--wide":""}${e.className?` ${e.className}`:""}`,id:n,role:"dialog","aria-modal":"true","aria-labelledby":`${n}-title`,"aria-describedby":e.describedBy,children:[r.jsxs("div",{className:"af-modal__header",children:[r.jsx("h2",{className:"af-modal__title",id:`${n}-title`,children:e.title}),r.jsx("button",{type:"button",className:"af-modal__close","aria-label":e.closeLabel||"Close",onClick:()=>i.current(),children:r.jsx("span",{"aria-hidden":"true",children:"×"})})]}),r.jsx("div",{className:"af-modal__body",children:e.children}),e.footer!==void 0||e.footerNote!==void 0?r.jsxs("div",{className:"af-modal__footer",children:[e.footerNote!==void 0?r.jsx("p",{className:"af-modal__footer-note",children:e.footerNote}):null,e.footer]}):null]})});return e.portal!==!1&&typeof document<"u"&&!!document.body?zc.createPortal(c,document.body):c}function Ab(e,t,n,a=4,i=8){let c=e.bottom+a,u=!1;if(c+t.height>n.height-i){const m=e.top-a-t.height;(m>=i||e.top>n.height-e.bottom)&&(c=m,u=!0)}let d=e.left,f=!1;return d+t.width>n.width-i&&(d=e.right-t.width,f=!0),d=Math.max(i,Math.min(d,n.width-i-t.width)),c=Math.max(i,c),{top:Math.round(c),left:Math.round(d),up:u,leftward:f}}let bp=0;function $b(e,t,n={}){if(!e||!t)throw new Error("bindAfMenu: button and menu are required");const a=n.document||e.ownerDocument,i=a.defaultView||globalThis;t.getAttribute("id")||(bp+=1,t.setAttribute("id",`af-menu-${bp}`)),e.setAttribute("aria-haspopup","menu"),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-controls",String(t.getAttribute("id"))),t.setAttribute("role","menu"),t.hidden=!0;const c=()=>{const N=Array.from(t.querySelectorAll(".af-menu__item")),C=N.filter($=>!$.hidden&&!$.hasAttribute("disabled"));for(const $ of N)$.setAttribute("role","menuitem"),$.setAttribute("tabindex","-1");return C};c();let u=!1;const d=()=>{if(!u)return;const N=e.getBoundingClientRect(),C=t.getBoundingClientRect(),$=Ab(N,{width:C.width,height:C.height},{width:i.innerWidth,height:i.innerHeight});t.style.top=`${$.top}px`,t.style.left=`${$.left}px`,t.setAttribute("data-placement",`${$.up?"top":"bottom"}-${$.leftward?"end":"start"}`)},f=N=>{const C=c();if(!C.length)return;const $=(N%C.length+C.length)%C.length;C[$].focus({preventScroll:!0})},m=N=>{u||(u=!0,t.hidden=!1,e.setAttribute("aria-expanded","true"),d(),f(N),a.addEventListener("pointerdown",w,!0),a.addEventListener("mousedown",w,!0),i.addEventListener("scroll",d,!0),i.addEventListener("resize",_),i.addEventListener("keydown",x,!0),n.onOpen&&n.onOpen())},p=N=>{u&&(u=!1,t.hidden=!0,e.setAttribute("aria-expanded","false"),a.removeEventListener("pointerdown",w,!0),a.removeEventListener("mousedown",w,!0),i.removeEventListener("scroll",d,!0),i.removeEventListener("resize",_),i.removeEventListener("keydown",x,!0),N&&e.focus({preventScroll:!0}),n.onClose&&n.onClose())};function w(N){const C=N.target;C&&(t.contains(C)||e.contains(C))||p(!1)}function _(){p(!1)}const b=N=>{N.preventDefault(),u?p(!0):m(0)},A=N=>{N.key==="ArrowDown"||(N.key==="Enter"||N.key===" ")&&!u?(N.preventDefault(),m(0)):N.key==="ArrowUp"&&(N.preventDefault(),m(-1))},x=N=>{if(!u||N.key!=="Escape"&&N.key!=="Esc")return;const C=N.target;C&&C!==e&&!t.contains(C)&&C!==a.body||(N.preventDefault(),p(!0))},j=N=>{if(!u)return;const $=c().indexOf(a.activeElement);N.key==="ArrowDown"?(N.preventDefault(),f($+1)):N.key==="ArrowUp"?(N.preventDefault(),f($<0?-1:$-1)):N.key==="Home"?(N.preventDefault(),f(0)):N.key==="End"?(N.preventDefault(),f(-1)):N.key==="Tab"&&p(!1)},S=N=>{const C=N.target,$=C&&typeof C.closest=="function"?C.closest(".af-menu__item"):null;if(!$||!t.contains($))return;const R=a.activeElement,D=!R||R===a.body||t.contains(R);p(D)};e.addEventListener("click",b),e.addEventListener("keydown",A),t.addEventListener("keydown",j),t.addEventListener("click",S);let E=!1;return()=>{E||(E=!0,p(!1),e.removeEventListener("click",b),e.removeEventListener("keydown",A),t.removeEventListener("keydown",j),t.removeEventListener("click",S))}}function Xg(e){const t=y.useRef(null),n=y.useRef(null),a=e.items.filter(c=>c&&!c.hidden),i=a.length>0;return y.useEffect(()=>{if(!(!i||!t.current||!n.current))return $b(t.current,n.current)},[i]),i?r.jsxs("div",{className:`af-menu${e.className?` ${e.className}`:""}`,children:[r.jsx("button",{type:"button",ref:t,className:`af-menu__button${e.buttonClassName?` ${e.buttonClassName}`:""}`,"aria-label":e.label,title:e.title,"aria-haspopup":"menu","aria-expanded":"false",children:e.buttonContent!==void 0?e.buttonContent:r.jsx("span",{"aria-hidden":"true",children:"⋯"})}),r.jsx("div",{className:"af-menu__list",role:"menu",ref:n,hidden:!0,children:a.map(c=>r.jsx("button",{type:"button",role:"menuitem",tabIndex:-1,"data-menu-id":c.id,className:`af-menu__item${c.danger?" af-menu__item--danger":""}`,onClick:()=>c.onSelect(),children:c.label},c.id))})]}):null}const Tb={name:"AbstractFramework",website:"https://abstractframework.ai",github_org:"https://github.com/lpalbou",author:"Laurent-Philippe Albou, PhD",years:"2023-2026",license:"MIT",copyright:"© 2023-2026 Laurent-Philippe Albou, PhD. Released under the MIT License.",contact_email:"contact@abstractframework.ai"},Rb={abstractframework:{name:"AbstractFramework",website:"https://abstractframework.ai",repo:"https://github.com/lpalbou/AbstractFramework",docs:"https://github.com/lpalbou/AbstractFramework/tree/main/docs",issues:"https://github.com/lpalbou/AbstractFramework/issues",feedback:"https://github.com/lpalbou/AbstractFramework/issues/new?labels=feedback"},abstractgateway:{name:"AbstractGateway",website:"https://abstractframework.ai/gateway",repo:"https://github.com/lpalbou/AbstractGateway",docs:"https://www.lpalbou.info/AbstractGateway/",issues:"https://github.com/lpalbou/AbstractGateway/issues",feedback:"https://github.com/lpalbou/AbstractGateway/issues/new?labels=feedback"},abstractcode:{name:"AbstractCode",website:"https://abstractframework.ai/code",repo:"https://github.com/lpalbou/AbstractCode",docs:"https://github.com/lpalbou/AbstractCode/tree/main/docs",issues:"https://github.com/lpalbou/AbstractCode/issues",feedback:"https://github.com/lpalbou/AbstractCode/issues/new?labels=feedback"},abstractassistant:{name:"AbstractAssistant",website:"https://abstractframework.ai/assistant",repo:"https://github.com/lpalbou/AbstractAssistant",docs:"https://github.com/lpalbou/AbstractAssistant/blob/main/docs/README.md",issues:"https://github.com/lpalbou/AbstractAssistant/issues",feedback:"https://github.com/lpalbou/AbstractAssistant/issues/new?labels=feedback"},abstractflow:{name:"AbstractFlow",website:"https://abstractframework.ai/flow",repo:"https://github.com/lpalbou/AbstractFlow",docs:"https://github.com/lpalbou/AbstractFlow#readme",issues:"https://github.com/lpalbou/AbstractFlow/issues",feedback:"https://github.com/lpalbou/AbstractFlow/issues/new?labels=feedback"},abstractcontinuum:{name:"AbstractContinuum",website:"https://abstractframework.ai",repo:"https://github.com/lpalbou/AbstractContinuum",docs:"https://github.com/lpalbou/AbstractContinuum/tree/main/docs",issues:"https://github.com/lpalbou/AbstractContinuum/issues",feedback:"https://github.com/lpalbou/AbstractContinuum/issues/new?labels=feedback"},abstractentity:{name:"AbstractEntity",website:"https://abstractframework.ai",repo:"https://github.com/lpalbou/AbstractEntity",docs:"https://github.com/lpalbou/AbstractEntity/tree/main/docs",issues:"https://github.com/lpalbou/AbstractEntity/issues",feedback:"https://github.com/lpalbou/AbstractEntity/issues/new?labels=feedback"},abstractobserver:{name:"AbstractObserver",website:"https://abstractframework.ai/observer",repo:"https://github.com/lpalbou/AbstractObserver",docs:"https://github.com/lpalbou/AbstractObserver#readme",issues:"https://github.com/lpalbou/AbstractObserver/issues",feedback:"https://github.com/lpalbou/AbstractObserver/issues/new?labels=feedback"},abstractcore:{name:"AbstractCore",website:"https://www.abstractcore.ai",repo:"https://github.com/lpalbou/AbstractCore",docs:"https://github.com/lpalbou/AbstractCore/tree/main/docs",issues:"https://github.com/lpalbou/AbstractCore/issues",feedback:"https://github.com/lpalbou/AbstractCore/issues/new?labels=feedback"},abstractuic:{name:"AbstractUIC",website:"https://abstractframework.ai",repo:"https://github.com/lpalbou/AbstractUIC",docs:"https://github.com/lpalbou/AbstractUIC/tree/main/docs",issues:"https://github.com/lpalbou/AbstractUIC/issues",feedback:"https://github.com/lpalbou/AbstractUIC/issues/new?labels=feedback"}},Ib={framework:Tb,apps:Rb},Sc=Ib;function qg(){return{...Sc.framework}}function Mb(){return Object.keys(Sc.apps).sort()}function Lb(e,t){const n=Object.prototype.hasOwnProperty.call(Sc.apps,e)?Sc.apps[e]:void 0;if(!n)throw new Error(`appIdentity: unknown application id "${e}" (known: ${Mb().join(", ")})`);return{id:e,name:n.name,version:t,website:n.website,repo:n.repo,docs:n.docs,issues:n.issues,feedback:n.feedback}}function ho(e){return typeof e=="string"?e.trim():""}function xp(e,t){if(t!=null)return{framework:null,gateway:null,gatewayNote:`unavailable (${String(t).trim()||"unknown error"})`};const n=e&&typeof e=="object"&&!Array.isArray(e)?e:{},a=ho(n.abstractgateway),i=ho(n.abstractframework);return{framework:i||null,gateway:a||null,...a&&!i?{frameworkNote:"not installed on the gateway host"}:{},...a?{}:{gatewayNote:"unavailable (the gateway did not report its version)"}}}function Ob(e){const t=qg();return[{id:"website",label:"Website",href:e.website,title:e.website},{id:"source",label:"Source",href:e.repo,title:e.repo},{id:"docs",label:"Docs",href:e.docs,title:e.docs},{id:"issues",label:"Issues",href:e.issues,title:e.issues},{id:"feedback",label:"Feedback",href:e.feedback,title:e.feedback},{id:"contact",label:"Contact",href:`mailto:${t.contact_email}`,title:t.contact_email}]}function Pb(e){const t=e||{},n=ho(t.framework),a=ho(t.gateway);return[["AbstractFramework",n||ho(t.frameworkNote)||"not reported"],["AbstractGateway",a||ho(t.gatewayNote)||"not connected"]]}const Db='a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])';function Zg(e,t,n){if(e.key!=="Tab"||!t)return;const a=Array.from(t.querySelectorAll(Db));if(a.length===0){e.preventDefault();return}const i=a[0],c=a[a.length-1],u=!!n&&t.contains(n);e.shiftKey?(n===i||!u)&&(e.preventDefault(),c.focus()):(n===c||!u)&&(e.preventDefault(),i.focus())}function Fb(e){const t=qg();return r.jsxs("div",{className:`af-about-card${e.className?` ${e.className}`:""}`,"data-app":e.identity.id,children:[r.jsxs("div",{className:"af-about-card__head",children:[r.jsxs("h2",{className:"af-about-card__name",id:e.titleId,children:[e.identity.name," ",r.jsx("span",{className:"af-about-card__version",children:e.identity.version})]}),e.action]}),r.jsx("dl",{className:"af-about-card__versions",children:Pb(e.versions).map(([n,a])=>r.jsxs("div",{className:"af-about-card__fact",children:[r.jsx("dt",{children:n}),r.jsx("dd",{children:a})]},n))}),r.jsx("nav",{className:"af-about-card__links","aria-label":`${e.identity.name} links`,children:Ob(e.identity).map(n=>n.href.startsWith("mailto:")?r.jsx("a",{className:"af-about-card__link","data-link":n.id,href:n.href,title:n.title,children:n.label},n.id):r.jsx("a",{className:"af-about-card__link","data-link":n.id,href:n.href,title:n.title,target:"_blank",rel:"noopener noreferrer",children:n.label},n.id))}),r.jsx("p",{className:"af-about-card__legal",children:t.copyright})]})}function zb(e){_o();const t=y.useRef(null),n=y.useRef(null),a=y.useId(),i=y.useRef(e.onClose);return i.current=e.onClose,y.useEffect(()=>{var d;if(!e.open)return;const c=document.activeElement;(d=t.current)==null||d.focus();const u=f=>{if(!f.defaultPrevented){if(f.key==="Escape"){f.preventDefault(),i.current();return}Zg(f,n.current,document.activeElement)}};return window.addEventListener("keydown",u),()=>{window.removeEventListener("keydown",u),c&&typeof c.focus=="function"&&c.focus()}},[e.open]),e.open?r.jsx("div",{className:"af-appearance-overlay af-about-overlay",onClick:e.onClose,role:"presentation",children:r.jsx("div",{ref:n,className:"af-appearance af-about",role:"dialog","aria-modal":"true","aria-labelledby":a,onClick:c=>c.stopPropagation(),children:r.jsx(Fb,{identity:e.identity,versions:e.versions,titleId:a,action:r.jsx("button",{ref:t,type:"button",className:"af-about-card__close","data-action":"close-about",onClick:e.onClose,"aria-label":"Close","data-af-tip":"Close About",children:r.jsx(se,{name:"x",size:16})})})})}):null}function Wb(e){const{connection:t}=e,n=t.phase,a=t.signingOut===!0,[i,c]=y.useState(!1);_o();const u=e.about,d=a?"Signing out…":n==="connected"?"Disconnect":n==="loading"?"Connecting…":"Connect",f=n==="connected"?"Disconnect from gateway":n==="loading"?"Checking gateway session…":"Connect to gateway";return r.jsxs("div",{className:`af-topbar${e.className?` ${e.className}`:""}`,role:"group","aria-label":"App actions",children:[e.docs?r.jsx("button",{type:"button",className:`af-topbar__btn af-topbar__btn--docs${e.docs.open?" is-active":""}`,"aria-pressed":e.docs.open,"aria-label":e.docs.label||"Docs assistant","data-af-tip":e.docs.label||"Docs assistant",onClick:e.docs.onToggle,children:r.jsx(se,{name:"book",size:16})}):null,e.assistant?r.jsx("button",{type:"button",className:`af-topbar__btn${e.assistant.open?" is-active":""}`,"aria-pressed":e.assistant.open,"aria-label":e.assistant.label||"Open assistant","data-af-tip":e.assistant.label||"Assistant",onClick:e.assistant.onToggle,children:r.jsx(se,{name:"sparkle",size:16})}):null,e.appearance?r.jsx("button",{type:"button",className:"af-topbar__btn","aria-label":e.appearance.label||"Appearance (theme and typography)","data-af-tip":e.appearance.label||"Appearance (theme and text size)",onClick:e.appearance.onOpen,children:r.jsx(se,{name:"contrast",size:16})}):null,u?r.jsx("button",{type:"button",className:"af-topbar__btn af-topbar__btn--about","aria-label":u.label||`About ${u.identity.name}`,"data-af-tip":u.label||`About ${u.identity.name}`,"aria-haspopup":"dialog",onClick:()=>{var m;c(!0),(m=u.onOpen)==null||m.call(u)},children:r.jsx(se,{name:"info",size:16})}):null,e.extraActions,r.jsxs("button",{type:"button",className:`af-topbar__pill af-topbar__pill--${n}`,onClick:n==="connected"?t.onDisconnect:t.onConnect,disabled:a,title:f,"aria-label":f,children:[r.jsx("span",{className:`af-topbar__dot af-topbar__dot--${n}`,"aria-hidden":"true"}),r.jsx("span",{className:"af-topbar__pill-label",children:d})]}),u?r.jsx(zb,{open:i,onClose:()=>c(!1),identity:u.identity,versions:u.versions}):null]})}const vc={theme:"dark",font_scale:"md",header_density:"standard"};function Bb(e){const t=e&&typeof e=="object"?e:{};return{theme:typeof t.theme=="string"&&t.theme?t.theme:vc.theme,font_scale:typeof t.font_scale=="string"&&t.font_scale?t.font_scale:vc.font_scale,header_density:typeof t.header_density=="string"&&t.header_density?t.header_density:vc.header_density}}function Ub(e){return`af_appearance_${e}_v1`}function Vb(e,t){const n=Ub(e),a=y.useMemo(()=>({...vc,...(t==null?void 0:t.defaults)||{}}),[JSON.stringify((t==null?void 0:t.defaults)||{})]),[i,c]=y.useState(()=>{let u=a;try{const d=localStorage.getItem(n)??(t!=null&&t.legacyKey?localStorage.getItem(t.legacyKey):null);d&&(u=Bb({...a,...JSON.parse(d)}))}catch{}try{pp(u.theme),gp({font_scale:u.font_scale,header_density:u.header_density})}catch{}return u});return y.useEffect(()=>{pp(i.theme),gp({font_scale:i.font_scale,header_density:i.header_density});try{localStorage.setItem(n,JSON.stringify(i))}catch{}},[n,i]),[i,c]}function Hb(e){return y.useEffect(()=>{if(!e.open)return;const t=n=>{n.key!=="Escape"||n.defaultPrevented||(n.preventDefault(),e.onClose())};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e.open,e.onClose]),e.open?r.jsx("div",{className:"af-appearance-overlay",onClick:e.onClose,role:"presentation",children:r.jsxs("div",{className:"af-appearance",role:"dialog","aria-modal":"true","aria-label":e.title||"Appearance",onClick:t=>t.stopPropagation(),children:[r.jsx("div",{className:"af-appearance__title",children:e.title||"Appearance"}),r.jsx("div",{className:"af-appearance__note",children:e.note||"Stored locally in this browser, per app."}),r.jsxs("div",{className:"af-appearance__grid",children:[r.jsx("label",{className:"af-appearance__label",children:"Theme"}),r.jsx(H_,{value:e.value.theme,onChange:t=>e.onChange({...e.value,theme:t})}),r.jsx("label",{className:"af-appearance__label",children:"Font size"}),r.jsx(G_,{value:e.value.font_scale,onChange:t=>e.onChange({...e.value,font_scale:t})}),r.jsx("label",{className:"af-appearance__label",children:"Header size"}),r.jsx(K_,{value:e.value.header_density,onChange:t=>e.onChange({...e.value,header_density:t})})]}),r.jsx("div",{className:"af-appearance__actions",children:r.jsx("button",{type:"button",className:"af-appearance__close",onClick:e.onClose,children:"Close"})})]})}):null}function df(e){return e?[e.provider,e.model].map(t=>String(t||"").trim()).filter(Boolean).join(" / "):""}function kp(e,t,n=!1){if(n)return"unknown";if(!e)return"";const a=e[t];return!a||!a.configured?"not set":df(a)||"not set"}function Gb(e,t){var n;return e.stt_provider?df({provider:e.stt_provider,model:e.stt_model}):(n=t==null?void 0:t.stt)!=null&&n.configured?df(t.stt):""}function ey(e,t){return`${Math.max(0,Math.floor((t-e)/1e3))} s`}function Kb(e,t,n){return`Transcribing… ${ey(e,t)}${n?` · ${n}`:""}`}const Uc=()=>{var e;return(e=globalThis.navigator)==null?void 0:e.mediaDevices};function ff(e){var i;const t=Bc("the microphone");if(t)return t;const n=String((e==null?void 0:e.name)||"");if(n==="NotAllowedError"||n==="SecurityError"||n==="PermissionDeniedError")return"The browser blocked the microphone. Allow it for this site (the icon left of the address), then try again.";if(n==="NotFoundError"||n==="DevicesNotFoundError")return"No microphone was found. Connect one, then try again.";if(n==="OverconstrainedError")return"The chosen microphone is not connected. Pick another one in Settings → Voice.";if(n==="NotReadableError"||n==="TrackStartError")return"Another app is using the microphone. Close it, then try again.";if(!((i=Uc())!=null&&i.getUserMedia))return"This browser cannot record audio.";const a=String((e==null?void 0:e.message)||e||"").trim();return a?`The microphone did not start: ${a.replace(/\.$/,"")}.`:"The microphone did not start."}async function Jb(e){const t=Uc();if(!t||typeof t.enumerateDevices!="function")return{devices:[],labelled:!1};const a=(await t.enumerateDevices()).filter(u=>u.kind===e),i=a.some(u=>!!u.label);return{devices:a.filter(u=>u.deviceId&&u.deviceId!=="default"&&u.deviceId!=="communications").map((u,d)=>({id:String(u.deviceId),label:String(u.label||`${e==="audioinput"?"Microphone":"Speaker"} ${d+1}`)})),labelled:i}}async function Qb(){const e=Uc();if(!(e!=null&&e.getUserMedia))throw new Error(Bc("the microphone")||"This browser cannot record audio.");(await e.getUserMedia({audio:!0})).getTracks().forEach(n=>n.stop())}async function ty(e){const t=Uc();if(!(t!=null&&t.getUserMedia))throw Object.assign(new Error("This browser cannot record audio."),{name:"NotSupportedError"});return t.getUserMedia({audio:e?{deviceId:{exact:e}}:!0})}function Vc(){const e=globalThis;return e.AudioContext||e.webkitAudioContext||null}function ny(){const e=Vc();return!!(e&&e.prototype&&typeof e.prototype.createMediaStreamDestination=="function")}function Yb(e,t,n=1){const a=Vc();if(!a)return()=>{};const i=new a,c=i.createMediaStreamSource(e),u=i.createAnalyser();u.fftSize=1024,c.connect(u);const d=new Float32Array(u.fftSize);let f=!0;const p=setInterval(()=>{if(!f)return;u.getFloatTimeDomainData(d);let w=0;for(let _=0;_<d.length;_+=1)w+=d[_]*d[_];t(Math.min(1,Math.sqrt(w/d.length)*4*n))},50);return()=>{var w;f=!1,clearInterval(p);try{c.disconnect()}catch{}(w=i.close)==null||w.call(i)}}const Xb=.02;async function qb(e){var c;const t=globalThis.MediaRecorder;if(typeof t!="function")throw Object.assign(new Error("This browser cannot record audio."),{name:"NotSupportedError"});const n=await ty(e.deviceId);let a=0;const i=Yb(n,u=>{var d;a=Math.max(a,u),(d=e.onLevel)==null||d.call(e,u)},e.gain??1);try{const u=new t(n),d=[],f=new Promise((p,w)=>{u.ondataavailable=_=>(_==null?void 0:_.data)&&d.push(_.data),u.onstop=()=>p(),u.onerror=_=>w((_==null?void 0:_.error)||new Error("Recording failed."))});u.start(),await new Promise(p=>{var _;const w=setTimeout(p,e.ms??3e3);(_=e.signal)==null||_.addEventListener("abort",()=>{clearTimeout(w),p()},{once:!0})}),u.stop(),await f;const m=String(u.mimeType||"audio/webm");return{blob:new Blob(d,{type:m}),peak:a,mime:m}}finally{i(),n.getTracks().forEach(u=>u.stop()),(c=e.onLevel)==null||c.call(e,0)}}async function Zb(e,t={}){var i;const n=Vc();if(!n)throw new Error("This browser cannot play audio.");const a=new n;try{t.deviceId&&typeof a.setSinkId=="function"&&await a.setSinkId(t.deviceId);const c=e instanceof Blob?await e.arrayBuffer():e,u=await a.decodeAudioData(c.slice(0)),d=a.createGain();d.gain.value=Pf(t.volume),d.connect(a.destination);const f=a.createBufferSource();f.buffer=u,f.connect(d),await new Promise(m=>{f.onended=()=>m(),f.start()})}finally{(i=a.close)==null||i.call(a)}}async function ex(e={}){var a,i;const t=Vc();if(!t)throw new Error("This browser cannot play audio.");const n=new t;try{e.deviceId&&typeof n.setSinkId=="function"&&await n.setSinkId(e.deviceId),n.state==="suspended"&&await((a=n.resume)==null?void 0:a.call(n));const c=n.createGain();c.connect(n.destination);const u=.3*Pf(e.volume),d=n.currentTime+.02;[660,880].forEach((f,m)=>{const p=n.createOscillator(),w=n.createGain();p.frequency.value=f,p.connect(w),w.connect(c);const _=d+m*.22;w.gain.setValueAtTime(0,_),w.gain.linearRampToValueAtTime(u,_+.02),w.gain.exponentialRampToValueAtTime(1e-4,_+.2),p.start(_),p.stop(_+.21)}),await new Promise(f=>setTimeout(f,520))}finally{(i=n.close)==null||i.call(n)}}function Pf(e){const t=Number(e);return e==null||e===""||!Number.isFinite(t)?1:Math.min(1,Math.max(0,t))}async function*tx(e){var a,i,c;const t=new AbortController,n=()=>t.abort();(a=e.signal)!=null&&a.aborted?n():(i=e.signal)==null||i.addEventListener("abort",n,{once:!0});try{const u=await fetch(e.path,{method:"POST",headers:{"Content-Type":"application/json",...e.csrfToken?{"x-abstract-csrf":e.csrfToken}:{},...e.headers||{}},body:JSON.stringify(e.body),signal:t.signal});if(!u.ok){const p=await u.json().catch(()=>null),w=p&&typeof p=="object"&&p.detail?String(p.detail):`HTTP ${u.status}`;throw new Error(w)}if(!u.body)throw new Error("TTS stream has no body");const d=u.body.getReader(),f=new TextDecoder;let m="";for(;;){const{done:p,value:w}=await d.read();m+=p?f.decode():f.decode(w,{stream:!0}),p&&m.trim()&&(m+=`
|
|
42
|
-
`);let _;for(;(_=m.indexOf(`
|
|
43
|
-
`))>=0;){const b=m.slice(0,_).trim();if(m=m.slice(_+1),!b)continue;let A=null;try{A=JSON.parse(b)}catch{throw new Error("TTS stream returned invalid JSON.")}if(A&&A.type==="error")throw new Error(String(A.error||"TTS stream error"));const x=A&&typeof A.audio_b64=="string"?A.audio_b64:"";if(x){const j=atob(x),S=new Uint8Array(j.length);for(let E=0;E<j.length;E+=1)S[E]=j.charCodeAt(E);yield S.buffer}if(A&&(A.type==="done"||A.type==="cancelled"))return}if(p)throw new Error("TTS stream ended before synthesis completed.")}}finally{(c=e.signal)==null||c.removeEventListener("abort",n),t.abort()}}function fi(e,t){const n=String((t==null?void 0:t.message)||t||"").trim().replace(/\.$/,"");return n?`${e}: ${n}.`:`${e}.`}const nx=350;function sx(){var t;if(typeof window>"u")return!1;const e=navigator;return!!((t=e==null?void 0:e.mediaDevices)!=null&&t.getUserMedia)&&typeof window.MediaRecorder=="function"}function rx(){if(typeof window>"u")return!1;const e=window;return!!(e!=null&&e.AudioContext||e!=null&&e.webkitAudioContext)}function ax(){const e=window.MediaRecorder,t=a=>{var i;try{return!!((i=e==null?void 0:e.isTypeSupported)!=null&&i.call(e,a))}catch{return!1}},n=["audio/webm;codecs=opus","audio/webm","audio/mp4","audio/ogg;codecs=opus","audio/ogg"];for(const a of n)if(t(a))return a;return""}async function Fd(e,t){var i;const n=t.slice(0),a=(i=e.decodeAudioData)==null?void 0:i.bind(e);if(typeof a!="function")throw new Error("decodeAudioData not available");try{const c=a(n);if(c&&typeof c.then=="function")return await c}catch{}return await new Promise((c,u)=>{try{a(n,c,u)}catch(d){u(d)}})}function ox(e){const t=new Uint8Array(e);if(t.length<44)return null;const n=c=>String.fromCharCode(t[c],t[c+1],t[c+2],t[c+3]);if(n(0)!=="RIFF"||n(8)!=="WAVE")return null;const a=new DataView(e);let i=12;for(;i+8<=t.length;){const c=n(i),u=a.getUint32(i+4,!0);if(c==="data")return t.slice(0,i+8);i+=8+u+u%2}return null}function ix(e,t){const n=new Uint8Array(t),a=new Uint8Array(e.length+n.length);a.set(e,0),a.set(n,e.length);const i=new DataView(a.buffer);return i.setUint32(4,a.length-8,!0),i.setUint32(e.length-4,n.length,!0),a.buffer}function lx(){const e=globalThis,t=e==null?void 0:e.AudioContext;return!!(t&&t.prototype&&typeof t.prototype.setSinkId=="function")}const oc=new WeakMap;function cx(e,t){const n=e;if(!(typeof n.setSinkId!="function"||oc.get(e)===t)){oc.set(e,t);try{Promise.resolve(n.setSinkId(t)).catch(()=>oc.delete(e))}catch{oc.delete(e)}}}function ux(e){const t=y.useRef(e);t.current=e;const n=ie=>{var ee,Ne;return(Ne=(ee=t.current).on_error)==null?void 0:Ne.call(ee,ie)},a=y.useMemo(()=>rx()&&(typeof e.tts=="function"||typeof e.tts_stream=="function"),[e.tts,e.tts_stream]),i=y.useMemo(()=>sx()&&typeof e.transcribe=="function",[e.transcribe]),[c,u]=y.useState({key:"",status:"idle"}),d=y.useRef(c),f=y.useCallback(ie=>{d.current=ie,u(ee=>ee.key===ie.key&&ee.status===ie.status?ee:ie)},[]),m=y.useRef(""),p=y.useRef(""),w=y.useRef(null),_=y.useRef(null),b=y.useRef(null),A=y.useRef(null),x=y.useRef(0),j=y.useRef(0),S=y.useRef(0),E=y.useRef(null),N=y.useRef([]),C=y.useRef(0),$=y.useRef(!0),R=y.useRef(!1),D=()=>{try{const ie=globalThis,ee=(ie==null?void 0:ie.AudioContext)||(ie==null?void 0:ie.webkitAudioContext);if(!ee)return null;if(!w.current){const pe=new ee,_e=pe.createGain();_e.gain.value=1,_e.connect(pe.destination),w.current=pe,_.current=_e}const Ne=w.current,X=_.current;if(!Ne||!X)return null;cx(Ne,t.current.output_device_id||""),X.gain.value=Pf(t.current.volume);try{Ne.state==="suspended"&&Ne.resume()}catch{}return{ctx:Ne,gain:X}}catch{return null}},M=y.useCallback(()=>{const ie=b.current;if(b.current=null,!!ie){try{ie.onended=null}catch{}try{ie.stop()}catch{}try{ie.disconnect()}catch{}}},[]),J=y.useCallback(()=>{var ie;M(),S.current+=1,(ie=E.current)==null||ie.abort(),E.current=null,N.current=[],C.current=0,$.current=!0,R.current=!1,p.current="",m.current="",A.current=null,x.current=0,j.current=0,f({key:"",status:"idle"})},[M,f]);y.useEffect(()=>()=>{var ie,ee;J();try{(ie=_.current)==null||ie.disconnect()}catch{}try{(ee=w.current)==null||ee.close()}catch{}w.current=null,_.current=null,A.current=null},[]);const V=async(ie,ee,Ne)=>{const X=S.current,pe=D();if(!pe)throw new Error("TTS playback is not supported in this browser");const{ctx:_e,gain:ye}=pe;try{_e.state==="suspended"&&await _e.resume()}catch{}if(X!==S.current)return;M();const Oe=_e.createBufferSource();Oe.buffer=ee,Oe.connect(ye);const Be=Number.isFinite(Number(ee.duration))?Number(ee.duration):0,Ke=Math.max(0,Math.min(Number(Ne||0),Be>0?Math.max(0,Be-.01):0));j.current=_e.currentTime-Ke,x.current=Ke,b.current=Oe,m.current=ie,Oe.onended=()=>{b.current===Oe&&(b.current=null,x.current=0,j.current=0,m.current="",f({key:"",status:"idle"}))},Oe.start(0,Ke),f({key:ie,status:"playing"})},O=(ie,ee)=>{if(ee!==S.current)return;const Ne=D();if(!Ne)return;const X=N.current,pe=C.current;if(pe>=X.length){$.current&&(m.current="",x.current=0,j.current=0,f({key:"",status:"idle"}));return}const _e=X[pe],{ctx:ye,gain:Oe}=Ne;M();const Be=ye.createBufferSource();Be.buffer=_e,Be.connect(Oe);const Ke=Number.isFinite(Number(_e.duration))?Number(_e.duration):0,xe=Math.max(0,Math.min(Number(x.current||0),Ke>0?Math.max(0,Ke-.01):0));j.current=ye.currentTime-xe,b.current=Be,m.current=ie,Be.onended=()=>{ee===S.current&&b.current===Be&&(b.current=null,C.current=pe+1,x.current=0,O(ie,ee))};try{ye.state==="suspended"&&ye.resume()}catch{}Be.start(0,xe),f({key:ie,status:"playing"})},te=async(ie,ee,Ne)=>{var Oe;const X=D();if(!X){n==null||n("This browser cannot play spoken replies.");return}M();const pe=++S.current;(Oe=E.current)==null||Oe.abort();const _e=new AbortController;E.current=_e,N.current=[],C.current=0,$.current=!1,R.current=!1,A.current=null,x.current=0,j.current=0,m.current=ie,p.current=ie,f({key:ie,status:"loading"}),n==null||n("");let ye=null;try{for await(const Be of Ne(ee,_e.signal)){if(pe!==S.current)return;let Ke;try{Ke=await Fd(X.ctx,Be),ye||(ye=ox(Be))}catch{if(!ye)continue;try{Ke=await Fd(X.ctx,ix(ye,Be))}catch{continue}}if(pe!==S.current)return;N.current.push(Ke),!b.current&&!R.current&&(p.current="",O(ie,pe))}if(pe!==S.current)return;if($.current=!0,N.current.length===0){n==null||n("Reading aloud failed: the voice engine returned no audio."),J();return}!b.current&&!R.current&&O(ie,pe)}catch(Be){if(pe!==S.current)return;n==null||n(fi("Reading aloud failed",Be)),J()}finally{E.current===_e&&(E.current=null)}},P=y.useCallback(async(ie,ee)=>{var xe;const Ne=String(ie||"").trim(),X=String(ee||"").trim();if(!Ne||!X)return;const pe=t.current.tts,_e=t.current.tts_stream;if(typeof pe!="function"&&typeof _e!="function"){n==null||n("Reading aloud is not available on this gateway.");return}const ye=D();if(!ye){n==null||n("This browser cannot play spoken replies.");return}const Oe=d.current,Be=Oe.key===Ne;if(Be&&Oe.status==="playing"){if(b.current){const Ye=Math.max(0,ye.ctx.currentTime-Number(j.current||0));x.current=Ye}else x.current=0;R.current=!0,M(),f({key:Ne,status:"paused"});return}if(Be&&Oe.status==="paused"){if(N.current.length>0){n==null||n(""),R.current=!1,f({key:Ne,status:"playing"}),O(Ne,S.current);return}const Ye=A.current;if(Ye){n==null||n(""),R.current=!1;try{await V(Ne,Ye,x.current)}catch(Yt){n==null||n(fi("Reading aloud failed",Yt)),f({key:"",status:"idle"})}return}}if(Be&&Oe.status==="loading")return;if(typeof _e=="function"){await te(Ne,X,_e);return}M(),S.current+=1,(xe=E.current)==null||xe.abort(),E.current=null;const Ke=S.current;N.current=[],C.current=0,$.current=!0,R.current=!1,A.current=null,x.current=0,j.current=0,m.current=Ne,p.current=Ne,f({key:Ne,status:"loading"}),n==null||n("");try{const Ye=await pe(X);if(p.current!==Ne||S.current!==Ke)return;const Yt=await Fd(ye.ctx,Ye);if(p.current!==Ne||S.current!==Ke)return;A.current=Yt,x.current=0,await V(Ne,Yt,0)}catch(Ye){if(S.current!==Ke)return;p.current===Ne&&(p.current="",m.current="",f({key:"",status:"idle"})),n==null||n(fi("Reading aloud failed",Ye))}},[]),[Z,W]=y.useState(!1),[ne,ae]=y.useState(!1),H=y.useRef(!1),de=y.useRef(i);de.current=i;const re=y.useCallback(ie=>{H.current=ie,W(ee=>ee===ie?ee:ie)},[]),F=y.useRef(!1),I=y.useRef(null),U=y.useRef(null),fe=y.useRef([]),q=y.useRef(""),le=y.useRef(0),me=y.useRef(!1),[oe,ve]=y.useState(0),We=y.useRef(0),nt=y.useRef(null);function qe(){var ee,Ne;try{(Ne=(ee=I.current)==null?void 0:ee.getTracks)==null||Ne.call(ee).forEach(X=>{try{X.stop()}catch{}})}catch{}I.current=null;const ie=nt.current;nt.current=null;try{ie==null||ie.close()}catch{}}const $e=y.useCallback(()=>{le.current+=1,me.current=!1;const ie=U.current;if(ie){ie.onstop=null,ie.ondataavailable=null,ie.onerror=null;try{ie.stop()}catch{}}U.current=null,qe(),re(!1),F.current=!1,ae(!1),ve(0),fe.current=[]},[re]);y.useEffect(()=>()=>$e(),[$e]);async function Ue(ie,ee){var _e,ye;if(n==null||n(""),F.current)return;const Ne=We.current?Date.now()-We.current:1/0;if(!ie||!ie.size||Ne<nx){ve(0),n==null||n("The recording was too short. Hold the microphone button while you speak, or tap it once to start and again to stop.");return}const X=t.current.transcribe;if(typeof X!="function"){n==null||n("Speech to text is not available on this gateway.");return}F.current=!0;const pe=le.current;ae(!0),ve(Date.now());try{const Oe=await X(ie,ee),Be=typeof Oe=="string"||!Oe?{text:String(Oe||"")}:Oe,Ke=String(Be.text||"").trim();if(pe!==le.current)return;Ke?(ye=(_e=t.current).on_transcript)==null||ye.call(_e,Ke,{...Be,text:Ke}):n==null||n("Nothing was heard. Check the microphone in Settings → Voice (Test), then try again.")}catch(Oe){if(pe===le.current){const Be=String((Oe==null?void 0:Oe.message)||Oe||"").trim().replace(/\.$/,"");n==null||n(Be?`Transcription failed: ${Be}.`:"Transcription failed.")}}finally{pe===le.current&&(F.current=!1,ae(!1),ve(0))}}const lt=y.useCallback(async()=>{if(n==null||n(""),!de.current){n==null||n(Bc("the microphone")??"Voice recording is not supported in this browser (MediaRecorder/getUserMedia unavailable).");return}if(F.current||me.current||H.current||U.current)return;fe.current=[];const ie=le.current;me.current=!0;try{const ee=await ty(t.current.input_device_id||"");if(ie!==le.current){ee.getTracks().forEach(ye=>ye.stop());return}I.current=ee;const Ne=ax();q.current=Ne;let X=ee;const pe=Number(t.current.input_gain??1);if(Number.isFinite(pe)&&pe>0&&pe!==1&&ny()){const ye=globalThis.AudioContext||globalThis.webkitAudioContext,Oe=new ye,Be=Oe.createGain();Be.gain.value=pe;const Ke=Oe.createMediaStreamDestination();Oe.createMediaStreamSource(ee).connect(Be),Be.connect(Ke),nt.current=Oe,X=Ke.stream}const _e=Ne?new MediaRecorder(X,{mimeType:Ne}):new MediaRecorder(X);U.current=_e,_e.ondataavailable=ye=>{if(ie===le.current)try{ye!=null&&ye.data&&fe.current.push(ye.data)}catch{}},_e.onerror=()=>{ie===le.current&&(n==null||n("Recording failed. Try again, or pick another microphone in Settings → Voice."))},_e.onstop=()=>{if(ie===le.current){re(!1),qe(),U.current=null;try{const ye=new Blob(fe.current,{type:q.current||""});Ue(ye,q.current)}catch(ye){n==null||n(fi("The recording could not be prepared",ye))}}},_e.start(),We.current=Date.now(),ve(We.current),re(!0)}catch(ee){if(ie!==le.current)return;qe(),U.current=null,re(!1),ve(0),n==null||n(ff(ee))}finally{ie===le.current&&(me.current=!1)}},[]),Pe=y.useCallback(()=>{const ie=U.current;if(!(!H.current||!ie)){re(!1);try{ie.stop()}catch(ee){n==null||n(fi("The recording could not stop",ee))}}},[]);return y.useEffect(()=>{if(!Z||t.current.stop_on_pointerup===!1)return;const ie=()=>Pe();return window.addEventListener("pointerup",ie),window.addEventListener("pointercancel",ie),()=>{window.removeEventListener("pointerup",ie),window.removeEventListener("pointercancel",ie)}},[Z]),{tts_supported:a,tts_playback:c,toggle_tts:P,stop_tts:J,voice_ptt_supported:i,voice_ptt_recording:Z,voice_ptt_busy:ne,start_voice_ptt_recording:lt,stop_voice_ptt_recording:Pe,cancel_voice_ptt_recording:$e,voice_ptt_since:oe}}const ic=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?t:(t==null?void 0:t.id)||(t==null?void 0:t.name)).filter(Boolean):[];function dx({value:e,onChange:t,fetchCatalog:n,intro:a,delivery:i=!0,quality:c=!0,showReset:u=!0,defaultHint:d,voiceDefaultLabel:f}){var R,D,M,J;const m=y.useRef(n);m.current=n;const[p,w]=y.useState({}),[_,b]=y.useState(""),[A,x]=y.useState(!1);y.useEffect(()=>{let V=!0;return x(!0),w({}),b(""),m.current(e.provider,e.model).then(O=>{V&&(w(O),b(O.error?String(O.error):""))}).catch(O=>{V&&b(String((O==null?void 0:O.message)||O))}).finally(()=>{V&&x(!1)}),()=>{V=!1}},[e.provider,e.model]);const j=Array.isArray(p.items)?p.items:[...Array.isArray(p.profiles)?p.profiles.map(V=>({...V,voice_kind:"profile"})):[],...Array.isArray(p.voices)?p.voices.map(V=>({...V,voice_kind:"voice"})):[]],S=V=>JSON.stringify([V.provider||"",V.model||"",V.voice_kind==="profile"?"profile":"voice",V.id]),E=j.find(V=>V.id===(e.profile||e.voice)&&V.voice_kind==="profile"==!!e.profile&&(!e.provider||!V.provider||V.provider===e.provider)&&(!e.model||!V.model||V.model===e.model)),N=E?S(E):e.profile||e.voice?JSON.stringify([e.provider||"",e.model||"",e.profile?"profile":"voice",e.profile||e.voice]):"",C=j.filter(V=>(V==null?void 0:V.id)&&(!e.provider||!V.provider||V.provider===e.provider)).map(V=>({value:S(V),label:`${V.label||V.name||V.id}${!e.provider&&V.provider?` · ${V.provider}`:""}`}));N&&!C.some(V=>V.value===N)&&C.unshift({value:N,label:`${e.profile||e.voice} (saved)`});const $=V=>t({...e,...V});return r.jsxs("div",{className:"af-voice-settings",children:[a===void 0?r.jsx("p",{children:"Speech is generated by your authenticated Gateway. Leave routing and voice unset to use its defaults."}):a,r.jsx(Wc,{defaultHint:d,value:{provider:e.provider||"",model:e.model||""},onChange:V=>t({...e,...V,voice:"",profile:""}),fetchProviders:async()=>{const V=await m.current();if(V.error&&!ic(V.tts_providers||V.providers).length)throw new Error(V.error);return ic(V.tts_providers||V.providers).map(O=>({name:O}))},fetchModels:async V=>{var te;const O=await m.current(V);return ic(((te=O.tts_models_by_provider)==null?void 0:te[V])||O.tts_models||O.models)},providerLabel:"Speech provider",modelLabel:"Speech model"}),r.jsxs("label",{children:["Voice / profile",r.jsx(Pn,{ariaLabel:"AI voice",placeholder:f||"Gateway / provider default",value:N,disabled:A,options:[{value:"",label:f||"Gateway / provider default"},...C],onChange:V=>{if(!V){$({voice:"",profile:""});return}const[O,te,P,Z]=JSON.parse(V);$({provider:O||e.provider||"",model:te||(O&&O!==e.provider?"":e.model)||"",voice:P==="voice"?Z:"",profile:P==="profile"?Z:""})}})]}),A?r.jsx("p",{role:"status",children:"Loading available voices…"}):null,_?r.jsxs("p",{role:"alert",children:["Voice discovery unavailable: ",_,". Your saved choice is preserved."]}):null,i?r.jsxs(r.Fragment,{children:[r.jsxs("label",{children:["Speaking speed",r.jsxs("select",{"aria-label":"Speech speed",value:e.speed??"",onChange:V=>$({speed:V.target.value?Number(V.target.value):void 0}),children:[r.jsx("option",{value:"",children:"Gateway default"}),[.5,.75,1,1.25,1.5,2].map(V=>r.jsxs("option",{value:V,children:[V,"×"]},V))]})]}),c&&((D=(R=p.controls)==null?void 0:R.quality_preset)!=null&&D.supported)?r.jsxs("label",{children:["Quality",r.jsxs("select",{"aria-label":"Speech quality",value:e.quality_preset||"",onChange:V=>$({quality_preset:V.target.value}),children:[r.jsx("option",{value:"",children:"Gateway default"}),ic(p.controls.quality_preset.values).map(V=>r.jsx("option",{value:V,children:V},V))]})]}):null,(J=(M=p.controls)==null?void 0:M.instructions)!=null&&J.supported?r.jsxs("label",{children:["Delivery instructions",r.jsx("textarea",{"aria-label":"Voice delivery instructions",rows:3,placeholder:"For example: calm, clear, and conversational",value:e.instructions||"",onChange:V=>$({instructions:V.target.value})})]}):null]}):null,u?r.jsx("button",{type:"button",onClick:()=>t({}),children:"Reset to Gateway defaults"}):null]})}const zd=we("automations"),fx=we("trigger-sources"),hx=we("me/email"),mx=we("automations/schedule-preview");class jp extends Error{constructor(t){super(t.message),this.name="AutomationApiError",this.status=t.status,this.code=t.code,t.field!==void 0&&(this.field=t.field),t.command_id!==void 0&&(this.command_id=t.command_id)}}function px(e,t){const n=t&&typeof t=="object"?t.detail:void 0;if(n&&typeof n=="object"&&!Array.isArray(n)){const a=n;if(typeof a.reason_code=="string"&&a.reason_code&&typeof a.message=="string"){const i={status:e,code:a.reason_code,message:a.message};return typeof a.field=="string"&&(i.field=a.field),typeof a.command_id=="string"&&(i.command_id=a.command_id),i}}return{status:e,code:"invalid_response",message:`The gateway answered HTTP ${e} without an automation error envelope.`}}function Wd(e){const t=new URLSearchParams;for(const[a,i]of Object.entries(e))i!==void 0&&t.set(a,String(i));const n=t.toString();return n?`?${n}`:""}function gx(){return la()}function yx(e){const t=e.newId??gx,n=i=>`${zd}/${encodeURIComponent(i)}`;async function a(i,c,u){const d={accept:"application/json",...e.headers?e.headers():{}},f={method:i,headers:d};u!==void 0&&(d["content-type"]="application/json",f.body=JSON.stringify(u));const m=await e.fetch(et(e.baseUrl,c),f),p=await m.text();let w,_=!1;if(p)try{w=JSON.parse(p),_=!0}catch{_=!1}if(!m.ok)throw new jp(px(m.status,w));if(!_||w===null||typeof w!="object")throw new jp({status:m.status,code:"invalid_response",message:`The gateway answered ${i} ${c} with a body that is not a JSON object.`});return w}return{listAutomations:(i={})=>a("GET",`${zd}${Wd({status:i.status,cursor:i.cursor,limit:i.limit})}`),getAutomation:i=>a("GET",n(i)),createAutomation:i=>a("POST",zd,i),reviseAutomation:(i,c)=>a("PATCH",n(i),{command_id:c.command_id??t(),...c.expected_revision!==void 0?{expected_revision:c.expected_revision}:{},changes:c.changes}),sendAutomationCommand:(i,c)=>a("POST",`${n(i)}/commands`,{command_id:c.command_id??t(),type:c.type,...c.payload!==void 0?{payload:c.payload}:{}}),listOccurrences:(i,c={})=>a("GET",`${n(i)}/occurrences${Wd({cursor:c.cursor,limit:c.limit})}`),discuss:(i,c)=>a("POST",`${n(i)}/discuss`,{request_id:c.request_id??t(),occurrence_index:c.occurrence_index,prompt:c.prompt}),markSeen:(i,c)=>a("POST",`${n(i)}/seen`,{attention_cursor:c}),listAttention:(i,c={})=>a("GET",`${n(i)}/attention${Wd({cursor:c.cursor,limit:c.limit})}`),listTriggerSources:()=>a("GET",fx),getMyEmail:()=>a("GET",hx),previewSchedule:i=>a("POST",mx,{trigger:i})}}function Fi(e){const t=e==null?void 0:e._runtime,n=Array.isArray(t==null?void 0:t.allowed_tools)?t.allowed_tools:null,a=Array.isArray(e==null?void 0:e.tools)?e.tools:n;return Array.isArray(a)?a.filter(i=>typeof i=="string"&&(!n||n.includes(i))):null}function Hc(e,t){const n={...e},a=e._runtime&&typeof e._runtime=="object"?{...e._runtime}:{};return t===null?(delete n.tools,delete a.allowed_tools):(n.tools=[...t],a.allowed_tools=[...t]),Object.keys(a).length?n._runtime=a:delete n._runtime,n}function wx(e){const t=["prompt","tools","provider","model","temperature","seed","max_iterations","max_in_tokens","system","_limits"],n={};for(const i of t)i in e&&(n[i]=e[i]);const a=e._runtime;if(a&&typeof a=="object"){const i={};for(const c of["allowed_tools","provider","model","thinking","speculation","stream"])c in a&&(i[c]=a[c]);Object.keys(i).length&&(n._runtime=i)}return n}function hf(e){return e.flow_id==="@default"?"@default":`${"bundle_ref"in e?e.bundle_ref:""}:${e.flow_id}`}const vx={active:"Active",pause:"Pause",resume:"Resume",run_now:"Run now",stop_current:"Stop current",revise:"Edit",archive:"Archive",unarchive:"Unarchive",discuss:"Discuss"},_x={active:`On: it runs on its schedule. Off: paused, scheduled runs are skipped.
|
|
44
|
-
Pausing lets a run in progress finish, without further retries; Run now still works and keeps it paused.
|
|
45
|
-
Making it active again restarts the schedule at its next time after now; times missed while paused are skipped.`,pause:`Stop scheduled runs until you resume.
|
|
46
|
-
A run in progress finishes; a pending retry is cancelled. Run now still works.`,resume:`Restart the schedule at its next time after now.
|
|
47
|
-
Times missed while paused are skipped; resuming does not run it now.`,run_now:`Run it once now, without waiting for the schedule.
|
|
48
|
-
The schedule does not move: the next scheduled run keeps its time, or starts right after this run if its time comes first.
|
|
49
|
-
Does not count toward a run limit. Works while paused; it stays paused.
|
|
50
|
-
Not available while a run is in progress.`,stop_current:`Cancel the run in progress, or its pending retry.
|
|
51
|
-
It ends as cancelled, with no failure notice. The schedule continues.`,revise:`Change the task, schedule or settings.
|
|
52
|
-
Changes apply from the next run; a run in progress keeps its inputs. A changed schedule restarts from now, so no past time runs.`,archive:`Stop it for good: it will not run again.
|
|
53
|
-
A run in progress finishes; the history stays readable.`,unarchive:`Bring it back from the archive, paused: nothing runs until you make it active.
|
|
54
|
-
An automation that had already finished or failed keeps that status; its history is unchanged.`,discuss:`Talk about the results in a separate conversation, seeded with the runs up to this one.
|
|
55
|
-
It has its own workspace (the automation's files are read-only) and never changes the automation.`},bx="Next scheduled run: {time}.",xx="Growing context: later runs see this run in their history.",kx={run_now:{name:"playCircle"}},jx={trigger_label:"When an email arrives",not_set_up:"Connect a mailbox first — open My email",open_my_email:"open My email",filters_legend:"Only mail that matches (all optional)",from_in:"From these addresses",from_domain_in:"From these domains",to_in:"Sent to these addresses",subject_contains:"Subject contains",has_attachment:"Attachments",has_attachment_any:"any",has_attachment_yes:"only with attachments",has_attachment_no:"only without attachments",list_hint:"Separate entries with commas or new lines. Exact addresses and domains only (no patterns).",every_label:"Check for new mail every",interval_rule:"An automation that runs a model on new mail checks once an hour by default; one that needs no model checks every 60 s. The shortest interval is 60 s.",max_batch_label:"At most this many emails per run",max_batch_hint:"The rest wait for the next run. Each email is read once by this automation; mail that arrived before it was created, or while it is paused, is not processed.",untrusted_hint:"Incoming mail is data, never instructions: the automation acts only on its task. Link-opening tools (fetch_url, browser_probe) always ask for your approval.",notify_label:"Email result",notify_hint:"Email each completed run’s result to the selected recipients.",recipients_legend:"Recipients",recipients_self:"Only me (default)",recipients_list:"Me and these addresses",recipients_hint:"Separate multiple addresses with commas."},Sx={legend:"When",kind_every:"Repeat",kind_daily:"Daily",kind_weekly:"Weekly",kind_monthly:"Monthly",kind_once:"Once at…",every_label:"Every",at_label:"at",time_label:"Time of day",days_legend:"On",days:{mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat",sun:"Sun"},day_label:"on day",last_day:"last",once_label:"Run once at",time_zone_line:"in {time_zone} (your account's time zone)",time_zone_line_automation:"in {time_zone} (this automation's time zone)",time_zone_hint:"Daily, weekly, monthly and one-time runs keep this wall-clock time when daylight saving time changes. A day the month does not have (31 in April) runs on its last day. Repeat runs at a fixed interval in UTC.",time_zone_change:"Change in preferences",time_zone_change_hint:"Your account's time zone is set in your preferences; new automations use it.",time_zone_default:"Gateway default ({time_zone})",time_zone_search:"Search time zones",describing:"Checking the schedule…",incomplete:"Incomplete schedule.",error_at:"Pick the time of day (HH:MM).",error_days:"Pick at least one day.",error_day:"Pick a day of the month: 1 to 31, or last.",error_once:"Pick the date and time to run once."},Df={labels:vx,hints:_x,run_now_next_run_line:bx,run_now_growing_line:xx,icons:kx,email:jx,schedule:Sx},Nx=/^([1-9][0-9]*)([smhd])$/,Cx={s:["second","seconds"],m:["minute","minutes"],h:["hour","hours"],d:["day","days"]};function zi(e){if(typeof e!="string")return null;const t=Nx.exec(e);return t?{amount:Number(t[1]),unit:t[2]}:null}function Ex(e){const t=zi(e);if(!t)return`every ${e}`;const[n,a]=Cx[t.unit];return t.amount===1?`every ${n}`:`every ${t.amount} ${a}`}function Nc(e){if(!e)return"";const t=Date.parse(e);if(Number.isNaN(t))return e;const n=new Date(t).toISOString(),a=n.slice(17,19);return`${n.slice(0,10)} ${n.slice(11,16)}${a==="00"?"":`:${a}`} UTC`}function sy(e,t){return e.source_id==="schedule"?xy(t,e.source_version):e.source_id==="manual"&&e.source_version===1?"manual runs only":Wi(e)?dy(e.config):`${e.source_id}@${e.source_version}`}function ry(e){return e==="growing"?"Growing — each run sees the previous runs":"Independent — each run starts fresh"}const Ax={active:"Active",paused:"Paused",completed:"Completed",failed:"Failed",archived:"Archived"},He=Df.email,ay="email.received",oy=1,$x="1h",Tx="60s",iy=60,Ff=100,mf=1e3,Sp=200,Np=200,Cp=50;function Wi(e){return!!e&&e.source_id===ay&&e.source_version===oy}function zf(e){return!!e&&e.effective_enabled===!0}function ly(e){const t=[];for(const n of String(e??"").split(/[\s,;]+/)){const a=n.trim().toLowerCase();a&&!t.includes(a)&&t.push(a)}return t}const Rx=/[\s<>,;:"()[\]]/;function pf(e){const t=e.trim().toLowerCase(),n=t.indexOf("@");return n<=0||n===t.length-1?!1:!t.slice(n+1).includes("@")&&!Rx.test(t)}function Ix(e){const t=e.trim().toLowerCase();return!!t&&!t.includes("@")&&t.includes(".")&&!t.startsWith(".")&&!t.endsWith(".")&&!/[\s<>,;:"()[\]/*]/.test(t)}const Wf={usesModel:!0,every:null,maxBatch:null,fromIn:"",fromDomainIn:"",toIn:"",subjectContains:"",hasAttachment:"any"};function Bf(e){return e?$x:Tx}function cy(e){const t=zi(e);return t?t.amount*{s:1,m:60,h:3600,d:86400}[t.unit]:null}function Bd(e,t,n,a,i){const c=ly(e);if(!c.length)return null;const u=c.filter(d=>!n(d));return u.length&&i.push(`${t}: ${u.join(", ")} ${u.length===1?"is not":"are not"} ${a}.`),c.length>Sp&&i.push(`${t}: at most ${Sp} entries.`),c}function uy(e){const t=[],n={uses_model:e.usesModel};e.every===null?n.every=Bf(e.usesModel):!Number.isInteger(e.every.amount)||e.every.amount<1?t.push("The check interval must be a whole number of at least 1."):n.every=`${e.every.amount}${e.every.unit}`,n.every!==void 0&&(cy(n.every)??0)<iy&&t.push("The check interval is at least 60 seconds."),e.maxBatch===null?n.max_batch=Ff:!Number.isInteger(e.maxBatch)||e.maxBatch<1||e.maxBatch>mf?t.push(`At most this many emails per run: a whole number from 1 to ${mf}.`):n.max_batch=e.maxBatch;const a={},i=Bd(e.fromIn,He.from_in,pf,"an email address",t);i&&(a.from_in=i);const c=Bd(e.fromDomainIn,He.from_domain_in,Ix,"a domain like example.com",t);c&&(a.from_domain_in=c);const u=Bd(e.toIn,He.to_in,pf,"an email address",t);u&&(a.to_in=u);const d=e.subjectContains.trim();return d&&(d.length>Np||/[\r\n]/.test(d)?t.push(`${He.subject_contains}: one line of at most ${Np} characters.`):a.subject_contains=d),e.hasAttachment==="yes"?a.has_attachment=!0:e.hasAttachment==="no"&&(a.has_attachment=!1),Object.keys(a).length&&(n.filter=a),{config:n,errors:t}}function dy(e){const t=e,n=t.filter??{},a=["when an email arrives"],i=[...n.from_in??[],...n.from_domain_in??[]];i.length&&a.push(`from ${i.join(", ")}`),n.to_in&&n.to_in.length&&a.push(`to ${n.to_in.join(", ")}`),typeof n.subject_contains=="string"&&n.subject_contains&&a.push(`subject contains “${n.subject_contains}”`),n.has_attachment===!0&&a.push("with attachments"),n.has_attachment===!1&&a.push("without attachments");const c=typeof t.every=="string"?t.every:Bf(t.uses_model!==!1);a.push(`checked ${Ex(c)}`);const u=typeof t.max_batch=="number"?t.max_batch:Ff;return a.push(`up to ${u} per run`),a.join(" · ")}const Ti={mode:"self",addresses:""};function gf(e){if(e.mode==="self")return{recipients:["self"],errors:[]};const t=[],n=ly(e.addresses).filter(i=>i!=="self");n.length||t.push("Name at least one address the automation may email, or choose Only me.");const a=n.filter(i=>!pf(i));return a.length&&t.push(`${He.recipients_list}: ${a.join(", ")} ${a.length===1?"is not an email address":"are not email addresses"}.`),n.length+1>Cp&&t.push(`At most ${Cp-1} addresses.`),{recipients:["self",...n],errors:t}}function Mx(e){const t=(e??[]).filter(n=>n!=="self");return t.length?{mode:"list",addresses:t.join(", ")}:{mode:"self",addresses:""}}function Lx(e){const t=(e??["self"]).filter(n=>n!=="self");return t.length?`Me and ${t.join(", ")}`:"Only me"}function fy(e,t=["self"]){return{channels:e?["console","email"]:["console"],...t.some(n=>n!=="self")?{recipients:t}:{}}}function hy(e){return!!e&&Array.isArray(e.channels)&&e.channels.includes("email")}function Ox(e){return hy(e)?"In the console and by email":"In the console"}const St={pause:"automation.pause",resume:"automation.resume",run_now:"automation.run_now",stop_current:"automation.stop_current",archive:"automation.archive",unarchive:"automation.unarchive"},Px=new Set(["running","waiting","backoff"]);function Dx(e,t=[]){return e.current_occurrence!=null}function Fx(e){const t=e.current_occurrence;if(!t)return null;const n=t.attempt>1?` (attempt ${t.attempt})`:"";return t.status==="backoff"?`Run #${t.index} waiting to retry (attempt ${t.attempt+1})`:t.status==="admitted"?`Run #${t.index} starting${n}`:`Run #${t.index} running${n}`}function zx(e,t){return e.next_run_at&&e.next_run_local?`${ky(e.next_run_local,e.time_zone)} (${Wx(e.next_run_at,t)})`:e.status==="paused"?"none while paused":"none scheduled"}function Wx(e,t){const n=Date.parse(e);if(Number.isNaN(n))return"";const a=Math.round((n-t)/6e4);if(a<=0)return"due now";if(a<60)return`in ${a} min`;const i=Math.floor(a/60);return i<24?`in ${i} h${a%60?` ${a%60} min`:""}`:`in ${Math.floor(i/24)} d${i%24?` ${i%24} h`:""}`}function yo(e,t=[],n=!1){const a=new Set(e.capabilities),i=e.status,c=Dx(e,t),u=(p,w,_)=>n?{enabled:!1,reason:"Working…"}:e.legacy?{enabled:!1,reason:"Legacy schedule: managed with its existing controls."}:a.has(p)?i==="archived"?{enabled:!1,reason:"Archived: history is kept, nothing runs."}:w?{enabled:!0}:{enabled:!1,reason:_}:{enabled:!1,reason:"Not permitted for this automation."},d=i==="active"||i==="paused",f=i==="active"?"pause":"resume";return{active:n?{enabled:!1,reason:"Working…"}:e.legacy?{enabled:!1,reason:"Legacy schedule: managed with its existing controls."}:i==="archived"?{enabled:!1,reason:"Archived: history is kept, nothing runs."}:d?a.has(f)?{enabled:!0}:{enabled:!1,reason:"Not permitted for this automation."}:{enabled:!1,reason:"The automation has ended."},pause:u("pause",i==="active",i==="paused"?"Already paused.":"The automation has ended."),resume:u("resume",i==="paused",i==="active"?"Already running on schedule.":"The automation has ended."),run_now:u("run_now",d&&!c,c?"An occurrence is in progress.":"The automation has ended."),stop_current:u("stop_current",c,"Nothing is running."),revise:u("revise",!0,""),archive:u("archive",!0,""),unarchive:n?{enabled:!1,reason:"Working…"}:e.legacy?{enabled:!1,reason:"Legacy schedule: managed with its existing controls."}:i!=="archived"?{enabled:!1,reason:"Not archived."}:a.has("unarchive")?{enabled:!0}:{enabled:!1,reason:"Not permitted for this automation."},discuss:n?{enabled:!1,reason:"Working…"}:e.legacy?{enabled:!1,reason:"Legacy schedule: discussion is not available."}:a.has("discuss")?{enabled:!0}:{enabled:!1,reason:"Discussion is not permitted for this automation."}}}function my(e){return e.status==="active"?St.pause:St.resume}function Bx(e){return e.status==="failed"?"failed":e.waits.length>0||e.status==="waiting"?"waiting":e.notify!==null?"notified":e.status==="running"||e.status==="backoff"?"running":"quiet"}function Ux(e){return[...e].sort((t,n)=>t.index-n.index).map(t=>{const n=Bx(t),a=`${t.attempts} ${t.attempts===1?"attempt":"attempts"}`,i=n==="failed"?`Failed after ${a}`:n==="waiting"?"Waiting for you":n==="notified"?"Notified":n==="running"?"Running":null,c=t.status==="completed"&&t.attempts>1?`completed after ${a}`:t.status;return{row:t,tone:n,notable:n==="failed"||n==="waiting"||n==="notified",badge:i,statusText:c,canDiscuss:!Px.has(t.status)}})}function Vx(e){const t=e.attention.items;return t.length?t[t.length-1].cursor:null}function Hx(e){const t=e.attention,n=[];return t.unseen_count>0&&n.push(`${t.unseen_count} unseen`),t.pending_waits>0&&n.push(`${t.pending_waits} waiting for you`),n.length?n.join(" · "):"nothing new"}const Gx={unauthorized:"Sign in to the gateway to manage automations.",forbidden:"You are not allowed to do this with automations.",automation_not_found:"This automation does not exist (or is not yours).",occurrence_not_found:"That occurrence does not exist.",revision_conflict:"The automation changed since this view loaded. Reload it, then try again.",automation_busy:"An occurrence is already running or queued. Wait for it to finish.",invalid_state:"The automation's current state does not allow this.",identity_conflict:"This request id was already used for a different request.",invalid_request:"The gateway rejected the request as malformed.",invalid_definition:"The automation definition is not valid.",unsupported_feature:"The gateway does not support this yet.",unknown_trigger_source:"The gateway does not know this trigger source.",invalid_response:"The gateway gave an unexpected answer.",invalid_payload:"That answer could not be sent."};function bo(e){return{title:Gx[e.code]??`The gateway refused the request (${e.code}).`,detail:e.message}}function Bi(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.status=="number"&&typeof t.code=="string"&&typeof t.message=="string"}function py(e,t){var c,u,d;const n=e.trigger,a=n.source_id==="schedule"||Wi(n)?n.config.every:void 0,i=t?t.target.input_data.prompt:void 0;return{title:e.title,every:typeof a=="string"?a:null,calendar:Kx(n)?Xx(n.config):null,context:e.context_mode,growingMaxTokens:Number(((u=(c=t==null?void 0:t.context)==null?void 0:c.growing)==null?void 0:u.max_tokens)??e.growing_max_tokens??Oi),prompt:typeof i=="string"?i:null,toolApproval:t?t.policy.tool_approval:null,tools:Fi(t==null?void 0:t.target.input_data),notifyEmail:t?hy(t.notify):null,emailRecipients:t?Mx((d=t.notify)==null?void 0:d.recipients):null}}function gy(e,t,n){var f;const a=[],i={},c=t.title.trim();c?c.length>120?a.push("Title is at most 120 characters."):c!==e.title&&(i.title=c):a.push("Title is required.");const u=py(e,n);if(t.every!==u.every&&t.every!==null){const m=Wi(e.trigger);if(!zi(t.every))a.push("Interval must be a whole number of minutes, hours or days.");else if(m&&(cy(t.every)??0)<iy)a.push("The check interval is at least 60 seconds.");else{const p={...e.trigger.config,every:t.every};m&&delete p.start_at,i.trigger={source_id:e.trigger.source_id,source_version:e.trigger.source_version,config:p}}}if(t.calendar&&u.calendar&&JSON.stringify(t.calendar)!==JSON.stringify(u.calendar)){const m=Vf(t.calendar);if(!m.config)a.push(...m.errors);else{const p=e.trigger.config,w={...m.config,...typeof p.time_zone=="string"?{time_zone:p.time_zone}:{},...typeof p.count=="number"?{count:p.count}:{},...typeof p.until=="string"?{until:p.until}:{}};i.trigger={source_id:e.trigger.source_id,source_version:e.trigger.source_version,config:w}}}const d=t.context==="growing"?t.growingMaxTokens??u.growingMaxTokens:u.growingMaxTokens;if(vy(d)||a.push(wy),(t.context!==e.context_mode||d!==u.growingMaxTokens)&&(i.context=_y(t.context,d)),n&&typeof u.prompt=="string"&&typeof t.prompt=="string"&&t.prompt.trim()!==u.prompt.trim()){const m=t.prompt.trim();m?i.target={bundle_ref:n.target.bundle_ref,flow_id:n.target.flow_id,input_data:{...n.target.input_data,prompt:m}}:a.push("Task is required.")}if(n&&t.tools!==void 0&&JSON.stringify(t.tools)!==JSON.stringify(u.tools)){const m=i.target||{bundle_ref:n.target.bundle_ref,flow_id:n.target.flow_id,input_data:n.target.input_data};i.target={...m,input_data:Hc(m.input_data||{},t.tools)}}if(n&&t.toolApproval&&t.toolApproval!==u.toolApproval&&(i.policy={tool_approval:t.toolApproval}),n&&typeof t.notifyEmail=="boolean"){const m=gf(t.notifyEmail?t.emailRecipients??Ti:u.emailRecipients??Ti),p=gf(u.emailRecipients??Ti).recipients;m.errors.length?a.push(...m.errors):(t.notifyEmail!==u.notifyEmail||JSON.stringify(m.recipients)!==JSON.stringify(p))&&(i.notify=fy(t.notifyEmail,m.recipients))}if(a.length)return{errors:a};if(n&&t.target&&hf(t.target)!==hf(n.target)){const m=((f=i.target)==null?void 0:f.input_data)||n.target.input_data;i.target={...t.target,input_data:wx(m)}}return Object.keys(i).length?i:null}const Oi=5e4,yy="Limits history carried into the next run, keeping recent whole turns. The newest turn is kept even if oversized. New messages and tool results can grow context beyond this budget.",wy="Max growing context must be a positive whole number of tokens.";function vy(e){return Number.isSafeInteger(e)&&e>0}function _y(e,t){return{mode:e,...t!==Oi?{growing:{max_tokens:t}}:{}}}const st=Df.schedule,Cc=["mon","tue","wed","thu","fri","sat","sun"],by=["daily","weekly","monthly"],Uf=2;function Kx(e){return e.source_id==="schedule"&&e.source_version===Uf}function xy(e,t=Uf){const n=e==null?void 0:e.schedule_rule_text;return typeof n=="string"&&n?n:`schedule@${t}`}const Jx=/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})/;function ky(e,t){if(!e)return"";const n=Jx.exec(e);return n?`${n[1]} ${n[2]}${t?` ${t}`:""}`:e}function Qx(e,t="account"){return(t==="account"?st.time_zone_line:st.time_zone_line_automation).replace("{time_zone}",e)}const Yx=/^([01][0-9]|2[0-3]):[0-5][0-9]$/;function jy(e){return by.includes(e.kind)}function Vf(e){const t=[];if(Yx.test(e.at)||t.push(st.error_at),e.kind==="weekly"){const n=Cc.filter(a=>e.days.includes(a));return n.length||t.push(st.error_days),t.length?{config:null,errors:t}:{config:{kind:"weekly",days:n,at:e.at},errors:t}}return e.kind==="monthly"?(e.day==="last"||Number.isInteger(e.day)&&e.day>=1&&e.day<=31||t.push(st.error_day),t.length?{config:null,errors:t}:{config:{kind:"monthly",day:e.day,at:e.at},errors:t}):t.length?{config:null,errors:t}:{config:{kind:"daily",at:e.at},errors:t}}function Xx(e){const t=e,n=typeof t.at=="string"?t.at:"";return t.kind==="daily"?{kind:"daily",at:n}:t.kind==="weekly"?{kind:"weekly",at:n,days:Array.isArray(t.days)?Cc.filter(a=>t.days.includes(a)):[]}:t.kind==="monthly"?{kind:"monthly",at:n,day:t.day==="last"?"last":Number(t.day)}:null}const qx=[{label:"every 5 minutes",when:{kind:"every",amount:5,unit:"m"}},{label:"every 30 minutes",when:{kind:"every",amount:30,unit:"m"}},{label:"every hour",when:{kind:"every",amount:1,unit:"h"}},{label:"every 8 hours",when:{kind:"every",amount:8,unit:"h"}},{label:"every 24 hours",when:{kind:"every",amount:24,unit:"h"}},{label:"every 7 days",when:{kind:"every",amount:7,unit:"d"}}];function Sy(e){if(!e)return null;const t=/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})(:\d{2})?$/.exec(e.trim());if(!t)return null;const n=`${t[1]}T${t[2]}${t[3]??":00"}Z`;return Number.isNaN(Date.parse(n))?null:n}function Zx(e){const t=e.trim().split(`
|
|
56
|
-
`)[0].trim();return t.length>120?`${t.slice(0,119)}…`:t}const ek=/^\d{4}-\d{2}-\d{2}T([01][0-9]|2[0-3]):[0-5][0-9]$/;function Ep(e,t){const n={};if(e.count!==void 0&&(!Number.isInteger(e.count)||e.count<1?t.push("Maximum runs must be a whole number of at least 1."):n.count=e.count),e.until){const a=Sy(e.until);a?n.until=a:t.push("Stop at must be a date and time (UTC).")}return n}function tk(e){const t=[],n=e.when;if(n.kind==="once"){const d=(n.at||"").trim().slice(0,16);return ek.test(d)?{config:{kind:"once",at:d},errors:t}:{config:null,errors:[st.error_once]}}if(jy(n)){const d=Vf(n),f=Ep(e,d.errors);return d.config&&!d.errors.length?{config:{...d.config,...f},errors:[]}:{config:null,errors:d.errors}}const a=n.amount;let i=null;!Number.isInteger(a)||a<1?t.push("The interval must be a whole number of at least 1."):i=`${a}${n.unit}`;let c=null;e.startAt&&(c=Sy(e.startAt),c||t.push("First run must be a date and time (UTC)."));const u=Ep(e,t);return t.length||!i?{config:null,errors:t}:{config:{kind:"every",every:i,...c?{start_at:c}:{},...u},errors:t}}function Ny(e){const t=tk(e);return t.config?{trigger:{source_id:"schedule",source_version:Uf,config:t.config},errors:[]}:{trigger:null,errors:t.errors}}function nk(e){return e.kind==="every"||e.kind==="once"||jy(e)}function sk(e){if(e.trigger==="email"){const t=uy(e.email??Wf);return t.errors.length?"":dy(t.config)}return""}function rk(e,t){const n=[];t.target||n.push("Choose what to run.");const a=e.prompt.trim();a||n.push("Write the task to run.");const i=(e.title??"").trim()||Zx(a);i.length>120&&n.push("Title is at most 120 characters.");const c=e.trigger==="email",u=c?uy(e.email??Wf):null,d=c?null:Ny(e);n.push(...u?u.errors:d.errors);const f=e.notifyEmail&&e.emailRecipients&&e.emailRecipients.mode==="list"?gf(e.emailRecipients):null;f&&n.push(...f.errors);const m=e.growingMaxTokens??Oi;if(e.context==="growing"&&!vy(m)&&n.push(wy),n.length||!t.target)return{ok:!1,errors:n};const p={...t.target,input_data:{...t.target.input_data??{},prompt:a}},w={request_id:t.requestId,title:i,target:p,trigger:u?{source_id:ay,source_version:oy,config:u.config}:d.trigger,context:_y(e.context,e.context==="growing"?m:Oi),policy:{tool_approval:e.toolApproval??"auto"}};return e.notifyEmail===!0&&(w.notify=fy(!0,f==null?void 0:f.recipients)),{ok:!0,body:w}}const ak="Tools run without asking (you approve them now by creating this automation)";function ok(e){if(e.kind!=="tool_approval"||!Array.isArray(e.details))return null;const t=[];for(const n of e.details){if(!n||typeof n!="object"||Array.isArray(n))return null;const a=n;if(typeof a.name!="string"||!a.arguments||typeof a.arguments!="object"||Array.isArray(a.arguments)||a.call_id!==void 0&&typeof a.call_id!="string")return null;t.push({name:a.name,arguments:a.arguments,...typeof a.call_id=="string"?{call_id:a.call_id}:{}})}return t}function ik(e){const t=e.trim();if(!t)return{ok:!1,error:"Enter a JSON payload."};try{return{ok:!0,payload:JSON.parse(t)}}catch(n){return{ok:!1,error:`The payload is not valid JSON (${n instanceof Error?n.message:String(n)}).`}}}const Cy={ask_user:"Question for you",tool_approval:"Approval needed",event:"Waiting for an event"};class Ey{constructor(t){this.mint=t,this.open=new Map}idFor(t){let n=this.open.get(t);return n===void 0&&(n=this.mint(),this.open.set(t,n)),n}settle(t,n){(n.ok||lk(n.error))&&this.open.delete(t)}}function lk(e){return Bi(e)&&e.status>0&&e.code!=="invalid_response"}function Ay(){return la()}class ck{constructor(){this.acked=null,this.inflight=null,this.failedKey=null,this.failedToken=void 0}next(t,n){return!t||t===this.acked||t===this.inflight||t===this.failedKey&&n===this.failedToken?null:(this.inflight=t,t)}succeeded(t){this.inflight===t&&(this.inflight=null),this.acked=t,this.failedKey=null}failed(t,n){this.inflight===t&&(this.inflight=null),this.failedKey=t,this.failedToken=n}get acknowledged(){return this.acked}}function Ap(e,t){if(!e)return null;for(const n of t){const a=e.querySelector(n);if(a&&a.disabled!==!0&&typeof a.focus=="function")return a}return null}const uk="08:00",dk=["mon"],$y={at:uk,days:[...dk],day:1};function Ty(e,t){return e==="weekly"?{kind:e,at:t.at,days:[...t.days]}:e==="monthly"?{kind:e,at:t.at,day:t.day}:{kind:e,at:t.at}}function Hf(e,t){return{...e,at:t.at,...t.kind==="weekly"?{days:[...t.days]}:{},...t.kind==="monthly"?{day:t.day}:{}}}function $p(e){return Hf($y,e)}const fk=[...Array.from({length:31},(e,t)=>String(t+1)),"last"];function Ry(e){const t=e.value,n=a=>{if(t.kind!=="weekly")return;const i=t.days.includes(a);e.onChange({...t,days:Cc.filter(c=>c===a?!i:t.days.includes(c))})};return r.jsxs("div",{className:"af-schedule__calendar","data-calendar-kind":t.kind,children:[t.kind==="weekly"?r.jsxs("div",{className:"af-auto__row af-schedule__days",role:"group","aria-label":st.days_legend,children:[r.jsx("span",{children:st.days_legend}),Cc.map(a=>r.jsx(xb,{className:"af-schedule__day",pressed:t.days.includes(a),disabled:e.disabled,onClick:()=>n(a),tone:"accent",children:r.jsx("span",{"data-day":a,children:st.days[a]})},a))]}):null,r.jsxs("div",{className:"af-auto__row",children:[t.kind==="monthly"?r.jsxs(r.Fragment,{children:[r.jsx("label",{htmlFor:`${e.idBase}-month-day`,children:st.day_label}),r.jsx("select",{id:`${e.idBase}-month-day`,name:"calendar_day",value:String(t.day),disabled:e.disabled,onChange:a=>e.onChange({...t,day:a.target.value==="last"?"last":Number(a.target.value)}),children:fk.map(a=>r.jsx("option",{value:a,children:a==="last"?st.last_day:a},a))})]}):null,r.jsx("label",{htmlFor:`${e.idBase}-at`,children:st.at_label}),r.jsx("input",{id:`${e.idBase}-at`,name:"calendar_at",type:"time",step:60,required:!0,value:t.at,disabled:e.disabled,"aria-label":st.time_label,onChange:a=>e.onChange({...t,at:a.target.value.slice(0,5)})})]})]})}function hk(e){return r.jsxs("p",{className:"af-schedule__tz","data-time-zone":e.timeZone,children:[r.jsx(jc,{content:st.time_zone_hint,children:r.jsx("span",{tabIndex:0,className:"af-schedule__tz-text",children:Qx(e.timeZone,e.whose??"account")})}),e.onOpenPreferences&&(e.whose??"account")==="account"?r.jsxs(r.Fragment,{children:[" · ",r.jsx(jc,{content:st.time_zone_change_hint,children:r.jsx("button",{type:"button",className:"af-auto__link af-schedule__tz-change",onClick:e.onOpenPreferences,children:st.time_zone_change})})]}):null]})}function mk(e){const t=e;return typeof(t==null?void 0:t.message)=="string"&&t.message?t.message:String(e)}function Iy(e,t,n=250){const a=e?JSON.stringify(e):"",[i,c]=y.useState({phase:"idle"}),u=y.useRef(0),d=y.useRef(t);return d.current=t,y.useEffect(()=>{const f=++u.current;if(!a){c({phase:"idle"});return}c({phase:"loading"});const m=setTimeout(()=>{d.current(JSON.parse(a)).then(p=>{u.current===f&&c({phase:"ok",description:p})},p=>{u.current===f&&c({phase:"error",message:mk(p)})})},n);return()=>clearTimeout(m)},[a,n]),i}function My(e){const t=e.state;return t.phase==="ok"?r.jsxs(r.Fragment,{children:[e.showZone===!1?null:r.jsx(hk,{timeZone:t.description.time_zone,whose:e.whose,onOpenPreferences:e.onOpenPreferences}),r.jsx("p",{className:"af-schedule__preview","aria-live":"polite","data-preview":"served",children:t.description.first_run_sentence})]}):t.phase==="error"?r.jsx("p",{className:"af-schedule__preview af-auto__warn",role:"alert","data-preview":"error",children:t.message}):r.jsx("p",{className:"af-schedule__preview","aria-live":"polite","data-preview":t.phase,children:t.phase==="loading"?st.describing:e.incompleteText??st.incomplete})}function Tp(e){const t=Array.from(new Set(e.map(n=>String(n||"").trim()).filter(Boolean)));return t.sort((n,a)=>n.localeCompare(a)),t}function pk(e){const t=e.disabled===!0,n=y.useMemo(()=>Tp([...e.options||[],...e.value||[]]),[e.options,e.value]),a=y.useMemo(()=>Tp(e.value||[]),[e.value]),[i,c]=y.useState(!1),[u,d]=y.useState(""),f=y.useMemo(()=>{const w=u.trim().toLowerCase();return w?n.filter(_=>_.toLowerCase().includes(w)):n},[n,u]),m=y.useMemo(()=>new Set(a),[a]),p=typeof e.max_list_height_px=="number"?e.max_list_height_px:220;return r.jsxs("div",{className:"af_multi_select",children:[r.jsxs("div",{className:"af_multi_select_row",children:[r.jsxs("button",{className:"btn",type:"button",onClick:()=>c(w=>!w),disabled:t||!n.length,"aria-expanded":i,children:[i?"Hide":"Select"," • ",a.length>0?`${a.length} of ${n.length}`:e.placeholder||"(none)"]}),r.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange(n.slice()),disabled:t||!n.length||a.length===n.length,title:"Select all",children:"All"}),r.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange([]),disabled:t||a.length===0,title:"Clear selection",children:"Clear"})]}),a.length>0?r.jsx("div",{className:"af_multi_select_chips",children:a.map(w=>r.jsxs("button",{type:"button",disabled:t,"aria-label":`Remove ${w}`,className:"af_multi_select_chip",title:w,onClick:()=>{if(t)return;const _=new Set(m);_.delete(w),e.onChange(Array.from(_.values()))},children:[w,t?null:r.jsx("span",{className:"af_multi_select_chip_x",children:"×"})]},w))}):null,i?r.jsxs("div",{className:"af_multi_select_panel",children:[r.jsx("input",{className:"mono",value:u,onChange:w=>d(String(w.target.value||"")),placeholder:"filter…","aria-label":"Filter options",disabled:t}),r.jsxs("div",{className:"af_multi_select_list",style:{maxHeight:`${p}px`},children:[f.map(w=>{const _=m.has(w);return r.jsxs("label",{className:`af_multi_select_item mono ${_?"checked":""}`,children:[r.jsx("input",{type:"checkbox",checked:_,disabled:t,onChange:b=>{const A=new Set(m);b.target.checked?A.add(w):A.delete(w),e.onChange(Array.from(A.values()))}}),r.jsx("span",{children:w})]},w)}),f.length?null:r.jsx("div",{className:"mono muted",children:"(no matches)"})]})]}):null]})}function Ly(e){return r.jsxs("div",{className:"af-auto__field","data-field":"tool-selection",children:[r.jsxs("label",{children:[r.jsx("input",{type:"checkbox",checked:e.value===null,disabled:e.disabled,onChange:t=>e.onChange(t.target.checked?null:[])})," Use workflow default tools"]}),e.value!==null?r.jsx(pk,{options:e.availableTools,value:e.value,disabled:e.disabled,placeholder:"No tools enabled",onChange:e.onChange}):null,r.jsx("p",{className:"af-auto__hint",children:"Choose which tools this automation can use. An empty selection disables tools. Gateway restrictions always apply."})]})}const Gc="@default",Oy="No workflows available for this app — ask your admin.",Py={shared:"Shared",mine:"Mine"};class Cr extends Error{constructor(t){super(t),this.name="WorkflowPickerContractError"}}function Dy(e,t={}){const n=String(e||"").trim();if(!n)throw new Error("executableWorkflowsPath needs the interface the app runs (e.g. abstractcode.agent.v1).");return`bundles?executable_for=${encodeURIComponent(n)}${t.allVersions?"&all_versions=true":""}`}function gk(e={}){return e.allVersions?"bundles?all_versions=true":"bundles"}function yk(e,t={}){return e===null?gk(t):Dy(e,t)}function Ys(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Ut(e){return typeof e=="string"?e.trim():""}const lc="update the gateway";function wk(e,t){var d,f;const n=Ys(e.default_agent_workflows);if(!n)return{status:"unavailable",reason:"the gateway does not report a default workflow"};const a=Ys(n[t]);if(!a)return{status:"unavailable",reason:Ut((f=Ys((d=Ys(e.default_agent_workflows_unavailable))==null?void 0:d[t]))==null?void 0:f.reason)||`no default workflow for ${t}`};const i=Ut(a.bundle_id),c=Ut(a.flow_id);if(!i||!c)return{status:"unavailable",reason:"the gateway's default workflow is missing its bundle or flow"};const u=Ut(a.bundle_version);return{status:"ok",name:Ut(a.name)||c,bundleId:i,bundleVersion:u,flowId:c,workflowId:Ut(a.workflow_id)||`${i}${u?`@${u}`:""}:${c}`}}function vk(e,t){return Fy(e,t)}function Fy(e,t,n={}){var d;const a=Ys(e);if(!a)throw new Cr("The gateway's workflow list is not a JSON object.");const i=Ut(a.executable_for);if(t===null){if(i)throw new Cr(`Asked for every workflow, the gateway listed only ${i}.`)}else if(i!==t)throw new Cr(i?`The gateway listed workflows for ${i}, not ${t}.`:`This gateway does not filter workflows per app (no executable_for in its answer): ${lc}.`);if(!Array.isArray(a.items))throw new Cr("The gateway's workflow list has no items.");const c=[];for(const f of a.items){const m=Ys(f),p=Ut(m==null?void 0:m.bundle_id);if(!m||!p)throw new Cr("The gateway listed a workflow without a bundle id.");const w=Ys(m.owner),_=Ut(w==null?void 0:w.kind);if(_!=="gateway"&&_!=="user")throw new Cr(`The gateway did not say who owns ${p} (owner missing): ${lc}.`);if(typeof m.shipped!="boolean")throw new Cr(`The gateway did not say whether ${p} ships with it (shipped missing): ${lc}.`);const b=Ut(m.bundle_version),A=Array.isArray(m.entrypoints)?m.entrypoints:[];for(const x of A){const j=Ys(x),S=Ut(j==null?void 0:j.flow_id);if(!j||!S)continue;const E=Array.isArray(j.interfaces)?j.interfaces.map(Ut).filter(Boolean):[];if(t===null){if(!E.length)continue}else if(!E.includes(t))throw new Cr(`The gateway offered ${p}:${S}, which does not declare ${t}: ${lc}.`);c.push({value:Ut(j.workflow_id)||`${p}${b?`@${b}`:""}:${S}`,bundleId:p,bundleVersion:b,flowId:S,name:Ut(j.name)||Ut((d=Ys(m.metadata))==null?void 0:d.name)||p,description:Ut(j.description)||Ut(m.description),registryScope:Ut(m.registry_scope)||"private",group:_==="user"?"mine":"shared",shipped:m.shipped,interfaces:E,...t===null?{showInterfaces:!0}:{}})}}const u=n.defaultInterface??t;return{interfaceId:t,entries:c,gatewayDefault:u?wk(a,u):{status:"unavailable",reason:"no interface named for the gateway default"}}}function _k(e){const t=(n,a)=>n.name.localeCompare(a.name)||a.bundleVersion.localeCompare(n.bundleVersion,void 0,{numeric:!0})||n.value.localeCompare(a.value);return["shared","mine"].map(n=>({id:n,label:Py[n],entries:e.filter(a=>a.group===n).sort(t)})).filter(n=>n.entries.length>0)}const bk={"abstractcode.agent.v1":"Code agent","abstractassistant.agent.v1":"Assistant","abstractcode.coding.v1":"Coding",tools:"tools",event:"event",chat:"chat"};function xk(e){return bk[e]??e}function kk(e,t=[]){const n=e.bundleVersion?`@${e.bundleVersion}`:"";return e.showInterfaces?[[...new Set(e.interfaces.map(xk))].join(", "),n].filter(Boolean).join(" · "):n}function jk(e){return e.value}function Sk(e){return e?e.status==="unavailable"?e.reason:`${e.name}${e.bundleVersion?` @${e.bundleVersion}`:""}`:""}function Nk(e,t,n){return n<=0?null:e==="ArrowDown"?t<0?0:Math.min(n-1,t+1):e==="ArrowUp"?t<0?n-1:Math.max(0,t-1):e==="Home"?0:e==="End"?n-1:null}function Ck(e,t=!0){const n=(e==null?void 0:e.entries)??[],a=[];t&&a.push({key:"default",value:Gc,name:"Gateway default",detail:Sk((e==null?void 0:e.gatewayDefault)??null),group:null,entry:null});for(const i of _k(n))for(const c of i.entries)a.push({key:c.value,value:c.value,name:c.name,detail:kk(c,n),title:jk(c),group:i.id,entry:c});return a}async function Ek(e,t,n){var c;const a=await fetch(et(e,we(t)),{credentials:"include",headers:{Accept:"application/json"},signal:n}),i=await a.json().catch(()=>null);if(!a.ok){const u=((c=i==null?void 0:i.detail)==null?void 0:c.message)||(i==null?void 0:i.message)||(typeof(i==null?void 0:i.detail)=="string"?i.detail:"");throw new Error(u||`The gateway answered ${a.status}.`)}return i}function Ak(e){var n;const t=e;return String(((n=t==null?void 0:t.detail)==null?void 0:n.message)||(t==null?void 0:t.message)||t||"The workflow list could not be loaded.")}function $k(e){const{interfaceId:t,defaultInterface:n,allVersions:a=!1,enabled:i=!0,gatewayBaseUrl:c,reloadKey:u}=e,d=y.useRef(e.request);d.current=e.request;const[f,m]=y.useState(0),[p,w]=y.useState({status:"idle",data:null,error:""});y.useEffect(()=>{if(!i){w({status:"idle",data:null,error:""});return}const b=new AbortController;w(j=>({...j,status:"loading",error:""}));const A=yk(t,{allVersions:a});return(d.current?d.current(A,{signal:b.signal}):Ek(c,A,b.signal)).then(j=>{b.signal.aborted||w({status:"ready",data:Fy(j,t,{defaultInterface:n}),error:""})}).catch(j=>{b.signal.aborted||w({status:"error",data:null,error:Ak(j)})}),()=>b.abort()},[t,n,a,i,c,u,f]);const _=y.useCallback(()=>m(b=>b+1),[]);return{...p,reload:_}}function Tk(e){if(!e||typeof window>"u")return{};const t=e.getBoundingClientRect(),n=window.innerWidth,a=window.innerHeight,i=Math.min(Math.max(t.width,300),440,n-32),c=Math.max(16,Math.min(t.left,n-16-i)),u=a-t.bottom-16;return u>=220||u>=t.top?{position:"fixed",left:c,width:i,top:t.bottom+4,maxHeight:Math.max(160,u)}:{position:"fixed",left:c,width:i,bottom:a-t.top+4,maxHeight:Math.max(160,t.top-16)}}function zy(...e){return e.filter(Boolean).join(" ")}function Wy(e){const t=$k({interfaceId:e.interfaceId,defaultInterface:e.defaultInterface,request:e.request,gatewayBaseUrl:e.gatewayBaseUrl,allVersions:e.allVersions,enabled:e.workflows?!1:e.enabled!==!1}),n=e.workflows??t,a=e.showDefault!==!1&&(e.interfaceId!==null||!!e.defaultInterface),i=y.useId().replace(/:/g,""),c=`${i}-list`,[u,d]=y.useState(!1),[f,m]=y.useState(-1),p=y.useRef(null),w=y.useRef(null),[_,b]=y.useState({}),A=y.useMemo(()=>Ck(n.data,a),[n.data,a]),x=A.find(D=>D.value===e.value),j=x?{name:x.name,detail:x.detail}:e.currentLabel?{name:e.currentLabel.name,detail:e.currentLabel.detail||""}:n.status==="loading"?{name:"Loading workflows…",detail:""}:{name:e.value===Gc?"Gateway default":"Choose a workflow",detail:""},S=String(e.unavailableReason||"").trim(),E=!S&&n.status==="ready",N=y.useCallback(()=>{d(!1),m(-1)},[]),C=y.useCallback(()=>{if(!E)return;b(Tk(w.current)),d(!0);const D=A.findIndex(M=>M.value===e.value);m(D>=0?D:0)},[E,A,e.value]),$=y.useCallback(D=>{var M;N(),D.value!==e.value&&e.onChange(D.value,D.entry),(M=w.current)==null||M.focus()},[N,e]);y.useEffect(()=>{if(!u)return;const D=J=>{p.current&&!p.current.contains(J.target)&&N()},M=()=>N();return document.addEventListener("mousedown",D),document.addEventListener("touchstart",D),window.addEventListener("resize",M),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("touchstart",D),window.removeEventListener("resize",M)}},[u,N]),y.useEffect(()=>{var M;if(!u||f<0)return;const D=typeof document<"u"?document.getElementById(`${i}-opt-${f}`):null;(M=D==null?void 0:D.scrollIntoView)==null||M.call(D,{block:"nearest"})},[u,f,i]);const R=D=>{if(!u){["Enter"," ","ArrowDown","ArrowUp"].includes(D.key)&&(D.preventDefault(),C());return}if(D.key==="Escape"){D.preventDefault(),N();return}if(D.key==="Tab"){N();return}if(D.key==="Enter"||D.key===" "){D.preventDefault(),f>=0&&A[f]&&$(A[f]);return}const M=Nk(D.key,f,A.length);M!==null&&(D.preventDefault(),m(M))};return r.jsxs("div",{ref:p,className:zy("af-workflow-picker",e.className),"data-interface":e.interfaceId??"any",children:[r.jsxs("button",{ref:w,id:e.id,type:"button",role:"combobox",className:"af-workflow-picker__trigger","aria-label":e.ariaLabel||"Workflow","aria-describedby":`${i}-value`,"aria-haspopup":"listbox","aria-expanded":u,"aria-controls":c,"aria-activedescendant":u&&f>=0?`${i}-opt-${f}`:void 0,"aria-disabled":E?void 0:!0,title:S||void 0,onClick:()=>u?N():C(),onKeyDown:R,children:[r.jsxs("span",{className:"af-workflow-picker__value",id:`${i}-value`,children:[r.jsx("span",{className:"af-workflow-picker__name",children:j.name}),j.detail?r.jsx("span",{className:"af-workflow-picker__detail",children:j.detail}):null]}),r.jsx("span",{className:"af-workflow-picker__caret","aria-hidden":"true"})]}),u?r.jsx(Rk,{id:c,idBase:i,rows:A,value:e.value,highlight:f,ariaLabel:e.ariaLabel||"Workflow",style:_,onHighlight:m,onChoose:$}):null,n.status==="error"?r.jsx("span",{className:"af-workflow-picker__error",role:"alert",children:n.error}):n.status==="ready"&&A.every(D=>!D.entry)&&!a?r.jsx("span",{className:"af-workflow-picker__empty",role:"status",children:Oy}):null]})}function Rk(e){const t=(c,u)=>r.jsxs("div",{id:`${e.idBase}-opt-${u}`,role:"option","aria-selected":c.value===e.value,"data-value":c.value,title:c.title,className:zy("af-workflow-picker__option",u===e.highlight&&"af-workflow-picker__option--highlighted",c.value===e.value&&"af-workflow-picker__option--selected"),onMouseEnter:()=>e.onHighlight(u),onMouseDown:d=>d.preventDefault(),onClick:()=>e.onChoose(c),children:[r.jsx("span",{className:"af-workflow-picker__name",children:c.name}),c.detail?r.jsx("span",{className:"af-workflow-picker__detail",children:c.detail}):null]},c.key),n=e.rows.map((c,u)=>({row:c,index:u})),a=n.filter(c=>c.row.group===null),i=["shared","mine"].map(c=>({g:c,items:n.filter(u=>u.row.group===c)})).filter(c=>c.items.length>0);return r.jsxs("div",{id:e.id,role:"listbox","aria-label":e.ariaLabel,className:"af-workflow-picker__list",style:e.style,children:[a.map(c=>t(c.row,c.index)),i.map(({g:c,items:u})=>r.jsxs("div",{role:"group","aria-labelledby":`${e.idBase}-g-${c}`,"data-group":c,children:[r.jsx("div",{id:`${e.idBase}-g-${c}`,className:"af-workflow-picker__group",role:"presentation",children:Py[c]}),u.map(d=>t(d.row,d.index))]},c)),i.length===0?r.jsx("p",{className:"af-workflow-picker__empty",children:Oy}):null]})}function By(e){const t=hf(e.target);return r.jsxs("div",{className:"af-auto__field",children:[r.jsx("span",{children:"Workflow"}),r.jsx(Wy,{...e.options,ariaLabel:"Automation workflow",value:t,currentLabel:{name:t},onChange:(n,a)=>e.onChange(n==="@default"?{flow_id:"@default",interface:e.options.interfaceId||e.options.defaultInterface||"abstractcode.agent.v1"}:{bundle_ref:`${a.bundleId}@${a.bundleVersion}`,flow_id:a.flowId})})]})}async function Ik(e,t){var _,b;const n=e.flow_id==="@default"?(b=(_=t.workflows)==null?void 0:_.data)==null?void 0:b.gatewayDefault:null,a="bundle_ref"in e?e.bundle_ref:(n==null?void 0:n.status)==="ok"?`${n.bundleId}@${n.bundleVersion}`:"",i=e.flow_id!=="@default"?e.flow_id:(n==null?void 0:n.status)==="ok"?n.flowId:"";if(!a||!i||!t.request)throw new Error("Workflow inputs could not be checked. Refresh the workflow list and try again.");const c=a.lastIndexOf("@"),u=c<0?a:a.slice(0,c),d=c<0?"":a.slice(c+1),f=await t.request(`bundles/${encodeURIComponent(u)}/flows/${encodeURIComponent(i)}/input_schema${d?`?bundle_version=${encodeURIComponent(d)}`:""}`,{signal:new AbortController().signal}),m=(f==null?void 0:f.input_data_schema)||f;if(!m||typeof m!="object"||!m.properties)throw new Error("This workflow does not report its input requirements. Choose another workflow.");const p={...f.defaults||{}};for(const[A,x]of Object.entries(m.properties))x&&"default"in x&&(p[A]=x.default);Object.assign(p,e.input_data||{});const w=(Array.isArray(m.required)?m.required:[]).filter(A=>p[A]===void 0);if(w.length)throw new Error(`This workflow needs additional inputs: ${w.join(", ")}. Configure a new automation from that workflow's input form, or choose a compatible workflow.`);return{...e,input_data:p}}function yf(e){if(zf(e.status))return null;const t=He.not_set_up,n=He.open_my_email,a=t.endsWith(n)?t.slice(0,t.length-n.length):`${t} `,i=e.status&&e.status.admin_disabled&&typeof e.status.admin_disabled.cause=="string"?e.status.admin_disabled.cause:"";return r.jsxs("p",{className:"af-auto__hint af-email__notice",role:"note","data-email-setup":"missing",children:[a,e.onOpenMyEmail?r.jsx("button",{type:"button",className:"af-auto__linkbtn","data-action":"open-my-email",onClick:e.onOpenMyEmail,children:n}):n,i?r.jsxs("span",{className:"af-email__cause",children:[" (",i,")"]}):null]})}function Mk(e){const t=e.value,n=d=>e.onChange({...t,...d}),a=d=>`${e.idBase}-email-${d}`,i=zi(Bf(t.usesModel)),c=t.every??(i&&i.unit==="s"?{amount:Math.max(1,Math.round(i.amount/60)),unit:"m"}:{amount:i?i.amount:1,unit:i?i.unit:"h"}),u=e.disabled===!0;return r.jsxs("div",{className:"af-email__trigger","data-field":"email-trigger",children:[r.jsxs("div",{className:"af-auto__row",children:[r.jsx("span",{children:He.every_label}),r.jsx("input",{type:"number",min:1,step:1,value:String(c.amount),disabled:u,"aria-label":"Check interval amount",name:"email_every_amount",onChange:d=>n({every:{amount:Number(d.target.value),unit:c.unit}})}),r.jsxs("select",{value:c.unit,disabled:u,"aria-label":"Check interval unit",name:"email_every_unit",onChange:d=>n({every:{amount:c.amount,unit:d.target.value}}),children:[r.jsx("option",{value:"m",children:"minutes"}),r.jsx("option",{value:"h",children:"hours"}),r.jsx("option",{value:"d",children:"days"})]})]}),r.jsx("p",{className:"af-auto__hint","data-email-rule":"interval",children:He.interval_rule}),r.jsxs("label",{className:"af-auto__field",htmlFor:a("batch"),children:[r.jsx("span",{children:He.max_batch_label}),r.jsx("input",{id:a("batch"),name:"email_max_batch",type:"number",min:1,max:mf,step:1,disabled:u,value:String(t.maxBatch??Ff),onChange:d=>n({maxBatch:d.target.value.trim()===""?null:Number(d.target.value)})})]}),r.jsx("p",{className:"af-auto__hint",children:He.max_batch_hint}),r.jsxs("fieldset",{className:"af-auto__field af-email__filters",disabled:u,children:[r.jsx("legend",{children:He.filters_legend}),r.jsxs("label",{className:"af-auto__field",htmlFor:a("from"),children:[r.jsx("span",{children:He.from_in}),r.jsx("input",{id:a("from"),name:"email_from_in",value:t.fromIn,spellCheck:!1,placeholder:"alice@example.com, billing@example.org",onChange:d=>n({fromIn:d.target.value})})]}),r.jsxs("label",{className:"af-auto__field",htmlFor:a("domain"),children:[r.jsx("span",{children:He.from_domain_in}),r.jsx("input",{id:a("domain"),name:"email_from_domain_in",value:t.fromDomainIn,spellCheck:!1,placeholder:"example.com",onChange:d=>n({fromDomainIn:d.target.value})})]}),r.jsxs("label",{className:"af-auto__field",htmlFor:a("to"),children:[r.jsx("span",{children:He.to_in}),r.jsx("input",{id:a("to"),name:"email_to_in",value:t.toIn,spellCheck:!1,onChange:d=>n({toIn:d.target.value})})]}),r.jsxs("label",{className:"af-auto__field",htmlFor:a("subject"),children:[r.jsx("span",{children:He.subject_contains}),r.jsx("input",{id:a("subject"),name:"email_subject_contains",value:t.subjectContains,maxLength:200,onChange:d=>n({subjectContains:d.target.value})})]}),r.jsxs("label",{className:"af-auto__field",htmlFor:a("attach"),children:[r.jsx("span",{children:He.has_attachment}),r.jsxs("select",{id:a("attach"),name:"email_has_attachment",value:t.hasAttachment,onChange:d=>n({hasAttachment:d.target.value}),children:[r.jsx("option",{value:"any",children:He.has_attachment_any}),r.jsx("option",{value:"yes",children:He.has_attachment_yes}),r.jsx("option",{value:"no",children:He.has_attachment_no})]})]}),r.jsx("p",{className:"af-auto__hint",children:He.list_hint})]})]})}function Lk(e){const t=a=>`${e.idBase}-email-${a}`,n=e.disabled===!0;return r.jsxs("div",{className:"af-email__options","data-field":"email-options",children:[r.jsx(Or,{variant:"row",action:"notify-email",label:He.notify_label,checked:e.notifyEmail,unavailableReason:n?"Connect a mailbox first.":null,onChange:a=>e.onNotifyEmailChange(a)}),r.jsxs("p",{className:"af-auto__hint",children:[He.notify_hint," Turn on Email result to choose yourself or other email addresses."]}),e.notifyEmail?r.jsxs("fieldset",{className:"af-auto__field",disabled:n,"data-field":"email-recipients",children:[r.jsx("legend",{children:He.recipients_legend}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:t("rcpt"),value:"self",checked:e.recipients.mode==="self",onChange:()=>e.onRecipientsChange({...e.recipients,mode:"self"})})," ",He.recipients_self]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:t("rcpt"),value:"list",checked:e.recipients.mode==="list",onChange:()=>e.onRecipientsChange({...e.recipients,mode:"list"})})," ",He.recipients_list]}),e.recipients.mode==="list"?r.jsx("textarea",{name:"email_recipient_list","aria-label":He.recipients_list,rows:2,spellCheck:!1,value:e.recipients.addresses,placeholder:"colleague@example.com",onChange:a=>e.onRecipientsChange({mode:"list",addresses:a.target.value})}):null,r.jsx("p",{className:"af-auto__hint",children:He.recipients_hint})]}):null]})}const Ok={active:"play",paused:"pause",completed:"check",failed:"error",archived:"archive"};function Pk(e){const t=String(e.status),n=Ok[t];return r.jsxs("span",{className:`af-auto__status af-auto__status--${t}${e.className?` ${e.className}`:""}`,"data-state":t,children:[r.jsx("span",{className:"af-auto__status-word",children:Ax[t]??t}),n?r.jsx(se,{name:n,size:e.iconSize??11,className:"af-auto__status-icon"}):null]})}const Rp="Discuss — fork at this occurrence (own workspace, automation files read-only)",Kc=e=>r.jsx("div",{className:"af-auto-text","data-unformatted":"true",children:e});function Dk(e){return Bi(e)?e:{status:0,code:"client_error",message:e&&typeof e=="object"&&"message"in e?String(e.message):String(e)}}function Ip(e){const t=e.path.split(new RegExp("(?<=[/\\\\_-])"));return r.jsx("code",{className:"af-auto__path-text",children:t.map((n,a)=>r.jsxs(ut.Fragment,{children:[n,a<t.length-1?r.jsx("wbr",{}):null]},a))})}function Uy(e,t){const n=e.trigger,a=t.find(i=>i.id===n.source_id&&i.version===n.source_version);return a?"available"in a&&a.available===!1?`Trigger source ${n.source_id}@${n.source_version} is unavailable${a.unavailable_reason?`: ${a.unavailable_reason}`:"."}`:null:`This gateway does not list the trigger source ${n.source_id}@${n.source_version}.`}function Fk(e){const t=e.summary,n=Fx(t),a=Uy(t,e.triggerSources),i=zx(t,e.nowMs??Date.now());return r.jsxs("header",{className:"af-auto__head",children:[r.jsxs("div",{className:"af-auto__titlebar",children:[r.jsx("h2",{className:"af-auto__title",id:e.titleId,tabIndex:-1,children:t.title}),r.jsx(Pk,{status:t.status}),t.legacy?r.jsx("span",{className:"af-auto__legacy",children:"Legacy schedule"}):null]}),r.jsxs("dl",{className:"af-auto__facts",children:[e.workflowLabel?r.jsxs(r.Fragment,{children:[r.jsx("dt",{children:"Workflow"}),r.jsx("dd",{"data-fact":"workflow",children:e.workflowLabel})]}):null,r.jsx("dt",{children:"When"}),r.jsxs("dd",{"data-fact":"trigger",children:[sy(t.trigger,t),a?r.jsxs("span",{className:"af-auto__warn",role:"note",children:[" ",a]}):null]}),r.jsx("dt",{children:"Context"}),r.jsx("dd",{"data-fact":"context",children:ry(t.context_mode)}),n?r.jsxs(r.Fragment,{children:[r.jsx("dt",{children:"Now"}),r.jsx("dd",{"data-fact":"current",className:"is-notable",children:n})]}):null,r.jsx("dt",{children:"Next run"}),r.jsx("dd",{"data-fact":"next",children:i}),r.jsx("dt",{children:"Runs"}),r.jsx("dd",{"data-fact":"count",children:t.occurrence_count}),t.workspace_root?r.jsxs(r.Fragment,{children:[r.jsx("dt",{children:"Workspace"}),r.jsx("dd",{"data-fact":"workspace",className:"af-auto__workspace",children:e.onOpenWorkspace?r.jsxs("button",{type:"button",className:"af-auto__path","data-action":"open-workspace",title:`Browse the automation's folder
|
|
57
|
-
${t.workspace_root}`,"aria-label":`Browse the automation's folder ${t.workspace_root}`,onClick:()=>{var c;return(c=e.onOpenWorkspace)==null?void 0:c.call(e,t.automation_id)},children:[r.jsx(se,{name:"folder",size:14,className:"af-auto__path-icon"}),r.jsx(Ip,{path:t.workspace_root})]}):r.jsxs("span",{className:"af-auto__path af-auto__path--static",children:[r.jsx(se,{name:"folder",size:14,className:"af-auto__path-icon"}),r.jsx(Ip,{path:t.workspace_root})]})})]}):null,r.jsx("dt",{children:"Attention"}),r.jsx("dd",{"data-fact":"attention",className:t.attention.unread||t.attention.pending_waits?"is-notable":void 0,children:Hx(t)}),t.revision!==null?r.jsxs(r.Fragment,{children:[r.jsx("dt",{children:"Revision"}),r.jsx("dd",{"data-fact":"revision",children:t.revision})]}):null]})]})}function zk(e){var u,d;const t=e.definition,n=e.renderText??Kc,a=t.target.input_data.prompt,i=t.policy.retry,c=t.policy.tool_approval;return r.jsxs("details",{className:"af-auto__definition","data-definition-revision":t.revision,open:e.open,children:[r.jsxs("summary",{children:[r.jsx(se,{name:"chevronRight",size:14,className:"af-auto__definition-chevron"}),r.jsx(se,{name:"file",size:14}),r.jsx("span",{className:"af-auto__definition-title",children:"Definition"}),r.jsxs("span",{className:"af-auto__definition-meta",children:["revision ",t.revision]})]}),r.jsxs("dl",{className:"af-auto__facts",children:[r.jsx("dt",{children:"Target"}),r.jsx("dd",{"data-def":"target",children:r.jsx("code",{children:t.target.workflow_id})}),typeof a=="string"&&a?r.jsxs(r.Fragment,{children:[r.jsx("dt",{children:"Task"}),r.jsx("dd",{"data-def":"prompt",children:n(a)})]}):null,r.jsx("dt",{children:"Trigger"}),r.jsxs("dd",{"data-def":"trigger",children:[t.trigger.source_id,"@",t.trigger.source_version," · ",sy(t.trigger,e.served),r.jsx("pre",{className:"af-auto__json",children:JSON.stringify(t.trigger.config,null,2)})]}),r.jsx("dt",{children:"Context"}),r.jsxs("dd",{"data-def":"context",children:[ry(t.context.mode),t.context.mode==="growing"?` · ${Number(((u=t.context.growing)==null?void 0:u.max_tokens)??5e4).toLocaleString()} tokens`:""]}),r.jsx("dt",{children:"Tools"}),r.jsx("dd",{"data-def":"tool_approval",children:c==="ask"?"Ask before each tool call (ask)":c==="auto"?"Run without asking (auto)":String(c)}),r.jsx("dt",{children:"Notify"}),r.jsx("dd",{"data-def":"notify",children:Ox(t.notify)}),(d=t.notify)!=null&&d.channels.includes("email")?r.jsxs(r.Fragment,{children:[r.jsx("dt",{children:"Recipients"}),r.jsx("dd",{"data-def":"email_recipients",children:Lx(t.notify.recipients)})]}):null,r.jsx("dt",{children:"Retries"}),r.jsxs("dd",{"data-def":"retry",children:[i.max_attempts," ",i.max_attempts===1?"attempt":"attempts",", backoff ",i.backoff.initial," ×",i.backoff.factor," up to ",i.backoff.max]}),r.jsx("dt",{children:"Revision"}),r.jsx("dd",{"data-def":"revision",children:t.revision})]})]})}const Ui=Df,wf=Ui.labels,Vy={active:"play",pause:"pause",resume:"play",run_now:Ui.icons.run_now.name,stop_current:"stop",revise:"edit",archive:"archive",unarchive:"unarchive",discuss:"chat"},vf=Ui.hints,Wk=Ui.run_now_next_run_line,Bk=Ui.run_now_growing_line;function Pi(e,t){const n=[vf[e]];return e==="run_now"&&t&&(t.next_run_local&&n.push(Wk.replace("{time}",ky(t.next_run_local,t.time_zone))),t.context_mode==="growing"&&n.push(Bk)),n.join(`
|
|
58
|
-
`)}function Uk(e,t,n){const a=new Map;for(const u of t){const d=e[u];if(d.enabled)continue;const f=d.reason??"Not available now.";a.set(f,[...a.get(f)??[],u])}const i=[],c={};return[...a.entries()].forEach(([u,d],f)=>{const m=`${n}-why-${f}`;i.push({id:m,text:`${d.map(p=>wf[p]).join(", ")}: ${u}`});for(const p of d)c[p]=m}),{lines:i,describedBy:c}}function an(e){return r.jsxs(r.Fragment,{children:[r.jsx(se,{name:e.icon,size:14,className:"af-auto__btn-icon"}),r.jsx("span",{children:e.label})]})}function Vk(e){const t=yo(e.summary,e.occurrences,e.busy),n=e.summary.status==="archived",i=Uk(t,["active","run_now","stop_current","revise",n?"unarchive":"archive"],e.idBase??`af-auto-${e.summary.automation_id}`),c=(u,d,f)=>{const m=Pi(u,e.summary);return r.jsx("button",{type:"button",className:`af-auto__btn${f!=null&&f.danger?" af-auto__btn--danger":""}`,"data-action":(f==null?void 0:f.action)??u,disabled:!t[u].enabled,title:t[u].enabled?m:`${t[u].reason}
|
|
59
|
-
${m}`,"aria-description":m,"aria-describedby":i.describedBy[u],"aria-pressed":f==null?void 0:f.pressed,onClick:d,children:r.jsx(an,{icon:Vy[u],label:(f==null?void 0:f.label)??wf[u]})},u)};return r.jsxs("div",{className:"af-auto__controls-wrap",children:[r.jsxs("div",{className:"af-auto__actionbar",children:[r.jsxs("div",{className:"af-auto__controls",role:"toolbar","aria-label":"Automation controls",children:[r.jsx(Or,{className:"af-auto__switch",action:"active",label:wf.active,checked:e.summary.status==="active",unavailableReason:t.active.enabled?null:t.active.reason??"Not available now.",describedBy:i.describedBy.active,busy:e.busy,hint:Pi("active",e.summary),onChange:()=>e.onCommand(my(e.summary))},"active"),c("run_now",()=>e.onCommand(St.run_now)),c("stop_current",()=>e.onCommand(St.stop_current)),c("revise",e.onToggleRevise,{pressed:e.reviseOpen,action:"edit"}),n?c("unarchive",()=>e.onCommand(St.unarchive)):c("archive",e.onAskArchive,{danger:!0,label:"Archive…"})]}),r.jsx("span",{className:`af-auto__notice${e.notice?" af-auto__notice--on":""}`,role:"status",tabIndex:-1,children:e.notice?r.jsxs(r.Fragment,{children:[r.jsx(se,{name:"check",size:13}),r.jsx("span",{className:"af-auto__notice-text",children:e.notice}),e.onDismissNotice?r.jsx("button",{type:"button",className:"af-auto__icon-btn af-auto__icon-btn--bare","data-action":"dismiss-notice","aria-label":"Dismiss",title:"Dismiss",onClick:e.onDismissNotice,children:r.jsx(se,{name:"x",size:12})}):null]}):null})]}),i.lines.length?r.jsxs("p",{className:"af-auto__reasons",children:[r.jsx(se,{name:"info",size:12,className:"af-auto__reasons-icon"}),i.lines.map(u=>r.jsx("span",{id:u.id,children:u.text},u.id))]}):null,e.summary.status==="paused"&&t.run_now.enabled?r.jsx("p",{className:"af-auto__hint",children:"Paused: scheduled runs are skipped. Run now works and keeps it paused."}):null,e.confirmingArchive&&!n?r.jsxs("div",{className:"af-auto__confirm",role:"group","aria-label":"Confirm archive",children:[r.jsxs("p",{children:["Archive “",e.summary.title,"”? Its history stays readable; it will not run again. The current run, if any, finishes."]}),r.jsxs("div",{className:"af-auto__row",children:[r.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--danger","data-action":"archive-confirm",disabled:!t.archive.enabled,onClick:()=>e.onCommand(St.archive),children:r.jsx(an,{icon:"archive",label:"Archive"})}),r.jsx("button",{type:"button",className:"af-auto__btn","data-action":"archive-cancel",onClick:e.onCancelArchive,children:r.jsx(an,{icon:"x",label:"Keep it"})})]})]}):null]})}const Mp=[["m","minutes"],["h","hours"],["d","days"]];function Hk(e,t){const n=j=>{const S=e.elements.namedItem(j);return S&&typeof S.value=="string"?S.value:null},a=n("every_amount"),i=n("every_unit"),c=a!==null&&i!==null?`${a.trim()}${i}`:t.every,u=e.elements.namedItem("context"),d=u&&(u.value==="growing"||u.value==="independent")?u.value:t.context,f=n("prompt"),m=e.elements.namedItem("tool_approval"),p=m&&(m.value==="auto"||m.value==="ask")?m.value:t.toolApproval??null,w=e.elements.namedItem("notify_email"),_=w&&typeof w.checked=="boolean"?w.checked:t.notifyEmail??null,b=e.elements.namedItem("email_recipients"),A=n("email_recipient_list"),x=b&&(b.value==="self"||b.value==="list")?{mode:b.value,addresses:A??""}:t.emailRecipients??null;return{title:n("title")??t.title,every:c,context:d,growingMaxTokens:n("growing_max_tokens")===null?t.growingMaxTokens:Number(n("growing_max_tokens")),prompt:f??t.prompt??null,toolApproval:p,notifyEmail:_,emailRecipients:x}}function Hy(e){var R;const t=py(e.summary,e.definition),[n,a]=y.useState(),[i,c]=y.useState(t.tools??null),[u,d]=y.useState(t.context),[f,m]=y.useState(!!t.notifyEmail),[p,w]=y.useState(((R=t.calendar)==null?void 0:R.kind)??null),[_,b]=y.useState(t.calendar?$p(t.calendar):null),A=p&&_?Ty(p,_):null,x=(()=>{if(!A)return null;const D=Vf(A);if(!D.config)return null;const M=e.summary.trigger.config.time_zone;return{source_id:e.summary.trigger.source_id,source_version:e.summary.trigger.source_version,config:{...D.config,...typeof M=="string"?{time_zone:M}:{}}}})(),j=Iy(x,e.previewSchedule),S=t.every?zi(t.every):null,E=S&&S.unit==="s"?[["s","seconds"],...Mp]:Mp,N=`af-auto-revise-${e.summary.automation_id}`,C=zf(e.emailStatus),$=Wi(e.summary.trigger);return r.jsxs("form",{className:"af-auto__revise","aria-labelledby":`${N}-heading`,onSubmit:D=>{D.preventDefault(),e.onSubmit({...Hk(D.currentTarget,t),...A?{calendar:A}:{},...n?{target:n}:{},...e.availableTools!==void 0?{tools:i}:{}})},onKeyDown:D=>{D.key==="Escape"&&e.onCancel&&(D.preventDefault(),e.onCancel())},children:[e.heading===null?r.jsx("span",{id:`${N}-heading`,hidden:!0,children:"Edit automation"}):r.jsxs("h3",{className:"af-auto__form-title",id:`${N}-heading`,children:[r.jsx(se,{name:"edit",size:14})," ",e.heading??"Edit automation"]}),e.definition&&e.workflowPickerOptions?r.jsx(By,{target:n||e.definition.target,options:e.workflowPickerOptions,onChange:a}):null,r.jsxs("label",{className:"af-auto__field",htmlFor:`${N}-title`,children:[r.jsx("span",{children:"Title"}),r.jsx("input",{id:`${N}-title`,name:"title",defaultValue:t.title,maxLength:120,required:!0})]}),t.prompt!==null&&t.prompt!==void 0?r.jsxs("label",{className:"af-auto__field",htmlFor:`${N}-prompt`,children:[r.jsx("span",{children:"Task"}),r.jsx("textarea",{id:`${N}-prompt`,name:"prompt",defaultValue:t.prompt,rows:Math.min(10,Math.max(3,t.prompt.split(`
|
|
60
|
-
`).length+1)),required:!0})]}):null,S?r.jsxs("fieldset",{className:"af-auto__field",children:[r.jsx("legend",{children:$?He.every_label:"Repeat every (UTC)"}),r.jsxs("div",{className:"af-auto__row",children:[r.jsx("input",{name:"every_amount",type:"number",min:1,step:1,defaultValue:S.amount,"aria-label":"Interval amount"}),r.jsx("select",{name:"every_unit",defaultValue:S.unit,"aria-label":"Interval unit",children:E.map(([D,M])=>r.jsx("option",{value:D,children:M},D))})]}),$?r.jsx("p",{className:"af-auto__hint","data-email-rule":"interval",children:He.interval_rule}):null]}):A?r.jsxs("fieldset",{className:"af-auto__field","data-field":"calendar",children:[r.jsx("legend",{children:st.legend}),r.jsx("div",{className:"af-auto__row",role:"radiogroup","aria-label":"Schedule kind",children:by.map(D=>r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:`${N}-calendar-kind`,value:D,checked:A.kind===D,disabled:e.busy,onChange:()=>w(D)})," ",st[`kind_${D}`]]},D))}),r.jsx(Ry,{value:A,onChange:D=>b(M=>Hf(M??$p(D),D)),idBase:N,disabled:e.busy}),r.jsx(My,{state:j,whose:"automation"})]}):r.jsx("p",{className:"af-auto__hint",children:"This trigger has no interval to change."}),r.jsxs("fieldset",{className:"af-auto__field",children:[r.jsx("legend",{children:"Context"}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:"context",value:"independent",defaultChecked:t.context==="independent",onChange:()=>d("independent")})," Independent — each run starts fresh"]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:"context",value:"growing",defaultChecked:t.context==="growing",onChange:()=>d("growing")})," Growing — each run sees the previous runs"]}),r.jsx("div",{hidden:u!=="growing",children:r.jsxs("label",{className:"af-auto__field",children:[r.jsx("span",{children:"Max growing context (tokens)"}),r.jsx("input",{name:"growing_max_tokens",type:"number",min:1,step:1,disabled:e.busy||u!=="growing",defaultValue:t.growingMaxTokens}),r.jsx("span",{className:"af-auto__hint",children:yy})]})})]}),t.toolApproval?r.jsxs("fieldset",{className:"af-auto__field",children:[r.jsx("legend",{children:"Tools"}),e.availableTools!==void 0?r.jsx(Ly,{availableTools:e.availableTools,value:i,onChange:c,disabled:e.busy}):null,r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:"tool_approval",value:"auto",defaultChecked:t.toolApproval==="auto"})," Run without asking"]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:"tool_approval",value:"ask",defaultChecked:t.toolApproval==="ask"})," Ask before each tool call"]})]}):null,t.notifyEmail!==null&&t.notifyEmail!==void 0&&t.emailRecipients?r.jsxs("fieldset",{className:"af-auto__field","data-field":"email",children:[r.jsx("legend",{children:"Mailbox"}),C?null:r.jsx(yf,{status:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail}),r.jsx(eb,{variant:"row",action:"notify-email",name:"notify_email",label:He.notify_label,defaultChecked:!!t.notifyEmail,onChange:m,unavailableReason:!C&&!t.notifyEmail?"Connect a mailbox first.":null}),r.jsxs("p",{className:"af-auto__hint",children:[He.notify_hint," Turn on Email result to choose yourself or other email addresses."]}),r.jsx("div",{hidden:!f,children:r.jsxs("fieldset",{className:"af-auto__field",disabled:!f,"data-field":"email-recipients",children:[r.jsx("legend",{children:He.recipients_legend}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:"email_recipients",value:"self",defaultChecked:t.emailRecipients.mode==="self"})," ",He.recipients_self]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:"email_recipients",value:"list",defaultChecked:t.emailRecipients.mode==="list",disabled:!C&&t.emailRecipients.mode!=="list"})," ",He.recipients_list]}),r.jsx("textarea",{name:"email_recipient_list","aria-label":He.recipients_list,rows:2,spellCheck:!1,defaultValue:t.emailRecipients.addresses,disabled:!C&&t.emailRecipients.mode!=="list"}),r.jsx("p",{className:"af-auto__hint",children:He.recipients_hint})]})})]}):null,r.jsx("p",{className:"af-auto__hint",children:"Changes apply from the next run; a new interval never fires past ticks."}),e.errors.length?r.jsx("ul",{className:"af-auto__form-errors",role:"alert",children:e.errors.map(D=>r.jsx("li",{children:D},D))}):null,r.jsxs("div",{className:"af-auto__row",children:[r.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"edit-save",disabled:e.busy,children:r.jsx(an,{icon:"check",label:e.submitLabel??"Save changes"})}),e.onCancel?r.jsx("button",{type:"button",className:"af-auto__btn","data-action":"edit-cancel",onClick:e.onCancel,children:r.jsx(an,{icon:"x",label:"Cancel"})}):null]})]})}function _f(e,t){const n=e.elements.namedItem(t);return n&&typeof n.value=="string"?n.value.trim():""}function Gk(e){const t=e.wait,n=`${e.idBase}-${t.run_id}-${t.wait_key}-prompt`,a=u=>e.onAnswerWait(t.run_id,t.wait_key,u),i=e.renderText??Kc,c=u=>r.jsxs("div",{className:"af-auto-wait__prompt",id:n,children:[r.jsx("span",{className:"af-auto-wait__kind",children:Cy[t.kind]??"Waiting"}),t.prompt?i(t.prompt):r.jsxs("span",{children:[" ",u]})]});if(t.kind==="tool_approval"){const u=ok(t);return r.jsxs("div",{className:"af-auto-wait af-auto-wait--tool_approval",role:"group","data-wait-key":t.wait_key,"data-wait-kind":t.kind,"aria-labelledby":n,children:[c("A tool call needs your approval."),u&&u.length?r.jsx("ul",{className:"af-auto-wait__calls","aria-label":"Tool calls to approve",children:u.map((d,f)=>r.jsxs("li",{"data-tool":d.name,children:[r.jsx("code",{className:"af-auto-wait__tool",children:d.name}),r.jsx("pre",{className:"af-auto-wait__args",children:JSON.stringify(d.arguments,null,2)})]},d.call_id??`${d.name}:${f}`))}):r.jsx("p",{className:"af-auto__hint",children:"The gateway did not list the tool calls; open the run to see them before approving."}),r.jsxs("div",{className:"af-auto__row",children:[r.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--primary","data-action":"wait-approve",disabled:e.busy,onClick:()=>a({approved:!0}),children:r.jsx(an,{icon:"check",label:"Approve"})}),r.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--danger","data-action":"wait-deny",disabled:e.busy,onClick:()=>a({approved:!1}),children:r.jsx(an,{icon:"x",label:"Deny"})})]})]})}return t.kind==="event"?r.jsxs("form",{className:"af-auto-wait af-auto-wait--event","data-wait-key":t.wait_key,"data-wait-kind":t.kind,"aria-labelledby":n,onSubmit:u=>{var f;u.preventDefault();const d=ik(_f(u.currentTarget,"payload"));d.ok?a({payload:d.payload}):(f=e.onWaitError)==null||f.call(e,d.error)},children:[c("The run waits for an event."),r.jsx("textarea",{name:"payload",rows:3,"aria-label":"Event payload (JSON)",placeholder:'{"key": "value"}',disabled:e.busy}),r.jsx("div",{className:"af-auto__row",children:r.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"wait-send-event",disabled:e.busy,children:r.jsx(an,{icon:"send",label:"Send event"})})})]}):t.kind==="ask_user"?r.jsxs("form",{className:"af-auto-wait af-auto-wait--ask_user","data-wait-key":t.wait_key,"data-wait-kind":t.kind,"aria-labelledby":n,onSubmit:u=>{u.preventDefault();const d=_f(u.currentTarget,"response");d&&a({response:d})},children:[c("The run is waiting for your input."),t.choices&&t.choices.length?r.jsx("div",{className:"af-auto__row",role:"group","aria-label":"Choices",children:t.choices.map(u=>r.jsx("button",{type:"button",className:"af-auto__btn","data-action":"wait-choice",disabled:e.busy,onClick:()=>a({response:u}),children:u},u))}):null,r.jsxs("div",{className:"af-auto__row",children:[r.jsx("input",{name:"response","aria-label":"Your answer",placeholder:"Your answer",disabled:e.busy}),r.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"wait-answer",disabled:e.busy,children:r.jsx(an,{icon:"send",label:"Answer"})})]})]}):r.jsxs("div",{className:"af-auto-wait",role:"group","data-wait-key":t.wait_key,"data-wait-kind":String(t.kind),"aria-labelledby":n,children:[c("The run is waiting."),r.jsxs("p",{className:"af-auto__hint",children:["This kind of wait (",String(t.kind),") cannot be answered here; open the run."]})]})}function Kk(e){const{row:t,tone:n,badge:a,statusText:i}=e.view,c=`af-auto-occ-${t.run_id}`,u=e.renderText??Kc,d=e.discuss.enabled&&e.view.canDiscuss&&!e.busy,f=e.discuss.enabled?e.view.canDiscuss?null:"Available once this occurrence finishes.":e.discuss.reason??"Not available.",m=(_,b)=>e.renderTurn?e.renderTurn({kind:_,role:_==="trigger"?"user":"assistant",text:b,index:t.index,runId:t.run_id}):u(b),p=e.renderTurn?" af-auto-turn--card":"",w=n==="failed"?t.failure?"No answer.":"No answer: the run failed.":n==="waiting"?"Waiting for your answer.":n==="running"?"Running…":"No answer.";return r.jsxs("li",{className:`af-auto-occ af-auto-occ--${n}`,"data-index":t.index,"data-tone":n,"aria-labelledby":`${c}-h`,children:[r.jsxs("div",{className:`af-auto-turn af-auto-turn--trigger${p}`,"data-turn":"trigger",children:[r.jsxs("div",{className:"af-auto-turn__meta",id:`${c}-h`,children:[r.jsxs("span",{className:"af-auto-turn__index",children:["#",t.index]})," · ",t.trigger.summary," · fired ",Nc(t.fired_at)]}),r.jsx("div",{className:"af-auto-turn__text",children:m("trigger",t.user_turn)})]}),r.jsxs("div",{className:`af-auto-turn af-auto-turn--answer${p}`,"data-turn":"answer",children:[r.jsxs("div",{className:"af-auto-turn__meta",children:[a?r.jsx("span",{className:`af-auto-badge af-auto-badge--${n}`,children:a}):null,r.jsx("span",{className:"af-auto-turn__status",children:i}),t.finished_at?r.jsxs("span",{children:[" · ",Nc(t.finished_at)]}):null]}),t.notify?r.jsxs("div",{className:"af-auto-notify","data-notify":"true",children:[r.jsx("strong",{children:t.notify.title}),t.notify.body?r.jsx("div",{className:"af-auto-notify__body",children:u(t.notify.body)}):null]}):null,t.failure?r.jsxs("div",{className:"af-auto-failure","data-failure":t.failure.reason_code,children:[r.jsx("strong",{children:t.failure.reason_code}),": ",t.failure.message," ",r.jsxs("span",{className:"af-auto-turn__muted",children:["(after ",t.failure.attempts," ",t.failure.attempts===1?"attempt":"attempts",")"]})]}):null,t.answer?r.jsx("div",{className:"af-auto-turn__text",children:m("answer",t.answer)}):r.jsx("div",{className:"af-auto-turn__empty",children:w}),t.artifacts.length?r.jsx("ul",{className:"af-auto-artifacts","aria-label":"Artifacts",children:t.artifacts.map(_=>r.jsxs("li",{children:[e.onOpenResource?r.jsxs("button",{type:"button",className:"af-auto__linkbtn","data-action":"open-artifact",onClick:()=>{var b;return(b=e.onOpenResource)==null?void 0:b.call(e,{kind:"artifact",url:_.url,name:_.name,mimeType:_.mime_type,runId:t.run_id})},children:[r.jsx(se,{name:"file",size:13,className:"af-auto__btn-icon"})," ",_.name]}):r.jsx("span",{className:"af-auto-artifact__name",children:_.name})," ",r.jsx("span",{className:"af-auto-turn__muted",children:_.mime_type})]},_.artifact_id))}):null,t.waits.map(_=>r.jsx(Gk,{wait:_,busy:e.busy,idBase:c,onAnswerWait:e.onAnswerWait,onWaitError:e.onWaitError,renderText:e.renderText},`${_.run_id}:${_.wait_key}`))]}),r.jsxs("div",{className:"af-auto-occ__foot",children:[r.jsxs("details",{className:"af-auto-occ__details",children:[r.jsx("summary",{children:"Run details"}),r.jsxs("dl",{className:"af-auto__facts",children:[r.jsx("dt",{children:"Run"}),r.jsx("dd",{children:r.jsx("code",{children:t.run_id})}),r.jsx("dt",{children:"Attempts"}),r.jsx("dd",{children:t.attempts})]}),r.jsxs("div",{className:"af-auto__row",children:[r.jsx("button",{type:"button",className:"af-auto__btn","data-action":"open-run",onClick:()=>e.onOpenRun(t.run_id),children:r.jsx(an,{icon:"list",label:"Open run ledger"})}),e.onOpenResource?r.jsx("button",{type:"button",className:"af-auto__btn","data-action":"open-ledger-json",onClick:()=>{var _;return(_=e.onOpenResource)==null?void 0:_.call(e,{kind:"ledger",url:t.ledger_url,name:`run-${t.run_id}-ledger.json`,runId:t.run_id})},children:r.jsx(an,{icon:"file",label:"Ledger (JSON)"})}):null,t.workspace_url&&e.onOpenWorkspace?r.jsx("button",{type:"button",className:"af-auto__btn","data-action":"open-workspace",title:"Browse this run's folder",onClick:()=>{var _;return(_=e.onOpenWorkspace)==null?void 0:_.call(e,t.run_id)},children:r.jsx(an,{icon:"folder",label:"Workspace"})}):null]})]}),e.discussOpen?r.jsxs("form",{className:"af-auto-discuss","aria-label":`${Rp}, from occurrence ${t.index}`,onSubmit:_=>{_.preventDefault();const b=_f(_.currentTarget,"prompt");b&&e.onDiscussSubmit(t.index,b)},children:[r.jsxs("p",{className:"af-auto__hint",children:["Starts a new session that forks this automation at #",t.index," with its full history (runs 1–",t.index,"). It works in its own writable workspace; the automation's files are mounted read-only for the file tools (shell commands are not sandboxed), and nothing is written back into the automation's session."]}),r.jsx("textarea",{name:"prompt",rows:3,"aria-label":"Your message",placeholder:"Ask about this result…",required:!0}),r.jsxs("div",{className:"af-auto__row",children:[r.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary","data-action":"discuss-submit",disabled:e.busy,children:r.jsx(an,{icon:"send",label:"Start discussion"})}),r.jsx("button",{type:"button",className:"af-auto__btn","data-action":"discuss-cancel",onClick:e.onDiscussCancel,children:r.jsx(an,{icon:"x",label:"Cancel"})})]})]}):r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--quiet","data-action":"discuss",disabled:!d,title:vf.discuss,"aria-description":vf.discuss,"aria-describedby":f?`${c}-discuss-why`:void 0,onClick:()=>e.onDiscussOpen(t.index),children:r.jsx(an,{icon:Vy.discuss,label:Rp})}),f?r.jsx("span",{className:"af-auto__reasons",id:`${c}-discuss-why`,children:f}):null]})]})]})}const Jk=5e3,Qk={[St.pause]:"Automation paused.",[St.resume]:"Automation active.",[St.run_now]:"Run requested.",[St.stop_current]:"Stop requested.",[St.unarchive]:"Unarchived: it is paused until you make it active."};function Yk(e){var fe;const{summary:t,busy:n}=e,a=e.renderText??Kc,i=y.useId(),c=y.useRef(null),[u,d]=y.useState(!1),f=e.editOpen!==void 0,p=yo(t,e.occurrences,!1).revise.enabled&&(f?e.editOpen===!0:u),w=y.useRef(null);p?(!w.current||w.current.summary.automation_id!==t.automation_id)&&(w.current={summary:t,definition:e.definition}):w.current=null;const _=w.current,b=y.useRef(e.onEditOpenChange);b.current=e.onEditOpenChange;const A=q=>{var le;f||d(q),(le=b.current)==null||le.call(b,q)},[x,j]=y.useState([]),[S,E]=y.useState(!1),[N,C]=y.useState(null),[$,R]=y.useState(null),[D,M]=y.useState(null);y.useEffect(()=>{if(!D)return;const q=setTimeout(()=>M(null),Jk);return()=>clearTimeout(q)},[D]),y.useEffect(()=>{var le;if(!p)return;j([]);const q=Ap(c.current,['.af-auto__revise [name="title"]']);q==null||q.focus(),(le=q==null?void 0:q.scrollIntoView)==null||le.call(q,{block:"nearest"})},[p,t.automation_id]);const[J,V]=y.useState(null);y.useEffect(()=>{var q;J&&((q=Ap(c.current,[...J,".af-auto__notice",".af-auto__title"]))==null||q.focus(),V(null))},[J]);const O=y.useRef(null);O.current||(O.current=new Ey(e.newId??Ay));const te=O.current,P=q=>R(Dk(q)),Z=(q,le,me)=>{R(null),M(null),le(te.idFor(q)).then(oe=>{te.settle(q,{ok:!0}),me(oe)},oe=>{te.settle(q,{ok:!1,error:oe}),P(oe)})},W=Vx(t),ne=y.useRef(e.onSeen);ne.current=e.onSeen;const ae=y.useRef(null);ae.current||(ae.current=new ck),y.useEffect(()=>{const q=ae.current,le=W?`${t.automation_id}|${W}`:null;if(!W||!q.next(le,t))return;const me=t;ne.current(W).then(()=>q.succeeded(le),oe=>{q.failed(le,me),P(oe)})});const H=yo(t,e.occurrences,n),de=Ux(e.occurrences),re=t.occurrence_count-e.occurrences.length,F=$??e.error??null,I=F?bo(F):null,U=t.attention;return r.jsxs("section",{ref:c,className:`af-auto${e.className?` ${e.className}`:""}`,...e.hideHeader?{"aria-label":t.title}:{"aria-labelledby":i},"aria-busy":n,"data-text-rendering":e.renderText?"rich":"unformatted",children:[e.hideHeader?null:r.jsxs(r.Fragment,{children:[r.jsx(Fk,{summary:t,workflowLabel:(fe=e.definition)==null?void 0:fe.target.workflow_id,triggerSources:e.triggerSources,titleId:i,nowMs:e.nowMs,onOpenWorkspace:e.onOpenWorkspace}),r.jsx(Vk,{summary:t,occurrences:e.occurrences,busy:n,confirmingArchive:S,reviseOpen:p,notice:D,onDismissNotice:()=>M(null),idBase:`${i}-ctl`,onCommand:q=>Z(`command:${q}`,le=>e.onCommand(q,void 0,{command_id:le}),()=>{q===St.archive?(E(!1),M("Archive requested."),V(['[data-action="archive"]'])):M(Qk[q]??"Command sent.")}),onToggleRevise:()=>{j([]),A(!p)},onAskArchive:()=>E(!0),onCancelArchive:()=>{E(!1),V(['[data-action="archive"]'])}})]}),p&&_?r.jsx(Hy,{summary:_.summary,definition:_.definition,busy:n,errors:x,availableTools:e.availableTools,workflowPickerOptions:e.workflowPickerOptions,emailStatus:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail,previewSchedule:e.previewSchedule,onCancel:()=>{A(!1),V(['[data-action="edit"]'])},onSubmit:q=>{const le=_.summary,me=gy(le,q,_.definition);if(me===null){j(["Nothing changed."]);return}if("errors"in me){j(me.errors);return}j([]),Z(`revise:${le.revision}:${JSON.stringify(me)}`,async oe=>{const ve=q.target&&me.target?{...me,target:await(e.prepareTarget?e.prepareTarget(me.target):Ik(me.target,e.workflowPickerOptions))}:me;return e.onRevise(ve,le.revision,{command_id:oe})},()=>{M("Saved; applies from the next run."),A(!1),V(['[data-action="edit"]'])})}}):e.definition?r.jsx(zk,{definition:e.definition,renderText:a,served:t}):null,I?r.jsxs("div",{className:"af-auto__error",role:"alert","data-code":F==null?void 0:F.code,children:[r.jsx(se,{name:"error",size:14,className:"af-auto__btn-icon"}),r.jsxs("span",{className:"af-auto__error-text",children:[r.jsx("strong",{children:I.title})," ",r.jsx("span",{children:I.detail})]}),$?r.jsx("button",{type:"button",className:"af-auto__icon-btn af-auto__icon-btn--bare","data-action":"dismiss-error","aria-label":"Dismiss",title:"Dismiss",onClick:()=>R(null),children:r.jsx(se,{name:"x",size:12})}):null]}):null,U.items.length||U.waits.length?r.jsx("section",{className:"af-auto__attention","aria-label":"Needs attention",children:r.jsxs("ul",{children:[U.items.map(q=>r.jsxs("li",{className:`af-auto__attention-item af-auto__attention-item--${q.kind}`,"data-cursor":q.cursor,children:[r.jsx("span",{className:`af-auto-badge af-auto-badge--${q.kind==="failure"?"failed":"notified"}`,children:q.kind==="failure"?"Failed":"Notified"})," ",r.jsx("strong",{children:q.title})," ",r.jsxs("span",{className:"af-auto-turn__muted",children:["#",q.index," · ",Nc(q.at)]}),q.body?r.jsx("div",{className:"af-auto__attention-body",children:a(q.body)}):null]},q.cursor)),U.waits.map(q=>r.jsxs("li",{className:"af-auto__attention-item af-auto__attention-item--wait",children:[r.jsx("span",{className:"af-auto-badge af-auto-badge--waiting","data-wait-kind":q.kind,children:Cy[q.kind]??"Waiting for you"})," ",r.jsxs("span",{className:"af-auto-turn__muted",children:["#",q.index]}),q.prompt?r.jsx("div",{className:"af-auto__attention-body",children:a(q.prompt)}):null]},`${q.run_id}:${q.wait_key}`))]})}):null,re>0?r.jsx("button",{type:"button",className:"af-auto__btn af-auto__more","data-action":"load-more",disabled:n,onClick:e.onLoadMore,children:r.jsx(an,{icon:"history",label:`Load earlier occurrences (${re} more)`})}):null,de.length?r.jsx("ol",{className:"af-auto__timeline","aria-label":"Occurrences",children:de.map(q=>{const le=`[data-index="${q.row.index}"]`;return r.jsx(Kk,{view:q,busy:n,discuss:H.discuss,renderText:a,renderTurn:e.renderTurn,onOpenWorkspace:e.onOpenWorkspace,onOpenResource:e.onOpenResource?me=>{var oe;R(null);try{Promise.resolve((oe=e.onOpenResource)==null?void 0:oe.call(e,me)).catch(P)}catch(ve){P(ve)}}:void 0,discussOpen:N===q.row.index,onOpenRun:e.onOpenRun,onAnswerWait:(me,oe,ve)=>{R(null),e.onAnswerWait(me,oe,ve).then(()=>M("Answer sent."),P)},onWaitError:me=>R({status:0,code:"invalid_payload",message:me}),onDiscussOpen:C,onDiscussCancel:()=>{C(null),V([`${le} [data-action="discuss"]`])},onDiscussSubmit:(me,oe)=>Z(`discuss:${me}:${oe}`,ve=>e.onDiscuss(me,oe,{request_id:ve}),ve=>{C(null),M(`Discussion started (session ${ve.session_id}).`),V([`${le} [data-action="discuss"]`])})},q.row.run_id)})}):r.jsx("p",{className:"af-auto__empty",children:"No occurrences yet."})]})}function Xk(e,t){return e==="email"||!nk(t.when)?null:Ny({...t}).trigger}function qk(e){return e==="daily"||e==="weekly"||e==="monthly"||e==="once"}function Zk(e){var Be,Ke;const t=y.useId(),n=y.useId(),a=y.useRef(null),i=y.useRef(null),c=y.useRef(e.onClose);c.current=e.onClose;const u=e.initialTools??Fi((Be=e.target)==null?void 0:Be.input_data),[d,f]=y.useState({open:e.open,value:u});d.open!==e.open&&f({open:e.open,value:u});const m=d.value,p=xe=>f(Ye=>({...Ye,value:xe})),[w,_]=y.useState(e.initialPrompt??""),[b,A]=y.useState("every"),[x,j]=y.useState($y),S=Ty(b==="weekly"||b==="monthly"?b:"daily",x),[E,N]=y.useState(Wf),[C,$]=y.useState(!1),[R,D]=y.useState(Ti),[M,J]=y.useState("24"),[V,O]=y.useState("h"),[te,P]=y.useState(""),[Z,W]=y.useState(String(Oi)),[ne,ae]=y.useState("independent"),[H,de]=y.useState("auto"),[re,F]=y.useState(e.initialTitle??""),[I,U]=y.useState(""),[fe,q]=y.useState(""),[le,me]=y.useState(""),[oe,ve]=y.useState([]),We=y.useRef(null);We.current||(We.current=new Ey(()=>(e.newRequestId??Ay)())),y.useEffect(()=>{var Yt;if(!e.open)return;const xe=document.activeElement;(Yt=i.current)==null||Yt.focus();const Ye=on=>{if(!on.defaultPrevented){if(on.key==="Escape"){on.preventDefault(),c.current();return}Zg(on,a.current,document.activeElement)}};return window.addEventListener("keydown",Ye),()=>{window.removeEventListener("keydown",Ye),xe&&typeof xe.focus=="function"&&xe.focus()}},[e.open]);const nt=b==="once"?{kind:"once",at:te}:b==="daily"||b==="weekly"||b==="monthly"?S:{kind:"every",amount:Number(M),unit:V},qe={...b==="every"&&I?{startAt:I}:{},...b!=="once"&&fe.trim()?{count:Number(fe)}:{},...b!=="once"&&le?{until:le}:{}},$e=Iy(e.open?Xk(b,{when:nt,...qe}):null,e.previewSchedule);if(!e.open)return null;const Ue=zf(e.emailStatus),lt=b==="email"&&Ue,Pe=b==="email"&&!Ue?"every":b,ie=Pe==="daily"||Pe==="weekly"||Pe==="monthly",ee=xe=>A(xe),Ne={prompt:w,when:b==="once"?{kind:"once",at:te}:ie?S:{kind:"every",amount:Number(M),unit:V},...lt?{trigger:"email",email:{...E,usesModel:e.targetUsesModel!==!1}}:{},...Ue&&C?{notifyEmail:!0}:{},...Ue&&R.mode==="list"?{emailRecipients:R}:{},context:ne,growingMaxTokens:Number(Z),toolApproval:H,title:re,...Pe==="every"&&I?{startAt:I}:{},...(Pe==="every"||ie)&&fe.trim()?{count:Number(fe)}:{},...(Pe==="every"||ie)&&le?{until:le}:{}},X=sk(Ne),pe=e.busy===!0,_e=e.error?bo(e.error):null,ye=xe=>`${n}-${xe}`,Oe=xe=>{xe.preventDefault();const Ye=rk(Ne,{target:e.target,requestId:""});if(!Ye.ok){ve(Ye.errors);return}ve([]);const Yt=We.current,on=e.availableTools===void 0?Ye.body:{...Ye.body,target:{...Ye.body.target,input_data:Hc(Ye.body.target.input_data||{},m)}},xt=JSON.stringify(on),Yn={...on,request_id:Yt.idFor(xt)};Promise.resolve(e.onSubmit(Yn)).then(()=>Yt.settle(xt,{ok:!0}),Xs=>Yt.settle(xt,{ok:!1,error:Xs}))};return r.jsx("div",{className:"af-appearance-overlay af-schedule-overlay",onClick:e.onClose,role:"presentation",children:r.jsxs("div",{ref:a,className:"af-appearance af-schedule",role:"dialog","aria-modal":"true","aria-labelledby":t,onClick:xe=>xe.stopPropagation(),children:[r.jsx("div",{className:"af-appearance__title",id:t,children:e.title??"Schedule a task"}),r.jsxs("form",{className:"af-schedule__form",onSubmit:Oe,"aria-busy":pe,children:[r.jsxs("fieldset",{className:"af-auto__field",children:[r.jsx("legend",{children:"What"}),e.workflowPicker?r.jsx("div",{className:"af-schedule__picker",children:e.workflowPicker}):null,e.target?null:r.jsx("p",{className:"af-auto__hint",children:"Choose what to run."}),r.jsxs("label",{className:"af-auto__field",htmlFor:ye("prompt"),children:[r.jsx("span",{children:"Task"}),r.jsx("textarea",{id:ye("prompt"),ref:i,rows:3,value:w,onChange:xe=>_(xe.target.value),placeholder:"e.g. Check the price of ACME shares and notify me if it moved more than 2%.",required:!0})]})]}),r.jsxs("fieldset",{className:"af-auto__field",children:[r.jsx("legend",{children:st.legend}),r.jsxs("div",{className:"af-auto__row",role:"radiogroup","aria-label":"Schedule kind",children:[r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("kind"),value:"every",checked:Pe==="every",onChange:()=>ee("every")})," ",st.kind_every]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("kind"),value:"daily",checked:b==="daily",onChange:()=>ee("daily")})," ",st.kind_daily]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("kind"),value:"weekly",checked:b==="weekly",onChange:()=>ee("weekly")})," ",st.kind_weekly]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("kind"),value:"monthly",checked:b==="monthly",onChange:()=>ee("monthly")})," ",st.kind_monthly]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("kind"),value:"once",checked:b==="once",onChange:()=>ee("once")})," ",st.kind_once]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("kind"),value:"email",checked:lt,disabled:!Ue,onChange:()=>ee("email")})," ",He.trigger_label]})]}),Ue?null:r.jsx(yf,{status:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail}),lt?r.jsx(Mk,{value:{...E,usesModel:e.targetUsesModel!==!1},onChange:N,idBase:n}):ie?r.jsx(Ry,{value:S,onChange:xe=>j(Ye=>Hf(Ye,xe)),idBase:n,disabled:pe}):Pe==="every"?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"af-auto__row af-schedule__presets",role:"group","aria-label":"Presets",children:qx.map(xe=>xe.when.kind==="every"?r.jsx("button",{type:"button",className:"af-auto__btn af-auto__btn--quiet","aria-pressed":Number(M)===xe.when.amount&&V===xe.when.unit,onClick:()=>{xe.when.kind==="every"&&(J(String(xe.when.amount)),O(xe.when.unit))},children:xe.label},xe.label):null)}),r.jsxs("div",{className:"af-auto__row",children:[r.jsx("span",{children:st.every_label}),r.jsx("input",{type:"number",min:1,step:1,value:M,onChange:xe=>J(xe.target.value),"aria-label":"Interval amount"}),r.jsxs("select",{value:V,onChange:xe=>O(xe.target.value),"aria-label":"Interval unit",children:[r.jsx("option",{value:"m",children:"minutes"}),r.jsx("option",{value:"h",children:"hours"}),r.jsx("option",{value:"d",children:"days"})]})]})]}):r.jsxs("label",{className:"af-auto__field",htmlFor:ye("once"),children:[r.jsx("span",{children:st.once_label}),r.jsx("input",{id:ye("once"),type:"datetime-local",value:te,onChange:xe=>P(xe.target.value)})]}),Pe!=="email"?r.jsx(My,{state:$e,onOpenPreferences:e.onOpenPreferences,showZone:qk(Pe)}):r.jsx("p",{className:"af-schedule__preview","aria-live":"polite","data-preview":"true",children:X?`Runs ${X}.`:lt?"Incomplete email trigger.":st.incomplete})]}),r.jsxs("fieldset",{className:"af-auto__field",children:[r.jsx("legend",{children:"Context"}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("ctx"),value:"independent",checked:ne==="independent",onChange:()=>ae("independent")})," Independent — each run starts fresh"]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("ctx"),value:"growing",checked:ne==="growing",onChange:()=>ae("growing")})," Growing — each run sees the previous runs"]}),ne==="growing"?r.jsxs("label",{className:"af-auto__field",children:[r.jsx("span",{children:"Max growing context (tokens)"}),r.jsx("input",{type:"number",min:1,step:1,required:!0,disabled:pe,value:Z,onChange:xe=>W(xe.target.value)}),r.jsx("span",{className:"af-auto__hint",children:yy})]}):null]}),r.jsxs("fieldset",{className:"af-auto__field","data-field":"tool-approval",children:[r.jsx("legend",{children:"Tools"}),e.availableTools!==void 0?r.jsx(Ly,{availableTools:e.availableTools,value:m,onChange:p,disabled:pe}):null,r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("tools"),value:"auto",checked:H==="auto",onChange:()=>de("auto")})," Run without asking"]}),r.jsxs("label",{children:[r.jsx("input",{type:"radio",name:ye("tools"),value:"ask",checked:H==="ask",onChange:()=>de("ask")})," Ask me before each tool call (the run waits for you)"]}),lt?r.jsx("p",{className:"af-auto__hint","data-email-rule":"untrusted",children:He.untrusted_hint}):null,H==="auto"?r.jsxs("p",{className:"af-schedule__consent","data-consent":"true",children:[ak,e.targetTools&&e.targetTools.length?`: ${e.targetTools.join(", ")}.`:"."]}):r.jsx("p",{className:"af-auto__hint",children:"Each tool call waits for your approval in the automation's timeline."})]}),e.workspaces?r.jsx("div",{className:"af-auto__field","data-field":"workspaces",role:"group","aria-label":"Workspaces",children:e.workspaces}):null,r.jsxs("fieldset",{className:"af-auto__field","data-field":"email",children:[r.jsx("legend",{children:"Mailbox"}),Ue?null:r.jsx(yf,{status:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail}),r.jsx(Lk,{notifyEmail:Ue&&C,onNotifyEmailChange:$,recipients:Ue?R:Ti,onRecipientsChange:D,disabled:!Ue,idBase:n})]}),r.jsxs("fieldset",{className:"af-auto__field","data-field":"limits",children:[r.jsx("legend",{children:"Title and limits"}),r.jsxs("label",{className:"af-auto__field",htmlFor:ye("title"),children:[r.jsx("span",{children:"Title"}),r.jsx("input",{id:ye("title"),value:re,maxLength:120,onChange:xe=>F(xe.target.value),placeholder:"Defaults to the task's first line"})]}),Pe==="every"||ie?r.jsxs(r.Fragment,{children:[Pe==="every"?r.jsxs("label",{className:"af-auto__field",htmlFor:ye("start"),children:[r.jsx("span",{children:"First run at (UTC; empty = now)"}),r.jsx("input",{id:ye("start"),type:"datetime-local",value:I,onChange:xe=>U(xe.target.value)})]}):null,r.jsxs("label",{className:"af-auto__field",htmlFor:ye("count"),children:[r.jsx("span",{children:"Stop after this many runs"}),r.jsx("input",{id:ye("count"),type:"number",min:1,step:1,value:fe,onChange:xe=>q(xe.target.value)})]}),r.jsxs("label",{className:"af-auto__field",htmlFor:ye("until"),children:[r.jsx("span",{children:"Stop at (UTC)"}),r.jsx("input",{id:ye("until"),type:"datetime-local",value:le,onChange:xe=>me(xe.target.value)})]})]}):null]}),oe.length?r.jsx("ul",{className:"af-auto__form-errors",role:"alert",children:oe.map(xe=>r.jsx("li",{children:xe},xe))}):null,_e?r.jsxs("div",{className:"af-auto__error",role:"alert","data-code":(Ke=e.error)==null?void 0:Ke.code,children:[r.jsx("strong",{children:_e.title})," ",r.jsx("span",{children:_e.detail})]}):null,r.jsxs("div",{className:"af-appearance__actions af-auto__row",children:[r.jsx("button",{type:"button",className:"af-auto__btn",onClick:e.onClose,children:"Cancel"}),r.jsx("button",{type:"submit",className:"af-auto__btn af-auto__btn--primary",disabled:pe,children:"Create automation"})]})]})]})})}const Ec=6e4,bf=60*Ec,Lp=24*bf;function Ac(e){const t=Math.abs(e);return Number.isFinite(t)?t<Ec?"<1 min":t<bf?`${Math.floor(t/Ec)} min`:t<2*Lp?`${Math.floor(t/bf)} h`:`${Math.floor(t/Lp)} d`:""}function ej(e,t){return e.source_id==="schedule"?xy(t,e.source_version):e.source_id==="manual"?"manual":Wi(e)?"on new email":e.source_id}function _c(e){if(!e)return null;const t=Date.parse(e);return Number.isNaN(t)?null:t}function tj(e,t){var i;if(e.current_occurrence&&(((i=e.attention)==null?void 0:i.pending_waits)??0)>0){const c=e.last_occurrence&&e.last_occurrence.index===e.current_occurrence.index?_c(e.last_occurrence.fired_at):null;return c===null?"":`waiting since ${Ac(Math.max(0,t-c))}`}if(e.current_occurrence)return"running now";const n=e.last_occurrence,a=_c(n==null?void 0:n.finished_at)??_c(n==null?void 0:n.fired_at);return a===null?"last never":`last ${Ac(Math.max(0,t-a))} ago`}function nj(e,t){const n=_c(e.next_run_at);return n===null?null:n-t<Ec?"next due now":`next in ${Ac(n-t)}`}function Gy(e,t){const n=ej(e.trigger,e),a=tj(e,t),i=nj(e,t);return{cadence:n,last:a,next:i,line:[n,a,i].filter(Boolean).join(" · ")}}const cs={min:300,max:960,default:420,step:16,bigStep:64};function ca(e,t=cs.min,n=cs.max,a=cs.default){return Number.isFinite(e)?Math.round(Math.min(n,Math.max(t,e))):Math.min(n,Math.max(t,a))}function sj(e,t,n,a=cs.min,i=cs.max){const c=n?cs.bigStep:cs.step;return t==="ArrowLeft"?ca(e+c,a,i):t==="ArrowRight"?ca(e-c,a,i):t==="Home"?a:t==="End"?i:null}function rj(e,t,n){return e<=0?null:n==="ArrowDown"?(t+1)%e:n==="ArrowUp"?(t-1+e)%e:n==="Home"?0:n==="End"?e-1:null}function aj(e,t){return e===t?null:t}function oj(e,t,n,a){if(!e)return ca(t,n,a);try{const i=Number.parseInt(window.localStorage.getItem(e)||"",10);if(Number.isFinite(i))return ca(i,n,a,t)}catch{}return ca(t,n,a)}function ij(e){const t=e.minWidth??cs.min,n=e.maxWidth??cs.max,a=e.idBase||"af-rail",i=kc(Li.md),c=e.overlay??i,[u,d]=y.useState(()=>typeof window>"u"?ca(e.defaultWidth??cs.default,t,n):oj(e.storageKey,e.defaultWidth??cs.default,t,n)),f=y.useRef(u);f.current=u;const[m,p]=y.useState(()=>new Set(e.active?[e.active]:[])),w=y.useRef(null),_=y.useRef(null),b=y.useRef(null),A=y.useRef(null),x=e.items.find(M=>M.id===e.active)||null,{onActiveChange:j}=e;y.useEffect(()=>{e.active&&p(M=>M.has(e.active)?M:new Set([...M,e.active]))},[e.active]);const S=y.useCallback(M=>{if(e.storageKey)try{window.localStorage.setItem(e.storageKey,String(Math.round(M)))}catch{}},[e.storageKey]);y.useEffect(()=>{if(!c||!x)return;const M=J=>{J.key!=="Escape"||J.defaultPrevented||(J.preventDefault(),j(null))};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[c,x,j]),y.useEffect(()=>{var M,J;c&&(x?(M=_.current)==null||M.focus({preventScroll:!0}):b.current&&document.activeElement&&((J=_.current)!=null&&J.contains(document.activeElement))&&b.current.focus())},[c,x]);const E=M=>{var te,P;const J=Array.from(((te=w.current)==null?void 0:te.querySelectorAll('[role="tab"]'))||[]),V=J.findIndex(Z=>Z===document.activeElement),O=rj(J.length,V<0?0:V,M.key);O!==null&&(M.preventDefault(),(P=J[O])==null||P.focus())},N=M=>{const J=sj(f.current,M.key,M.shiftKey,t,n);J!==null&&(M.preventDefault(),d(J),S(J))},C=M=>{var J,V;M.button!==0&&M.pointerType==="mouse"||(A.current={startX:M.clientX,startW:f.current,pointerId:M.pointerId},(V=(J=M.currentTarget).setPointerCapture)==null||V.call(J,M.pointerId),M.preventDefault())},$=M=>{const J=A.current;!J||J.pointerId!==M.pointerId||d(ca(J.startW+(J.startX-M.clientX),t,n))},R=M=>{var V,O;const J=A.current;!J||J.pointerId!==M.pointerId||(A.current=null,(O=(V=M.currentTarget).releasePointerCapture)==null||O.call(V,M.pointerId),S(f.current))},D=!!x;return r.jsxs("div",{className:`af-rail${D?" af-rail--open":" af-rail--collapsed"}${c?" af-rail--overlay":" af-rail--docked"}${e.className?` ${e.className}`:""}`,style:{"--af-rail-panel-width":`${u}px`},"data-active":e.active||"",children:[c&&D?r.jsx("div",{className:"af-rail__backdrop","aria-hidden":"true",onClick:()=>j(null)}):null,r.jsxs("div",{className:"af-rail__panel-wrap",hidden:!D,style:!c&&D?{width:u}:void 0,children:[!c&&D?r.jsx("div",{className:"af-rail__resize",role:"separator","aria-orientation":"vertical","aria-label":`Resize the ${(x==null?void 0:x.label)||""} panel`,"aria-valuemin":t,"aria-valuemax":n,"aria-valuenow":u,tabIndex:0,title:"Drag to resize",onKeyDown:N,onPointerDown:C,onPointerMove:$,onPointerUp:R,onPointerCancel:R}):null,r.jsx("div",{ref:_,className:"af-rail__panel",role:c?"dialog":void 0,"aria-label":c?x==null?void 0:x.label:void 0,tabIndex:c?-1:void 0,children:e.items.map(M=>r.jsxs("section",{id:`${a}-panel-${M.id}`,role:"tabpanel","aria-labelledby":`${a}-tab-${M.id}`,className:"af-rail__section","data-panel":M.id,hidden:M.id!==e.active,children:[r.jsxs("header",{className:"af-rail__head",children:[r.jsx("h2",{className:"af-rail__title",children:M.label}),r.jsxs("span",{className:"af-rail__head-actions",children:[M.headerActions,r.jsx("button",{type:"button",className:"af-rail__icon-btn","data-action":"collapse-panel","aria-label":`Collapse ${M.label}`,title:"Collapse",onClick:()=>j(null),children:r.jsx(se,{name:c?"x":"chevronRight",size:16})})]})]}),r.jsx("div",{className:"af-rail__body",children:m.has(M.id)||M.id===e.active?M.content:null})]},M.id))})]}),r.jsx("div",{ref:w,className:"af-rail__rail",role:"tablist","aria-orientation":"vertical","aria-label":e.ariaLabel,onKeyDown:E,children:e.items.map(M=>{const J=M.id===e.active,V=`${J?`Collapse ${M.label}`:M.label}${M.hint?` · ${M.hint}`:""}`;return r.jsxs("button",{type:"button",role:"tab",id:`${a}-tab-${M.id}`,"aria-selected":J,"aria-controls":`${a}-panel-${M.id}`,"aria-label":M.label,title:V,className:`af-rail__tab${J?" is-active":""}`,"data-rail":M.id,onClick:O=>{b.current=O.currentTarget,j(aj(e.active,M.id))},children:[r.jsx(se,{name:M.icon,size:19}),typeof M.badge=="number"&&M.badge>0?r.jsx("span",{className:"af-rail__badge","aria-hidden":"true",children:M.badge>99?"99+":M.badge}):M.badge===!0?r.jsx("span",{className:"af-rail__dot","aria-hidden":"true"}):null]},M.id)})})]})}const Ky=72;function lj(e,t=Ky){const n=Math.max(1,Math.floor(t)),a=new Array(n).fill(0),i=e.length;if(!i)return a;const c=i/n;let u=0;for(let d=0;d<n;d+=1){const f=Math.floor(d*c),m=Math.max(f+1,Math.floor((d+1)*c));let p=0;for(let w=f;w<m&&w<i;w+=1){const _=Math.abs(Number(e[w])||0);_>p&&(p=_)}a[d]=p,p>u&&(u=p)}return u<=0?a:a.map(d=>d/u)}function cc(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"--:--";const t=Math.floor(e),n=Math.floor(t/3600),a=Math.floor(t%3600/60),i=String(t%60).padStart(2,"0");return n>0?`${n}:${String(a).padStart(2,"0")}:${i}`:`${a}:${i}`}function cj(e,t,n){return!(t>0)||!(n>0)?0:Math.min(n,Math.max(0,e/t*n))}function uj(e,t){const[n,a]=y.useState({peaks:t??null,note:""});return y.useEffect(()=>{if(t){a({peaks:t,note:""});return}let i=!0;a({peaks:null,note:""});const c=typeof window<"u"?window.AudioContext||window.webkitAudioContext:void 0;if(!e||!c||typeof fetch!="function"){a({peaks:null,note:"Waveform unavailable in this browser."});return}return(async()=>{let u=null;try{const d=await(await fetch(e)).arrayBuffer();u=new c;const f=await u.decodeAudioData(d);i&&a({peaks:lj(f.getChannelData(0)),note:""})}catch(d){i&&a({peaks:null,note:`Waveform unavailable: ${d instanceof Error?d.message:String(d)}`})}finally{u&&u.close().catch(()=>{})}})(),()=>{i=!1}},[e,t]),n}function Jy(e){const t=y.useRef(null),n=y.useRef(null),[a,i]=y.useState(!1),[c,u]=y.useState(0),[d,f]=y.useState(null),[m,p]=y.useState(""),{peaks:w,note:_}=uj(e.src,e.peaks),b=w??new Array(Ky).fill(0),A=d&&d>0?Math.min(1,c/d):0,x=e.name?`Audio ${e.name}`:"Audio",j=y.useCallback(()=>{const C=t.current;C&&(C.paused?C.play().catch($=>p($ instanceof Error?$.message:String($))):C.pause())},[]),S=y.useCallback(C=>{const $=t.current;!$||!Number.isFinite(C)||($.currentTime=C,u(C))},[]),E=C=>{var R;const $=(R=n.current)==null?void 0:R.getBoundingClientRect();!$||!d||S(cj(C-$.left,$.width,d))},N=C=>{if(!d)return;const $=C.key==="ArrowRight"||C.key==="ArrowUp"?5:C.key==="ArrowLeft"||C.key==="ArrowDown"?-5:0;$?(C.preventDefault(),S(Math.min(d,Math.max(0,c+$)))):C.key==="Home"?(C.preventDefault(),S(0)):C.key==="End"?(C.preventDefault(),S(d)):(C.key===" "||C.key==="Enter")&&(C.preventDefault(),j())};return r.jsxs("div",{className:`af-audio${e.className?` ${e.className}`:""}`,"data-playing":a?"true":"false",children:[r.jsx("audio",{ref:t,src:e.src,preload:"metadata",onPlay:()=>i(!0),onPause:()=>i(!1),onEnded:()=>i(!1),onTimeUpdate:C=>u(C.currentTarget.currentTime),onLoadedMetadata:C=>f(Number.isFinite(C.currentTarget.duration)?C.currentTarget.duration:null),onDurationChange:C=>f(Number.isFinite(C.currentTarget.duration)?C.currentTarget.duration:null),onError:()=>p("This audio cannot be played in this browser. Use Download to open it.")}),r.jsx("button",{type:"button",className:"af-audio__play","data-action":a?"pause-audio":"play-audio","aria-label":a?`Pause ${x}`:`Play ${x}`,title:a?"Pause":"Play",onClick:j,children:r.jsx(se,{name:a?"pause":"play",size:16})}),r.jsx("div",{ref:n,className:"af-audio__wave",role:"slider",tabIndex:0,"aria-label":`Seek in ${x}`,"aria-valuemin":0,"aria-valuemax":Math.round(d??0),"aria-valuenow":Math.round(c),"aria-valuetext":`${cc(c)} of ${cc(d)}`,title:_||void 0,"data-waveform":w?"decoded":"flat",onKeyDown:N,onPointerDown:C=>{var $,R;(R=($=C.currentTarget).setPointerCapture)==null||R.call($,C.pointerId),E(C.clientX)},onPointerMove:C=>{C.buttons&1&&E(C.clientX)},children:r.jsx("svg",{viewBox:`0 0 ${b.length*2} 32`,preserveAspectRatio:"none","aria-hidden":"true",focusable:"false",children:b.map((C,$)=>{const R=Math.max(1.5,C*30),D=($+.5)/b.length<=A;return r.jsx("rect",{className:D?"af-audio__bar af-audio__bar--played":"af-audio__bar",x:$*2+.3,y:16-R/2,width:1.4,height:R,rx:.6},$)})})}),r.jsxs("span",{className:"af-audio__time","aria-hidden":"true",children:[cc(c)," / ",cc(d)]}),m?r.jsx("p",{className:"af-audio__error",role:"alert",children:m}):null]})}const fa=e=>new Set(e.split(/\s+/).filter(Boolean)),dj=fa("if else for while do switch case default break continue return function const let var class extends new this super import export from as async await try catch finally throw typeof instanceof in of void delete yield static public private protected interface type enum implements package struct fn impl trait pub use mod mut match loop where crate self Self func go defer chan map range select int long short char float double bool boolean string true false null nil undefined None True False namespace using template typename virtual override final abstract sealed record val object fun when is"),fj=fa("def class return if elif else for while in not and or is import from as with try except finally raise pass break continue lambda yield global nonlocal assert del async await None True False self match case"),hj=fa("if then else elif fi for while do done case esac in function return export local readonly set unset echo exit source"),mj=fa("select from where insert into values update set delete create table index view drop alter add join left right inner outer on group by order having limit offset as and or not null is in like between union all distinct primary key foreign references default"),Op=fa("true false null yes no on off"),pj={c:{line:["//"],block:["/*","*/"],strings:['"',"'","`"],keywords:dj},python:{line:["#"],strings:['"',"'"],triple:!0,keywords:fj},shell:{line:["#"],strings:['"',"'"],keywords:hj},sql:{line:["--"],block:["/*","*/"],strings:["'",'"'],keywords:mj},data:{line:["#"],strings:['"',"'"],keywords:Op},json:{line:[],strings:['"'],keywords:Op},css:{line:[],block:["/*","*/"],strings:['"',"'"],keywords:fa("")},markup:{line:[],block:["<!--","-->"],strings:['"',"'"],keywords:fa("")}},gj={js:"c",mjs:"c",cjs:"c",jsx:"c",ts:"c",tsx:"c",java:"c",kt:"c",c:"c",h:"c",cc:"c",cpp:"c",hpp:"c",cs:"c",go:"c",rs:"c",swift:"c",scala:"c",dart:"c",php:"c",py:"python",pyi:"python",rb:"shell",sh:"shell",bash:"shell",zsh:"shell",fish:"shell",ps1:"shell",sql:"sql",yaml:"data",yml:"data",toml:"data",ini:"data",cfg:"data",conf:"data",env:"data",json:"json",jsonl:"json",css:"css",scss:"css",less:"css",html:"markup",htm:"markup",xml:"markup",svg:"markup",vue:"markup",javascript:"c",typescript:"c",rust:"c",python:"python",shell:"shell"};function Gf(e){const t=String(e||"").trim().toLowerCase(),n=t.split("/").pop()||t;if(n==="dockerfile"||n==="makefile")return"shell";const a=n.lastIndexOf("."),i=a>=0?n.slice(a+1):n;return gj[i]||""}const yj=e=>e>="0"&&e<="9",wj=e=>/[A-Za-z_$]/.test(e),Pp=e=>/[A-Za-z0-9_$]/.test(e);function Qy(e,t){const n=String(e??""),a=pj[t];if(!a)return n?[{kind:"plain",text:n}]:[];const i=[];let c="";const u=(f,m)=>{if(m){if(f==="plain"){c+=m;return}c&&i.push({kind:"plain",text:c}),c="",i.push({kind:f,text:m})}};let d=0;for(;d<n.length;){const f=n[d];if(a.line.find(p=>n.startsWith(p,d))){const p=n.indexOf(`
|
|
61
|
-
`,d),w=p===-1?n.length:p;u("comment",n.slice(d,w)),d=w;continue}if(a.block&&n.startsWith(a.block[0],d)){const p=n.indexOf(a.block[1],d+a.block[0].length),w=p===-1?n.length:p+a.block[1].length;u("comment",n.slice(d,w)),d=w;continue}if(a.strings.includes(f)){const p=a.triple&&n.startsWith(f.repeat(3),d)?f.repeat(3):"";if(p){const b=n.indexOf(p,d+3),A=b===-1?n.length:b+3;u("string",n.slice(d,A)),d=A;continue}let w=d+1;for(;w<n.length&&n[w]!==f&&(f==="`"||n[w]!==`
|
|
62
|
-
`);)w+=n[w]==="\\"?2:1;const _=Math.min(n.length,w+1);u("string",n.slice(d,_)),d=_;continue}if(yj(f)&&!(d>0&&Pp(n[d-1]))){let p=d+1;for(;p<n.length&&/[0-9a-fA-FxXoObB._]/.test(n[p]);)p+=1;u("number",n.slice(d,p)),d=p;continue}if(wj(f)){let p=d+1;for(;p<n.length&&Pp(n[p]);)p+=1;const w=n.slice(d,p),_=t==="sql"?a.keywords.has(w.toLowerCase()):a.keywords.has(w);u(_?"keyword":"plain",w),d=p;continue}u("plain",f),d+=1}return c&&i.push({kind:"plain",text:c}),i}function uc({text:e,language:t="",lineNumbers:n=!0,className:a,ariaLabel:i}){const c=Gf(t),u=Qy(e,c),d=n?String(e??"").split(`
|
|
63
|
-
`).length:0;return r.jsx("pre",{className:`af-code${n?" af-code--numbered":""}${a?` ${a}`:""}`,"data-language":c||"text","aria-label":i,style:n?{"--af-code-gutter":`${String(d).length+1}ch`}:void 0,children:r.jsx("code",{children:n?vj(u).map((f,m)=>r.jsxs("span",{className:"af-code__line","data-line":m+1,children:[f.map((p,w)=>Dp(p,w)),`
|
|
64
|
-
`]},m)):u.map((f,m)=>Dp(f,m))})})}function Dp(e,t){return e.kind==="plain"?r.jsx(ut.Fragment,{children:e.text},t):r.jsx("span",{className:`af-code__${e.kind}`,children:e.text},t)}function vj(e){const t=[[]];for(const n of e)n.text.split(`
|
|
65
|
-
`).forEach((i,c)=>{c>0&&t.push([]),i&&t[t.length-1].push({kind:n.kind,text:i})});return t}const Yy=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ki=6e4,ji=60*ki,dc=24*ji;function Vi(e){if(e==null||e==="")return NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return Number.isFinite(e)?e<1e12?e*1e3:e:NaN;const t=String(e).trim();return/^\d+(\.\d+)?$/.test(t)?Vi(Number(t)):Date.parse(t)}function Fp(e){return e<10?`0${e}`:String(e)}function zp(e,t){const n=Vi(e);if(!Number.isFinite(n))return"";const a=new Date(n),i=a.getFullYear()===new Date(t).getFullYear();return`${Yy[a.getMonth()]} ${a.getDate()}${i?"":`, ${a.getFullYear()}`}`}function Jc(e){const t=Vi(e);if(!Number.isFinite(t))return"";const n=new Date(t);return`${Yy[n.getMonth()]} ${n.getDate()}, ${n.getFullYear()}, ${Fp(n.getHours())}:${Fp(n.getMinutes())}`}function wo(e,t){const n=Vi(e);if(!Number.isFinite(n)||!Number.isFinite(t))return"";const a=t-n;if(a<0){const c=-a;if(c<ki)return"due now";if(c<ji)return`in ${Math.round(c/ki)} min`;if(c<dc)return`in ${Math.round(c/ji)} h`;const u=Math.round(c/dc);return u<7?`in ${u} ${u===1?"day":"days"}`:zp(n,t)}if(a<ki)return"just now";if(a<ji)return`${Math.floor(a/ki)} min ago`;if(a<dc)return`${Math.floor(a/ji)} h ago`;const i=Math.floor(a/dc);return i===1?"yesterday":i<7?`${i} days ago`:zp(n,t)}const _j=new Set("png jpg jpeg gif webp bmp ico avif".split(" ")),bj=new Set("mp3 wav ogg oga opus m4a aac flac weba".split(" ")),xj=new Set("txt log csv tsv rst adoc org tex diff patch lock".split(" "));function kj(e){const t=String(e||"").split("/").pop()||"",n=t.lastIndexOf(".");return n>0?t.slice(n+1).toLowerCase():t.toLowerCase()}function $c(e,t=""){const n=kj(e),a=String(t||"").split(";",1)[0].trim().toLowerCase();return n==="md"||n==="markdown"||a==="text/markdown"?"markdown":n==="json"||a==="application/json"||a.endsWith("+json")?"json":n==="pdf"||a==="application/pdf"?"pdf":_j.has(n)||a.startsWith("image/")&&a!=="image/svg+xml"?"image":bj.has(n)||a.startsWith("audio/")?"audio":Gf(e)?"code":xj.has(n)||a.startsWith("text/")?"text":["application/javascript","application/xml","application/x-yaml","application/toml"].includes(a)?"code":"binary"}function xf(e){return e==="markdown"||e==="code"||e==="json"||e==="text"}function Qc(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";if(e<1024)return`${e} B`;const t=["KiB","MiB","GiB","TiB"];let n=e/1024,a=0;for(;n>=1024&&a<t.length-1;)n/=1024,a+=1;return`${n<10?n.toFixed(1):Math.round(n)} ${t[a]}`}function jj(e){const t=e.kind??$c(e.name,e.contentType),n=Qc(e.sizeBytes),a=e.modified!==void 0?wo(e.modified,e.nowMs):"";return r.jsxs("section",{className:`af-file-viewer${e.className?` ${e.className}`:""}`,"aria-label":`Preview of ${e.name}`,"data-kind":t,children:[r.jsxs("header",{className:"af-file-viewer__head",children:[r.jsx(se,{name:"file",size:15}),r.jsxs("span",{className:"af-file-viewer__title",children:[r.jsx("strong",{className:"af-file-viewer__name",title:e.path||e.name,children:e.name}),n||a?r.jsxs("span",{className:"af-file-viewer__meta",children:[n?r.jsx("span",{"data-meta":"size",children:n}):null,n&&a?r.jsx("span",{"aria-hidden":"true",children:" · "}):null,a?r.jsx("time",{"data-meta":"modified",title:Jc(e.modified),dateTime:new Date(Vi(e.modified)).toISOString(),children:a}):null]}):null]}),e.actions,e.onDownload?r.jsx("button",{type:"button",className:"af-file-viewer__icon-btn","data-action":"download-file",onClick:e.onDownload,title:"Download","aria-label":`Download ${e.name}`,children:r.jsx(se,{name:"download",size:15})}):null,e.onClose?r.jsx("button",{type:"button",className:"af-file-viewer__icon-btn","data-action":"close-preview",onClick:e.onClose,title:"Close","aria-label":"Close the preview",children:r.jsx(se,{name:"x",size:15})}):null]}),r.jsx("div",{className:"af-file-viewer__body",children:e.status==="loading"?r.jsx("p",{className:"af-file-viewer__muted",role:"status",children:"Loading preview…"}):e.status==="error"?r.jsx("p",{className:"af-file-viewer__error",role:"alert",children:e.error||"The preview could not be loaded."}):r.jsxs(r.Fragment,{children:[e.partialNote?r.jsx("p",{className:"af-file-viewer__muted",role:"status",children:e.partialNote}):null,r.jsx(Sj,{kind:t,p:e})]})})]})}function Sj({kind:e,p:t}){const n=t.text??"";switch(e){case"image":return t.url?r.jsx("img",{className:"af-file-viewer__image",src:t.url,alt:t.name}):r.jsx(fc,{});case"audio":return t.url?r.jsx(Jy,{src:t.url,name:t.name}):r.jsx(fc,{});case"pdf":return t.url?r.jsx("object",{className:"af-file-viewer__pdf",data:t.url,type:"application/pdf","aria-label":t.name,children:r.jsx("p",{className:"af-file-viewer__muted",children:"This browser cannot show PDFs inline. Use Download to open it."})}):r.jsx(fc,{});case"markdown":return t.renderMarkdown?r.jsx("div",{className:"af-file-viewer__markdown",children:t.renderMarkdown(n)}):r.jsx(uc,{text:n,language:""});case"json":{let a=n,i="";try{a=JSON.stringify(JSON.parse(n),null,2)}catch{i=t.partialNote?"":"Not valid JSON; shown as text."}return r.jsxs(r.Fragment,{children:[i?r.jsx("p",{className:"af-file-viewer__muted",children:i}):null,r.jsx(uc,{text:a,language:"json"})]})}case"code":return r.jsx(uc,{text:n,language:t.name});case"text":return r.jsx(uc,{text:n,language:"",lineNumbers:!1});default:return r.jsx(fc,{})}}function fc(){return r.jsx("p",{className:"af-file-viewer__muted",children:"No preview for this file type. Use Download to open it."})}function Si(e){const t=y.useId(),n=`${e.id||t}-title`;return r.jsxs("section",{className:`af-settings-group${e.variant==="flat"?" af-settings-group--flat":""}${e.className?` ${e.className}`:""}`,"aria-labelledby":n,id:e.id,children:[r.jsxs("div",{className:"af-settings-group__head",children:[r.jsx("h3",{className:"af-settings-group__title",id:n,children:e.title}),e.aside?r.jsx("span",{className:"af-settings-group__aside",children:e.aside}):null]}),e.help?r.jsx("p",{className:"af-settings-group__help",children:e.help}):null,r.jsx("div",{className:"af-settings-group__rows",children:e.children})]})}function aa(e){const t=e.htmlFor?"label":"span";return r.jsxs("div",{className:`af-setting-row${e.stack?" af-setting-row--stack":""}${e.className?` ${e.className}`:""}`,"data-setting":e.setting,children:[r.jsxs("div",{className:"af-setting-row__label",children:[r.jsx(t,{className:"af-setting-row__name",...e.htmlFor?{htmlFor:e.htmlFor}:{},children:e.label}),e.help?r.jsx("span",{className:"af-setting-row__help",children:e.help}):null]}),e.children!==void 0||e.trailing?r.jsxs("div",{className:"af-setting-row__control",children:[e.children,e.trailing?r.jsx("span",{className:"af-setting-row__trailing",children:e.trailing}):null]}):null]})}function Wp(e){const t=!!e.overrideSummary,n=y.useId(),a=t?`${e.overrideSummary}${e.overrideOwner?` — ${e.overrideOwner}`:""}`:`Gateway default${e.defaultSummary?` · ${e.defaultSummary}`:""}`;return r.jsxs("div",{className:"af-override","data-setting":e.setting,"data-overridden":t?"true":"false",children:[r.jsx(aa,{label:e.label,help:e.help,trailing:r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"af-setting-btn","data-action":"change","aria-expanded":e.open,"aria-controls":n,disabled:e.disabled,onClick:e.onToggle,children:e.open?"Done":"Change"}),t&&e.onReset?r.jsx("button",{type:"button",className:"af-setting-btn af-setting-btn--quiet","data-action":"use-default",disabled:e.disabled,onClick:e.onReset,children:"Use gateway default"}):null]}),children:r.jsx("span",{className:"af-override__summary",title:a,children:a})}),r.jsx("div",{className:"af-override__editor",id:n,hidden:!e.open,children:e.open?e.children:null})]})}const tt={title:"Workspaces",gatewayTitle:"Eligible workspaces",gatewayHelp:"The workspaces accounts may choose from, and the most each one allows.",accountHelp:"The workspaces this account's agents use, among the eligible ones.",sessionHelp:"The workspaces this conversation uses, among the eligible ones.",runHelp:"The workspaces this run uses, among the eligible ones.",gatewayPrefix:"Gateway:",postureLabel:"Workspaces agents may use",postureAllowedOnly:"Deny everything, allow listed workspaces",postureAllowedOnlyHelp:"Agents may only work in the listed workspaces.",postureAnyExceptDenied:"Allow everything, refuse listed workspaces",postureAnyExceptDeniedHelp:"Agents may work in any workspace except the refused ones.",accessLabel:"Permission",accessRead:"Read-only",accessReadWrite:"Read & write",accessDenied:"Refused",capReadOnly:"The gateway allows this workspace read-only",capRefused:"The gateway refuses this workspace",everythingElse:"Everything else",allowedTitle:"Allowed workspaces",deniedTitle:"Refused workspaces",builtinRefused:"Always refused: the gateway's own data and credentials",emptyAllowed:"No workspace is listed: agents only use their private workspace.",privateNote:"The private workspace of each run is always available, read & write.",addPlaceholder:"Add a workspace path",add:"Add",choose:"Choose…",remove:"Remove",followGateway:"Follow the gateway policy",followGatewayHelp:"On: this account gets exactly what the gateway allows.",useDefault:"Use my default",useDefaultHelp:"On: the account's default workspaces apply.",locked:"These workspaces can be seen here but not changed.",loading:"Loading…",saved:"Saved",notSaved:"Not saved."},hn=tt;function Nj(e){return e==="any_except_denied"?hn.postureAnyExceptDenied:hn.postureAllowedOnly}function Cj(e){return e==="any_except_denied"?hn.postureAnyExceptDeniedHelp:hn.postureAllowedOnlyHelp}function Bp(e){return e==="ro"?hn.accessRead:e==="deny"?hn.accessDenied:hn.accessReadWrite}function Ej(e){return e==="gateway"?hn.gatewayHelp:e==="account"?hn.accountHelp:e==="session"?hn.sessionHelp:hn.runHelp}const Up={deny:0,ro:1,rw:2},Ud=["rw","ro","deny"];function Aj(e){if(e===null)return{allowed:[...Ud],reasons:{}};const t=e==="deny"?hn.capRefused:hn.capReadOnly,n=Ud.filter(i=>Up[i]<=Up[e]),a={};for(const i of Ud)n.includes(i)||(a[i]=t);return{allowed:n,reasons:a}}function $j(e,t){const{policy:n}=t,a=t.effective;if(e==="gateway"?typeof n.summary!="string":!a)throw new Error(e==="gateway"?"The gateway workspace policy has no summary line.":`A ${e}-level workspace chooser needs the gateway's effective workspaces.`);const i=e!=="gateway"&&n.configured===!1,c=t.can_edit===!1,u=new Map(((a==null?void 0:a.folders)??[]).map(b=>[b.path,b.cap])),d=a,f=i?d.folders.map(b=>({path:b.path,mode:b.mode})):n.folders,m=i?d.posture:n.posture,p=i?d.default_mode??n.default_mode:n.default_mode,w=!i&&!c,_=f.map(b=>{const A=e==="gateway"?null:u.get(b.path)??null,{allowed:x,reasons:j}=Aj(A);return{path:b.path,mode:b.mode,cap:A,allowed:x,reasons:j,builtin:!1,editable:w}});if(e==="gateway")for(const b of n.builtin_refused??[])_.push({path:b,mode:"deny",cap:null,allowed:[],reasons:{},builtin:!0,editable:!1});return{level:e,posture:m,following:i,rows:_,everythingElse:m==="any_except_denied"?{mode:p,editable:w}:null,canAdd:w,gatewayLine:e==="gateway"?null:`${hn.gatewayPrefix} ${d.gateway_summary}`,summary:e==="gateway"?n.summary:d.summary,locked:c}}function Tj(e,t){return t==="any_except_denied"?"deny":e==="gateway"?"rw":"ro"}function Hi(e,t){const n={posture:t.posture,default_mode:t.default_mode,folders:t.folders.map(a=>({path:a.path,mode:a.mode}))};return e==="gateway"?n:{configured:!0,...n}}function Rj(e,t,n,a){return Hi(e,{...t,folders:t.folders.map(i=>i.path===n?{path:n,mode:a}:i)})}function Ij(e,t,n){return Hi(e,{...t,posture:n})}function Mj(e,t,n){return Hi(e,{...t,default_mode:n})}function Lj(e,t,n,a){const i=String(n).trim();return Hi(e,{...t,folders:[...t.folders,{path:i,mode:Tj(e,t.posture)}]})}function Oj(e,t,n){return Hi(e,{...t,folders:t.folders.filter(a=>a.path!==n)})}function Pj(e,t){if(t)return{configured:!1};const n=e.effective;if(!n)throw new Error("The follow switch needs the gateway's effective workspaces.");return{configured:!0,posture:n.posture,default_mode:n.default_mode??e.policy.default_mode,folders:n.folders.map(a=>({path:a.path,mode:a.mode}))}}function Xy(e){let t=String(e||"");for(;t.endsWith("/");)t=t.slice(0,-1);return t}function Dj(e,t=Lr){const n=Xy(t);if(e.level==="gateway")return`${n}/workspace/policy`;if(e.level==="account")return`${n}/workspace/policy/${encodeURIComponent(e.account||"me")}`;if(!e.session)throw new Error("A session-level workspace chooser needs the session id.");return`${n}/sessions/${encodeURIComponent(e.session)}/workspaces${e.account?`?account=${encodeURIComponent(e.account)}`:""}`}function Fj(e="me",t=Lr){return`${Xy(t)}/workspace/effective/${encodeURIComponent(e)}`}const kf=e=>e==="ro"||e==="rw"||e==="deny",qy=e=>e==="ro"||e==="rw",Zy=e=>e==="allowed_only"||e==="any_except_denied",zj=e=>Array.isArray(e)&&e.every(t=>t&&typeof t.path=="string"&&kf(t.mode)),Tc="The gateway answered with an older workspace model (it needs the round-11 workspace API).";function Wj(e,t){const n=e&&typeof e=="object"?e:{},a=n.policy&&typeof n.policy=="object"?n.policy:{};if("shared_workspace"in a||"shared_workspace"in n)throw new Error(Tc);if(!(Zy(a.posture)&&qy(a.default_mode)&&zj(a.folders)&&(t==="gateway"?typeof a.summary=="string":typeof a.configured=="boolean")&&(a.builtin_refused===void 0||Array.isArray(a.builtin_refused)&&a.builtin_refused.every(c=>typeof c=="string"))))throw new Error(`The gateway answered without a workspace policy (policy.posture, default_mode, folders, ${t==="gateway"?"summary":"configured"}). ${Tc}`);return{...typeof a.account=="string"?{account:a.account}:{},...t==="gateway"?{summary:a.summary}:{configured:a.configured},posture:a.posture,default_mode:a.default_mode,folders:a.folders.map(c=>({path:c.path,mode:c.mode})),...Array.isArray(a.builtin_refused)?{builtin_refused:[...a.builtin_refused]}:{}}}function ew(e){const t=e&&typeof e=="object"?e:{};if("shared_workspace"in t)throw new Error(Tc);if(!(Zy(t.posture)&&(qy(t.default_mode)||t.default_mode===null&&t.posture==="allowed_only")&&typeof t.summary=="string"&&typeof t.gateway_summary=="string"&&Array.isArray(t.folders)&&t.folders.every(a=>a&&typeof a.path=="string"&&kf(a.mode)&&kf(a.cap))))throw new Error(`The gateway answered without the effective workspaces (posture, default_mode, folders with cap, summary, gateway_summary). ${Tc}`);return{posture:t.posture,default_mode:t.default_mode,folders:t.folders.map(a=>({path:a.path,mode:a.mode,cap:a.cap,source:a.source})),summary:t.summary,gateway_summary:t.gateway_summary}}function Vp(e,t){const n=Wj(e,t),a=e;return{policy:n,effective:t==="gateway"?null:ew(a.effective),...typeof a.can_edit=="boolean"?{can_edit:a.can_edit}:{}}}function Hp(e,t,n=Lr){const a=Dj(t,n);return{path:a,load:async()=>Vp(await e(a,{method:"GET"}),t.level),save:async i=>Vp(await e(a,{method:"PUT",body:i}),t.level)}}function jf(e,t="me",n=Lr){const a=Fj(t,n);return async(i,c)=>ew(await e(a,{method:"POST",body:c?{workspace:i,session:c}:{workspace:i}}))}function Kf(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;const t=e&&typeof e=="object"?e:{},n=t.detail;return n&&typeof n=="object"&&typeof n.message=="string"?n.message:typeof n=="string"?n:typeof t.message=="string"?t.message:""}function Gp(e){const t=Kf(e).trim()||"The gateway refused the change.";return`${t}${/[.!?]$/.test(t)?"":"."} ${hn.notSaved}`}const Bj=e=>!!e&&typeof e=="object"&&"policy"in e&&"effective"in e;function Uj(e,t){return t?{policy:e?{configured:!0,posture:e.posture,default_mode:e.default_mode,folders:e.folders.map(n=>({...n}))}:{configured:!1,posture:t.posture,default_mode:t.default_mode??"rw",folders:[]},effective:t}:null}function Jf(e){_o();const t=e.idPrefix||"af-workspace",[n,a]=y.useState(null),[i,c]=y.useState({}),[u,d]=y.useState(null),[f,m]=y.useState(""),[p,w]=y.useState(null),_=String(e.unavailableReason||"").trim(),b=e.level,A=e.level==="run"?Uj(e.value,e.effective):e.state,x=e.level==="run"?e.effective:e.state,j=p&&p.base===x?p.value:A,S=j?$j(b,j):null,E=W=>{if(e.level==="run"){const ne=e,ae=W.configured===!1?null:{posture:W.posture,default_mode:W.default_mode,folders:W.folders};return Promise.resolve(ne.onChange(ae))}return e.save(W)};async function N(W,ne){if(n!==null||_)return!1;a(W),d(null),c(ae=>{const H={...ae};return delete H[W],H});try{const ae=await E(ne);return Bj(ae)&&w({base:x,value:ae}),d(W),!0}catch(ae){return c(H=>({...H,[W]:Gp(ae)})),!1}finally{a(null)}}const C=W=>i[W]?r.jsx("span",{className:"af-workspace__refusal",role:"alert","data-workspace":"refusal",children:i[W]}):u===W?r.jsx("span",{className:"af-workspace__saved",role:"status","data-workspace":"saved",children:tt.saved}):null,$=(W,ne)=>r.jsx("span",{className:"af-workspace__access-tag","data-workspace":"access","data-access":W,"data-af-tip":ne,tabIndex:ne?0:void 0,children:Bp(W)}),R=(W,ne,ae,H,de)=>r.jsx("span",{className:"af-workspace__access",role:"group","aria-label":W,"data-workspace":de,"data-access":ne,children:ae.map(re=>{const F=!!re.reason||!!_;return r.jsx("button",{type:"button",className:"af-workspace__access-btn","aria-pressed":ne===re.value?"true":"false","aria-disabled":F?"true":void 0,"data-af-tip":re.reason||void 0,"data-action":`${de}-${re.value}`,onClick:()=>F||n!==null||re.value===ne?void 0:H(re.value),children:re.text},re.value)})}),D=W=>{if(W.builtin)return $("deny",tt.builtinRefused);if(!W.editable||!j)return $(W.mode);const ne=j.policy;return r.jsxs(r.Fragment,{children:[R(`${tt.accessLabel} ${W.path}`,W.mode,["rw","ro","deny"].map(ae=>({value:ae,text:Bp(ae),reason:W.reasons[ae]})),ae=>void N(W.path,Rj(b,ne,W.path,ae)),"workspace-mode"),r.jsx("button",{type:"button",className:"af-workspace__icon-btn","data-action":"workspace-remove","aria-label":`${tt.remove} ${W.path}`,"data-af-tip":`${tt.remove} ${W.path}`,"aria-disabled":_||n!==null?"true":void 0,onClick:()=>_||n!==null?void 0:void N(W.path,Oj(b,ne,W.path)),children:r.jsx(se,{name:"x",size:16})})]})};async function M(W){if(!j||!S||!S.canAdd)return;const ne=W.trim();ne&&await N("add",Lj(b,j.policy,ne))&&m("")}async function J(){if(!e.choose||n!==null||_)return;let W;try{W=await e.choose()}catch(ne){c(ae=>({...ae,add:Gp(ne)}));return}W&&await M(W)}const V=S?S.rows.filter(W=>W.mode!=="deny"):[],O=S?S.rows.filter(W=>W.mode==="deny"):[],te=W=>r.jsxs("li",{className:"af-workspace__row","data-workspace":W.builtin?"builtin":"row","data-path":W.path,"data-mode":W.mode,"data-cap":W.cap??void 0,children:[r.jsx("code",{className:"af-workspace__path",children:W.path}),r.jsx("span",{className:"af-workspace__controls",children:D(W)}),C(W.path)]},`${W.builtin?"builtin:":""}${W.path}`),P=b==="account"?tt.followGateway:tt.useDefault,Z=b==="account"?tt.followGatewayHelp:tt.useDefaultHelp;return r.jsx(Si,{id:t,className:`af-workspace af-workspace--${b}${e.className?` ${e.className}`:""}`,title:b==="gateway"?tt.gatewayTitle:tt.title,help:Ej(b),children:e.loadError?r.jsx("p",{className:"af-workspace__refusal",role:"alert","data-workspace":"load-error",children:e.loadError}):!S||!j?r.jsx("p",{className:"af-workspace__note","data-workspace":"loading",children:tt.loading}):r.jsxs("div",{className:"af-workspace__body","data-level":b,"data-following":S.following?"true":"false",children:[S.gatewayLine?r.jsx("p",{className:"af-workspace__gateway","data-workspace":"gateway-line",children:S.gatewayLine}):null,_?r.jsx("p",{className:"af-workspace__note",id:`${t}-blocked`,"data-workspace":"blocked",children:_}):null,b!=="gateway"?r.jsxs("div",{className:"af-workspace__follow","data-workspace":"follow",children:[r.jsx(Or,{variant:"row",label:P,description:Z,checked:S.following,busy:n==="follow",unavailableReason:_||(S.locked?tt.locked:null),reasonVisible:!1,describedBy:_?`${t}-blocked`:void 0,action:b==="account"?"workspace-follow-gateway":"workspace-use-default",onChange:W=>void N("follow",Pj(j,W))}),C("follow")]}):null,r.jsxs("div",{className:"af-workspace__posture","data-workspace":"posture","data-posture":S.posture,children:[S.following||S.locked?r.jsx("span",{className:"af-workspace__badge",children:Nj(S.posture)}):R(tt.postureLabel,S.posture,[{value:"allowed_only",text:tt.postureAllowedOnly},{value:"any_except_denied",text:tt.postureAnyExceptDenied}],W=>void N("posture",Ij(b,j.policy,W)),"workspace-posture"),r.jsx("span",{className:"af-workspace__note","data-workspace":"posture-help",children:Cj(S.posture)}),C("posture")]}),r.jsxs("ul",{className:"af-workspace__list","aria-label":tt.title,"data-workspace":"list",children:[V.length?r.jsx("li",{className:"af-workspace__caption","data-workspace":"caption-allowed",children:tt.allowedTitle}):null,V.map(te),O.length?r.jsx("li",{className:"af-workspace__caption","data-workspace":"caption-refused",children:tt.deniedTitle}):null,O.map(te),S.everythingElse?r.jsxs("li",{className:"af-workspace__row","data-workspace":"everything-else","data-mode":S.everythingElse.mode,children:[r.jsx("span",{className:"af-workspace__name",children:tt.everythingElse}),r.jsx("span",{className:"af-workspace__controls",children:S.everythingElse.editable?R(`${tt.accessLabel} ${tt.everythingElse}`,S.everythingElse.mode,[{value:"rw",text:tt.accessReadWrite},{value:"ro",text:tt.accessRead}],W=>void N("everything-else",Mj(b,j.policy,W)),"workspace-default"):$(S.everythingElse.mode)}),C("everything-else")]}):null,S.canAdd?r.jsxs("li",{className:"af-workspace__add","data-workspace":"add",children:[r.jsx("input",{type:"text",className:"af-workspace__input","aria-label":tt.addPlaceholder,placeholder:tt.addPlaceholder,value:f,disabled:!!_||n==="add",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:W=>m(W.target.value),onKeyDown:W=>{W.key==="Enter"?(W.preventDefault(),M(f)):W.key==="Escape"&&(W.preventDefault(),m(""),c(ne=>{const ae={...ne};return delete ae.add,ae}))}}),r.jsx("button",{type:"button",className:"af-workspace__add-btn","data-action":"workspace-add",disabled:!!_||!f.trim()||n!==null,onClick:()=>void M(f),children:tt.add}),e.choose?r.jsx("button",{type:"button",className:"af-workspace__add-btn","data-action":"workspace-choose",disabled:!!_||n!==null,onClick:()=>void J(),children:tt.choose}):null,C("add")]}):null]}),S.posture==="allowed_only"&&!V.length?r.jsx("p",{className:"af-workspace__note","data-workspace":"empty",children:tt.emptyAllowed}):null,b==="session"||b==="run"?r.jsx("p",{className:"af-workspace__note","data-workspace":"private",children:tt.privateNote}):null,r.jsx("p",{className:"af-workspace__effective","data-workspace":"effective",children:S.summary}),e.footer?r.jsx("div",{className:"af-workspace__footer",children:e.footer}):null]})})}const Vj=["provider","model","voice","profile","speed","quality_preset","instructions"];function Hj(e){const t={};for(const n of Vj){const a=e[n];a!==void 0&&a!==""&&a!==null&&(t[n]=a)}return t}function Gj(e){return{...e.stt_provider?{provider:e.stt_provider}:{},...e.stt_provider&&e.stt_model?{model:e.stt_model}:{},...e.stt_language?{language:e.stt_language}:{}}}const Kj=[{value:"",label:"Detect automatically"},{value:"en",label:"English"},{value:"fr",label:"French"},{value:"de",label:"German"},{value:"es",label:"Spanish"},{value:"it",label:"Italian"},{value:"pt",label:"Portuguese"},{value:"nl",label:"Dutch"},{value:"zh",label:"Chinese"},{value:"ja",label:"Japanese"},{value:"ko",label:"Korean"}];function Jj(e){return[e.provider,e.model,e.profile||e.voice].filter(Boolean).join(" · ")}function Qj(e){return[e.stt_provider,e.stt_model].filter(Boolean).join(" · ")}const Yj=[{value:"",label:"Gateway default"},{value:"standard",label:"Balanced"},{value:"low",label:"Faster (lower quality)"},{value:"high",label:"Higher quality (slower)"}],Kp=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?t:(t==null?void 0:t.id)||(t==null?void 0:t.name)).filter(Boolean):[],hi=e=>`${Math.round(e*100)} %`;function Xj(e){var qe,$e,Ue,lt,Pe,ie;const t=e.overrideOwner||"this app",n=!!e.unavailableReason,a=y.useRef(e.fetchCatalog);a.current=e.fetchCatalog;const i=y.useRef(e.fetchDefaults);i.current=e.fetchDefaults;const[c,u]=y.useState({}),[d,f]=y.useState({value:null,failed:!1}),m=e.defaults!==void 0?{value:e.defaults,failed:!1}:d,p=e.defaults!==void 0,[w,_]=y.useState(""),[b,A]=y.useState({devices:[],labelled:!0}),[x,j]=y.useState({devices:[],labelled:!0}),[S,E]=y.useState(""),[N,C]=y.useState({text:"",tone:"info"}),[$,R]=y.useState({phase:"idle",message:"",tone:"info"}),[D,M]=y.useState(0),J=e.outputSelectable??lx(),V=ny(),O=e.value,te=e.nested?"flat":"card",P=ee=>e.onChange({...O,...ee}),Z=O.reply_volume===void 0?1:Math.min(1,Math.max(0,Number(O.reply_volume)||0)),W=O.input_gain===void 0?1:Math.min(1.5,Math.max(.5,Number(O.input_gain)||1));y.useEffect(()=>{if(n)return;let ee=!0;return a.current().then(Ne=>ee&&u(Ne||{})).catch(()=>ee&&u({})),p||i.current().then(Ne=>ee&&f({value:Ne||{},failed:!1})).catch(()=>ee&&f({value:null,failed:!0})),()=>{ee=!1}},[n,p]);const ne=e.listDevices||Jb,ae=()=>{J&&ne("audiooutput").then(A).catch(()=>A({devices:[],labelled:!1})),ne("audioinput").then(j).catch(()=>j({devices:[],labelled:!1}))};y.useEffect(()=>{n||ae()},[J,n]);const H=()=>{E(""),Qb().then(ae).catch(ee=>E(ff(ee)))},de=()=>{C({text:"Playing a short chime…",tone:"info"}),ex({deviceId:J&&O.output_device||"",volume:Z}).then(()=>C({text:"Chime played. Heard nothing? Pick another output or raise the volume.",tone:"ok"})).catch(ee=>C({text:`The speaker test failed: ${String((ee==null?void 0:ee.message)||ee).replace(/\.$/,"")}.`,tone:"error"}))},re=()=>{R({phase:"recording",message:"Recording 3 seconds — say something.",tone:"info"}),qb({deviceId:O.input_device||"",ms:3e3,gain:W,onLevel:M}).then(async({blob:ee,peak:Ne})=>{if(Ne<Xb){R({phase:"idle",message:"The microphone recorded silence. Pick another input, or raise its level in the system sound settings.",tone:"error"});return}R({phase:"playing",message:"Playing it back…",tone:"info"}),await Zb(ee,{deviceId:J&&O.output_device||"",volume:Z}),R({phase:"idle",message:`The microphone works (peak level ${hi(Ne)}).`,tone:"ok"}),ae()}).catch(ee=>R({phase:"idle",message:ff(ee),tone:"error"}))},F=kp(m.value,"tts",m.failed),I=kp(m.value,"stt",m.failed),U=[(qe=m.value)==null?void 0:qe.tts,($e=m.value)==null?void 0:$e.stt].map(ee=>ee&&!ee.configured?ee.note:"").filter(Boolean),fe=[(Ue=m.value)==null?void 0:Ue.tts,(lt=m.value)==null?void 0:lt.stt].map(ee=>{var Ne;return ee&&ee.configured?String(((Ne=ee.hint)==null?void 0:Ne.sentence)||"").trim():""}).filter(Boolean),q=!!((ie=(Pe=c.controls)==null?void 0:Pe.quality_preset)!=null&&ie.supported),le=O.output_device||"",me=[{value:"",label:"System default"},...b.devices.map(ee=>({value:ee.id,label:ee.label})),...le&&!b.devices.some(ee=>ee.id===le)?[{value:le,label:"Saved speaker (not connected)"}]:[]],oe=O.input_device||"",ve=[{value:"",label:"System default"},...x.devices.map(ee=>({value:ee.id,label:ee.label})),...oe&&!x.devices.some(ee=>ee.id===oe)?[{value:oe,label:"Saved microphone (not connected)"}]:[]],We=!x.labelled||J&&!b.labelled,nt=$.phase!=="idle";return r.jsxs("div",{className:`af-voice-section${e.className?` ${e.className}`:""}`,children:[e.unavailableReason?r.jsx("p",{className:"af-settings-group__help",role:"status",children:e.unavailableReason}):null,r.jsxs(Si,{variant:te,title:"Engines",help:"Which engines speak and listen.",children:[r.jsx(Wp,{label:"Text → speech",setting:"tts",defaultSummary:F,overrideSummary:Jj(O),overrideOwner:t,open:w==="tts",onToggle:()=>_(w==="tts"?"":"tts"),onReset:()=>P({provider:"",model:"",voice:"",profile:""}),disabled:n,children:r.jsx(dx,{value:O,onChange:ee=>e.onChange({...O,...ee}),fetchCatalog:e.fetchCatalog,intro:null,quality:!1,showReset:!1,voiceDefaultLabel:"Gateway default"})}),r.jsx(Wp,{label:"Speech → text",setting:"stt",defaultSummary:I,overrideSummary:Qj(O),overrideOwner:t,open:w==="stt",onToggle:()=>_(w==="stt"?"":"stt"),onReset:()=>P({stt_provider:"",stt_model:""}),disabled:n,children:r.jsx(Wc,{value:{provider:O.stt_provider||"",model:O.stt_model||""},onChange:ee=>P({stt_provider:ee.provider,stt_model:ee.model}),fetchProviders:async()=>{const ee=await a.current();return Kp(ee.stt_providers).map(Ne=>({name:Ne}))},fetchModels:async ee=>{var X;const Ne=await a.current(ee);return Kp(((X=Ne.stt_models_by_provider)==null?void 0:X[ee])||Ne.stt_models)},inheritLabel:"Gateway default",providerLabel:"Transcription provider",modelLabel:"Transcription model"})}),m.failed?r.jsx("p",{className:"af-settings-group__help","data-voice-note":"defaults",role:"status",children:"The gateway's default voice routes could not be read. Requests still use them."}):null,U.map(ee=>r.jsx("p",{className:"af-settings-group__help","data-voice-note":"unset",children:ee},ee)),fe.map(ee=>r.jsx("p",{className:"af-settings-group__help","data-voice-note":"hint",role:"note",children:ee},ee))]}),r.jsxs(Si,{variant:te,title:"Output",children:[r.jsx(aa,{label:"Output device",setting:"output-device",help:J?void 0:"Safari does not let a page choose the output device: replies play on the system output (change it in the system sound settings).",trailing:r.jsx("button",{type:"button",className:"af-setting-btn","data-action":"test-speaker",disabled:n,onClick:de,children:"Test"}),children:r.jsx(Pn,{ariaLabel:"Output device",placeholder:"System default",value:J?le:"",options:me,disabled:n||!J,searchable:!1,onOpen:ae,onChange:ee=>P({output_device:ee})})}),N.text?r.jsx("p",{className:`af-voice-note af-voice-note--${N.tone}`,role:"status","data-voice-note":"speaker",children:N.text}):null,r.jsxs(aa,{label:"Reply volume",setting:"reply-volume",htmlFor:"af-voice-volume",children:[r.jsx("input",{id:"af-voice-volume",className:"af-voice-range",type:"range",min:0,max:100,step:5,value:Math.round(Z*100),disabled:n,"aria-valuetext":hi(Z),onChange:ee=>P({reply_volume:Number(ee.currentTarget.value)/100})}),r.jsx("span",{className:"af-voice-range__value",children:hi(Z)})]})]}),r.jsxs(Si,{variant:te,title:"Microphone",children:[r.jsx(aa,{label:"Input device",setting:"input-device",trailing:r.jsx("button",{type:"button",className:"af-setting-btn","data-action":"test-microphone",disabled:n||nt,onClick:re,children:$.phase==="recording"?"Recording…":$.phase==="playing"?"Playing…":"Test"}),children:r.jsx(Pn,{ariaLabel:"Input device",placeholder:"System default",value:oe,options:ve,disabled:n,searchable:!1,onOpen:ae,onChange:ee=>P({input_device:ee})})}),r.jsx("div",{className:"af-voice-meter","data-voice-meter":!0,role:"meter","aria-label":"Microphone level","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(D*100),children:r.jsx("span",{className:"af-voice-meter__fill",style:{width:`${Math.round(D*100)}%`}})}),$.message?r.jsx("p",{className:`af-voice-note af-voice-note--${$.tone}`,role:"status","data-voice-note":"microphone",children:$.message}):null,We&&!n?r.jsxs("p",{className:"af-voice-note","data-voice-note":"labels",children:["Device names appear once the microphone is allowed."," ",r.jsx("button",{type:"button",className:"af-setting-btn af-setting-btn--quiet","data-action":"show-device-names",onClick:H,children:"Show names"})]}):null,S?r.jsx("p",{className:"af-voice-note af-voice-note--error",role:"status",children:S}):null,r.jsx(aa,{label:"Spoken language",setting:"stt-language",help:"Naming it skips detection: transcription is faster.",children:r.jsx(Pn,{ariaLabel:"Spoken language",placeholder:"Detect automatically",value:O.stt_language||"",options:Kj,disabled:n,searchable:!1,onChange:ee=>P({stt_language:ee})})}),V?r.jsxs(aa,{label:"Input level",setting:"input-gain",htmlFor:"af-voice-gain",help:"Raises a quiet microphone.",children:[r.jsx("input",{id:"af-voice-gain",className:"af-voice-range",type:"range",min:50,max:150,step:10,value:Math.round(W*100),disabled:n,"aria-valuetext":hi(W),onChange:ee=>P({input_gain:Number(ee.currentTarget.value)/100})}),r.jsx("span",{className:"af-voice-range__value",children:hi(W)})]}):null]}),r.jsxs(Si,{variant:te,title:"Replies",children:[r.jsx("div",{className:"af-setting-row af-setting-row--switch","data-setting":"read-aloud",children:r.jsx(Or,{label:"Read aloud",description:"Speak each new reply.",variant:"row",checked:O.read_aloud===!0,unavailableReason:n?e.unavailableReason:null,reasonVisible:!1,onChange:ee=>P({read_aloud:ee})})}),r.jsx(aa,{label:"Voice latency",setting:"latency",help:q?"Trades quality for a faster first word.":"This gateway's voice engine has no latency control.",children:r.jsx(Pn,{ariaLabel:"Voice latency",placeholder:"Gateway default",value:q&&O.quality_preset||"",options:Yj,disabled:n||!q,searchable:!1,onChange:ee=>P({quality_preset:ee})})})]})]})}const Sf="@gateway-default";function qj(e){return[{value:Sf,label:st.time_zone_default.replace("{time_zone}",e.gateway_default)},...e.choices.map(t=>({value:t,label:t}))]}function Zj(e){const t=e.block;if(!Array.isArray(t.choices)||typeof t.gateway_default!="string")throw new Error("AfTimeZonePicker: the preferences answer has no time_zone block (R16.1 preferences seam).");return r.jsxs("div",{className:"af-tz-picker","data-time-zone-preference":t.value??"",children:[r.jsxs("div",{className:"af-tz-picker__head",children:[r.jsx("label",{className:"af-tz-picker__label",htmlFor:e.id,children:t.label}),t.help?r.jsx(jc,{content:t.help,children:r.jsx("span",{className:"af-tz-picker__help",tabIndex:0,"aria-label":t.help,children:"?"})}):null]}),r.jsxs("div",{className:"af-tz-picker__control",children:[r.jsx(Pn,{id:e.id,value:t.value??Sf,options:qj(t),searchable:!0,searchPlaceholder:st.time_zone_search,ariaLabel:t.label,disabled:e.disabled,onChange:n=>e.onChange(n&&n!==Sf?n:null)}),e.note?r.jsx("span",{className:`af-tz-picker__note ${e.note.ok?"is-ok":"is-error"}`,role:"status","aria-live":"polite",children:e.note.text}):null]})]})}function tw(e){const t=String(e??"").trim();if(!t||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return null;try{return JSON.parse(t)}catch{return null}}function eS(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function tS(e){const t=String(e.role||"message").trim()||"message",n=String(e.title||"").trim(),a=String(e.ts||"").trim(),i=[t];return n&&i.push(n),a&&i.push(a),i.join(" · ")}function nS(e){return e.endsWith(`
|
|
66
|
-
`)?e:`${e}
|
|
67
|
-
`}function sS(e){return String(e||"").trimStart().startsWith("```")}function rS(e,t){const a=[`# ${"Chat".trim()||"Chat"}`,""];for(const i of e){const c=tS(i);a.push(`## ${c}`,"");const u=String(i.content||""),d=tw(u);d!==null&&!sS(u)?a.push("```json",eS(d).trimEnd(),"```",""):a.push(nS(u).trimEnd(),""),a.push("---","")}for(;a.length&&!a[a.length-1].trim();)a.pop();return a.length&&a[a.length-1]==="---"&&a.pop(),`${a.join(`
|
|
68
|
-
`).trimEnd()}
|
|
69
|
-
`}async function Yc(e){var n;const t=String(e||"");if(!t)return!1;try{if(typeof navigator<"u"&&typeof((n=navigator.clipboard)==null?void 0:n.writeText)=="function")return await navigator.clipboard.writeText(t),!0}catch{}try{const a=document.createElement("textarea");a.value=t,a.style.position="fixed",a.style.left="-9999px",document.body.appendChild(a),a.select();const i=document.execCommand("copy")===!0;return document.body.removeChild(a),i}catch{return!1}}function aS(e){const t=String(e.filename).trim()||"export.txt",n=String(e.text||""),a=String(e.mime||"text/plain;charset=utf-8"),i=new Blob([n],{type:a}),c=URL.createObjectURL(i),u=document.createElement("a");u.href=c,u.download=t,document.body.appendChild(u),u.click(),u.remove(),window.setTimeout(()=>URL.revokeObjectURL(c),1e3)}const oS=3,iS=Number.MAX_SAFE_INTEGER;function nw(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function sw(e){return Array.isArray(e)}function lS(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function mo({kind:e,children:t}){return r.jsx("span",{className:`pc-json-token ${e}`,children:t})}function cS(e){const t=JSON.stringify(e.value),n=t.length>96||t.includes("\\n")||t.includes("\\r")||t.includes("\\t"),[a,i]=y.useState(!n||e.expansionMode==="unfolded");return y.useEffect(()=>{n&&i(e.expansionMode==="unfolded")},[n,e.expansionMode,e.expansionVersion]),n?r.jsxs("span",{className:`pc-json-string ${a?"open":"collapsed"}`,children:[r.jsx("button",{type:"button",className:"pc-json-string__toggle",onClick:()=>i(c=>!c),"aria-label":a?"Collapse string value":"Expand string value","aria-expanded":a,children:a?"▾":"▸"}),a?r.jsx("span",{className:"pc-json-token string pc-json-string__value",children:t}):r.jsxs("button",{type:"button",className:"pc-json-string__preview",onClick:()=>i(!0),"aria-label":"Expand string value",children:[r.jsx("span",{className:"pc-json-token string pc-json-string__preview_text",children:t}),r.jsx("span",{className:"pc-json-string__suffix",children:"(...)"})]})]}):r.jsx(mo,{kind:"string",children:t})}function uS(e,t,n){return e===null?r.jsx(mo,{kind:"null",children:"null"}):typeof e=="string"?r.jsx(cS,{value:e,expansionMode:t,expansionVersion:n}):typeof e=="number"?r.jsx(mo,{kind:"number",children:String(e)}):typeof e=="boolean"?r.jsx(mo,{kind:"boolean",children:e?"true":"false"}):r.jsx(mo,{kind:"string",children:JSON.stringify(String(e))})}function dS(e){return sw(e)?e.length===1?"1 item":`${e.length} items`:nw(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function rw(e){const{label:t,value:n,depth:a,collapseAfterDepth:i,expansionMode:c,expansionVersion:u,trailingComma:d}=e,f=a*14,m=nw(n),p=sw(n),w=m||p,_=a<i,[b,A]=y.useState(_);y.useEffect(()=>{A(_)},[_,u]);const x=t?r.jsxs(r.Fragment,{children:[r.jsx(mo,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!w)return r.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:f},children:[x,uS(n,c,u),d?",":""]});const j=p?"[":"{",S=p?"]":"}",E=dS(n),N=b?`${j}`:`${j}…${S}${E?` (${E})`:""}`,C=p?n.map(($,R)=>({key:String(R),label:void 0,value:$})):Object.entries(n).map(([$,R])=>({key:$,label:$,value:R}));return r.jsxs("details",{className:"pc-json-viewer__details",open:b,onToggle:$=>A($.currentTarget.open),children:[r.jsxs("summary",{className:"pc-json-viewer__summary",style:{paddingLeft:f},children:[x,r.jsx("span",{className:"pc-json-viewer__caret","aria-hidden":"true",children:b?"▾":"▸"}),r.jsx("span",{className:"pc-json-viewer__punct",children:N}),!b&&d?r.jsx("span",{className:"pc-json-viewer__punct",children:","}):null]}),b?r.jsx("div",{className:"pc-json-viewer__children",children:C.length===0?r.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:f},children:[r.jsx("span",{className:"pc-json-viewer__punct",children:S}),d?",":""]}):r.jsxs(r.Fragment,{children:[C.map(($,R)=>{const D=R===C.length-1;return r.jsx(rw,{label:$.label,value:$.value,depth:a+1,collapseAfterDepth:i,expansionMode:c,expansionVersion:u,trailingComma:!D},`${a}:${t||"root"}:${$.key}`)}),r.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:f},children:[r.jsx("span",{className:"pc-json-viewer__punct",children:S}),d?",":""]})]})}):null]})}function fS(e){const t=e.trim();if(!t)return e;if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return JSON.parse(t)}catch{return e}return e}function go(e){const{value:t,className:n,showCopy:a=!0}=e,[i,c]=y.useState({mode:"folded",version:0}),[u,d]=y.useState("idle"),f=typeof e.collapseAfterDepth=="number"&&(Number.isFinite(e.collapseAfterDepth)||e.collapseAfterDepth===1/0)&&e.collapseAfterDepth>=0?e.collapseAfterDepth===1/0?Number.MAX_SAFE_INTEGER:Math.trunc(e.collapseAfterDepth):oS,m=i.mode==="unfolded"?iS:f,p=y.useMemo(()=>typeof t=="string"?fS(t):t,[t]),w=y.useMemo(()=>lS(t),[t]),_=["pc-json-viewer",n].filter(Boolean).join(" ");y.useEffect(()=>{c(A=>({mode:"folded",version:A.version+1}))},[p]);const b=()=>{c(A=>({mode:A.mode==="unfolded"?"folded":"unfolded",version:A.version+1}))};return r.jsxs("div",{className:_,children:[r.jsxs("div",{className:"pc-json-viewer__toolbar",children:[r.jsx("button",{type:"button",className:"pc-btn pc-json-viewer__toggle-all",onClick:b,"aria-expanded":i.mode==="unfolded",children:i.mode==="unfolded"?"Fold all":"Unfold all"}),a?r.jsx("button",{type:"button",className:"pc-btn pc-json-viewer__copy",onClick:()=>void Yc(w).then(A=>{d(A?"copied":"failed"),window.setTimeout(()=>d("idle"),2e3)}),children:u==="copied"?"Copied":u==="failed"?"Copy failed — select and copy":"Copy JSON"}):null]}),r.jsx("div",{className:"pc-json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:r.jsx(rw,{value:p,depth:0,collapseAfterDepth:m,expansionMode:i.mode,expansionVersion:i.version,trailingComma:!1})})]})}function hS({code:e,lang:t}){const[n,a]=y.useState("idle"),i=y.useRef(null);y.useEffect(()=>()=>{i.current!==null&&window.clearTimeout(i.current)},[]);const c=Qy(e,Gf(t));return r.jsxs("div",{className:"pc-md_codeblock",children:[r.jsx("button",{type:"button",className:`pc-md_copy${n!=="idle"?` pc-md_copy--${n}`:""}`,"aria-label":"Copy code",title:n==="idle"?"Copy":n==="copied"?"Copied":"Copy failed",onClick:async()=>{const u=await Yc(e);a(u?"copied":"failed"),i.current!==null&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>a("idle"),900)},children:r.jsx(se,{name:n==="copied"?"check":"copy",size:14})}),r.jsx("pre",{className:"pc-md_pre",children:r.jsx("code",{className:t?`language-${t}`:void 0,children:c.map((u,d)=>u.kind==="plain"?r.jsx(ut.Fragment,{children:u.text},d):r.jsx("span",{className:`af-code__${u.kind}`,children:u.text},d))})})]})}function mi(e,t){const n=String(e??"");if(!t||!t.needles.length)return[n];const a=[],i=n.toLowerCase();let c=0;for(;c<n.length;){let u=-1,d="";for(let p=0;p<t.needlesLower.length;p++){const w=t.needlesLower[p];if(!w)continue;const _=i.indexOf(w,c);if(_===-1)continue;const b=t.needles[p]||"";b&&(u===-1||_<u||_===u&&b.length>d.length)&&(u=_,d=b)}if(u===-1||!d){a.push(n.slice(c));break}u>c&&a.push(n.slice(c,u));const f=t.hits===0&&t.id?t.id:void 0,m=n.slice(u,u+d.length);a.push(r.jsx("span",{id:f,className:t.className,children:m},`hl:${t.hits}`)),t.hits+=1,c=u+d.length}return a}function aw(e){const t=String(e||"").trim();if(t&&/^(https?:|mailto:|tel:|#|\/)/i.test(t))return t}const Nf="http://same-origin.invalid/";function mS(e){try{const t=new URL(e,Nf);return t.protocol==="http:"&&t.origin===new URL(Nf).origin}catch{return!1}}function ow(e){const t=String(e||"").trim();return aw(t)??(t&&mS(t)?t:void 0)}let ua=null;function pS(e){const t=String(e||"").trim();if(!t)return!1;const n=typeof document<"u"&&document.baseURI?document.baseURI:null;if(n===null&&/^[a-z][a-z0-9+.-]*:/i.test(t))return!1;const a=n??Nf;let i,c;try{i=new URL(a).origin,c=new URL(t,a)}catch{return!1}return c.protocol!=="http:"&&c.protocol!=="https:"?!1:c.origin===i}function iw(e,t,n){return r.jsx("a",{className:"pc-md_link pc-md_image_link",href:t,target:"_blank",rel:"noopener noreferrer",children:`image: ${n||t}`},e)}function Jp(e){return!!e&&/[\p{L}\p{N}]/u.test(e)}function Qs(e,t){const n=[],a=String(e??"");let i=0,c="";const u=()=>{if(c){for(const d of mi(c,t))n.push(d);c=""}};for(;i<a.length;){const d=a[i];if(d==="!"&&a[i+1]==="["){const f=a.indexOf("]",i+2);if(f!==-1&&a[f+1]==="("){const m=a.indexOf(")",f+2);if(m!==-1){const p=a.slice(i+2,f),w=ow(a.slice(f+2,m));if(w&&ua&&!ua(w)){u(),n.push(iw(`img:${i}`,w,p)),i=m+1;continue}if(w){u(),n.push(r.jsxs("span",{className:"pc-md_image_inline",children:[r.jsx("img",{className:"pc-md_img",src:w,alt:p,loading:"lazy"}),p?r.jsx("span",{className:"pc-md_img_caption",children:t?mi(p,t):p}):null]},`img:${i}`)),i=m+1;continue}}}}if(d==="["){const f=a.indexOf("]",i+1);if(f!==-1&&a[f+1]==="("){const m=a.indexOf(")",f+2);if(m!==-1){const p=a.slice(i+1,f),w=aw(a.slice(f+2,m));if(w){u(),n.push(r.jsx("a",{className:"pc-md_link",href:w,target:w.startsWith("#")?void 0:"_blank",rel:"noreferrer",children:Qs(p,t)},`link:${i}`)),i=m+1;continue}}}}if(d==="`"){const f=a.indexOf("`",i+1);if(f!==-1){u();const m=a.slice(i+1,f);n.push(r.jsx("code",{children:t?mi(m,t):m},`code:${i}`)),i=f+1;continue}}if(d==="_"&&!Jp(a[i-1])){const f=a[i+1]==="_"?"__":"_",m=f.length;if(a[i+m]&&!/\s/.test(a[i+m])&&a[i+m]!=="_"){let p=a.indexOf(f,i+m);for(;p!==-1&&(/\s/.test(a[p-1]||" ")||Jp(a[p+m])||m===1&&a[p+1]==="_");)p=a.indexOf(f,p+1);if(p!==-1&&p>i+m){u();const w=a.slice(i+m,p),_=Qs(w,t);n.push(m===2?r.jsx("strong",{children:_},`ubold:${i}`):r.jsx("em",{children:_},`uem:${i}`)),i=p+m;continue}}}if(d==="*"&&a[i+1]==="*"){const f=a.indexOf("**",i+2);if(f!==-1){u();const m=a.slice(i+2,f);n.push(r.jsx("strong",{children:t?mi(m,t):m},`bold:${i}`)),i=f+2;continue}}if(d==="*"&&a[i+1]!=="*"){const f=a.indexOf("*",i+1);if(f!==-1){u();const m=a.slice(i+1,f);n.push(r.jsx("em",{children:t?mi(m,t):m},`em:${i}`)),i=f+1;continue}}c+=d,i+=1}return u(),n}function gS(e){return String(e??"").replace(/\r\n/g,`
|
|
70
|
-
`).replace(/\r/g,`
|
|
71
|
-
`).split(`
|
|
72
|
-
`)}function bc(e){const n=String(e??"").match(/^([ \t]*)(?:([-*+])|(\d{1,9})[.)])\s+(.*)$/);return n?{indent:n[1].replace(/\t/g," ").length,ordered:!!n[3],start:n[3]?Math.max(1,parseInt(n[3],10)||1):1,content:n[4]??""}:null}function yS(e){const t=[];for(const i of e){const c=bc(i);c?t.push(c):t.length>0&&i.trim()&&(t[t.length-1].content+=` ${i.trim()}`)}const n=[],a=[];for(const i of t){for(;a.length>0&&i.indent<a[a.length-1].indent;)a.pop();let c=a.length>0?a[a.length-1]:null;if(c&&i.indent>c.indent){const u=c.node.items,d=u[u.length-1];if(d){const f={ordered:i.ordered,start:i.start,items:[]};d.children.push(f),a.push({indent:i.indent,node:f}),c=a[a.length-1]}}else if(c&&c.node.ordered!==i.ordered){a.pop();const u=a.length>0?a[a.length-1]:null,d={ordered:i.ordered,start:i.start,items:[]};if(u){const f=u.node.items,m=f[f.length-1];m?m.children.push(d):u.node.items.push({content:"",children:[d]})}else n.push(d);a.push({indent:i.indent,node:d}),c=a[a.length-1]}if(!c){const u={ordered:i.ordered,start:i.start,items:[]};n.push(u),a.push({indent:i.indent,node:u}),c=a[a.length-1]}c.node.items.push({content:i.content,children:[]})}return n}function lw(e,t,n){const a=e.items.map((i,c)=>r.jsxs("li",{children:[Qs(i.content,t),i.children.map((u,d)=>lw(u,t,`${n}:${c}:${d}`))]},`${n}:li:${c}`));return e.ordered?r.jsx("ol",{className:"pc-md_ol",start:e.start!==1?e.start:void 0,children:a},n):r.jsx("ul",{className:"pc-md_ul",children:a},n)}function wS(e,t,n){return yS(e).map((a,i)=>lw(a,t,`${n}:${i}`))}function Qp(e){let t=String(e??"").trim();return t?(t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1)),t.split("|").map(n=>String(n??"").trim())):[]}function Yp(e){let t=String(e??"").trim();if(!t)return!1;t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1));const n=t.split("|").map(a=>String(a??"").trim());return n.length<2?!1:n.every(a=>/^:?-{3,}:?$/.test(a))}const Xp=/^(#{1,5})\s+(.*)$/;function qp(e){return e.trim().startsWith("```")}function Zp(e){return e.trimStart().startsWith(">")}function cw(e){const t=ua;ua=e.images==="link"?e.inlineImage||pS:null;try{return vS(e)}finally{ua=t}}function vS({text:e,className:t,highlight:n,highlights:a,highlightClassName:i,highlightId:c}){const u=gS(e),d=[],f=[];Array.isArray(a)&&f.push(...a),typeof n=="string"&&n.trim()&&f.push(n);const m=Array.from(new Set(f.map(b=>String(b??"").trim()).filter(Boolean))).filter(b=>b.length>=4),p=m.length?{needles:m,needlesLower:m.map(b=>b.toLowerCase()),className:i||"pc-md_hl",id:c,hits:0}:null;let w=0;for(;w<u.length;){const b=String(u[w]??"");if(!b.trim()){w+=1;continue}const A=b.trim();if(/^([-_*])(\s*\1){2,}$/.test(A)){d.push(r.jsx("hr",{className:"pc-md_hr"},`hr:${w}`)),w+=1;continue}const x=b.match(/^\s*!\[([^\]]*)\]\(([^)]+)\)\s*$/);if(x){const E=ow(x[2]||"");if(E&&ua&&!ua(E)){d.push(r.jsx("p",{className:"pc-md_p",children:iw(`img:${w}`,E,x[1]||"")},`p:${w}`)),w+=1;continue}if(E){const N=x[1]||"";d.push(r.jsxs("figure",{className:"pc-md_figure",children:[r.jsx("img",{className:"pc-md_img",src:E,alt:N,loading:"lazy"}),N?r.jsx("figcaption",{children:Qs(N,p)}):null]},`figure:${w}`)),w+=1;continue}}if(qp(b)){const N=b.trim().replace(/```/g,"").trim(),C=[];for(w+=1;w<u.length&&!String(u[w]??"").trim().startsWith("```");)C.push(String(u[w]??"")),w+=1;w<u.length&&(w+=1);const $=C.join(`
|
|
73
|
-
`);d.push(r.jsx(hS,{code:$,lang:N},`pre:${w}`));continue}const j=b.match(Xp);if(j){const E=j[1].length,N=j[2]||"",C=Qs(N,p);E===1?d.push(r.jsx("h1",{children:C},`h1:${w}`)):E===2?d.push(r.jsx("h2",{children:C},`h2:${w}`)):E===3?d.push(r.jsx("h3",{children:C},`h3:${w}`)):E===4?d.push(r.jsx("h4",{children:C},`h4:${w}`)):d.push(r.jsx("h5",{children:C},`h5:${w}`)),w+=1;continue}if(Zp(b)){const E=[];for(;w<u.length&&String(u[w]??"").trimStart().startsWith(">");){const C=String(u[w]??"").trimStart();E.push(C.replace(/^>\s?/,"")),w+=1}d.push(r.jsx("blockquote",{className:"pc-md_quote",children:E.map((N,C)=>r.jsxs(ut.Fragment,{children:[Qs(N,p),C<E.length-1?r.jsx("br",{}):null]},`q:${w}:${C}`))},`quote:${w}`));continue}if(b.includes("|")&&w+1<u.length&&Yp(String(u[w+1]??""))){const E=Qp(b),N=Math.max(1,E.length),C=[];for(w+=2;w<u.length;){const $=String(u[w]??"");if(!$.trim()||!$.includes("|"))break;const R=Qp($),D=[];for(let M=0;M<N;M++)D.push(R[M]??"");C.push(D),w+=1}d.push(r.jsx("div",{className:"pc-md_table_wrap",children:r.jsxs("table",{className:"pc-md_table",children:[r.jsx("thead",{children:r.jsx("tr",{children:E.slice(0,N).map(($,R)=>r.jsx("th",{children:Qs($,p)},`th:${w}:${R}`))})}),r.jsx("tbody",{children:C.map(($,R)=>r.jsx("tr",{children:$.map((D,M)=>r.jsx("td",{children:Qs(D,p)},`td:${w}:${R}:${M}`))},`tr:${w}:${R}`))})]})},`table:${w}`));continue}if(bc(b)){const E=[];for(;w<u.length;){const N=String(u[w]??"");if(!N.trim()||N.trimStart().startsWith("```"))break;if(bc(N)||/^\s{2,}\S/.test(N)){E.push(N),w+=1;continue}break}d.push(r.jsx(ut.Fragment,{children:wS(E,p,`list:${w}`)},`list:${w}`));continue}const S=[];for(;w<u.length&&String(u[w]??"").trim()&&!(S.length>0&&bc(String(u[w]??"")));){const E=String(u[w]??"");if(S.length>0&&(Xp.test(E)||qp(E)||Zp(E))||S.length>0&&E.includes("|")&&w+1<u.length&&Yp(String(u[w+1]??"")))break;S.push(E),w+=1}d.push(r.jsx("p",{className:"pc-md_p",children:S.map((E,N)=>r.jsxs(ut.Fragment,{children:[Qs(E,p),N<S.length-1?r.jsx("br",{}):null]},`pl:${w}:${N}`))},`p:${w}`))}const _=["pc-md",t].filter(Boolean).join(" ");return r.jsx("div",{className:_,children:d})}function uw(e){const t=String(e.text??""),n=y.useMemo(()=>tw(t),[t]),a=["pc-chat-content",e.className].filter(Boolean).join(" ");return n!==null?r.jsx("div",{className:a,children:r.jsx(go,{value:n,collapseAfterDepth:e.jsonCollapseAfterDepth})}):e.renderMarkdown?r.jsx("div",{className:a,children:e.renderMarkdown(t)}):r.jsx("div",{className:a,children:r.jsx(cw,{text:t,images:e.images,inlineImage:e.inlineImage})})}function Ni(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Tr(e){return typeof e=="string"?e.trim():""}function _S(e){var i;const t=Ni(e);if(!t)return null;const n=Ni(t.sandbox);if(n&&Tr(n.kind))return n;const a=Ni((i=Ni(t.output))==null?void 0:i.sandbox);return a&&Tr(a.kind)?a:null}function eg(e){const t=_S(e);if(!t)return null;const n=Tr(t.kind),a=Tr(t.label)||n,i=Number.isFinite(Number(t.builtin_refused))?Math.max(0,Math.trunc(Number(t.builtin_refused))):0;if(n==="none")return{state:"refused",kind:n,label:a,line:`Sandbox: ${a} — refused`,rows:[],builtinRefused:0};const c=[],u=Tr(t.private_workspace);u&&c.push({path:u,mode:"Read & write",private:!0});for(const f of Array.isArray(t.allowed)?t.allowed:[]){const m=Ni(f),p=Tr(m==null?void 0:m.path);p&&c.push({path:p,mode:Tr(m==null?void 0:m.mode)==="ro"?"Read-only":"Read & write"})}for(const f of Array.isArray(t.refused)?t.refused:[]){const m=Tr(f);m&&c.push({path:m,mode:"Refused"})}if(n==="unsandboxed")return{state:"unsandboxed",kind:n,label:a,line:`Sandbox: ${a}`,rows:[],builtinRefused:0};const d=c.length;return{state:"sandboxed",kind:n,label:a,line:`Sandbox: ${a} · ${d} ${d===1?"workspace":"workspaces"} enforced`,rows:c,builtinRefused:i}}function bS({sandbox:e,className:t}){return e?r.jsxs("div",{className:`pc-tool-sandbox is-${e.state}${t?` ${t}`:""}`,"data-sandbox-kind":e.kind,children:[r.jsx("div",{className:"pc-tool-sandbox__line",children:e.line}),e.rows.length?r.jsxs("ul",{className:"pc-tool-sandbox__rows","aria-label":"Workspaces the sandbox enforced",children:[e.rows.map((n,a)=>r.jsxs("li",{children:[r.jsx("code",{children:n.path}),r.jsx("span",{className:"pc-tool-sandbox__mode",children:n.private?`${n.mode} · this run's folder`:n.mode})]},`${n.mode}:${n.path}:${a}`)),e.builtinRefused?r.jsxs("li",{className:"pc-tool-sandbox__builtin",children:[e.builtinRefused," built-in protected ",e.builtinRefused===1?"folder":"folders"," refused"]}):null]}):null]}):null}function dw(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function fw(e){const t=dw(e);if(!t||typeof t!="object"||Array.isArray(t))return{label:"input",value:t==null?"":String(t)};const n=Object.entries(t),i=["command","query","url","file_path","path","pattern","name"].map(c=>n.find(([u])=>u===c)).find(Boolean)||n[0];return i?{label:i[0].replace(/_/g," "),value:typeof i[1]=="string"?i[1]:JSON.stringify(i[1])??""}:{label:"",value:""}}function hw({tool:e,showCopy:t=!0}){const[n,a]=y.useState(!1),i=dw(e.arguments),c=fw(e.arguments),u=["file path","path"].includes(c.label)&&c.value.length>60?`${c.value.split(/[\\/]/).pop()} · ${c.value.slice(0,24)}…`:c.value,d=e.error&&/^File ['"].+['"] does not exist\.?$/.test(e.error)?"File not found. Expand for the exact path.":e.error&&e.error.length>180?`${e.error.slice(0,100)}…${e.error.slice(-70)}`:e.error,f={running:"Running",waiting:"Approval needed",completed:"Done",failed:"Failed"},m=e.startedAt&&e.endedAt?Date.parse(e.endedAt)-Date.parse(e.startedAt):NaN,p=i&&typeof i=="object"&&!Array.isArray(i)?Object.entries(i):null;return r.jsxs("details",{className:`pc-tool-activity pc-tool-activity--${e.status}`,children:[r.jsxs("summary",{className:"pc-tool-activity__summary",children:[r.jsx("span",{className:"pc-tool-activity__state-icon","aria-hidden":"true",children:r.jsx(se,{name:e.status==="completed"?"check":e.status==="failed"?"x":e.status==="waiting"?"warning":"loader",size:15})}),r.jsx("strong",{children:e.name}),r.jsx("span",{className:"pc-tool-activity__preview",title:c.value,children:c.value?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"pc-tool-activity__key",children:c.label}),u]}):"No parameters"}),r.jsx("span",{className:"pc-tool-activity__status",children:f[e.status]}),Number.isFinite(m)&&m>=0?r.jsxs("span",{className:"pc-tool-activity__duration",children:[(m/1e3).toFixed(1),"s"]}):null,r.jsx("span",{className:"pc-tool-activity__chevron","aria-hidden":"true",children:r.jsx(se,{name:"chevronRight",size:13})}),e.error?r.jsx("span",{className:"pc-tool-activity__error",title:e.error,children:d}):null]}),r.jsxs("div",{className:"pc-tool-activity__detail",children:[r.jsx(bS,{sandbox:e.sandbox}),e.error?r.jsxs(r.Fragment,{children:[r.jsx("h4",{children:"Error"}),r.jsx("pre",{className:"pc-tool-activity__output",children:e.error})]}):null,r.jsxs("div",{className:"pc-tool-activity__detail-heading",children:[r.jsx("h4",{children:"Parameters"}),t?r.jsxs("button",{type:"button",onClick:async()=>a(await Yc(JSON.stringify(e,null,2))),children:[r.jsx(se,{name:"copy",size:13}),n?"Copied":"Copy details"]}):null]}),p?r.jsx("dl",{className:"pc-tool-activity__parameters",children:p.map(([w,_])=>r.jsxs(ut.Fragment,{children:[r.jsx("dt",{children:w}),r.jsx("dd",{children:_&&typeof _=="object"?r.jsx(go,{value:_}):r.jsx("code",{children:typeof _=="string"?_:JSON.stringify(_)})})]},w))}):e.arguments===void 0?r.jsx("p",{children:"Arguments are unavailable in this ledger."}):r.jsx(go,{value:i}),e.output!==void 0?r.jsxs(r.Fragment,{children:[r.jsx("h4",{children:"Result"}),typeof e.output=="string"?r.jsx("pre",{className:"pc-tool-activity__output",children:e.output}):r.jsx("div",{className:"pc-tool-activity__output",children:r.jsx(go,{value:e.output})})]}):null]})]})}function Qf({tools:e,showCopy:t}){const n=a=>e.filter(i=>i.status===a).length;return r.jsxs("section",{className:"pc-tool-group","aria-label":"Tool activity",children:[r.jsxs("div",{className:"pc-tool-group__heading",children:[r.jsx(se,{name:"terminal",size:14}),r.jsx("strong",{children:"Tools"}),r.jsxs("span",{children:[e.length," ",e.length===1?"call":"calls"]}),r.jsx("div",{}),n("running")?r.jsxs("span",{className:"pc-tool-group__running",children:[n("running")," running"]}):null,n("waiting")?r.jsxs("span",{className:"pc-tool-group__waiting",children:[n("waiting")," need approval"]}):null,n("failed")?r.jsxs("span",{className:"pc-tool-group__failed",children:[n("failed")," failed"]}):null,n("completed")?r.jsxs("span",{className:"pc-tool-group__completed",children:[n("completed")," done"]}):null]}),e.map(a=>r.jsx(hw,{tool:a,showCopy:t},a.id))]})}const Kt="not reported",fn=e=>e===void 0?Kt:Math.round(e).toLocaleString(),Nn=e=>{if(e===void 0)return Kt;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;const t=Math.round(e/1e3);return`${Math.floor(t/60)}m ${String(t%60).padStart(2,"0")}s`},mw=e=>e===void 0?Kt:`${Math.round(e).toLocaleString()} tok/s`,xS=(e,t)=>t>0?`${Math.round(e/t*100)}%`:"",da=(e,t,n=`${t}s`)=>`${e.toLocaleString()} ${e===1?t:n}`,kS=e=>{const t=e.split("#")[0].replace(/\/+$/,"");return t.slice(t.lastIndexOf("/")+1)||e};function jS(e){const t=new Map;for(const n of e)n&&t.set(n,(t.get(n)||0)+1);return[...t].map(([n,a])=>a>1?`${n} ×${a}`:n).join(" · ")}function Rc(e){const t=[],n=(e.models||[]).map(kS),a=e.providers||[];return(n.length||a.length)&&t.push([n.join(", ")||"model not reported",a.join(", ")].filter(Boolean).join(" · ")),t.push("From the run ledger; summed across this turn and its child runs."),t}function SS(e){const t=e.modelCalls||[],n=[],a=[{label:"Input",value:fn(e.inputTokens)},{label:"Output",value:fn(e.outputTokens)}];if(e.reasoningTokens!==void 0&&a.push({label:"Reasoning",value:fn(e.reasoningTokens),hint:"part of output"}),a.push({label:"Total",value:fn(e.totalTokens)}),n.push({heading:`Usage · ${da(e.llmCalls,"model call")}`,rows:a}),e.measuredCacheCalls){const c=e.cachedTokens||0,u=e.fedTokens||0,d=[{label:"Reused from cache",value:`${fn(c)}${c+u?` (${xS(c,c+u)})`:""}`},{label:"Newly processed",value:fn(e.fedTokens)},{label:"Outcome",value:jS(t.map(f=>f.cacheOutcome))||(e.cacheOutcomes||[]).join(" · ")||Kt},{label:"Backend",value:(e.cacheBackends||[]).join(", ")||Kt}];e.measuredCacheCalls!==e.llmCalls&&d.push({label:"Measured on",value:`${e.measuredCacheCalls} of ${e.llmCalls} calls`}),n.push({heading:"Prompt cache",rows:d})}else e.llmCalls&&n.push({heading:"Prompt cache",rows:[{label:"Cache reuse",value:Kt}]});const i=t.filter(c=>c.inputTokens!==void 0);return i.length===1&&t.length===1?n.push({heading:"Context",rows:[{label:"Prompt size",value:`${fn(i[0].inputTokens)} tokens`}]}):i.length>1&&n.push({heading:"Context",rows:[{label:"First → last call",value:`${fn(i[0].inputTokens)} → ${fn(i[i.length-1].inputTokens)} tokens`}],note:"Each call re-sends the conversation, so the input total counts the context once per call."}),t.length>1&&n.push({heading:"Per call",table:{columns:["#","Input","Cached","New","Output","Cache"],rows:t.map((c,u)=>[String(u+1),fn(c.inputTokens),c.cachedTokens===void 0?"—":fn(c.cachedTokens),c.fedTokens===void 0?"—":fn(c.fedTokens),fn(c.outputTokens),c.cacheOutcome||"—"])}}),{kind:"tokens",title:"Tokens",headline:e.totalTokens===void 0?Kt:`${e.totalTokens.toLocaleString()} total`,sections:n,footer:Rc(e)}}function hc(e,t,n,a){if(e===void 0)return Kt;const i=[Nn(e)];return t!==void 0&&i.push(`${t.toLocaleString()} ${a}${n!==void 0?` at ${mw(n)}`:""}`),i.join(" · ")}function NS(e){var m,p,w;const t=e.modelCalls||[],n=[],a=e.durationMs,i=[{label:"Wall clock",value:Nn(a)}];if(i.push({label:"Model",value:e.genTimeMs===void 0?Kt:`${Nn(e.genTimeMs)} · ${da(e.timedCalls||0,"call")}${e.timedCalls!==e.llmCalls?` (of ${e.llmCalls})`:""}`}),i.push({label:"Tools",value:e.toolTimeMs!==void 0?`${Nn(e.toolTimeMs)} · ${da(e.toolBatches||0,"batch","batches")}`:e.toolCalls?Kt:"none",hint:e.toolTimeIncludesApproval?"includes approval wait":void 0}),a!==void 0&&e.genTimeMs!==void 0){const _=a-e.genTimeMs-(e.toolTimeMs||0);i.push({label:"Orchestration",value:_>=0?Nn(_):"overlaps (parallel runs)",hint:"wall − model − tools: routing, hand-offs, model load"})}n.push({heading:"Turn",rows:i});const c=[],u=e.ttftCalls||0,d=e.promptPhaseCalls||0;e.promptPhaseMs!==void 0?c.push({label:u&&u===d?"Prefill (TTFT)":"Prefill",value:hc(e.promptPhaseMs,e.promptPhaseNewTokens,e.promptPhaseTokensPerSecond,"new tok"),hint:u===d?"measured time to first token":u?`TTFT measured on ${u} of ${d}; rest from provider rate`:"derived: prompt ÷ provider rate"}):e.prefillMs!==void 0&&e.prefillNewTokensPerSecond!==void 0?c.push({label:"Prefill",value:hc(e.prefillMs,e.prefillNewTokens,e.prefillNewTokensPerSecond,"new tok"),hint:"derived: prompt ÷ provider rate"}):e.prefillMs!==void 0?c.push({label:"Prefill",value:`${Nn(e.prefillMs)}${e.promptTokensPerSecond!==void 0?` at ${mw(e.promptTokensPerSecond)}`:""}`,hint:"provider rate over all prompt tokens, restored included"}):c.push({label:"Prefill",value:Kt}),e.cachedTokens&&(e.promptPhaseMs??e.prefillMs)!==void 0&&c.push({label:"Restored",value:`${e.cachedTokens.toLocaleString()} tok from cache`,hint:"not recomputed"}),c.push({label:"Generation",value:e.generationPhaseMs!==void 0?hc(e.generationPhaseMs,e.generationPhaseTokens,e.generationPhaseTokensPerSecond,"tok"):hc(e.decodeMs,e.outputTokens,e.generationTokensPerSecond,"tok")}),e.measuredSpeedCalls&&e.measuredSpeedCalls!==e.llmCalls&&c.push({label:"Speeds from",value:`${e.measuredSpeedCalls} of ${e.llmCalls} calls`}),n.push({heading:"Model",rows:c});const f=e.speculation;if(f){const _=(f.draftKinds||[]).map(A=>A.toUpperCase()).join(", "),b=[{label:"Mode",value:`${f.used?"on":"off"}${_?` · ${_}`:""}${(m=f.modes)!=null&&m.length?` (${f.modes.join(", ")})`:""}`,hint:f.calls!==e.llmCalls||f.used!==f.calls?`used on ${f.used} of ${e.llmCalls} calls`:void 0},{label:"Acceptance",value:f.acceptanceRate===void 0?Kt:`${Math.round(f.acceptanceRate*100)}% · ${fn(f.acceptedTokens)} of ${fn(f.draftedTokens)} drafted`}];((p=f.draftLengths)!=null&&p.length||f.rounds!==void 0)&&b.push({label:"Draft length",value:`${(w=f.draftLengths)!=null&&w.length?`${f.draftLengths.join("/")} tok/round`:Kt}${f.rounds!==void 0?` · ${f.rounds.toLocaleString()} rounds`:""}`}),n.push({heading:"Speculation",rows:b})}return e.slowestToolBatch&&n.push({heading:"Tools",rows:[{label:"Total",value:`${Nn(e.toolTimeMs)} · ${da(e.toolBatches||0,"batch","batches")}`},{label:"Slowest",value:`${Nn(e.slowestToolBatch.ms)} · ${pw(e.slowestToolBatch)}`}],note:e.toolTimeIncludesApproval?"Gated calls are timed from request to result, so this includes waiting for your approval.":void 0}),t.length>1&&n.push({heading:"Per call",table:{columns:["#","Prefill","New tok/s","Gen","Gen tok/s","Cache"],rows:t.map((_,b)=>[String(b+1),_.promptMs===void 0?"—":`${Nn(_.promptMs)}${_.promptSource==="rate"?"*":""}`,_.promptNewTokensPerSecond===void 0?"—":Math.round(_.promptNewTokensPerSecond).toLocaleString(),_.generationMs===void 0?"—":Nn(_.generationMs),_.generationTokensPerSecond===void 0?"—":Math.round(_.generationTokensPerSecond).toLocaleString(),_.cacheOutcome||"—"])},note:t.some(_=>_.promptSource==="rate")?"* derived from the provider's prompt rate (no TTFT event).":void 0}),{kind:"time",title:"Time",headline:a===void 0?Kt:`${Nn(a)} wall clock`,sections:n,footer:Rc(e)}}function pw(e){return e.tools.length===1?`${e.tools[0]} ×${e.calls}`:`${da(e.calls,"call")} (${e.tools.join(", ")})`}function CS(e){const t=[],n=(e.toolsWaiting||0)+(e.toolsRunning||0);if(!e.toolCalls&&!n)return t.push({heading:"Outcome",rows:[{label:"Tools called",value:"none"}]}),{kind:"tools",title:"Tools",headline:"none",sections:t,footer:Rc(e)};const a=[{label:"Succeeded",value:(e.toolCalls-(e.toolsFailed||0)).toLocaleString()},{label:"Failed",value:(e.toolsFailed||0).toLocaleString()}];e.toolsRunning&&a.push({label:"Running",value:e.toolsRunning.toLocaleString()}),e.toolsWaiting&&a.push({label:"Awaiting approval",value:e.toolsWaiting.toLocaleString(),hint:"not run yet — not a failure"}),t.push({heading:"Outcome",rows:a});const i=Object.entries(e.toolBreakdown||{}).sort((d,f)=>f[1].calls-d[1].calls||d[0].localeCompare(f[0]));i.length&&t.push({heading:"By tool",table:{columns:["Tool","Calls","Failed","Time"],rows:i.map(([d,f])=>[d,f.calls.toLocaleString(),f.failed.toLocaleString(),f.ms!==void 0?`${Nn(f.ms)}${f.sharedBatches?" +shared":""}`:f.sharedBatches?"shared":Kt])},note:i.some(([,d])=>d.sharedBatches)?"A batch that mixed tools ran them together; its time is not split between them.":void 0});const c=i.filter(([,d])=>d.errors&&Object.keys(d.errors).length);c.length&&t.push({heading:"Failures",rows:c.map(([d,f])=>({label:d,value:Object.entries(f.errors).sort((m,p)=>p[1]-m[1]).map(([m,p])=>p>1?`${m} ×${p}`:m).join(" · ")}))});const u=[{label:"Tool time",value:e.toolTimeMs===void 0?Kt:`${Nn(e.toolTimeMs)} · ${da(e.toolBatches||0,"batch","batches")}`}];return e.slowestToolBatch&&u.push({label:"Slowest batch",value:`${Nn(e.slowestToolBatch.ms)} · ${pw(e.slowestToolBatch)}`}),t.push({heading:"Timing",rows:u,note:e.toolTimeIncludesApproval?"Gated calls are timed from request to result, so this includes waiting for your approval.":void 0}),{kind:"tools",title:"Tools",headline:`${da(e.toolCalls,"call")}${e.toolsFailed?` · ${e.toolsFailed} failed`:""}`,sections:t,footer:Rc(e)}}function Vd(e,t){return e==="tokens"?SS(t):e==="time"?NS(t):CS(t)}function ES(e){const t=e.detail;return r.jsxs("div",{ref:e.panelRef,id:e.id,role:"tooltip",className:`pc-stat-detail pc-stat-detail--${t.kind}`,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,children:[r.jsxs("div",{className:"pc-stat-detail-head",children:[r.jsx("span",{className:"pc-stat-detail-title",children:t.title}),r.jsx("span",{className:"pc-stat-detail-headline",children:t.headline})]}),t.sections.map(n=>{var a;return r.jsxs("div",{className:"pc-stat-detail-section",children:[r.jsx("div",{className:"pc-stat-detail-heading",children:n.heading}),(a=n.rows)!=null&&a.length?r.jsx("dl",{className:"pc-stat-detail-rows",children:n.rows.map(i=>r.jsxs(ut.Fragment,{children:[r.jsx("dt",{children:i.label}),r.jsxs("dd",{children:[r.jsx("span",{className:i.value===Kt?"pc-stat-detail-value pc-stat-detail-value--absent":"pc-stat-detail-value",children:i.value}),i.hint?r.jsx("span",{className:"pc-stat-detail-hint",children:i.hint}):null]})]},i.label))}):null,n.table?r.jsxs("table",{className:"pc-stat-detail-table",children:[r.jsx("thead",{children:r.jsx("tr",{children:n.table.columns.map(i=>r.jsx("th",{scope:"col",children:i},i))})}),r.jsx("tbody",{children:n.table.rows.map((i,c)=>r.jsx("tr",{children:i.map((u,d)=>r.jsx("td",{children:u},d))},c))})]}):null,n.note?r.jsx("p",{className:"pc-stat-detail-note",children:n.note}):null]},n.heading)}),r.jsx("div",{className:"pc-stat-detail-foot",children:t.footer.map(n=>r.jsx("div",{children:n},n))})]})}const Ks=8;function AS(e){const[t,n]=y.useState(!!e.defaultOpen),[a,i]=y.useState(null),c=y.useRef(null),u=y.useRef(null),d=y.useRef(null),f=`pc-stat-${y.useId().replace(/[^a-zA-Z0-9_-]/g,"")}`,m=y.useCallback(()=>{d.current!==null&&window.clearTimeout(d.current),d.current=null},[]),p=y.useCallback(()=>{m(),n(!0)},[m]),w=y.useCallback(()=>{m(),d.current=window.setTimeout(()=>n(!1),120)},[m]);y.useEffect(()=>m,[m]),y.useLayoutEffect(()=>{if(!t){i(null);return}const x=()=>{const j=c.current,S=u.current;if(!j||!S)return;const E=j.getBoundingClientRect(),N=S.offsetWidth,C=S.offsetHeight,$=window.innerWidth,R=window.innerHeight,D=E.top-Ks-C,M=E.bottom+Ks,J=D>=Ks?D:M+C<=R-Ks?M:Math.max(Ks,R-Ks-C),V=Math.min(Math.max(Ks,E.left),Math.max(Ks,$-Ks-N));i({top:J,left:V})};return x(),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0),()=>{window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}},[t]),y.useEffect(()=>{if(!t)return;const x=j=>{j.key==="Escape"&&n(!1)};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[t]);const _=typeof e.onClick=="function",b=_?"button":"span",A=t?r.jsx(ES,{detail:e.detail,id:f,panelRef:u,onMouseEnter:m,onMouseLeave:w,style:{position:"fixed",top:(a==null?void 0:a.top)??0,left:(a==null?void 0:a.left)??0,visibility:a?"visible":"hidden"}}):null;return r.jsxs(r.Fragment,{children:[r.jsxs(b,{ref:c,..._?{type:"button"}:{tabIndex:0},className:["pc-chat-stat","pc-chat-stat--detail",_?"pc-chat-stat--clickable":"",e.className].filter(Boolean).join(" "),"aria-label":`${e.label} — ${e.detail.title.toLowerCase()} details`,"aria-describedby":t?f:void 0,"data-stat-kind":e.detail.kind,onMouseEnter:p,onMouseLeave:w,onFocus:p,onBlur:()=>n(!1),onKeyDown:x=>{x.key==="Escape"&&n(!1)},onClick:_?()=>{var x;return(x=e.onClick)==null?void 0:x.call(e)}:void 0,children:[e.icon?r.jsx("span",{className:"pc-chat-stat-icon","aria-hidden":"true",children:e.icon}):null,r.jsx("span",{className:"pc-chat-stat-label",children:e.label})]}),A&&typeof document<"u"?zc.createPortal(A,document.body):A]})}function $S(e){const t=e.totalTokens!==void 0?Vd("tokens",e):null,n=Vd("tools",e),a=e.durationMs!==void 0?Vd("time",e):null;return[...t?[{label:`${e.totalTokens.toLocaleString()} tokens`,detail:t}]:[],{label:`${e.toolCalls} ${e.toolCalls===1?"tool":"tools"}`,detail:n},...e.changedFiles.length?[{label:`${e.changedFiles.length} ${e.changedFiles.length===1?"file":"files"} changed`,title:e.changedFiles.join(`
|
|
74
|
-
`)}]:[],...a?[{label:`${(e.durationMs/1e3).toFixed(e.durationMs<1e4?1:0)}s`,detail:a}]:[]]}function TS(e){const t=String(e.role||"").trim().toLowerCase()||"system",n=String(e.kind||"").trim().toLowerCase(),a=String(e.level||"").trim().toLowerCase();return t==="system"&&n==="report_bug"?{label:String(e.title||"").trim()||"Bug report",icon:"warning",variant:"report_bug"}:t==="system"&&n==="report_feature"?{label:String(e.title||"").trim()||"Feature request",icon:"check",variant:"report_feature"}:t==="user"?{label:String(e.title||"").trim()||"You",icon:"user",variant:"user"}:t==="assistant"?{label:String(e.title||"").trim()||"Agent",icon:"bot",variant:"assistant"}:{label:String(e.title||"").trim()||(a==="error"?"Error":a==="warn"?"Warning":"System"),icon:a==="error"?"error":a==="warn"?"warning":"info",variant:a==="error"?"error":a==="warn"?"warn":"status"}}const RS=new Set(["blob:","data:","http:","https:"]);function tg(e){const t=String(e||"").trim();if(t)try{const n=typeof window<"u"&&window.location?window.location.href:"http://same-origin.invalid/";return RS.has(new URL(t,n).protocol)?t:void 0}catch{return}}function IS({item:e}){const[t,n]=y.useState(!1),a=tg(e.src),i=e.href?tg(e.href):void 0,c=e.kind==="image"||e.kind==="audio"||e.kind==="video"?e.kind:null;if(!c||!a&&!i)return null;const u=c==="image"?"Image":c==="video"?"Video":"Audio",d=String(e.label||"").trim()||`Generated ${u.toLowerCase()}`,f=()=>n(!0);return r.jsxs("figure",{className:`pc-chat-media__item pc-chat-media__item--${c}`,children:[a&&c==="image"?r.jsx("img",{className:"pc-chat-media__image",src:a,alt:d,loading:"lazy",onError:f}):null,a&&c==="video"?r.jsx("video",{className:"pc-chat-media__video",src:a,controls:!0,playsInline:!0,preload:"metadata","aria-label":d,onError:f}):null,a&&c==="audio"?r.jsx(Jy,{className:"pc-chat-media__audio",src:a,name:d}):null,t?r.jsxs("div",{className:"pc-chat-media__error",role:"note",children:[u," could not be decoded by this browser",i?"; open the raw file with the link.":"."]}):null,i?r.jsx("figcaption",{className:"pc-chat-media__caption",children:r.jsx("a",{className:"pc-chat-media__link",href:i,target:"_blank",rel:"noopener noreferrer",children:d})}):null]})}function gw(e){var $;const t=e.message,n=y.useMemo(()=>TS(t),[t.kind,t.level,t.role,t.title]),a=String(t.ts||"").trim(),i=y.useMemo(()=>{if(!a)return"";const R=new Date(a);return Number.isFinite(R.getTime())?R.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):""},[a]),[c,u]=y.useState("idle"),d=y.useRef(null);y.useEffect(()=>()=>{d.current!==null&&window.clearTimeout(d.current)},[]);const f=t.live,m=!f&&typeof e.onSpeakToggle=="function"&&n.variant==="assistant"&&!!String(t.content||"").trim(),p=m&&(($=e.getSpeakState)==null?void 0:$.call(e,t))||"idle",w=p==="loading"?"loader":p==="playing"?"pause":"speaker",_=p==="loading"?"Generating audio…":p==="playing"?"Pause":p==="paused"?"Resume":"Speak (TTS)",b=e.showCopy!==!1,A=Array.isArray(e.attachments)?e.attachments:Array.isArray(t.attachments)?t.attachments:[],x=t.statistics,j=t.stats,S=y.useMemo(()=>Array.isArray(e.stats)?e.stats:Array.isArray(j)?j:x?$S(x):[],[e.stats,j,x]),E=Array.isArray(t.media)?t.media:[],N=String(f?f.reasoning||"":t.reasoning||""),C=!!String(t.content||"").trim();return t.toolActivity?r.jsx(hw,{tool:t.toolActivity,showCopy:e.showCopy}):r.jsxs("div",{className:["pc-chat-item",`pc-chat-item--${n.variant}`,f?"pc-chat-item--live":"",e.className].filter(Boolean).join(" "),...f?{"aria-busy":!0}:{},children:[r.jsxs("div",{className:"pc-chat-header",children:[r.jsx("div",{className:"pc-chat-avatar","aria-hidden":"true",children:r.jsx(se,{name:n.icon,size:14})}),r.jsx("span",{className:"pc-chat-role",children:n.label}),f?r.jsxs("span",{className:"pc-chat-live-indicator",title:f.label?`Pending: ${f.label}`:"The reply is still being written",children:[r.jsx("span",{className:"pc-chat-live-dot","aria-hidden":"true"}),f.label||"streaming"]}):null,f!=null&&f.caption?r.jsx("span",{className:"pc-chat-live-caption",children:f.caption}):null,r.jsx("span",{className:"pc-chat-header-spacer"}),i?r.jsx("span",{className:"pc-chat-time",children:i}):null,r.jsxs("div",{className:"pc-chat-header-actions",children:[m?r.jsx("button",{className:"pc-chat-icon-btn",type:"button","aria-label":_,title:_,onClick:()=>{var R;return(R=e.onSpeakToggle)==null?void 0:R.call(e,t)},children:r.jsx(se,{name:w,size:22,className:p==="loading"?"pc-chat-speak-spinner":void 0})}):null,b?r.jsx("button",{className:`pc-chat-icon-btn ${c!=="idle"?`pc-chat-icon-btn--${c}`:""}`.trim(),type:"button","aria-label":"Copy message",title:c==="idle"?"Copy":c==="copied"?"Copied":"Copy failed",onClick:async()=>{const R=await Yc(String(t.content||""));u(R?"copied":"failed"),d.current!==null&&window.clearTimeout(d.current),d.current=window.setTimeout(()=>u("idle"),900)},children:r.jsx(se,{name:"copy",size:22})}):null]})]}),N.trim()?r.jsxs("details",{className:"pc-chat-thinking",children:[r.jsx("summary",{children:"Thinking"}),r.jsx("div",{className:"pc-chat-thinking-body",children:N})]}):null,C||!f&&!E.length?r.jsx("div",{className:"pc-chat-body",children:r.jsx(uw,{text:String(t.content||""),renderMarkdown:e.renderMarkdown,jsonCollapseAfterDepth:e.jsonCollapseAfterDepth,images:e.images||(n.variant==="user"?"inline":"link"),inlineImage:e.inlineImage})}):null,E.length?r.jsx("div",{className:"pc-chat-media",children:E.slice(0,24).map((R,D)=>r.jsx(IS,{item:R},R.id||`${R.kind}:${R.src}:${D}`))}):null,A.length?r.jsx("div",{className:"pc-chat-attachments","aria-label":"Attachments",children:A.slice(0,24).map((R,D)=>{const M=String(R.label||"").trim()||"attachment",J=String(R.target||"").trim(),V=String(R.title||"").trim(),O=!!R.disabled||typeof R.onClick!="function";return r.jsxs("button",{type:"button",className:"pc-chat-attachment-chip",title:V||M,onClick:O?void 0:R.onClick,disabled:O,children:[r.jsx(se,{name:"paperclip",size:14}),J?r.jsx("span",{className:`pc-chat-attachment-target pc-chat-attachment-target--${J}`,children:J}):null,r.jsx("span",{className:"pc-chat-attachment-name",children:M})]},R.id||`${M}:${D}`)})}):null,S.length?r.jsx("div",{className:"pc-chat-stats","aria-label":"Stats",children:S.slice(0,12).map((R,D)=>{const M=String(R.label||"").trim();if(!M)return null;if(R.detail)return r.jsx(AS,{label:M,detail:R.detail,icon:R.icon,onClick:R.onClick},R.id||`${M}:${D}`);const J=String(R.title||"").trim(),V=typeof R.onClick=="function",O=V?"button":"span";return r.jsxs(O,{...V?{type:"button"}:{},className:["pc-chat-stat",V?"pc-chat-stat--clickable":""].filter(Boolean).join(" "),title:J||void 0,onClick:V?()=>{var te;return(te=R.onClick)==null?void 0:te.call(R)}:void 0,children:[R.icon?r.jsx("span",{className:"pc-chat-stat-icon","aria-hidden":"true",children:R.icon}):null,r.jsx("span",{className:"pc-chat-stat-label",children:M})]},R.id||`${M}:${D}`)})}):null]})}function MS(e,t){const n=Math.max(0,Math.trunc(t));return e.scrollHeight-e.scrollTop-e.clientHeight<=n}function yw(e){const t=typeof e.autoScrollThresholdPx=="number"&&Number.isFinite(e.autoScrollThresholdPx)?e.autoScrollThresholdPx:120,n=e.autoScroll!==!1,a=y.useRef(null),i=y.useRef(null),[c,u]=y.useState(!0),d=y.useMemo(()=>Array.isArray(e.messages)?e.messages:[],[e.messages]),f=y.useMemo(()=>{var w;const p=[];for(const _ of d){const b=p[p.length-1];_.toolActivity&&((w=b==null?void 0:b[0])!=null&&w.toolActivity)&&b[0].runId===_.runId?b.push(_):p.push([_])}return p},[d]);y.useEffect(()=>{if(!n)return;const p=a.current;if(!p)return;const w=()=>{u(MS(p,t))};return p.addEventListener("scroll",w,{passive:!0}),w(),()=>p.removeEventListener("scroll",w)},[n,t]);const m=y.useMemo(()=>{let p=0;for(const w of d)if(p+=String(w.content??"").length,Array.isArray(w.media))for(const _ of w.media)p+=String((_==null?void 0:_.src)??"").length+1;return`${d.length}:${p}:${String(e.afterKey??"")}`},[d,e.afterKey]);return y.useEffect(()=>{if(!n||!c)return;const p=a.current;p&&(p.scrollTop=p.scrollHeight)},[n,c,m]),y.useEffect(()=>{if(!n)return;const p=a.current;if(!p)return;const w=()=>{c&&(p.scrollTop=p.scrollHeight)};return p.addEventListener("load",w,!0),p.addEventListener("loadedmetadata",w,!0),()=>{p.removeEventListener("load",w,!0),p.removeEventListener("loadedmetadata",w,!0)}},[n,c]),r.jsxs("div",{ref:a,className:["pc-chat-thread",e.className].filter(Boolean).join(" "),children:[d.length?null:e.empty||null,f.map((p,w)=>{var A;const _=p[0],b=String(_.id||"")||String(_.ts||"")+":"+String(_.role||"")+":"+w;return _.toolActivity?r.jsx(Qf,{tools:p.map(x=>x.toolActivity),showCopy:(A=e.messageProps)==null?void 0:A.showCopy},b):r.jsx(gw,{message:_,...e.messageProps||{}},b)}),e.after,r.jsx("div",{ref:i})]})}const ww=ut.forwardRef(function(t,n){const a=typeof t.rows=="number"&&Number.isFinite(t.rows)?Math.max(1,Math.trunc(t.rows)):3,i=!!t.disabled,c=!!t.busy,u=!i&&!c&&!!String(t.value||"").trim();return r.jsxs("div",{className:["pc-composer",t.className].filter(Boolean).join(" "),children:[t.leading,r.jsx("textarea",{ref:n,className:["pc-composer__textarea",t.textareaClassName].filter(Boolean).join(" "),value:t.value,onChange:d=>t.onChange(d.target.value),rows:a,style:{"--pc-composer-rows":String(a)},spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",autoComplete:"off",placeholder:t.placeholder||"","aria-label":t.ariaLabel||t.placeholder||"Message",disabled:i,autoFocus:!!t.autoFocus,onPaste:t.onPaste,onKeyDown:d=>{d.key!=="Enter"||d.shiftKey||d.nativeEvent.isComposing||d.keyCode===229||(d.preventDefault(),u&&t.onSubmit())}}),r.jsxs("div",{className:"pc-composer__row",children:[r.jsx("div",{className:"pc-composer__actions",children:t.actions}),r.jsx("button",{type:"button",className:t.sendButtonClassName||"pc-btn",disabled:!u,onClick:()=>t.onSubmit(),children:c?t.busyLabel||"Thinking…":t.sendLabel||"Send"})]}),t.overlay]})});function Ci(e){if(!e)return!1;for(let t=0;t<e.length;t+=1)if(e[t]==="Files")return!0;return!1}function ng(e){var a;const t=e==null?void 0:e.items;if(!t||!t.length)return null;let n=0;for(let i=0;i<t.length;i+=1)((a=t[i])==null?void 0:a.kind)==="file"&&(n+=1);return n>0?n:null}function sg(e){return e===1?"Drop file to attach":typeof e=="number"&&e>1?`Drop ${e} files to attach`:"Drop files to attach"}function Yf(e){const t=[],n=[],a=e==null?void 0:e.items;if(a&&a.length){for(let c=0;c<a.length;c+=1){const u=a[c];if(!u||u.kind!=="file")continue;const d=typeof u.webkitGetAsEntry=="function"?u.webkitGetAsEntry():null,f=typeof u.getAsFile=="function"?u.getAsFile():null;d!=null&&d.isDirectory?n.push(d.name||(f==null?void 0:f.name)||"folder"):f&&t.push(f)}return{files:t,folders:n}}const i=e==null?void 0:e.files;if(i)for(let c=0;c<i.length;c+=1)i[c]&&t.push(i[c]);return{files:t,folders:n}}function vw(e){return e.length?e.length===1?`"${e[0]}" is a folder. Folders are not supported: drop the files inside it instead.`:`${e.length} folders were dropped. Folders are not supported: drop the files inside them instead.`:""}const LS={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/heic":"heic","image/tiff":"tiff","image/bmp":"bmp"};function pi(e){return String(e).padStart(2,"0")}function OS(e,t,n){const a=String(e||"").trim();if(a&&!/^image\.(png|jpe?g|gif|webp|heic|tiff?|bmp)$/i.test(a))return a;const i=LS[String(t||"").toLowerCase()]||a.split(".").pop()||"bin",c=`${n.getFullYear()}-${pi(n.getMonth()+1)}-${pi(n.getDate())} at ${pi(n.getHours())}.${pi(n.getMinutes())}.${pi(n.getSeconds())}`;return`${String(t||"").startsWith("image/")||!a?"Pasted image":"Pasted file"} ${c}.${i}`}function _w(e,t=new Date){if(!e)return[];const n=e.types?Array.from(e.types):[];if(n.includes("text/plain")&&n.includes("text/html"))return[];const{files:a}=Yf(e);return a.map(i=>{const c=OS(i.name,i.type,t);return c===i.name?i:new File([i],c,{type:i.type,lastModified:i.lastModified})})}class PS{constructor(t=1200){this.staleMs=t,this.depth=0,this.lastSeen=0}enter(t){this.depth+=1,this.lastSeen=t}over(t){this.depth===0&&(this.depth=1),this.lastSeen=t}leave(t){return this.depth=Math.max(0,this.depth-1),this.lastSeen=t,this.depth>0}reset(){this.depth=0}active(t){return this.depth>0&&t-this.lastSeen<this.staleMs}}const Ei="llm.delta",uo="llm.delta_end";function DS(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function sa(e){return typeof e=="string"&&e.trim()!==""}function FS(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0}function bw(e){return"reason"in e}function xw(e,t){const n=DS(e),a=n==null?void 0:n.kind,i=t||(typeof a=="string"&&a?a:n&&"reason"in n?uo:Ei),c=f=>{throw new Error(`Malformed ${i} event from the gateway: ${f}`)};if(t!==void 0&&t!==Ei&&t!==uo&&c(`unknown event name ${JSON.stringify(t)}`),!n)return c("the payload is not an object");a!==void 0&&a!==Ei&&a!==uo&&c(`unknown kind ${JSON.stringify(a)}`),a!==void 0&&t!==void 0&&a!==t&&c(`kind ${JSON.stringify(a)} does not match the event name`),sa(n.run_id)||c("run_id is missing"),sa(n.call_id)||c("call_id is missing"),FS(n.seq)||c("seq is not a non-negative integer");const u=t||a?(t||a)===uo:"reason"in n;n.root_run_id!==void 0&&!sa(n.root_run_id)&&c("root_run_id is not a run id"),n.parent_run_id!==void 0&&n.parent_run_id!==null&&!sa(n.parent_run_id)&&c("parent_run_id is neither a run id nor null");const d={run_id:n.run_id,...sa(n.root_run_id)?{root_run_id:n.root_run_id}:{},...n.parent_run_id!==void 0?{parent_run_id:n.parent_run_id}:{},...sa(n.node_id)?{node_id:n.node_id}:{},call_id:n.call_id,seq:n.seq};return u?(["completed","failed","cancelled","unavailable"].includes(String(n.reason))||c(`unknown reason ${JSON.stringify(n.reason)}`),n.detail!==void 0&&n.detail!==null&&typeof n.detail!="string"&&c("detail is not a string"),{kind:uo,...d,reason:n.reason,...sa(n.detail)?{detail:n.detail}:{}}):(typeof n.text!="string"&&c("text is not a string"),n.channel!=="content"&&n.channel!=="reasoning"&&c(`unknown channel ${JSON.stringify(n.channel)}`),typeof n.snapshot!="boolean"&&c("snapshot is not a boolean"),{kind:Ei,...d,text:n.text,channel:n.channel,snapshot:n.snapshot})}function kw(e,t){if(e!==Ei&&e!==uo)return null;let n=t;if(typeof t=="string")try{n=JSON.parse(t)}catch{throw new Error(`Malformed ${e} event from the gateway: data is not JSON`)}return xw(n,e)}function zS(e){if(e==="on")return{stream:!0};if(e==="off")return{stream:!1};if(e==="gateway_default")return{};throw new Error(`Unknown streamReplies mode ${JSON.stringify(e)}; use "gateway_default", "on" or "off"`)}const WS={structured_output:"this step asks the model for structured output",remote_core:"the model runs on a remote AbstractCore server",provider_cannot_stream:"the model provider cannot stream",sink_error:"the gateway could not relay the live text",usage_unavailable:"the provider does not report token usage while streaming"};function BS(e){return`This reply is not streamed: ${e?WS[e]||`the gateway reported "${e}"`:"the gateway gave no reason"}. It appears when it is complete.`}const Ic=1024*1024,US="1 MiB",VS=25*1024*1024,jw=(e,t)=>`${we(`runs/${encodeURIComponent(e)}/workspace`)}/content?${new URLSearchParams({path:t})}`;function Sw(e){const t=e.headers.get("content-range"),n=t?Number(t.split("/")[1]):NaN;if(Number.isFinite(n))return n;const a=Number(e.headers.get("content-length"));return e.status===200&&Number.isFinite(a)&&e.headers.has("content-length")?a:void 0}async function HS(e,t,n){var m;const a=new TextDecoder;let i="",c=0;const u=(m=e.body)==null?void 0:m.getReader();if(u){for(;c<t;){const{done:p,value:w}=await u.read();if(p)break;const _=w.subarray(0,t-c);c+=_.length,i+=a.decode(_,{stream:!0})}await u.cancel().catch(()=>{})}else i=(await e.text()).slice(0,t),c=i.length;const d=Sw(e)??n,f=d!==void 0?d>c:c>=t;return{text:i,received:c,total:d,partial:f}}function Nw(e){return`Showing the first ${US} of ${e!==void 0?Qc(e):"a file of unknown size"}; download for the rest.`}function GS(e){try{return decodeURIComponent(e)}catch{return e}}function KS(e,t,n){const a=`${we(`runs/${encodeURIComponent(t)}/workspace`)}/content?`,i=n.split("/").slice(0,-1),c=f=>{if(/^[a-z][a-z0-9+.-]*:/i.test(f)||f.startsWith("/")||f.startsWith("#"))return null;const m=[...i];for(const p of f.split(/[?#]/,1)[0].split("/"))if(!(!p||p==="."))if(p===".."){if(!m.length)return null;m.pop()}else m.push(GS(p));return m.length?jw(t,m.join("/")):null},u=f=>{let m="",p=0;for(;p<f.length;){if(f[p]==="!"&&f[p+1]==="["){const w=f.indexOf("]",p+2);if(w!==-1&&f[w+1]==="("){const _=f.indexOf(")",w+2);if(_!==-1){const b=f.slice(p+2,w),A=f.slice(w+2,_).trim(),x=A.startsWith(a)?A:c(A);m+=x?``:`[image: ${b||A}](${A})`,p=_+1;continue}}}m+=f[p],p+=1}return m};let d=!1;return e.split(`
|
|
75
|
-
`).map(f=>/^\s*(```|~~~)/.test(f)?(d=!d,f):d?f:u(f)).join(`
|
|
76
|
-
`)}function JS(e,t,n,a){const[i,c]=y.useState({status:"idle"});return y.useEffect(()=>{if(!n||!t){c({status:"idle"});return}const u=new AbortController;let d="";const f=$c(n.name);if(f==="binary"){c({status:"ready",kind:"binary",contentType:"",partial:!1});return}if((f==="image"||f==="audio"||f==="pdf")&&typeof n.size_bytes=="number"&&n.size_bytes>VS){c({status:"error",kind:f,message:`Too large to preview (${Qc(n.size_bytes)}); use Download.`});return}c({status:"loading",kind:f});const m=xf(f);return(async()=>{var p;try{const w=await e(jw(t,n.path),{signal:u.signal,...m?{headers:{Range:`bytes=0-${Ic-1}`}}:{}});if(!w.ok)throw new Error(`Preview failed (HTTP ${w.status}): ${await w.text().catch(()=>"")||w.statusText||"no reason given"}`);const _=w.headers.get("content-type")||"",b=$c(n.name,_);if(xf(b)){const A=await HS(w,Ic,n.size_bytes);if(u.signal.aborted)return;c({status:"ready",kind:b,contentType:_,text:b==="markdown"?KS(A.text,t,n.path):A.text,partial:A.partial,total:A.total});return}if(b==="image"||b==="audio"||b==="pdf"){const A=await w.blob();if(u.signal.aborted)return;d=URL.createObjectURL(A.type?A:new Blob([A],{type:b==="pdf"?"application/pdf":_})),c({status:"ready",kind:b,contentType:_,url:d,partial:!1});return}await((p=w.body)==null?void 0:p.cancel().catch(()=>{})),u.signal.aborted||c({status:"ready",kind:"binary",contentType:_,partial:!1})}catch(w){u.signal.aborted||c({status:"error",kind:f,message:String((w==null?void 0:w.message)||w)})}})(),()=>{u.abort(),d&&URL.revokeObjectURL(d)}},[e,t,n==null?void 0:n.path,n==null?void 0:n.name,n==null?void 0:n.size_bytes,a]),i}function Cw(e){return r.jsx(jj,{...e,nowMs:e.nowMs??Date.now(),renderMarkdown:t=>r.jsx(cw,{text:t})})}function QS(e){return e.status==="idle"||e.status==="loading"?{status:"loading",...e.status==="loading"?{kind:e.kind}:{}}:e.status==="error"?{status:"error",error:e.message,kind:e.kind}:{status:"ready",kind:e.kind,contentType:e.contentType,...e.text!==void 0?{text:e.text}:{},...e.url?{url:e.url}:{},...e.partial?{partialNote:Nw(e.total)}:{}}}const Xf=e=>we(`runs/${encodeURIComponent(e)}/workspace`);function YS(e){return Xf(e)}function XS(e,t){return`${Xf(e)}/files?${new URLSearchParams({path:t,recursive:"false"})}`}function Ew(e,t){return`${Xf(e)}/content?${new URLSearchParams({path:t})}`}async function xo(e,t){let n="";try{const a=await e.text();try{const i=JSON.parse(a),c=(i==null?void 0:i.detail)??(i==null?void 0:i.error)??(i==null?void 0:i.message);n=typeof c=="string"?c:c&&typeof c.message=="string"?c.message:a}catch{n=a}}catch{n=""}return new Error(`${t} (HTTP ${e.status}): ${n.trim()||e.statusText||"no reason given"}`)}function qS(e,t){const n=e&&typeof e=="object"&&!Array.isArray(e)?e:null,a=u=>{throw new Error(`Unexpected /workspace/files response from the gateway: ${u}.`)};if(!n)return a("not an object");Array.isArray(n.entries)||a("no `entries` list"),typeof n.truncated!="boolean"&&a("no `truncated` flag");const i=n.entries.map((u,d)=>{const f=u&&typeof u=="object"?u:{};return(typeof f.name!="string"||typeof f.path!="string"||f.type!=="file"&&f.type!=="dir")&&a(`entry ${d+1} lacks a name, path or file/dir type`),f}),c=n.hidden&&typeof n.hidden=="object"&&!Array.isArray(n.hidden)?n.hidden:void 0;return{path:typeof n.path=="string"?n.path:t,entries:i,truncated:n.truncated,...c?{hidden:c}:{}}}async function ZS(e,t,n){const a=await e(YS(t),{signal:n});if(!a.ok)throw await xo(a,"The workspace is not available");const i=await a.json();if(!i||typeof i.workspace_root!="string"||typeof i.exists!="boolean")throw new Error("Unexpected /workspace response from the gateway: no `workspace_root` / `exists`.");return i}async function e0(e,t,n,a){const i=await e(XS(t,n),{signal:a});if(!i.ok)throw await xo(i,"The folder could not be listed");return qS(await i.json(),n)}async function t0(e,t,n,a){const i=await e(Ew(t,n),{signal:a});if(!i.ok)throw await xo(i,"The file could not be read");return await i.blob()}async function n0(e,t,n,a){const i=await ZS(e,t,a);return{where:i,listing:i.exists?await e0(e,t,n,a):null}}function s0(e){const t=String(e||"").split("/").filter(Boolean),n=[{label:"Workspace",path:""}];return t.forEach((a,i)=>n.push({label:a,path:t.slice(0,i+1).join("/")})),n}function r0(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";if(e<1024)return`${e} B`;const t=["KiB","MiB","GiB","TiB"];let n=e/1024,a=0;for(;n>=1024&&a<t.length-1;)n/=1024,a+=1;return`${n<10?n.toFixed(1):Math.round(n)} ${t[a]}`}function a0(e){return[...e].sort((t,n)=>t.type===n.type?t.name.localeCompare(n.name):t.type==="dir"?-1:1)}function o0(e){const t=e.hidden||{},n=Number(t.blocked||0)+Number(t.outside_links||0)+Number(t.other||0),a=[];return n>0&&a.push(`${n} ${n===1?"entry":"entries"} hidden by the gateway's workspace rules`),e.truncated&&a.push("the list is truncated"),a.join("; ")}const i0=new Set(["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","application/pdf","text/plain","application/json"]);function l0(e){const t=String(e||"").split(";",1)[0].trim().toLowerCase();return i0.has(t)?{mode:"open",type:t}:t.startsWith("text/")||t.endsWith("+xml")||t.endsWith("+json")||t.endsWith("/xml")||t.endsWith("/javascript")||t.endsWith("/x-yaml")||t.endsWith("/toml")?{mode:"open",type:"text/plain;charset=utf-8"}:{mode:"download"}}function Aw(e,t,n){const a=n==="open"?l0(e.type):{mode:"download"},i=a.mode==="open"&&a.type!==e.type?new Blob([e],{type:a.type}):e,c=URL.createObjectURL(i);if(a.mode==="open")window.open(c,"_blank","noopener");else{const u=document.createElement("a");u.href=c,u.download=t,document.body.appendChild(u),u.click(),u.remove()}window.setTimeout(()=>URL.revokeObjectURL(c),6e4)}async function c0(e,t,n){const a=await e(Y_(t),{signal:n.signal});if(!a.ok)throw await xo(a,`${n.name} could not be read`);Aw(await a.blob(),n.name,n.mode??"open")}function u0(e){const t=String(e||"").split(/[\\/]/).filter(Boolean);return t.length?t[t.length-1]:String(e||"")}function d0(e){var t;return!!(e&&e.open_supported===!0&&((t=e.host)==null?void 0:t.caller_is_this_machine)===!0&&e.exists)}async function f0(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}function qf(e){var te;const{fetchGateway:t,runId:n}=e,[a,i]=y.useState({runId:n,path:""}),c=a.runId===n?a.path:"",[u,d]=y.useState(null),[f,m]=y.useState(""),[p,w]=y.useState(""),[_,b]=y.useState(!!n),[A,x]=y.useState(""),[j,S]=y.useState(!1),[E,N]=y.useState(0),[C,$]=y.useState(null),R=C&&C.runId===n&&!e.onSelectFile?C.entry:null,D=JS(t,n,R,`${e.refreshKey??""}:${E}`);y.useEffect(()=>{if(!n)return;const P=new AbortController;return b(!0),m(""),(async()=>{try{const Z=await n0(t,n,c,P.signal);P.signal.aborted||d({runId:n,...Z})}catch(Z){P.signal.aborted||m(String((Z==null?void 0:Z.message)||Z))}finally{P.signal.aborted||b(!1)}})(),()=>P.abort()},[t,n,c,E,e.refreshKey]),y.useEffect(()=>w(""),[n]);const M=u&&u.runId===n?u:null,J=y.useCallback(async P=>{x(P.path),m("");try{Aw(await t0(t,n,P.path),P.name,"download")}catch(Z){m(String((Z==null?void 0:Z.message)||Z))}finally{x("")}},[t,n]),V=(M==null?void 0:M.where.workspace_root)||"",O=e.nowMs??Date.now();return r.jsx(h0,{title:e.title,note:e.note,where:(M==null?void 0:M.where)??null,path:c,listing:(M==null?void 0:M.listing)??null,error:f,notice:p,loading:_,fileBusy:A,selectedPath:e.onSelectFile?e.selectedPath:R==null?void 0:R.path,className:e.className,nowMs:O,openingFolder:j,onNavigate:P=>{$(null),i({runId:n,path:P})},onRefresh:()=>N(P=>P+1),onFile:P=>void J(P),onSelectFile:e.onSelectFile??(P=>$({runId:n,entry:P})),onClose:e.onClose,onCopyPath:V?()=>{(e.copyText||f0)(V).then(P=>w(P?"Path copied.":"Could not copy; select the path instead."))}:void 0,onOpenFolder:e.onOpenFolder&&d0(M==null?void 0:M.where)?()=>{S(!0),w(""),e.onOpenFolder().then(()=>w("Folder opened on this machine.")).catch(P=>w(`Open folder failed: ${String((P==null?void 0:P.message)||P)}`)).finally(()=>S(!1))}:void 0,preview:R?r.jsx(Cw,{name:R.name,path:R.path,sizeBytes:R.size_bytes,modified:R.mtime,nowMs:O,...QS(D),actions:(te=e.fileActions)==null?void 0:te.call(e,R),onDownload:()=>void J(R),onClose:()=>$(null)}):null})}function h0(e){var c,u,d,f;const t=e.listing?o0(e.listing):"",n=(u=(c=e.where)==null?void 0:c.host)==null?void 0:u.hostname,a=((d=e.where)==null?void 0:d.workspace_root)||"",i=e.nowMs??Date.now();return r.jsxs("section",{className:`pc-ws${e.className?` ${e.className}`:""}`,"aria-label":e.title,"data-workspace-root":a||void 0,children:[r.jsxs("header",{className:"pc-ws__head",children:[r.jsxs("span",{className:"pc-ws__title",children:[r.jsx(se,{name:"folder",size:15})," ",e.title]}),r.jsx("span",{className:"pc-ws__spacer"}),r.jsx("button",{type:"button",className:"pc-ws__icon-btn","data-action":"refresh-folder",onClick:e.onRefresh,disabled:e.loading,title:"Refresh","aria-label":"Refresh the folder",children:r.jsx(se,{name:"refresh",size:14})}),e.onClose?r.jsx("button",{type:"button",className:"pc-ws__icon-btn","data-action":"close-folder",onClick:e.onClose,title:"Close","aria-label":"Close the file browser",children:r.jsx(se,{name:"x",size:14})}):null]}),e.where?r.jsxs("div",{className:"pc-ws__root",children:[r.jsx("span",{className:"pc-ws__root-name",title:a,"data-root-name":"true",children:u0(a)}),e.onOpenFolder?r.jsx("button",{type:"button",className:"pc-ws__icon-btn pc-ws__icon-btn--bare","data-action":"open-folder",onClick:e.onOpenFolder,disabled:e.openingFolder,title:"Open folder","aria-label":"Open the folder on this machine",children:r.jsx(se,{name:"folder",size:14})}):null,e.onCopyPath?r.jsx("button",{type:"button",className:"pc-ws__icon-btn pc-ws__icon-btn--bare","data-action":"copy-path",onClick:e.onCopyPath,title:"Copy path","aria-label":"Copy the folder path",children:r.jsx(se,{name:"copy",size:14})}):null,n&&((f=e.where.host)==null?void 0:f.caller_is_this_machine)!==!0?r.jsxs("span",{className:"pc-ws__muted",children:[" on ",n]}):null]}):null,e.note?r.jsx("div",{className:"pc-ws__muted",children:e.note}):null,e.notice?r.jsx("div",{className:"pc-ws__muted",role:"status",children:e.notice}):null,e.error?r.jsx("div",{className:"pc-ws__error",role:"alert",children:e.error}):null,e.preview?r.jsx("div",{className:"pc-ws__preview",children:e.preview}):r.jsxs(r.Fragment,{children:[r.jsx("nav",{className:"pc-ws__crumbs","aria-label":"Folder",children:s0(e.path).map((m,p,w)=>p===w.length-1?r.jsx("span",{"aria-current":"page",children:m.label},m.path):r.jsxs(ut.Fragment,{children:[r.jsx("button",{type:"button",className:"pc-ws__crumb",onClick:()=>e.onNavigate(m.path),children:m.label}),r.jsx("span",{className:"pc-ws__muted",children:" / "})]},m.path))}),e.loading&&!e.listing?r.jsx("div",{className:"pc-ws__muted",role:"status",children:"Loading…"}):null,e.where&&!e.where.exists?r.jsx("div",{className:"pc-ws__muted",children:"The folder does not exist yet: nothing has been written."}):null,e.listing?e.listing.entries.length?r.jsx("ul",{className:"pc-ws__entries",children:a0(e.listing.entries).map(m=>r.jsx("li",{className:`pc-ws__entry${e.selectedPath===m.path?" is-selected":""}`,"data-type":m.type,"data-path":m.path,children:m.type==="dir"?r.jsxs("button",{type:"button",className:"pc-ws__name","data-action":"open-dir",onClick:()=>e.onNavigate(m.path),children:[r.jsx(se,{name:"folder",size:14})," ",r.jsxs("span",{className:"pc-ws__label",children:[m.name,"/"]})]}):r.jsxs(r.Fragment,{children:[e.onSelectFile?r.jsxs("button",{type:"button",className:"pc-ws__name","data-action":"select-file","aria-pressed":e.selectedPath===m.path,title:`Preview ${m.name}`,onClick:()=>{var p;return(p=e.onSelectFile)==null?void 0:p.call(e,m)},children:[r.jsx(se,{name:"file",size:14})," ",r.jsx("span",{className:"pc-ws__label",children:m.name})]}):r.jsxs("span",{className:"pc-ws__name",children:[r.jsx(se,{name:"file",size:14})," ",r.jsx("span",{className:"pc-ws__label",children:m.name})]}),r.jsxs("span",{className:"pc-ws__meta",children:[r.jsx("span",{className:"pc-ws__size",children:r0(m.size_bytes)}),m.mtime!==void 0&&wo(m.mtime,i)?r.jsx("time",{className:"pc-ws__time",title:Jc(m.mtime),"data-meta":"modified",children:wo(m.mtime,i)}):null]}),e.onFile?r.jsx("button",{type:"button",className:"pc-ws__icon-btn pc-ws__icon-btn--bare","data-action":"download-file",disabled:e.fileBusy===m.path,onClick:()=>{var p;return(p=e.onFile)==null?void 0:p.call(e,m,"download")},title:"Download","aria-label":`Download ${m.name}`,children:r.jsx(se,{name:"download",size:14})}):null]})},m.path))}):r.jsx("div",{className:"pc-ws__muted",children:"This folder is empty."}):null,t?r.jsx("div",{className:"pc-ws__muted","data-hidden-note":"true",children:t}):null]})]})}const m0={registry_scope:"tenant_catalog",bundle_id:"docs-qa",bundle_version:"0.1.1",flow_id:"docsqa001"},$w="docs";function p0(e){return we(`docs/corpus?${new URLSearchParams({app:String(e||"")})}`)}function Hd(e){return`${String(e||"app")}-docs-assistant:${la()}`}function g0(e){const t={prompt:e.question,docs:e.docs,app:e.appName,use_session_history:!0};return e.attachments&&e.attachments.length&&(t.context={attachments:e.attachments}),{...m0,session_id:e.sessionId,kind:$w,input_data:t}}function Tw(e){const t=e==null?void 0:e.output;if(typeof t=="string")return t.trim();const n=t==null?void 0:t.response;return typeof n=="string"?n.trim():""}function y0(e){const t=e&&typeof e=="object"?e:{},n=d=>typeof d=="number"&&Number.isFinite(d)&&d>0?Math.trunc(d):0,a=n(t.dropped_messages);if(!a)return"";const i=n(t.replayed_messages),c=n(t.dropped_tokens),u=n(t.max_tokens);return`Earlier messages not replayed: ${a.toLocaleString("en-US")}${c?` (~${c.toLocaleString("en-US")} tokens)`:""}. The model read the newest ${i.toLocaleString("en-US")} message${i===1?"":"s"}`+(u?` (history window: the most recent ${u.toLocaleString("en-US")} tokens of whole messages).`:".")}async function*w0(e,t){const n=e.getReader(),a=new TextDecoder;let i="";const c=()=>{n.cancel().catch(()=>{})};t==null||t.addEventListener("abort",c,{once:!0});try{for(;;){const{value:u,done:d}=await n.read();if(d)break;i+=a.decode(u,{stream:!0}).replace(/\r\n/g,`
|
|
77
|
-
`);let f=i.indexOf(`
|
|
78
|
-
|
|
79
|
-
`);for(;f>=0;){const m=i.slice(0,f);i=i.slice(f+2);let p="message";const w=[];for(const _ of m.split(`
|
|
80
|
-
`))_.startsWith("event:")?p=_.slice(6).trim():_.startsWith("data:")&&w.push(_.slice(5).replace(/^ /,""));w.length&&(yield{event:p,data:w.join(`
|
|
81
|
-
`)}),f=i.indexOf(`
|
|
82
|
-
|
|
83
|
-
`)}}}finally{t==null||t.removeEventListener("abort",c)}}function v0(e,t){return new Promise((n,a)=>{if(t.aborted)return a(new DOMException("Aborted","AbortError"));const i=setTimeout(()=>{t.removeEventListener("abort",c),n()},e),c=()=>{clearTimeout(i),a(new DOMException("Aborted","AbortError"))};t.addEventListener("abort",c,{once:!0})})}async function Rr(e,t){if(!e.ok)throw await xo(e,t);return e.json()}function _0(e){const t=e.pollMs??1e3,n=e.timeoutMs??18e4;let a=null;return async(i,c)=>{var A;const{fetchGateway:u,source:d}=e;if(a===null){const x=await u(p0(d.app),{signal:c.signal,headers:{Accept:"application/json"}}),j=await Rr(x,`The ${d.name} documentation could not be read, so nothing was asked`),S=typeof(j==null?void 0:j.text)=="string"?j.text:"";if(!S.trim())throw new Error(`The gateway returned an empty ${d.name} documentation corpus, so nothing was asked.`);a=S}const f=String(a),m=[];for(const x of c.files||[]){const j=new FormData;j.append("session_id",c.sessionId),j.append("file",x,x.name||"upload.bin"),j.append("filename",x.name||"upload.bin"),x.type&&j.append("content_type",x.type);const S=await Rr(await u(we("attachments/upload"),{method:"POST",body:j,signal:c.signal}),`"${x.name}" could not be attached`),E=S==null?void 0:S.attachment;if(!E||typeof E.$artifact!="string"||!E.$artifact)throw new Error(`"${x.name}" could not be attached: the gateway returned no attachment reference.`);m.push(E)}const p=await Rr(await u(we("runs/start"),{method:"POST",signal:c.signal,headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(g0({question:i,docs:f,appName:d.name,sessionId:c.sessionId,attachments:m}))}),"The docs-qa workflow could not start"),w=String((p==null?void 0:p.run_id)||"");if(!w)throw new Error("The gateway did not return a run id for the docs-qa workflow.");const _=new AbortController,b=()=>_.abort();c.signal.addEventListener("abort",b,{once:!0}),c.onText&&(async()=>{var x;try{const j=await u(we(`runs/${encodeURIComponent(w)}/ledger/stream?after=0`),{signal:_.signal,headers:{Accept:"text/event-stream"}});if(!j.ok||!j.body)return;let S="",E="";for await(const N of w0(j.body,_.signal)){const C=kw(N.event,N.data);!C||bw(C)||C.channel!=="content"||C.run_id!==w||(C.call_id!==S&&(S=C.call_id,E=""),E=C.snapshot?C.text:E+C.text,(x=c.onText)==null||x.call(c,E))}}catch{}})();try{const x=Date.now()+n;for(;;){await v0(t,c.signal);const j=await Rr(await u(we(`runs/${encodeURIComponent(w)}`),{signal:c.signal}),"The docs-qa run could not be read"),S=String((j==null?void 0:j.status)||"").toLowerCase();if(S==="completed"){(A=c.onHistory)==null||A.call(c,(j==null?void 0:j.session_history)??null);const E=Tw(j);if(!E)throw new Error(`The docs-qa run ${w} completed without an answer.`);return E}if(S==="failed"||S==="cancelled"){const E=j==null?void 0:j.error,N=typeof E=="string"?E:typeof(E==null?void 0:E.message)=="string"?E.message:"";throw new Error(`The docs-qa run ${S}${N?`: ${N}`:""}.`)}if(S==="waiting")throw new Error(`The docs-qa run ${w} is waiting for input it should never need. Inspect it in Observer.`);if(Date.now()>=x)throw new Error(`The docs-qa run ${w} is still running after ${Math.round(n/1e3)} s. It stays in the gateway's history.`)}}finally{c.signal.removeEventListener("abort",b),_.abort()}}}async function b0(e,t,n={}){const a=new URLSearchParams({root_only:"true",kind:$w,limit:"500",include_ledger_len:"false"}),i=await Rr(await e(we(`runs?${a}`),{signal:n.signal}),"The docs assistant history could not be read"),c=`${String(t||"app")}-docs-assistant:`,u=new Map;for(const f of Array.isArray(i==null?void 0:i.items)?i.items:[]){const m=String((f==null?void 0:f.session_id)||"");if(!m.startsWith(c)||!(f!=null&&f.run_id))continue;const p=u.get(m)||{runs:[],updatedAt:""};p.runs.push({id:String(f.run_id),created:String(f.created_at||"")});const w=String(f.updated_at||f.created_at||"");w>p.updatedAt&&(p.updatedAt=w),u.set(m,p)}const d=[...u.entries()].sort((f,m)=>f[1].updatedAt<m[1].updatedAt?1:-1).slice(0,n.max??20);return Promise.all(d.map(async([f,m])=>{var _;const p=m.runs.sort((b,A)=>b.created<A.created?-1:1).map(b=>b.id);let w="";try{const b=await Rr(await e(we(`runs/${encodeURIComponent(p[0])}/input_data`),{signal:n.signal}),"");w=String(((_=b==null?void 0:b.input_data)==null?void 0:_.prompt)||"").trim()}catch{w=""}return{sessionId:f,title:w||"Untitled question",updatedAt:m.updatedAt,runIds:p}}))}async function x0(e,t,n,a){var c;const i=[];for(const u of t.runIds){const[d,f]=await Promise.all([Rr(await e(we(`runs/${encodeURIComponent(u)}/input_data`),{signal:a}),"A past question could not be read"),Rr(await e(we(`runs/${encodeURIComponent(u)}`),{signal:a}),"A past answer could not be read")]),m=String(((c=d==null?void 0:d.input_data)==null?void 0:c.prompt)||"").trim();m&&i.push({id:`u-${u}`,role:"user",content:m,ts:String((f==null?void 0:f.created_at)||"")||void 0});const p=Tw(f),w=String((f==null?void 0:f.status)||"").toLowerCase();i.push(p?{id:`a-${u}`,role:"assistant",title:n,content:p,ts:String((f==null?void 0:f.updated_at)||"")||void 0}:{id:`a-${u}`,role:"assistant",title:n,level:"warn",content:w==="completed"?"This answer was empty.":`No answer: the run is ${w||"unknown"}.`})}return i}function k0(e){const[t,n]=y.useState(null);return e.state==="loading"?r.jsx("div",{className:"pc-docs-history__note",role:"status",children:"Loading past conversations…"}):e.state==="error"?r.jsx("div",{className:"pc-docs-history__note pc-docs-history__note--error",role:"alert",children:e.error||"The history could not be read."}):e.items.length?r.jsx("ul",{className:"pc-docs-history","aria-label":"Past conversations",children:e.items.map(a=>r.jsx("li",{className:`pc-docs-history__row${a.sessionId===e.activeSessionId?" is-active":""}`,children:t===a.sessionId?r.jsxs("div",{className:"pc-docs-history__confirm",children:[r.jsx("span",{children:"Archive this conversation? It stays in the gateway; it leaves this list."}),r.jsx("button",{type:"button",className:"pc-docs-history__btn pc-docs-history__btn--danger",onClick:()=>{n(null),e.onArchive(a)},children:"Archive"}),r.jsx("button",{type:"button",className:"pc-docs-history__btn",onClick:()=>n(null),children:"Cancel"})]}):r.jsxs(r.Fragment,{children:[r.jsxs("button",{type:"button",className:"pc-docs-history__open",onClick:()=>e.onOpen(a),title:a.title,children:[r.jsx("span",{className:"pc-docs-history__title",children:a.title}),r.jsxs("span",{className:"pc-docs-history__meta",children:[wo(a.updatedAt,e.nowMs),a.runIds.length>1?` · ${a.runIds.length} questions`:""]})]}),r.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":`Archive "${a.title}"`,"data-af-tip":`Archive "${a.title}" (kept, hidden)`,onClick:()=>n(a.sessionId),children:r.jsx(se,{name:"archive",size:16})})]})},a.sessionId))}):r.jsx("div",{className:"pc-docs-history__note",children:"No past conversations yet."})}const j0=/^image\/(png|jpe?g|gif|webp|avif|bmp|svg\+xml)$/i;function S0(e){const t=y.useRef(null),[n,a]=y.useState(!1),i=!!e.blockedNotice,c=!!e.busy,u=e.files||[],d=typeof e.onAddFiles=="function"&&!i,f=r.jsxs("div",{className:"pc-docs-assistant__empty",children:[r.jsxs("p",{className:"pc-docs-assistant__empty-text",children:["Ask anything about ",e.source.name,"."]}),e.suggestions&&e.suggestions.length?r.jsx("div",{className:"pc-docs-assistant__suggestions",children:e.suggestions.map(m=>r.jsx("button",{type:"button",className:"pc-docs-assistant__suggestion",disabled:c||i,onClick:()=>{var p;return(p=e.onSuggestion)==null?void 0:p.call(e,m)},children:m},m))}):null]});return r.jsxs("div",{className:`pc-docs-assistant${n?" is-dragging":""}`,onDragOver:m=>{var p;!d||!Ci((p=m.dataTransfer)==null?void 0:p.types)||(m.preventDefault(),a(!0))},onDragLeave:()=>a(!1),onDrop:m=>{var w,_;if(!d)return;m.preventDefault(),a(!1);const p=Yf(m.dataTransfer);p.files.length&&((w=e.onAddFiles)==null||w.call(e,p.files)),p.folders.length&&((_=e.onNotice)==null||_.call(e,vw(p.folders)))},children:[r.jsx(yw,{className:"pc-docs-assistant__thread",messages:e.messages,autoScroll:!0,empty:f,messageProps:{showCopy:!0}}),i?r.jsx("div",{className:"pc-docs-assistant__blocked",role:"status",children:e.blockedNotice}):null,e.notice?r.jsx("div",{className:"pc-docs-assistant__notice",role:"status",children:e.notice}):null,r.jsx("div",{className:"pc-docs-assistant__composer",children:r.jsx(ww,{value:e.draft,onChange:e.onDraftChange,onSubmit:e.onSend,placeholder:e.placeholder||`Ask about ${e.source.name}…`,ariaLabel:`Question about ${e.source.name}`,disabled:i,busy:c,rows:1,sendLabel:"Send",busyLabel:"Answering…",onPaste:m=>{var w;if(!d)return;const p=_w(m.clipboardData);p.length&&(m.preventDefault(),(w=e.onAddFiles)==null||w.call(e,p))},leading:u.length?r.jsx("div",{className:"pc-chat-attachments pc-docs-assistant__files",role:"list","aria-label":"Attached files",children:u.map(m=>r.jsxs("span",{role:"listitem",className:"pc-chat-attachment-chip",children:[r.jsx(se,{name:"paperclip",size:14}),r.jsx("span",{className:"pc-chat-attachment-name",children:m.name}),e.onRemoveFile&&!c?r.jsx("button",{type:"button",className:"pc-docs-assistant__file-remove","aria-label":`Remove ${m.name}`,"data-af-tip":`Remove ${m.name}`,onClick:()=>{var p;return(p=e.onRemoveFile)==null?void 0:p.call(e,m.id)},children:r.jsx(se,{name:"x",size:12})}):null]},m.id))}):null,actions:r.jsxs(r.Fragment,{children:[d?r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":"Attach files","data-af-tip":"Attach files to your question",disabled:c,onClick:()=>{var m;return(m=t.current)==null?void 0:m.click()},children:r.jsx(se,{name:"paperclip",size:16})}),r.jsx("input",{ref:t,type:"file",multiple:!0,hidden:!0,"aria-hidden":"true",tabIndex:-1,onChange:m=>{var w;const p=Array.from(m.currentTarget.files||[]);m.currentTarget.value="",p.length&&((w=e.onAddFiles)==null||w.call(e,p))}})]}):null,c&&e.onStop?r.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":"Stop","data-af-tip":"Stop the answer",onClick:e.onStop,children:r.jsx(se,{name:"stop",size:14})}):null]})})}),r.jsxs("div",{className:"pc-docs-assistant__footer",title:`Answers come from ${e.source.name}'s documentation (llms.txt) through the gateway's docs-qa workflow.`,children:["Grounded on ",e.source.name,"’s documentation (llms.txt) · docs-qa"]})]})}function mc(){return new Date().toISOString()}function N0(e){_o();const{source:t}=e,n=y.useRef(e.fetchGateway);n.current=e.fetchGateway;const a=y.useMemo(()=>e.ask||_0({fetchGateway:(O,te)=>n.current(O,te),source:t}),[e.ask,t.app,t.name]),i=y.useRef(Hd(t.app)),[c,u]=y.useState([]),d=y.useRef(c);d.current=c;const[f,m]=y.useState(""),[p,w]=y.useState([]),[_,b]=y.useState(!1),[A,x]=y.useState(""),j=y.useRef(null),[S,E]=y.useState(!1),[N,C]=y.useState({state:"loading",items:[]});y.useEffect(()=>()=>{var O;return(O=j.current)==null?void 0:O.abort()},[]);const $=y.useCallback(async()=>{C(O=>({...O,state:"loading"}));try{const O=await b0((te,P)=>n.current(te,P),t.app);C({state:"ready",items:O})}catch(O){C({state:"error",items:[],error:String((O==null?void 0:O.message)||O)})}},[t.app]),R=y.useCallback(async O=>{var te;(te=j.current)==null||te.abort(),C(P=>({...P,state:"loading"}));try{const P=await x0((Z,W)=>n.current(Z,W),O,t.name);i.current=O.sessionId,u(P),x(""),E(!1),C(Z=>({...Z,state:"ready"}))}catch(P){C(Z=>({...Z,state:"error",error:String((P==null?void 0:P.message)||P)}))}},[t.name]),D=y.useCallback(async O=>{try{const te=await n.current(we(`sessions/${encodeURIComponent(O.sessionId)}/archive`),{method:"POST"});if(!te.ok)throw await xo(te,"The conversation could not be archived");i.current===O.sessionId&&(i.current=Hd(t.app),u([])),C(P=>({...P,items:P.items.filter(Z=>Z.sessionId!==O.sessionId)}))}catch(te){C(P=>({...P,state:"error",error:String((te==null?void 0:te.message)||te)}))}},[t.app]);y.useEffect(()=>{var O;e.connected||(O=j.current)==null||O.abort()},[e.connected]),y.useEffect(()=>()=>{for(const O of p)O.preview&&URL.revokeObjectURL(O.preview)},[]);const M=y.useCallback(O=>{x(""),w(te=>[...te,...O.map(P=>({id:la(),file:P,preview:j0.test(P.type)&&typeof URL<"u"&&typeof URL.createObjectURL=="function"?URL.createObjectURL(P):void 0}))])},[]),J=y.useCallback(async O=>{const te=String(O||"").trim();if(!te||_||!e.connected)return;const P=p;m(""),w([]),x("");const Z=P.filter(I=>I.preview).map(I=>({kind:"image",src:I.preview,label:I.file.name})),W=P.map(I=>({id:I.id,label:I.file.name,title:I.file.name,disabled:!0})),ne={id:`u-${la()}`,role:"user",content:te,ts:mc(),...Z.length?{media:Z}:{},...W.length?{attachments:W}:{}},ae=`a-${la()}`,H=[...d.current,ne],de={id:ae,role:"assistant",title:t.name,content:"",ts:mc(),live:{callId:ae,reasoning:"",label:"answering"}};u([...H,de]),b(!0);const re=new AbortController;j.current=re;const F=I=>u([...H,I]);try{const I=await a(te,{signal:re.signal,sessionId:i.current,files:P.map(U=>U.file),onText:U=>{re.signal.aborted||F({...de,content:U,live:{callId:ae,reasoning:"",label:"streaming"}})},onHistory:U=>x(y0(U))});re.signal.aborted||F({id:ae,role:"assistant",title:t.name,content:I,ts:mc()})}catch(I){const U=re.signal.aborted;F({id:ae,role:"assistant",title:t.name,level:U?"warn":"error",content:U?"Stopped. Nothing more will be shown for this question.":String((I==null?void 0:I.message)||I||"The docs assistant failed."),ts:mc()})}finally{j.current===re&&(j.current=null),b(!1)}},[a,_,p,e.connected,t.name]),V=()=>{var O;(O=j.current)==null||O.abort(),i.current=Hd(t.app),u([]),w([]),m(""),x("")};return r.jsxs(kb,{open:e.open,onClose:e.onClose,label:"Docs assistant",title:r.jsxs("span",{className:"pc-docs-assistant__title",children:[r.jsx(se,{name:"book",size:16}),"Docs assistant"]}),width:e.width||420,topOffset:e.topOffset,className:`pc-docs-assistant-drawer${e.className?` ${e.className}`:""}`,headerActions:r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",className:`pc-docs-assistant__icon-btn${S?" is-active":""}`,"aria-label":"Past conversations","data-af-tip":"Past conversations","aria-pressed":S,disabled:!e.connected||_,onClick:()=>{const O=!S;E(O),O&&$()},children:r.jsx(se,{name:"history",size:16})}),r.jsx("button",{type:"button",className:"pc-docs-assistant__icon-btn","aria-label":"New conversation","data-af-tip":"Start a new conversation",disabled:!c.length&&!f&&!p.length&&!S,onClick:()=>{V(),E(!1)},children:r.jsx(se,{name:"compose",size:16})})]}),children:[S?r.jsx("div",{className:"pc-docs-assistant pc-docs-assistant--history",children:r.jsx(k0,{items:N.items,state:N.state,error:N.error,nowMs:Date.now(),activeSessionId:i.current,onOpen:O=>void R(O),onArchive:O=>void D(O)})}):null,r.jsx("div",{hidden:S,style:{display:S?"none":"contents"},children:r.jsx(S0,{source:t,messages:c,draft:f,onDraftChange:m,onSend:()=>void J(f),onStop:()=>{var O;return(O=j.current)==null?void 0:O.abort()},busy:_,blockedNotice:e.connected?void 0:"Connect to the gateway to use the docs assistant.",files:p.map(O=>({id:O.id,name:O.file.name})),onAddFiles:M,onNotice:x,onRemoveFile:O=>w(te=>{const P=te.find(Z=>Z.id===O);return P!=null&&P.preview&&URL.revokeObjectURL(P.preview),te.filter(Z=>Z.id!==O)}),notice:A,suggestions:e.suggestions,onSuggestion:O=>void J(O),placeholder:e.placeholder})})]})}const it=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},xc=e=>Array.isArray(e)?e.map(it):[],Qe=e=>typeof e=="string"?e:"",gi=e=>Qe(e.runtime_call_id||e.call_uid),yi=e=>Qe(e.call_id||e.id);function Rw(e,t){const n=t.record,a=it(n.effect);if(a.type!=="tool_calls")return[];const i=it(n.result),c=xc(it(a.payload).tool_calls),u=c.length||n.status!=="waiting"?c:xc(it(it(i.wait).details).tool_calls),d=xc(i.results),f=u.length?u:d,m=[];return f.forEach((p,w)=>{let _=gi(p)?d.filter(R=>gi(R)===gi(p)):[];!_.length&&yi(p)&&u.filter(R=>yi(R)===yi(p)).length===1&&(_=d.filter(R=>yi(R)===yi(p)));const b=u.length?_.length===1?_[0]:u.length===d.length?d[w]:{}:p,A=gi(p)||gi(b)||`${Qe(n.idempotency_key)||Qe(n.step_id)||t.cursor}:${w}`,x=`${t.runId}:${A}`,j=e.get(x),S=Qe(p.name||b.name)||(j==null?void 0:j.name);if(!S)return;const E=n.status==="completed"||n.status==="failed",N=n.status==="failed"||b.success===!1||!!b.error,C=p.arguments??b.arguments??(j==null?void 0:j.arguments),$={...j,id:x,runId:t.runId,name:S,arguments:C,status:E?N?"failed":"completed":n.status==="waiting"?"waiting":"running",...typeof b.success=="boolean"?{success:b.success}:{},...b.output!==void 0||b.result!==void 0?{output:b.output??b.result}:{},...b.error?{error:String(b.error)}:{},...eg(b)?{sandbox:eg(b)}:{},startedAt:(j==null?void 0:j.startedAt)||Qe(n.started_at)||void 0,endedAt:E&&Qe(n.ended_at)||(j==null?void 0:j.endedAt)};j&&["completed","failed"].includes(j.status)&&!E||(e.set(x,$),m.push($))}),m}function fo(e){if(e==null||e===""||typeof e=="boolean")return;const t=Number(e);return Number.isFinite(t)&&t>=0?t:void 0}function As(e,t){for(const n of t){const a=e==null?void 0:e[n];if(a==null||a===""||typeof a=="boolean")continue;const i=Number(a);if(Number.isFinite(i)&&i>=0)return Math.trunc(i)}}function Iw(e){if(typeof e=="string")try{return it(JSON.parse(e))}catch{return{}}return it(e)}function ro(e,t){if(t===void 0||t==="")return e;const n=e||[];return n.includes(t)||n.push(t),n}function C0(e){return As(e,["reasoning_tokens","thinking_tokens"])??As(it(e.completion_tokens_details),["reasoning_tokens"])??As(it(e.output_tokens_details),["reasoning_tokens"])}function E0(e){const t=it(typeof e=="string"&&e.trim().startsWith("{")?Iw(e):e);return Qe(t.error_class)}function A0(e){const t=new Map;for(const n of e){const a=n.record;if(it(a.effect).type!=="emit_event")continue;const i=it(a.result);if(Qe(i.name)!=="abstract.progress")continue;const c=it(i.payload);if(Qe(c.kind)!=="llm"||!Qe(c.step_id))continue;const u=`${Qe(c.run_id)||n.runId}:${Qe(c.step_id)}`,d=t.get(u)||{},f=fo(c.ttft_s);f!==void 0&&(d.ttftS=f),d.provider=d.provider||Qe(c.provider)||void 0,d.model=d.model||Qe(c.model)||void 0,t.set(u,d)}return t}function Ri(e){var x,j,S,E;const t=new Map,n=new Set,a=new Set,i={llmCalls:0,toolCalls:0,changedFiles:[]};let c=1/0,u=-1/0,d=!1,f=0,m=0,p=0;const w=A0(e),_=[],b=new Set;for(const N of e){const C=N.record,$=`${N.runId}:${C.step_id||N.cursor}:${C.status}`;if(n.has($))continue;n.add($);for(const oe of[C.started_at,C.ended_at]){const ve=Date.parse(Qe(oe));Number.isFinite(ve)&&(c=Math.min(c,ve),u=Math.max(u,ve))}for(const oe of Rw(t,N))oe.status==="waiting"&&b.add(oe.id);if(it(C.effect).type!=="llm_call"||C.status!=="completed")continue;i.llmCalls+=1;const R=it(C.result),D=it(R.output),M=it(R.usage||R.token_usage||R.tokens||D.usage||D.token_usage||D.tokens),J=As(M,["input_tokens","prompt_tokens","prompt","input","in"]),V=As(M,["output_tokens","completion_tokens","completion","output","out"]),O=As(M,["total_tokens","total"])??(J!==void 0||V!==void 0?(J||0)+(V||0):void 0);O!==void 0&&(J===void 0||V===void 0||J+V!==O)&&(d=!0),J!==void 0&&(i.inputTokens=(i.inputTokens||0)+J),V!==void 0&&(i.outputTokens=(i.outputTokens||0)+V),O!==void 0&&(i.totalTokens=(i.totalTokens||0)+O);const te=fo(R.gen_time??D.gen_time);te!==void 0&&(i.genTimeMs=(i.genTimeMs||0)+te,i.timedCalls=(i.timedCalls||0)+1);const P=it(R.metadata||D.metadata),Z=it(P.performance),W=fo(Z.prompt_tokens_per_second),ne=fo(Z.generation_tokens_per_second),ae=it(P.prompt_cache),H=fo(ae.cached_tokens),de=fo(ae.fed_tokens);if(W!==void 0||ne!==void 0){if(i.measuredSpeedCalls=(i.measuredSpeedCalls||0)+1,W!==void 0&&W>0&&(i.promptTokensPerSecond=(i.promptTokensPerSecond||0)+W,J!==void 0)){const oe=J/W*1e3;i.prefillMs=(i.prefillMs||0)+oe,de!==void 0&&(f+=de,m+=oe)}ne!==void 0&&ne>0&&(i.generationTokensPerSecond=(i.generationTokensPerSecond||0)+ne,V!==void 0&&(i.decodeMs=(i.decodeMs||0)+V/ne*1e3))}if(H!==void 0||de!==void 0){i.measuredCacheCalls=(i.measuredCacheCalls||0)+1,i.cachedTokens=(i.cachedTokens||0)+(H||0),i.fedTokens=(i.fedTokens||0)+(de||0);const oe=Qe(ae.outcome);if(oe){const ve=i.cacheOutcomes||[];ve.includes(oe)||ve.push(oe),i.cacheOutcomes=ve}}const re=Qe(C.step_id)||void 0,F=re&&w.get(`${N.runId}:${re}`)||{},I=it(R.route),U={runId:N.runId};re&&(U.stepId=re),Qe(C.started_at)&&(U.startedAt=Qe(C.started_at));const fe=Qe(R.model||D.model)||Qe(I.model)||F.model,q=Qe(I.provider)||Qe(it(P._provider_request).provider)||F.provider||Qe(R.provider);fe&&(U.model=fe),q&&(U.provider=q),fe&&(i.models=ro(i.models,fe)),q&&(i.providers=ro(i.providers,q)),(O===void 0||J!==void 0&&V!==void 0&&J+V===O)&&(J!==void 0&&(U.inputTokens=J),V!==void 0&&(U.outputTokens=V)),O!==void 0&&(U.totalTokens=O);const le=C0(M);le!==void 0&&(U.reasoningTokens=le,i.reasoningTokens=(i.reasoningTokens||0)+le),H!==void 0&&(U.cachedTokens=H),de!==void 0&&(U.fedTokens=de),Qe(ae.outcome)&&(U.cacheOutcome=Qe(ae.outcome)),Qe(ae.backend)&&(U.cacheBackend=Qe(ae.backend),i.cacheBackends=ro(i.cacheBackends,U.cacheBackend)),te!==void 0&&(U.genTimeMs=te),W!==void 0&&W>0&&(U.promptTokensPerSecond=W),ne!==void 0&&ne>0&&(U.generationTokensPerSecond=ne),F.ttftS!==void 0?(U.ttftMs=F.ttftS*1e3,U.promptMs=U.ttftMs,U.promptSource="ttft",i.ttftMs=(i.ttftMs||0)+U.ttftMs,i.ttftCalls=(i.ttftCalls||0)+1):U.promptTokensPerSecond!==void 0&&J!==void 0&&(U.promptMs=J/U.promptTokensPerSecond*1e3,U.promptSource="rate"),U.promptMs!==void 0&&(i.promptPhaseMs=(i.promptPhaseMs||0)+U.promptMs,i.promptPhaseCalls=(i.promptPhaseCalls||0)+1,de!==void 0&&U.promptMs>0&&(U.promptNewTokensPerSecond=de/(U.promptMs/1e3),i.promptPhaseNewTokens=(i.promptPhaseNewTokens||0)+de,p+=U.promptMs)),U.ttftMs!==void 0&&te!==void 0&&te>=U.ttftMs?U.generationMs=te-U.ttftMs:U.generationTokensPerSecond!==void 0&&V!==void 0&&(U.generationMs=V/U.generationTokensPerSecond*1e3),U.generationMs!==void 0&&V!==void 0&&(i.generationPhaseMs=(i.generationPhaseMs||0)+U.generationMs,i.generationPhaseTokens=(i.generationPhaseTokens||0)+V);const me=it(P.speculation);if(Object.keys(me).length){const oe={};Qe(me.mode)&&(oe.mode=Qe(me.mode)),typeof me.used=="boolean"&&(oe.used=me.used),Qe(me.draft_kind)&&(oe.draftKind=Qe(me.draft_kind));const ve=As(me,["accepted_tokens"]),We=As(me,["drafted_tokens"]),nt=As(me,["rounds"]),qe=As(me,["num_draft_tokens"]);ve!==void 0&&(oe.acceptedTokens=ve),We!==void 0&&(oe.draftedTokens=We),ve!==void 0&&We&&(oe.acceptanceRate=ve/We),nt!==void 0&&(oe.rounds=nt),qe!==void 0&&(oe.draftLength=qe),U.speculation=oe;const $e=i.speculation||(i.speculation={calls:0,used:0});$e.calls+=1,oe.used&&($e.used+=1),oe.mode&&($e.modes=ro($e.modes,oe.mode)),oe.draftKind&&($e.draftKinds=ro($e.draftKinds,oe.draftKind)),ve!==void 0&&We!==void 0&&($e.acceptedTokens=($e.acceptedTokens||0)+ve,$e.draftedTokens=($e.draftedTokens||0)+We),nt!==void 0&&($e.rounds=($e.rounds||0)+nt),qe!==void 0&&($e.draftLengths=ro($e.draftLengths,qe))}_.push(U)}_.length&&(_.every(N=>N.startedAt)&&_.sort((N,C)=>Date.parse(N.startedAt)-Date.parse(C.startedAt)),i.modelCalls=_),p>0&&i.promptPhaseNewTokens!==void 0&&(i.promptPhaseTokensPerSecond=i.promptPhaseNewTokens/(p/1e3)),i.generationPhaseMs&&i.generationPhaseTokens!==void 0&&(i.generationPhaseTokensPerSecond=i.generationPhaseTokens/(i.generationPhaseMs/1e3)),(x=i.speculation)!=null&&x.draftedTokens&&(i.speculation.acceptanceRate=(i.speculation.acceptedTokens||0)/i.speculation.draftedTokens),i.measuredSpeedCalls&&(i.promptTokensPerSecond!==void 0&&(i.promptTokensPerSecond/=i.measuredSpeedCalls),i.generationTokensPerSecond!==void 0&&(i.generationTokensPerSecond/=i.measuredSpeedCalls)),m>0&&(i.prefillNewTokens=f,i.prefillNewTokensPerSecond=f/(m/1e3));const A=new Map;for(const N of t.values()){if(N.status==="waiting"){i.toolsWaiting=(i.toolsWaiting||0)+1;continue}if(N.status==="running"){i.toolsRunning=(i.toolsRunning||0)+1;continue}if(!["completed","failed"].includes(N.status))continue;i.toolCalls+=1;const C=N.status==="failed";C&&(i.toolsFailed=(i.toolsFailed||0)+1);const $=i.toolBreakdown||(i.toolBreakdown={}),R=$[N.name]||($[N.name]={calls:0,failed:0});if(R.calls+=1,C){R.failed+=1;const O=E0(N.output);O&&((R.errors||(R.errors={}))[O]=(((j=R.errors)==null?void 0:j[O])||0)+1)}const D=Date.parse(Qe(N.startedAt)),M=Date.parse(Qe(N.endedAt));if(Number.isFinite(D)&&Number.isFinite(M)&&M>=D){const O=`${N.runId}|${N.startedAt}|${N.endedAt}`,te=A.get(O)||{ms:M-D,calls:0,names:new Map,waited:!1};te.calls+=1,te.names.set(N.name,(te.names.get(N.name)||0)+1),b.has(N.id)&&(te.waited=!0),A.set(O,te)}if(N.success!==!0||!["write_file","create_file","save_file","edit_file","update_file","replace_in_file","delete_file","remove_file","move_file","rename_file","copy_file"].includes(N.name))continue;const J=Iw(N.arguments),V=Qe(J.destination||J.destination_path||J.file_path||J.path||J.filename);V&&a.add(V)}for(const N of A.values()){i.toolBatches=(i.toolBatches||0)+1,i.toolTimeMs=(i.toolTimeMs||0)+N.ms,N.waited&&(i.toolTimeIncludesApproval=!0);const C=[...N.names.keys()].sort();(!i.slowestToolBatch||N.ms>i.slowestToolBatch.ms)&&(i.slowestToolBatch={ms:N.ms,calls:N.calls,tools:C});const $=(S=i.toolBreakdown)==null?void 0:S[C[0]];if(C.length===1&&$)$.ms=($.ms||0)+N.ms;else for(const R of C){const D=(E=i.toolBreakdown)==null?void 0:E[R];D&&(D.sharedBatches=(D.sharedBatches||0)+1)}}return i.changedFiles=[...a],d&&(delete i.inputTokens,delete i.outputTokens),Number.isFinite(c)&&Number.isFinite(u)&&(i.durationMs=Math.max(0,u-c)),{tools:[...t.values()],statistics:i}}function $0(e){const t=it(it(e).ledgers);return Object.entries(t).flatMap(([n,a])=>xc(it(a).items).map((i,c)=>({runId:n,cursor:Number(i.cursor)||c+1,record:Object.keys(it(i.record)).length?it(i.record):i})))}const Gd=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{};function T0(e){var x,j,S,E;const{tools:t,statistics:n}=Ri(e.records),a={toolCalls:n.toolCalls,totalTokens:n.totalTokens,startedAt:String(((x=e.run)==null?void 0:x.created_at)||"")||void 0},i=(N,C,$)=>({...a,label:N,detail:C,tone:$});if(e.loading)return i("Loading conversation","Restoring saved activity","neutral");if(["completed","failed","cancelled"].includes(e.status))return i(e.status==="completed"?"Completed":e.status==="failed"?"Run failed":"Stopped","",e.status==="failed"?"error":e.status==="completed"?"success":"neutral");if((e.connection==="reconnecting"||e.connection==="disconnected")&&(!((j=e.records)!=null&&j.length)||!!e.error))return i(e.connection==="reconnecting"?"Reconnecting":"Disconnected",String(e.error||"Live activity is unavailable"),"waiting");if(e.status==="paused"||((S=e.run)==null?void 0:S.paused)===!0)return i("Paused","Resume when you’re ready","waiting");const c=Gd((E=e.interaction)==null?void 0:E.wait),u=Gd(c.details),d=u.kind==="tool_approval"||u.mode==="approval_required",f=d&&e.toolApprovalGranted===!0;if(d&&!f)return i("Approval needed","Review the tool requests below","waiting");if(!d&&["user","ask_user"].includes(c.reason))return i("Your answer is needed",String(c.prompt||"The workflow has a question for you"),"waiting");if(!d&&(c.reason==="event"||String(c.wait_key||"").startsWith("evt:")))return i("Waiting for an event",String(c.prompt||"Listening for the workflow’s trigger"),"waiting");const m=t.filter(N=>{var C;return N.status==="running"||f&&N.status==="waiting"&&N.runId===((C=e.interaction)==null?void 0:C.runId)});if(m.length)return i(m.length===1?"Running a tool":`Running ${m.length} tools`,[...new Set(m.map(N=>N.name))].join(" · "),"working");const p=new Map;for(const N of e.records){const C=`${N.runId}:${N.record.step_id||N.record.idempotency_key||N.cursor}`,$=p.get(C);$&&["completed","failed"].includes(String($.record.status))||p.set(C,N)}if([...p.values()].reverse().find(N=>Gd(N.record.effect).type==="llm_call"&&["started","running"].includes(String(N.record.status))))return i("Thinking","Generating the next response","working");const _=e.displayStatus.trim(),b=!/^(completed|complete|done|finished|ready|success|succeeded|failed|running|working|waiting|thinking|idle|paused|stopped|cancelled)$/i.test(_)&&!_.startsWith("{")?_:"",A=t[t.length-1];return i(e.status==="idle"?"Ready":"Working",b||(A?`Last tool: ${A.name} · ${A.status==="failed"?"failed":A.status==="completed"?"done":"waiting"}`:"Following the workflow"),e.status==="idle"?"neutral":"working")}function R0(e,t){if(e.kind==="ask-user"){if(t.kind==="choice"||t.kind==="free-text")return e.onSubmit(t.answer);throw new Error("Invalid submission for ask-user interaction")}if(e.kind==="tool-approval"){if(t.kind==="approve")return e.onApprove();if(t.kind==="deny")return e.onDeny();if(t.kind==="approve-all"&&e.onApproveAll)return e.onApproveAll();throw new Error("Invalid submission for tool-approval interaction")}if(t.kind==="event")return e.onSend(t.payload);throw new Error("Invalid submission for event-wait interaction")}function I0(e){return(e instanceof Error?e.message:String(e||"Unknown error")).trim()||"Unknown error"}function M0(e){return r.jsxs("div",{className:"pc-workflow-interaction__error",role:"alert",children:[r.jsxs("span",{children:["Could not complete that action: ",e.message]}),r.jsx("button",{type:"button",className:"pc-workflow-interaction__retry",onClick:e.onRetry,disabled:e.disabled,children:"Try again"})]})}function L0(e){var D;const t=e.interaction,[n,a]=y.useState(""),[i,c]=y.useState(()=>t.kind==="event-wait"&&t.initialPayload||""),[u,d]=y.useState(null),[f,m]=y.useState(!1),[p,w]=y.useState(""),[_,b]=y.useState(null),A=`${t.kind}:${t.id}`,x=y.useRef(A),j=y.useRef(!1),S=y.useRef(!1),E=y.useRef(!0),N=y.useRef(0);x.current!==A&&(x.current=A,j.current=!1,S.current=!1,N.current+=1);const C=!!e.disabled||u!==null||f||j.current||S.current,$=async(M,J)=>{var te;if(e.disabled||j.current||S.current)return;const V=A,O=++N.current;j.current=!0,b(null),w(""),d(M);try{if(await J(),!E.current||x.current!==V||N.current!==O)return;S.current=!0,m(!0),w("Response sent. Waiting for the workflow to continue.")}catch(P){if(!E.current||x.current!==V||N.current!==O)return;b({submission:M,message:I0(P)}),w("The action failed. You can try again."),(te=e.onError)==null||te.call(e,P)}finally{if(!E.current||x.current!==V||N.current!==O)return;j.current=!1,d(null)}};y.useEffect(()=>{a(""),c(t.kind==="event-wait"&&t.initialPayload||""),b(null),d(null),m(!1),w("")},[A]),y.useEffect(()=>(E.current=!0,()=>{E.current=!1,N.current+=1,j.current=!1}),[]);const R=()=>{_&&$(_.submission,()=>R0(t,_.submission))};return r.jsxs("section",{className:"pc-workflow-interaction","aria-labelledby":`pc-workflow-interaction-${A}`,children:[r.jsxs("div",{className:"pc-workflow-interaction__heading",children:[r.jsx(se,{name:t.kind==="tool-approval"?"warning":t.kind==="event-wait"?"history":"info",size:16}),r.jsxs("div",{children:[r.jsx("h3",{tabIndex:-1,id:`pc-workflow-interaction-${A}`,children:t.title||(t.kind==="tool-approval"?"Tool approval required":"Input required")}),t.description?r.jsx("div",{className:"pc-workflow-interaction__description",children:t.description}):null]})]}),t.kind==="ask-user"?r.jsxs("div",{className:"pc-workflow-interaction__body",children:[r.jsx("div",{className:"pc-workflow-interaction__prompt",children:t.prompt}),(D=t.choices)!=null&&D.length?r.jsx("div",{className:"pc-workflow-interaction__choices","aria-label":"Choices",children:t.choices.map(M=>r.jsxs("button",{type:"button",className:"pc-workflow-interaction__choice",disabled:C||M.disabled,onClick:()=>void $({kind:"choice",answer:M.id},()=>t.onSubmit(M.id)),children:[r.jsx("span",{children:M.label}),M.description?r.jsx("small",{children:M.description}):null]},M.id))}):null,t.allowFreeText!==!1?r.jsxs("div",{className:"pc-workflow-interaction__entry",children:[r.jsx("textarea",{"aria-label":"Response",value:n,onChange:M=>a(M.target.value),placeholder:t.freeTextPlaceholder||"Type a response",rows:2,disabled:C,onKeyDown:M=>{M.key!=="Enter"||M.shiftKey||M.nativeEvent.isComposing||M.keyCode===229||(M.preventDefault(),n.trim()&&$({kind:"free-text",answer:n},()=>t.onSubmit(n)))}},`${A}:text`),r.jsx("button",{type:"button",className:"pc-btn",disabled:C||!n.trim(),onClick:()=>void $({kind:"free-text",answer:n},()=>t.onSubmit(n)),children:(u==null?void 0:u.kind)==="free-text"?"Sending…":t.submitLabel||"Submit"})]}):null]}):t.kind==="tool-approval"?r.jsxs("div",{className:"pc-workflow-interaction__body",children:[r.jsxs("div",{className:"pc-workflow-interaction__prompt",children:["Allow ",r.jsx("strong",{children:t.toolName})," to run?"]}),t.detail?r.jsx("div",{className:"pc-workflow-interaction__detail",children:t.detail}):null,r.jsxs("div",{className:"pc-workflow-interaction__buttons",children:[r.jsx("button",{type:"button",className:"pc-workflow-interaction__deny",disabled:C,onClick:()=>void $({kind:"deny"},t.onDeny),children:(u==null?void 0:u.kind)==="deny"?"Denying…":t.denyLabel||"Deny"}),r.jsx("button",{type:"button",className:"pc-btn",disabled:C,onClick:()=>void $({kind:"approve"},t.onApprove),children:(u==null?void 0:u.kind)==="approve"?"Approving…":t.approveLabel||"Approve"}),t.onApproveAll?r.jsx("button",{type:"button",className:"pc-workflow-interaction__allow-all",disabled:C,onClick:()=>void $({kind:"approve-all"},t.onApproveAll),children:(u==null?void 0:u.kind)==="approve-all"?"Approving…":t.approveAllLabel||"Allow all"}):null]}),t.onApproveAll&&t.approveAllDescription?r.jsx("p",{className:"pc-workflow-interaction__scope",children:t.approveAllDescription}):null]}):r.jsxs("div",{className:"pc-workflow-interaction__body",children:[r.jsx("div",{className:"pc-workflow-interaction__prompt",children:t.prompt}),r.jsxs("label",{className:"pc-workflow-interaction__entry",children:[r.jsx("span",{children:t.payloadLabel||(t.eventName?`Payload for ${t.eventName}`:"Event payload")}),r.jsx("textarea",{value:i,onChange:M=>c(M.target.value),placeholder:t.payloadPlaceholder||"Enter payload",rows:2,"aria-label":t.payloadLabel||(t.eventName?`Payload for ${t.eventName}`:"Event payload"),disabled:C},`${A}:payload`)]}),r.jsx("div",{className:"pc-workflow-interaction__buttons",children:r.jsx("button",{type:"button",className:"pc-btn",disabled:C,onClick:()=>void $({kind:"event",payload:i},()=>t.onSend(i)),children:(u==null?void 0:u.kind)==="event"?"Sending…":t.sendLabel||"Send event"})})]}),_?r.jsx(M0,{message:_.message,onRetry:R,disabled:C}):null,r.jsx("div",{className:"pc-workflow-interaction__outcome","aria-live":"polite",children:p})]})}function pc(e){return(e instanceof Error?e.message:String(e||"Unknown error")).trim()||"Unknown error"}function O0(e){_o();const[t,n]=y.useState(!1),[a,i]=y.useState(!1),[c,u]=y.useState(!1),[d,f]=y.useState(null),m=y.useRef(!0),p=y.useRef(!1),w=y.useRef(!1),_=y.useRef(!1),b=y.useRef(0),A=y.useRef(0),x=y.useRef(0);y.useEffect(()=>(m.current=!0,()=>{m.current=!1,b.current+=1,A.current+=1,x.current+=1,p.current=!1,w.current=!1,_.current=!1}),[]);const j=!!e.blockedNotice,S=!!e.disabled||j,E=!!e.busy||t,N=t||!!e.busy&&!e.sendWhileBusy,C=e.stopState||null,$=(C==null?void 0:C.phase)==="stopping",R=typeof e.onFiles=="function",D=y.useRef(null),[M,J]=y.useState(null),[V,O]=y.useState(""),te=y.useRef(e.onFiles);te.current=e.onFiles;const P=y.useRef(S);P.current=S;const Z=async(U,fe)=>{const q=te.current;if(q){if(P.current){f({action:"attach",message:"attachments are unavailable right now."});return}if(fe.length)f({action:"attach",message:vw(fe)});else if(U.length)f(null);else{f({action:"attach",message:"the drop contained no files."});return}if(U.length){O(`Attaching ${U.length} ${U.length===1?"file":"files"}…`);try{await q(U)}catch(le){m.current&&f({action:"attach",message:pc(le)})}}}},W=y.useRef(Z);W.current=Z,y.useEffect(()=>{if(!R||typeof window>"u")return;const U=new PS;let fe=0;const q=$e=>!!(D.current&&$e instanceof Node&&D.current.contains($e)),le=()=>{U.reset(),fe&&window.clearInterval(fe),fe=0,J(null)},me=()=>{fe||(fe=window.setInterval(()=>{U.active(Date.now())||le()},250))},oe=$e=>{var Pe;if(!Ci((Pe=$e.dataTransfer)==null?void 0:Pe.types))return;U.enter(Date.now());const Ue=q($e.target),lt=ng($e.dataTransfer);J(ie=>ie&&ie.over===Ue&&ie.count===(lt??ie.count)?ie:{count:lt??(ie==null?void 0:ie.count)??null,over:Ue}),me()},ve=$e=>{var lt;if(!Ci((lt=$e.dataTransfer)==null?void 0:lt.types))return;$e.preventDefault(),U.over(Date.now());const Ue=q($e.target);$e.dataTransfer&&($e.dataTransfer.dropEffect=Ue&&!P.current?"copy":"none"),J(Pe=>Pe&&Pe.over===Ue?Pe:{count:(Pe==null?void 0:Pe.count)??ng($e.dataTransfer),over:Ue}),me()},We=$e=>{var Ue;Ci((Ue=$e.dataTransfer)==null?void 0:Ue.types)&&(U.leave(Date.now())||le())},nt=$e=>{var ee;if(!Ci((ee=$e.dataTransfer)==null?void 0:ee.types))return;const Ue=q($e.target),lt=$e.defaultPrevented&&!Ue;if($e.preventDefault(),le(),lt)return;if(!Ue){f({action:"attach",message:"drop files on the conversation to attach them."});return}const{files:Pe,folders:ie}=Yf($e.dataTransfer);W.current(Pe,ie)},qe=$e=>{$e.key==="Escape"&&U.depth>0&&le()};return window.addEventListener("dragenter",oe),window.addEventListener("dragover",ve),window.addEventListener("dragleave",We),window.addEventListener("drop",nt),window.addEventListener("dragend",le),window.addEventListener("blur",le),window.addEventListener("keydown",qe),()=>{window.removeEventListener("dragenter",oe),window.removeEventListener("dragover",ve),window.removeEventListener("dragleave",We),window.removeEventListener("drop",nt),window.removeEventListener("dragend",le),window.removeEventListener("blur",le),window.removeEventListener("keydown",qe),fe&&window.clearInterval(fe)}},[R]);const ne=U=>{if(!R||S)return;const fe=_w(U.clipboardData);fe.length&&(U.preventDefault(),Z(fe,[]))},ae=M?r.jsxs("div",{className:["pc-workflow-chat__dropzone",M.over?"is-over":"",S?"is-disabled":""].filter(Boolean).join(" "),"aria-hidden":"true",children:[r.jsx("span",{className:"pc-workflow-chat__dropzone-icon",children:r.jsx(se,{name:"paperclip",size:18})}),r.jsxs("span",{className:"pc-workflow-chat__dropzone-text",children:[r.jsx("strong",{children:S?"Attachments are unavailable right now":sg(M.count)}),S?null:r.jsx("span",{children:M.over?"Release to upload to this conversation":"Drop anywhere on the conversation"})]})]}):null,H=M?S?"Attachments are unavailable right now":sg(M.count):V,de=async()=>{const U=String(e.draft||"");if(S||p.current||!e.sendWhileBusy&&e.busy||!U.trim())return;const fe=++b.current;p.current=!0,f(null),n(!0);try{await e.onSend(U)}catch(q){m.current&&b.current===fe&&f({action:"send",message:pc(q)})}finally{m.current&&b.current===fe&&(p.current=!1,n(!1))}},re=async()=>{if(S||w.current||!e.onCancel)return;const U=++A.current;w.current=!0,f(null),i(!0);try{await e.onCancel()}catch(fe){m.current&&A.current===U&&f({action:"cancel",message:pc(fe)})}finally{m.current&&A.current===U&&(w.current=!1,i(!1))}},F=async()=>{if(S||_.current||!e.onAttach)return;const U=++x.current;_.current=!0,f(null),u(!0);try{await e.onAttach()}catch(fe){m.current&&x.current===U&&f({action:"attach",message:pc(fe)})}finally{m.current&&x.current===U&&(_.current=!1,u(!1))}},I=()=>{d&&(d.action==="send"&&de(),d.action==="cancel"&&re(),d.action==="attach"&&F())};return r.jsxs("section",{ref:D,className:["pc-workflow-chat",M?"pc-workflow-chat--dragging":"",M!=null&&M.over?"pc-workflow-chat--drag-over":"",e.className].filter(Boolean).join(" "),"aria-label":"Workflow chat","data-stream-replies":e.streamReplies||"gateway_default",children:[e.header?r.jsx("header",{className:"pc-workflow-chat__header",children:e.header}):null,r.jsx("div",{className:"pc-workflow-chat__transcript",children:r.jsx(yw,{messages:Array.isArray(e.messages)?e.messages:[],empty:e.emptyState,autoScroll:!0,messageProps:{...e.messageProps,...e.renderMarkdown?{renderMarkdown:e.renderMarkdown}:{}},after:r.jsxs(r.Fragment,{children:[e.interaction?r.jsx(L0,{interaction:e.interaction,disabled:S}):null,j?r.jsx("div",{className:"pc-workflow-chat__blocked",role:"status",children:e.blockedNotice}):null]}),afterKey:`${e.interaction?`${e.interaction.kind}:${e.interaction.id}`:""}:${j?"blocked":""}`})}),d?r.jsxs("div",{className:"pc-workflow-chat__error",role:"alert",children:[r.jsxs("span",{children:["Could not ",d.action==="send"?"send this message":d.action==="attach"?"attach a file":"stop the run",": ",d.message]}),r.jsx("button",{type:"button",onClick:I,disabled:S,children:"Try again"})]}):null,r.jsxs("div",{className:"pc-workflow-chat__composer",children:[r.jsx(ww,{value:e.draft,onChange:e.onDraftChange,onSubmit:()=>void de(),placeholder:e.placeholder||"Send a message",ariaLabel:"Message",disabled:S,busy:N,sendLabel:e.sendLabel,busyLabel:e.busyLabel,rows:2,leading:e.attachments?r.jsx("div",{className:"pc-workflow-chat__attachments",children:e.attachments}):null,overlay:ae,onPaste:R?ne:void 0,actions:r.jsxs(r.Fragment,{children:[e.onAttach?r.jsxs("button",{type:"button",className:"pc-workflow-chat__icon-button","aria-label":"Attach file","data-af-tip":"Attach a file",disabled:S||c,onClick:()=>void F(),children:[r.jsx(se,{name:"paperclip",size:16}),r.jsx("span",{children:c?"Attaching…":"Attach"})]}):null,e.composerExtras,E&&e.onCancel?r.jsxs("button",{type:"button",className:"pc-workflow-chat__stop",disabled:S||a||$,onClick:()=>void re(),children:[r.jsx(se,{name:"x",size:14}),r.jsx("span",{children:a||$?"Stopping…":"Stop"})]}):C?r.jsx("span",{className:`pc-workflow-chat__stop-state pc-workflow-chat__stop-state--${C.phase}`,role:"status","aria-live":"polite",children:C.label}):null]})}),R?r.jsx("div",{className:"pc-sr-only",role:"status","aria-live":"polite",children:H}):null]}),e.footer?r.jsx("footer",{className:"pc-workflow-chat__footer",children:e.footer}):null]})}function P0(e){return e.toolApprovalGranted?null:e.interaction}const rg={messages:[],records:[],run:null,interaction:null,status:"idle",displayStatus:"",loading:!1,error:null,connection:"idle",toolApprovalGranted:!1,stop:null};function De(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Le(e){return typeof e=="string"?e.trim():e==null?"":typeof e=="number"||typeof e=="boolean"?String(e):""}function Ai(e){return Array.isArray(e)?e:[]}function Sn(e){return Le(e==null?void 0:e.status).toLowerCase()||"unknown"}function Dt(e){return["completed","failed","cancelled"].includes(e.toLowerCase())}function Er(e){const t=De(e),n=Number((t==null?void 0:t.status)??(t==null?void 0:t.statusCode));return n===401||n===403}function D0(e){const t=De(e);return Number((t==null?void 0:t.status)??(t==null?void 0:t.statusCode))}function Kd(e){const t=n=>{if(Array.isArray(n))return n.map(t);const a=De(n);if(!a)return n;const i={};for(const c of Object.keys(a).sort())i[c]=t(a[c]);return i};try{return JSON.stringify(t(e))}catch{return"[unserializable]"}}function Cf(e){if(typeof e=="string")return e.trim();const t=De(e);if(!t)return"";for(const n of["answer","response","message","text","content","output"]){const a=t[n];if(typeof a=="string"&&a.trim())return a.trim()}return""}function ao(e){const t=Cf(e);if(t)return t;if(!De(e)&&!Array.isArray(e))return"";try{return JSON.stringify(e,null,2)}catch{return""}}function ag(e){if(!e)return"";for(const a of["prompt","request","task","message","query","input"]){const i=Le(e[a]);if(i)return i}const t=De(e.context);for(const a of["task","message"]){const i=Le(t==null?void 0:t[a]);if(i)return i}const n=Ai(t==null?void 0:t.messages);for(let a=n.length-1;a>=0;a-=1){const i=De(n[a]);if(Le(i==null?void 0:i.role).toLowerCase()!=="user")continue;const c=Le(i==null?void 0:i.content);if(c)return c}return""}function Mw(e){const t=De(e.result);return De(t==null?void 0:t.wait)}function Jd(e){return e?Le(e.reason)==="subworkflow"||Le(e.wait_key).startsWith("subworkflow:"):!1}function og(e,t){return!!(e&&e.runId===t.runId&&Le(e.wait.wait_key)===Le(t.wait.wait_key))}function Ef(e){return De(e.effect)||{}}function F0(e,t){return Le(e.run_id)||t}function ig(e){return Le(e.ended_at)||Le(e.started_at)||void 0}function lg(e){const t=new Set,n=m=>{const p=Le(m);p&&t.add(p)},a=De(e.result);n(a==null?void 0:a.sub_run_id),n(a==null?void 0:a.subRunId),n(a==null?void 0:a.child_run_id);const i=Ef(e),c=De(i.payload);Le(i.type)==="start_subworkflow"&&(n(c==null?void 0:c.sub_run_id),n(c==null?void 0:c.subRunId),n(c==null?void 0:c.child_run_id));const u=Mw(e),d=De(u==null?void 0:u.details);n(d==null?void 0:d.sub_run_id),n(d==null?void 0:d.subRunId),n(d==null?void 0:d.child_run_id);const f=Le(u==null?void 0:u.wait_key);return f.startsWith("subworkflow:")&&n(f.slice(12)),[...t]}class z0{constructor(t,n={}){this.transport=t,this.options=n,this.snapshot={...rg},this.subscribers=new Set,this.controller=null,this.generation=0,this.rootRunId="",this.cursors=new Map,this.seenRecords=new Set,this.seenMessages=new Set,this.watchedRuns=new Set,this.childCatchUpAttempts=new Map,this.runStates=new Map,this.historicalRuns=new Map,this.historicalRunFailures=new Map,this.commandIds=new Map,this.toolActivities=new Map,this.historicalEvidence=new Map,this.approvedWaits=new Set,this.grantedToolWaits=new Set,this.resolvedWaits=new Set,this.approvalEpoch=0,this.toolApprovalPolicy=null,this.toolApprovalSuspended=!1,this.toolApprovalStopped=!1,this.displayStatusAt=-1/0,this.stopRequested=!1,this.stopFollowing=!1,this.openLlmSteps=new Set,this.forcedStop=null,this.liveReplies=new Map,this.closedLiveCalls=new Set,this.shownLiveCalls=new Set,this.liveDirty=new Set,this.liveRenderTimer=null,this.lastLiveRender=-1/0;const a=n.liveRenderIntervalMs??60;if(typeof a!="number"||!Number.isFinite(a)||a<0)throw new Error(`liveRenderIntervalMs must be a non-negative number of milliseconds, got ${JSON.stringify(n.liveRenderIntervalMs)}`);this.liveRenderIntervalMs=a}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}getSnapshot(){return this.snapshot}reset(){var t;this.toolApprovalSuspended=!1,this.toolApprovalStopped=!1,this.approvalEpoch+=1,this.displayStatusAt=-1/0,this.stopRequested=!1,this.stopFollowing=!1,this.openLlmSteps.clear(),this.forcedStop=null,this.generation+=1,(t=this.controller)==null||t.abort(),this.controller=null,this.rootRunId="",this.cursors.clear(),this.seenRecords.clear(),this.seenMessages.clear(),this.watchedRuns.clear(),this.childCatchUpAttempts.clear(),this.runStates.clear(),this.historicalRuns.clear(),this.historicalRunFailures.clear(),this.commandIds.clear(),this.toolActivities.clear(),this.historicalEvidence.clear(),this.approvedWaits.clear(),this.grantedToolWaits.clear(),this.resolvedWaits.clear(),this.liveReplies.clear(),this.closedLiveCalls.clear(),this.shownLiveCalls.clear(),this.liveDirty.clear(),this.lastLiveRender=-1/0,this.liveRenderTimer&&(clearTimeout(this.liveRenderTimer),this.liveRenderTimer=null),this.set({...rg})}dispose(){this.reset(),this.subscribers.clear()}async load(t){const n=Le(t);if(this.reset(),!n)return;const a=++this.generation,i=new AbortController;this.controller=i,this.rootRunId=n,this.set({...this.snapshot,loading:!0,status:"loading",error:null,connection:"connecting"});try{const[c,u]=await Promise.all([this.transport.getRun(n,i.signal),this.transport.getHistory(n,i.signal)]);if(!this.live(a))return;const d=De(c),f=De(d==null?void 0:d.waiting),m=Sn(d);if(await this.ingestHistory(u,n,a),!this.live(a))return;if(this.set({...this.snapshot,run:d,status:m,loading:!1,...f&&!Dt(m)?{interaction:this.interactionWith({runId:n,wait:f})}:{}}),d&&this.updateRunState(n,d),f)for(const p of lg({result:{wait:f}}))p!==n&&this.catchUpAndWatch(p,a);await this.catchUpAndWatch(n,a),this.pollRootLifecycle(n,a)}catch(c){!i.signal.aborted&&this.live(a)&&this.fail(c)}}async sendCommand(t,n={}){var p,w;t==="cancel"&&(this.toolApprovalStopped=!0,this.revokeToolApproval(),this.stopRequested=!0,this.recomputeStop());const a=Le(n.wait_key),i=t==="resume"?a?this.interactionRunId()||this.rootRunId:this.rootRunId:t==="emit_event"?this.interactionRunId()||this.rootRunId:this.rootRunId;if(!i)throw new Error("No workflow run is loaded");const c=t==="resume"&&a&&((p=this.snapshot.interaction)==null?void 0:p.stepId)||"",u=`${i}\0${t}\0${c}\0${Kd(n)}`;let d=this.commandIds.get(u);d||(d=this.newCommandId(),this.commandIds.set(u,d));const f=this.generation,m=(w=this.controller)==null?void 0:w.signal;try{const _=await this.transport.submitCommand({command_id:d,run_id:i,type:t,payload:n,...this.options.clientId?{client_id:this.options.clientId}:{}},m);if(!this.live(f))return _;const b=De(_);if(b&&b.accepted===!1)throw t==="cancel"&&(this.stopRequested=!1,this.recomputeStop()),new Error(Le(b.detail)||"Gateway did not accept the command");return this.commandIds.delete(u),i===this.rootRunId&&["pause","resume","cancel"].includes(t)&&this.refreshRunState(i,f),_}catch(_){throw this.live(f)&&this.fail(_,!1),_}}resume(t){const n=this.requireInteraction();return this.sendCommand("resume",{wait_key:Le(n.wait.wait_key),payload:{response:t}})}approve(t,n){const a=this.requireInteraction();if(Dt(this.snapshot.status))throw new Error("This run has already ended.");if(n&&(a.runId!==n.runId||Le(a.wait.wait_key)!==n.waitKey||n.stepId!==void 0&&a.stepId!==n.stepId))throw new Error("This approval request has changed. Review the current request before deciding.");if(t&&this.toolApprovalPolicy&&!this.toolCallsMatch(a,this.toolApprovalPolicy.enabledTools))throw new Error("This request includes an unavailable or unselected tool. It cannot be authorized. Deny this request or stop the run and change Tools settings.");const i=this.generation;return this.sendCommand("resume",{wait_key:Le(a.wait.wait_key),payload:{approved:!!t}}).then(c=>{if(!this.live(i))return c;const u=this.occurrenceKey(a);return this.approvedWaits.add(u),t&&this.isToolApproval(a)&&!this.grantedToolWaits.has(u)&&(this.grantedToolWaits.add(u),this.set({...this.snapshot})),c})}async approveWithPolicyChange(t,n){const a=this.generation,i=this.approvalEpoch;if(!this.isToolApproval(this.requireInteraction()))throw new Error("This is not a tool approval request.");await this.approve(!0,t),!(!this.live(a)||i!==this.approvalEpoch||this.toolApprovalStopped||Dt(this.snapshot.status))&&n()}async allowAllToolsForRun(t){const n=this.generation,a=this.approvalEpoch,i=this.requireInteraction();if(!this.isToolApproval(i))throw new Error("This is not a tool approval request.");await this.approve(!0,t),!(!this.live(n)||a!==this.approvalEpoch||Dt(this.snapshot.status))&&(this.approvedWaits.add(`${t.runId}:${t.waitKey}${i.stepId?`:${i.stepId}`:""}`),this.set({...this.snapshot,autoApproveTools:!0}))}revokeToolApproval(){this.approvalEpoch+=1,this.toolApprovalSuspended=!0,this.set({...this.snapshot,autoApproveTools:!1})}setToolApprovalPolicy(t){Kd(t)!==Kd(this.toolApprovalPolicy)&&(this.approvalEpoch+=1,this.toolApprovalSuspended=!1,this.toolApprovalPolicy=t?{enabledTools:[...t.enabledTools],autoApproveTools:[...t.autoApproveTools]}:null,this.set({...this.snapshot}))}occurrenceKey(t){return`${t.runId}:${Le(t.wait.wait_key)}${t.stepId?`:${t.stepId}`:""}`}interactionWith(t){const n=this.snapshot.interaction;return n&&Jd(t.wait)&&!Jd(n.wait)?n:n&&og(n,t)&&t.stepId===void 0&&n.stepId!==void 0?{...t,stepId:n.stepId}:t}adoptDurableWait(t,n){const a=De(n.waiting);if(!a||Sn(n)!=="waiting"||Jd(a)||Dt(this.snapshot.status)||this.resolvedWaits.has(`${t}:${Le(a.wait_key)}`))return;const i=this.interactionWith({runId:t,wait:a}),c=this.snapshot.interaction;c&&og(c,i)&&c.stepId===i.stepId||this.set({...this.snapshot,interaction:i})}coveredByStandingPermission(t,n){var a;return t.loading||this.toolApprovalStopped||this.toolApprovalSuspended||!this.toolApprovalPolicy&&!t.autoApproveTools||Dt(t.status)||((a=t.run)==null?void 0:a.paused)===!0||t.status==="paused"||!n||!this.isToolApproval(n)||this.toolApprovalPolicy&&(!this.toolCallsMatch(n,this.toolApprovalPolicy.enabledTools)||!this.toolCallsMatch(n,this.toolApprovalPolicy.autoApproveTools))?!1:!!Le(n.wait.wait_key)}present(t){const n=t.interaction,a=n?this.occurrenceKey(n):"",i=!!(n&&this.isToolApproval(n)&&(this.grantedToolWaits.has(a)||!this.approvedWaits.has(a)&&this.coveredByStandingPermission({...t,loading:!1},n)));if(!i&&!this.snapshot.toolApprovalGranted&&!t.toolApprovalGranted)return t.toolApprovalGranted===!1?t:{...t,toolApprovalGranted:!1};let c=!1;const u=t.messages.map(d=>{var p;const f=d.toolActivity;if(!f||((p=this.toolActivities.get(f.id))==null?void 0:p.status)!=="waiting")return d;const m=i&&f.runId===(n==null?void 0:n.runId)?"running":"waiting";return f.status===m?d:(c=!0,this.toolMessage({...f,status:m}))});return{...t,toolApprovalGranted:i,...c?{messages:u}:{}}}toolCallsMatch(t,n){var i;const a=Ai((i=De(t.wait.details))==null?void 0:i.tool_calls);return a.length>0&&a.every(c=>{var d;const u=Le((d=De(c))==null?void 0:d.name);return!!u&&n.includes(u)})}isToolApproval(t){const n=De(t.wait.details);return(n==null?void 0:n.mode)==="approval_required"||(n==null?void 0:n.kind)==="tool_approval"}autoApproveCurrentWait(){const t=this.snapshot.interaction;if(!this.coveredByStandingPermission(this.snapshot,t))return;const n={runId:t.runId,waitKey:Le(t.wait.wait_key),stepId:t.stepId},a=this.occurrenceKey(t);if(this.approvedWaits.has(a))return;this.approvedWaits.add(a),this.grantedToolWaits.add(a);const i=this.generation,c=this.approvalEpoch;this.approve(!0,n).catch(u=>{if(this.live(i)){if(this.grantedToolWaits.delete(a),c!==this.approvalEpoch){this.set({...this.snapshot});return}this.toolApprovalSuspended=!0,this.set({...this.snapshot,autoApproveTools:!1}),this.fail(u,!1)}})}emitEvent(t){return this.sendCommand("emit_event",t)}cancel(){return this.sendCommand("cancel",{})}requireInteraction(){if(!this.snapshot.interaction)throw new Error("This workflow is not waiting for input");if(!Le(this.snapshot.interaction.wait.wait_key))throw new Error("The workflow wait has no wait_key");return this.snapshot.interaction}interactionRunId(){var t;return((t=this.snapshot.interaction)==null?void 0:t.runId)||""}live(t){var n;return t===this.generation&&!((n=this.controller)!=null&&n.signal.aborted)}set(t){this.snapshot=this.present(t);for(const n of this.subscribers)n();this.autoApproveCurrentWait()}async catchUpAndWatch(t,n){var a;if(!(!this.live(n)||this.watchedRuns.has(t))){this.watchedRuns.add(t);try{if(t!==this.rootRunId)try{const i=De(await this.transport.getRun(t,(a=this.controller)==null?void 0:a.signal));if(!this.live(n))return;i&&this.updateRunState(t,i)}catch(i){if(!this.live(n))return;if(Er(i))throw i;this.fail(i,!1)}if(await this.catchUp(t,n),!this.live(n)||Dt(Sn(this.runStates.get(t)||null)))return;this.childCatchUpAttempts.delete(t),this.watch(t,n)}catch(i){if(!this.live(n))return;if(this.watchedRuns.delete(t),t===this.rootRunId)throw i;if(Er(i)){this.fail(i);return}const c=(this.childCatchUpAttempts.get(t)||0)+1;if(this.childCatchUpAttempts.set(t,c),this.fail(i,!1),c>=5)return;await this.waitForRetry(Math.min(2e3,150*2**(c-1))),this.live(n)&&this.catchUpAndWatch(t,n)}}}async catchUp(t,n){var a;for(let i=0;i<100&&this.live(n);i+=1){const c=this.cursors.get(t)||0,u=await this.transport.getLedger(t,c,(a=this.controller)==null?void 0:a.signal);if(!this.live(n))return;const d=De(u),f=Array.isArray(u)?u:Ai(d==null?void 0:d.items);for(const p of f)this.ingestItem(t,p);const m=Number(d==null?void 0:d.next_after);if(!f.length||!Number.isFinite(m)||m<=c)break;this.cursors.set(t,m)}}async watch(t,n){try{await this.followStream(t,n)}finally{this.live(n)&&this.closeLiveRepliesVia(t)}}async followStream(t,n){var i;let a=0;for(;this.live(n)&&!Dt(Sn(this.runStates.get(t)||null));){const c=this.cursors.get(t)||0;this.set({...this.snapshot,connection:a?"reconnecting":"connecting"});try{let u=!1;const d=()=>{!this.live(n)||u||(u=!0,this.set({...this.snapshot,connection:"connected",error:null}))};if(this.dropLiveRepliesVia(t),await this.transport.streamLedger(t,c,m=>{this.live(n)&&(d(),this.ingestItem(t,m))},this.controller.signal,d,m=>{this.live(n)&&(d(),this.ingestDelta(t,m))}),!this.live(n)||(await this.catchUp(t,n),!this.live(n)))return;const f=De(await this.transport.getRun(t,(i=this.controller)==null?void 0:i.signal));if(!this.live(n))return;f&&this.updateRunState(t,f),a+=1}catch(u){if(!this.live(n))return;if(a+=1,this.fail(u,!1),Er(u)){this.set({...this.snapshot,connection:"disconnected"});return}}if(a>=5||!this.live(n))break;await this.waitForRetry(Math.min(2e3,150*2**(a-1)))}if(this.live(n)){if(Dt(Sn(this.runStates.get(t)||null))){this.set({...this.snapshot,connection:"disconnected"});return}this.set({...this.snapshot,connection:"disconnected",error:this.snapshot.error||"Ledger stream reconnect limit reached. Reconnect the workflow to continue."})}}async ingestHistory(t,n,a){const i=De(t);if(!i)return;const c=De(i.session),u=Ai(c==null?void 0:c.turns).map(De).filter(m=>!!m);if(await this.hydrateHistoricalSessionRuns(u,n,a),!this.live(a))return;for(const m of u){const p=Le(m==null?void 0:m.run_id)||n;this.ingestSessionTurn(m,n,p!==n&&this.historicalRuns.get(p)||null)}const d=`turn:${n}:user`;if(!this.seenMessages.has(d)){const m=ag(De(i.input_data));m&&this.addMessage({id:d,role:"user",content:m})}const f=De(i.ledgers);if(f)for(const[m,p]of Object.entries(f)){const w=De(p);for(const _ of Ai(w==null?void 0:w.items))this.ingestItem(m,_)}}ingestSessionTurn(t,n,a){if(!t)return;const i=Le(t.run_id)||n,c=De(t.input_data)||De(t.input)||{},u=Le(t.prompt)||ag(c);u&&this.addMessage({id:`turn:${i}:user`,role:"user",content:u,ts:Le(t.created_at)||void 0});const d=this.historicalRunFailures.get(i);if(d){const w=Le(t.answer)||Cf(t.output),_=d.missing?"is unavailable because the run no longer exists":"could not be restored",b=w?` Saved reply (not verified as the final result): ${w}`:"";this.addMessage({id:`history:${i}:unavailable`,role:"system",level:"warn",title:"History",content:`The final output for an earlier turn ${_}.${b}`});return}const m=(a&&Dt(Sn(a))?ao(a.output):"")||(a?Le(t.answer)||Cf(t.output):""),p=this.historicalEvidence.get(i);for(const w of(p==null?void 0:p.tools)||[])this.upsertTool(w);m&&this.addRunAssistantMessage(i,{id:`final:${i}`,role:"assistant",content:m,runId:i,statistics:p==null?void 0:p.statistics,ts:Le(t.updated_at)||void 0})}async hydrateHistoricalSessionRuns(t,n,a){const i=[...new Set(t.map(f=>Le(f.run_id)).filter(f=>f&&f!==n&&!this.historicalRuns.has(f)&&!this.historicalRunFailures.has(f)))];if(!i.length||!this.live(a))return;let c=0,u=!1;const d=async()=>{var f,m,p;for(;!u&&this.live(a);){const w=i[c++];if(!w)return;try{const _=De(await this.transport.getRun(w,(f=this.controller)==null?void 0:f.signal));if(!this.live(a))return;if(_){this.historicalRuns.set(w,_);try{const b=await this.transport.getHistory(w,(m=this.controller)==null?void 0:m.signal);if(!this.live(a))return;this.historicalEvidence.set(w,Ri($0(b)))}catch(b){if(!this.live(a))return;if(Er(b))throw b;this.fail(new Error(`Earlier turn activity could not be restored: ${b instanceof Error?b.message:String(b)}`),!1)}}else this.historicalRuns.set(w,null),this.historicalRunFailures.set(w,{missing:!1,detail:"gateway returned an invalid historical run snapshot"})}catch(_){if(!this.live(a))return;const b=D0(_)===404;this.historicalRuns.set(w,null),this.historicalRunFailures.set(w,{missing:b,detail:_ instanceof Error?_.message:Le((p=De(_))==null?void 0:p.detail)||"request failed"}),Er(_)&&(u=!0,this.fail(_))}}};if(await Promise.all(Array.from({length:Math.min(4,i.length)},()=>d())),u&&this.live(a))for(const f of i)!this.historicalRuns.has(f)&&!this.historicalRunFailures.has(f)&&(this.historicalRuns.set(f,null),this.historicalRunFailures.set(f,{missing:!1,detail:"authorization expired before this historical run could be restored"}))}ingestItem(t,n){const a=De(n),i=De(a==null?void 0:a.record)||a;if(!i)return;const c=F0(i,t),u=Number(a==null?void 0:a.cursor),d=Number.isFinite(u)&&u>0?u:(this.cursors.get(c)||0)+1,f=`${c}:${d}`;if(!this.seenRecords.has(f)){if(this.seenRecords.add(f),this.cursors.set(c,Math.max(this.cursors.get(c)||0,d)),this.set({...this.snapshot,records:[...this.snapshot.records,{cursor:d,record:i,runId:c}]}),this.foldRecord(c,i,f),this.snapshot.messages.some(m=>m.id===`final:${this.rootRunId}`)){const m=Ri(this.snapshot.records).statistics;this.set({...this.snapshot,messages:this.snapshot.messages.map(p=>p.id===`final:${this.rootRunId}`?{...p,statistics:m}:p)})}for(const m of lg(i))m!==c&&this.catchUpAndWatch(m,this.generation)}}foldRecord(t,n,a){var p,w,_;const i=Ef(n),c=Le(i.type).toLowerCase(),u=De(n.result),d=Le(n.status).toLowerCase(),f=ig(n);if(this.foldStopEvidence(t,n,c,d),["llm_call","tool_calls"].includes(c)&&["started","running"].includes(d)){const b=Date.parse(f||"");(!Number.isFinite(b)||b>=this.displayStatusAt)&&(Number.isFinite(b)&&(this.displayStatusAt=b),this.snapshot.displayStatus&&this.set({...this.snapshot,displayStatus:""}))}if(c==="answer_user"&&d==="completed"){const b=ao(u)||ao(De(i.payload));b&&this.addRunAssistantMessage(t,{id:`answer:${t}:${a}`,role:"assistant",content:b,ts:f})}if(c==="emit_event"&&d==="completed"){const b=De(i.payload)||{},A=De(u),x=Le(b.name)||Le(A==null?void 0:A.name),j=b.payload!==void 0?b.payload:A==null?void 0:A.payload;if(["abstract.message","abstractcode.message"].includes(x)){const S=ao(j);if(S){const E=Le((p=De(j))==null?void 0:p.level).toLowerCase(),N=E==="error"?"error":["warn","warning"].includes(E)?"warn":"info";this.addMessage({id:`event:${t}:${a}`,role:"system",title:"Workflow",content:S,level:N,ts:f})}}if(["abstract.status","abstractcode.status"].includes(x)){const S=De(j),E=S?S.status??S.text??S.value:j,N=Date.parse(f||"");!Dt(this.snapshot.status)&&typeof E=="string"&&(!Number.isFinite(N)||N>=this.displayStatusAt)&&(Number.isFinite(N)&&(this.displayStatusAt=N),this.set({...this.snapshot,displayStatus:E.trim()}))}if(["abstract.tool_execution","abstractcode.tool_execution","abstract.tool_result","abstractcode.tool_result"].includes(x)){const S=ao(j);S&&this.addMessage({id:`event:${t}:${a}`,role:"system",title:"Tool activity",content:S,ts:f})}}const m=Mw(n);if(d==="waiting"&&m&&!Dt(this.snapshot.status)&&!Dt(Sn(this.runStates.get(t)||null))&&(this.resolvedWaits.delete(`${t}:${Le(m.wait_key)}`),this.set({...this.snapshot,interaction:this.interactionWith({runId:t,wait:m,...Le(n.step_id)?{stepId:Le(n.step_id)}:{}})})),c==="tool_calls")for(const b of Rw(this.toolActivities,{runId:t,cursor:this.cursors.get(t)||0,record:n}))this.upsertTool(b);if(c==="resume"&&(u==null?void 0:u.resumed)===!0){const b=Le((w=De(i.payload))==null?void 0:w.wait_key);b&&this.resolvedWaits.add(`${t}:${b}`),((_=this.snapshot.interaction)==null?void 0:_.runId)===t&&(this.set({...this.snapshot,interaction:null}),this.refreshRunState(t,this.generation))}}foldStopEvidence(t,n,a,i){let c=!1;if(a==="llm_call"){const u=Le(n.step_id);if(u){const d=`${t}:${u}`;i==="started"?(this.openLlmSteps.add(d),c=!0):["completed","failed","cancelled","waiting"].includes(i)&&(c=this.openLlmSteps.delete(d)||c),["completed","failed","cancelled"].includes(i)&&this.closeLiveReply(d)}}if(a==="emit_event"&&i==="completed"){const u=De(Ef(n).payload)||{},d=De(n.result),f=Le(u.name)||Le(d==null?void 0:d.name),m=De(u.payload!==void 0?u.payload:d==null?void 0:d.payload);f==="abstract.status"&&Le(m==null?void 0:m.killed_by)==="kill_switch"&&(this.forcedStop=m,c=!0)}c&&this.recomputeStop()}recomputeStop(){let t=null;this.forcedStop?t={phase:"forced",label:Le(this.forcedStop.text)||"Stop forced: inference killed",record:this.forcedStop}:this.stopRequested&&(t=this.snapshot.status==="cancelled"&&this.openLlmSteps.size===0?{phase:"stopped",label:"Stopped"}:{phase:"stopping",label:"Stopping…"});const n=this.snapshot.stop||null;((n==null?void 0:n.phase)!==(t==null?void 0:t.phase)||(n==null?void 0:n.label)!==(t==null?void 0:t.label))&&this.set({...this.snapshot,stop:t}),(t==null?void 0:t.phase)==="stopping"&&this.snapshot.status==="cancelled"&&this.followStop(this.generation)}async followStop(t){var n;if(!this.stopFollowing){this.stopFollowing=!0;try{let a=500,i=null;for(;this.live(t)&&((n=this.snapshot.stop)==null?void 0:n.phase)==="stopping";){if(await this.waitForRetry(a),!this.live(t))return;const c=[this.rootRunId,...[...this.watchedRuns].filter(d=>d!==this.rootRunId)];let u=!1;for(const d of c)try{await this.catchUp(d,t)}catch(f){u=!0,this.live(t)&&(this.fail(f,!1),i=this.snapshot.error)}!u&&i&&this.snapshot.error===i&&(this.set({...this.snapshot,error:null}),i=null),a=Math.min(5e3,a*2)}}finally{this.generation===t&&(this.stopFollowing=!1)}}}addMessage(t){const n=Le(t.id)||`${t.role}:${t.content}:${t.ts||""}`;this.seenMessages.has(n)||(this.seenMessages.add(n),this.set({...this.snapshot,messages:[...this.snapshot.messages,{...t,id:n}]}))}toolMessage(t){return{id:`tool:${t.id}`,role:"system",kind:"tool_activity",title:"Tool activity",runId:t.runId,toolActivity:t,content:JSON.stringify({tool:t.name,status:t.status,arguments:t.arguments,output:t.output,error:t.error},null,2),ts:t.endedAt||t.startedAt}}upsertTool(t){const n=this.toolMessage(t),a=this.snapshot.messages.findIndex(c=>c.id===n.id);if(a<0){this.addMessage(n);return}const i=[...this.snapshot.messages];i[a]=n,this.set({...this.snapshot,messages:i})}addRunAssistantMessage(t,n){this.closeLiveRepliesOfRun(t);const a=`answer:${t}:`,i=`final:${t}`;this.snapshot.messages.some(c=>c.role==="assistant"&&c.content===n.content&&(c.id===i||String(c.id||"").startsWith(a)))||this.addMessage(n)}ingestDelta(t,n){let a;try{a=xw(n)}catch(f){this.fail(f,!1);return}const i=`${a.run_id}:${a.call_id}`;if(bw(a)){if(a.reason==="unavailable"){this.noteStreamUnavailable(a);return}if(a.reason==="cancelled"&&a.detail==="reinvoked"){this.closeLiveReply(i,"restarted");return}this.closeLiveReply(i,a.reason==="completed"?void 0:a.reason);return}if(this.closedLiveCalls.has(i)||this.runEnded(a.run_id)||this.runEnded(this.rootRunId))return;const c=this.liveReplies.get(i)||{runId:a.run_id,callId:a.call_id,nodeId:a.node_id||"",via:t,text:"",reasoning:"",seq:{content:-1,reasoning:-1}},u=a.channel==="reasoning"?"reasoning":"text",d=c.seq[a.channel];if(a.snapshot){if(a.seq<d)return;c[u]=a.text}else{if(a.seq<=d)return;c[u]+=a.text}c.seq[a.channel]=a.seq,c.via=t,this.liveReplies.set(i,c),this.liveDirty.add(i),this.scheduleLiveRender()}runEnded(t){return Dt(Sn(this.runStates.get(t)||null))}scheduleLiveRender(){if(this.liveRenderTimer)return;const t=this.lastLiveRender+this.liveRenderIntervalMs-Date.now();if(t<=0){this.renderLiveReplies();return}this.liveRenderTimer=setTimeout(()=>{this.liveRenderTimer=null,this.renderLiveReplies()},t)}renderLiveReplies(){if(this.lastLiveRender=Date.now(),!this.liveDirty.size)return;const t=[...this.snapshot.messages];for(const n of this.liveDirty){const a=this.liveReplies.get(n);if(!a)continue;const i=this.liveMessage(a),c=t.findIndex(u=>u.id===i.id);c<0?t.push(i):t[c]=i,this.shownLiveCalls.add(n)}this.liveDirty.clear(),this.set({...this.snapshot,messages:t})}liveMessage(t){const n=t.runId!==this.rootRunId;return{id:`live:${t.runId}:${t.callId}`,role:"assistant",content:t.text,runId:t.runId,live:{callId:t.callId,reasoning:t.reasoning,...n?{caption:`sub-agent · ${t.nodeId||t.runId}`}:{}}}}closeLiveReply(t,n){this.closedLiveCalls.add(t);const a=this.liveReplies.get(t);if(!a){n==="restarted"&&this.shownLiveCalls.has(t)&&this.addMessage(this.restartNote(t));return}this.liveReplies.delete(t),this.liveDirty.delete(t);const i=`live:${a.runId}:${a.callId}`,c=this.snapshot.messages.findIndex(d=>d.id===i);if(c<0)return;const u=[...this.snapshot.messages];if(n==="restarted"){const d=this.restartNote(t);this.seenMessages.add(String(d.id)),u[c]=d}else if(n){const d=`live-end:${a.runId}:${a.callId}`;this.seenMessages.add(d),u[c]={id:d,role:"system",level:"warn",title:"Reply",runId:a.runId,content:n==="failed"?"The reply stopped because the model call failed.":"The reply stopped because the model call was cancelled."}}else u.splice(c,1);this.set({...this.snapshot,messages:u})}restartNote(t){const n=t.slice(0,t.indexOf(":"));return{id:`live-end:${t}`,role:"system",level:"info",title:"Reply",runId:n,content:"Reply restarted: the model call was interrupted and is running again."}}noteStreamUnavailable(t){const n=`${t.run_id}:${t.call_id}`;this.closeLiveReply(n),this.addMessage({id:`stream-unavailable:${t.run_id}:${t.detail||"unknown"}`,role:"system",level:"info",title:"Reply",runId:t.run_id,content:BS(t.detail)})}closeLiveRepliesOfRun(t){for(const n of[...this.liveReplies.values()])n.runId===t&&this.closeLiveReply(`${n.runId}:${n.callId}`)}closeLiveRepliesVia(t,n){for(const a of[...this.liveReplies.values()])(a.via===t||a.runId===t)&&this.closeLiveReply(`${a.runId}:${a.callId}`,n)}endLiveRepliesOfRun(t,n){const a=n==="failed"||n==="cancelled"?n:void 0;if(t===this.rootRunId){for(const i of[...this.liveReplies.values()])this.closeLiveReply(`${i.runId}:${i.callId}`,a);this.closedLiveCalls.clear(),this.shownLiveCalls.clear();return}this.closeLiveRepliesVia(t,a);for(const i of[...this.closedLiveCalls])i.startsWith(`${t}:`)&&this.closedLiveCalls.delete(i);for(const i of[...this.shownLiveCalls])i.startsWith(`${t}:`)&&this.shownLiveCalls.delete(i)}dropLiveRepliesVia(t){const n=new Set;for(const[a,i]of this.liveReplies)i.via===t&&(this.liveReplies.delete(a),this.liveDirty.delete(a),n.add(`live:${i.runId}:${i.callId}`));n.size&&this.set({...this.snapshot,messages:this.snapshot.messages.filter(a=>!n.has(String(a.id)))})}fail(t,n=!0){var a,i,c;Er(t)&&(this.approvalEpoch+=1,this.toolApprovalStopped=!0,this.toolApprovalSuspended=!0,(i=(a=this.options).onAuthError)==null||i.call(a,t)),this.set({...this.snapshot,error:t instanceof Error?t.message:Le((c=De(t))==null?void 0:c.detail)||String(t),...Er(t)?{autoApproveTools:!1}:{},...n?{connection:"disconnected"}:{}})}newCommandId(){const t=globalThis.crypto;if(t&&typeof t.randomUUID=="function")return t.randomUUID();if(t&&typeof t.getRandomValues=="function"){const n=t.getRandomValues(new Uint8Array(16));n[6]=n[6]&15|64,n[8]=n[8]&63|128;const a=Array.from(n,i=>i.toString(16).padStart(2,"0")).join("");return`${a.slice(0,8)}-${a.slice(8,12)}-${a.slice(12,16)}-${a.slice(16,20)}-${a.slice(20)}`}return`workflow-${Date.now()}-${Math.random().toString(36).slice(2)}`}updateRunState(t,n){var c;if(this.runStates.set(t,n),Dt(Sn(n))&&this.endLiveRepliesOfRun(t,Sn(n)),t!==this.rootRunId){Dt(Sn(n))&&((c=this.snapshot.interaction)==null?void 0:c.runId)===t?this.set({...this.snapshot,interaction:null}):this.adoptDurableWait(t,n);return}const a=Sn(n),i=Dt(a);if(i){const u=ao(n.output);u&&this.upsertFinal(t,u,ig(n))}this.set({...this.snapshot,run:n,status:a,...i?{interaction:null,autoApproveTools:!1,displayStatus:""}:{}}),i||this.adoptDurableWait(t,n),(this.stopRequested||this.forcedStop)&&this.recomputeStop()}upsertFinal(t,n,a){this.closeLiveRepliesOfRun(t);const i=`final:${t}`;this.seenMessages.add(i);const c={id:i,role:"assistant",content:n,ts:a,runId:t,statistics:Ri(this.snapshot.records).statistics},u=this.snapshot.messages.findIndex(f=>f.id===i||String(f.id||"").startsWith(`answer:${t}:`)&&f.content===n);if(u<0){this.set({...this.snapshot,messages:[...this.snapshot.messages,c]});return}const d=[...this.snapshot.messages];d[u]=c,this.set({...this.snapshot,messages:d})}async refreshRunState(t,n){var a;try{const i=De(await this.transport.getRun(t,(a=this.controller)==null?void 0:a.signal));i&&this.live(n)&&this.updateRunState(t,i)}catch(i){this.live(n)&&this.fail(i,!1)}}async pollRootLifecycle(t,n){var a;for(;this.live(n)&&this.rootRunId===t&&!Dt(Sn(this.runStates.get(t)||null));){if(await this.waitForRetry(2e3),!this.live(n)||this.rootRunId!==t||Dt(Sn(this.runStates.get(t)||null)))return;try{const i=De(await this.transport.getRun(t,(a=this.controller)==null?void 0:a.signal));i&&this.live(n)&&this.rootRunId===t&&this.updateRunState(t,i)}catch(i){if(!this.live(n))return;if(Er(i)){this.fail(i);return}this.fail(i,!1)}}}waitForRetry(t){var i;const n=(i=this.controller)==null?void 0:i.signal;if(!n||n.aborted)return Promise.resolve();const a=n;return new Promise(c=>{const u=setTimeout(f,t),d=()=>{clearTimeout(u),f()};function f(){a.removeEventListener("abort",d),c()}a.addEventListener("abort",d,{once:!0})})}}function W0(e){const t=y.useMemo(()=>new z0(e.transport,{onAuthError:e.onAuthError,clientId:e.clientId,...e.liveRenderIntervalMs!==void 0?{liveRenderIntervalMs:e.liveRenderIntervalMs}:{}}),[e.transport,e.onAuthError,e.clientId,e.authScopeKey,e.liveRenderIntervalMs]),n=y.useSyncExternalStore(i=>t.subscribe(i),()=>t.getSnapshot(),()=>t.getSnapshot()),a=String(e.runId||"").trim();return y.useEffect(()=>{t.setToolApprovalPolicy(e.enabled===!1?{enabledTools:[],autoApproveTools:[]}:e.toolApprovalPolicy??null)},[t,e.toolApprovalPolicy,e.enabled]),y.useEffect(()=>{if(e.enabled===!1||!a){t.reset();return}return t.load(a),()=>t.reset()},[t,a,e.enabled]),{controller:t,snapshot:n}}function ra(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function rn(e){return typeof e=="string"?e.trim():e==null?"":typeof e=="number"||typeof e=="boolean"?String(e):""}function cg(e){return["session","workflow","run","global"].includes(e)?e:null}function $r(e){return{scope:rn(e==null?void 0:e.scope).toLowerCase(),name:rn(e==null?void 0:e.name)||rn(e==null?void 0:e.event_name),scopeId:rn(e==null?void 0:e.scope_id)||rn(e==null?void 0:e.scopeId),sessionId:rn(e==null?void 0:e.session_id)||rn(e==null?void 0:e.sessionId),workflowId:rn(e==null?void 0:e.workflow_id)||rn(e==null?void 0:e.workflowId),runId:rn(e==null?void 0:e.run_id)||rn(e==null?void 0:e.runId)}}function B0(e,t){const n=e.wait,a=rn(n.wait_key),i=[$r(n),$r(ra(n.details))];for(const c of t){if(c.runId!==e.runId)continue;const u=c.record,d=ra(u.result),f=ra(d==null?void 0:d.wait),m=ra(u.effect),p=ra(m==null?void 0:m.payload);rn(f==null?void 0:f.wait_key)!==a&&rn(p==null?void 0:p.wait_key)!==a||i.push($r(u),$r(p),$r(ra(p==null?void 0:p.details)),$r(f),$r(ra(f==null?void 0:f.details)))}return i}function Qd(e,t){return t.scopeId?t.scopeId:e==="session"?t.sessionId:e==="workflow"?t.workflowId:e==="run"?t.runId:"global"}function Lw(e,t,n){return{scope:e,scopeId:t,name:n,...e==="session"?{sessionId:t}:{},...e==="workflow"?{workflowId:t}:{},...e==="run"?{runId:t}:{}}}function U0(e,t,n){if(!n)return null;const a=`evt:${t}:${n}:`;if(!e.startsWith(a))return null;const i=e.slice(a.length);return i?Lw(t,n,i):null}function V0(e,t=[],n){if(!e)return{target:null,error:"No event wait is available."};const a=rn(e.wait.wait_key),i=/^evt:(session|workflow|run|global):/.exec(a);if(!i)return{target:null,error:"The gateway did not provide a canonical event wait key."};const c=cg(i[1]);if(!c)return{target:null,error:"The event wait uses an unsupported scope."};const u=B0(e,Array.isArray(t)?t:[]),d=new Map;for(const _ of u){const b=cg(_.scope);if(!b||!_.name)continue;if(b!==c)return{target:null,error:"Event metadata conflicts with the canonical wait scope."};const A=`evt:${b}:`,x=`:${_.name}`;if(!a.startsWith(A)||!a.endsWith(x)||a.length<=A.length+x.length)return{target:null,error:"Event metadata does not exactly match the canonical wait key."};const j=a.slice(A.length,-x.length),S=Qd(b,_);if(S&&S!==j)return{target:null,error:"Event metadata conflicts with the canonical wait target."};const E=Lw(b,j,_.name);d.set(`${E.scope}\0${E.scopeId}\0${E.name}`,E)}if(d.size>1)return{target:null,error:"Multiple event targets match this wait; routing is unavailable."};if(d.size===1)return{target:[...d.values()][0]};const f=new Set;c==="run"&&f.add(e.runId),c==="global"&&f.add("global");for(const _ of u){const b=Qd(c,_);b&&f.add(b)}if(rn(n==null?void 0:n.run_id)===e.runId){const _=$r(n||null),b=Qd(c,_);b&&f.add(b)}const p=[...f].map(_=>U0(a,c,_)).filter(_=>!!_),w=new Map(p.map(_=>[`${_.scope}\0${_.scopeId}\0${_.name}`,_]));return w.size===1?{target:[...w.values()][0]}:w.size>1?{target:null,error:"The event key is ambiguous for the available scope metadata."}:{target:null,error:"The gateway did not provide enough canonical event routing metadata."}}function H0(e){return r.jsx(uw,{text:e,images:"link"})}const G0={trigger:"Trigger",answer:"Automation"};function Ow(e,t){return r.jsx(gw,{...t,message:{id:`${e.runId}:${e.kind}`,role:e.role,content:e.text,title:G0[e.kind],runId:e.runId},images:"link"})}const K0={renderText:H0,renderTurn:Ow};function J0(e){const{fetchGateway:t,messageProps:n,...a}=e,i=a.onOpenResource??(t?c=>c0(t,c.url,{name:c.name}):void 0);return r.jsx(Yk,{...a,onOpenResource:i,...K0,renderTurn:c=>Ow(c,n)})}function Q0(e,t,n={}){if(!e)return null;const a=e.wait,i=`${e.runId}:${a.wait_key}:${e.stepId||""}`,c=a.details||{};if(c.mode==="approval_required"||c.kind==="tool_approval"){const d=Array.isArray(c.tool_calls)?c.tool_calls:[],f={runId:e.runId,waitKey:String(a.wait_key||""),stepId:e.stepId},m=[...new Set(d.map(w=>String((w==null?void 0:w.name)||"tool")))],p=n.onPermissionsAll;return{id:i,kind:"tool-approval",title:`${d.length||"Requested"} ${d.length===1?"action needs":"actions need"} permission`,toolName:m.join(", ")||"the requested tools",description:"Review the targets below. Allow once approves this batch only.",detail:r.jsxs("div",{className:"pc-approval-summary",children:[r.jsx(Qf,{tools:d.map((w,_)=>({id:String((w==null?void 0:w.call_id)||(w==null?void 0:w.id)||_),runId:e.runId,name:(w==null?void 0:w.name)||"Tool",arguments:w==null?void 0:w.arguments,status:"waiting"}))}),r.jsxs("details",{children:[r.jsx("summary",{children:"Review full tool arguments (JSON)"}),r.jsx(go,{value:d.length?d:c})]})]}),approveLabel:"Allow once",denyLabel:"Deny",approveAllLabel:p?"Allow all enabled tools":void 0,approveAllDescription:p?"Sets permissions: all for this Gateway account, including future turns. Unchecked tools stay unavailable; explicit Ask overrides and Gateway restrictions remain enforced. Questions still need your answer.":void 0,onApproveAll:p?async()=>{await t.approveWithPolicyChange(f,()=>{p()})}:void 0,onApprove:async()=>{await t.approve(!0,f)},onDeny:async()=>{await t.approve(!1,f)}}}if(a.reason==="user"||a.reason==="ask_user")return{id:i,kind:"ask-user",title:"A question for you",prompt:String(a.prompt||c.prompt||"How would you like to continue?"),allowFreeText:a.allow_free_text!==!1,choices:(Array.isArray(a.choices)?a.choices:[]).map(d=>typeof d=="object"&&d!==null?{id:String(d.value??d.id??d.label),label:String(d.label??d.text??d.value??d.id),description:d.description}:{id:String(d),label:String(d)}),onSubmit:async d=>{await t.resume(d)}};const u=String(a.wait_key||"");if(a.reason==="event"||u.startsWith("evt:")){const d=V0(e,n.records||[],n.currentRun??null),f=d.target,m=(f==null?void 0:f.name)||"";return{id:i,kind:"event-wait",title:f?"Waiting for an event":"Event routing unavailable",eventName:m,prompt:String(a.prompt||`This workflow will continue when “${m||"its trigger"}” arrives.`),description:f?"You can also send the expected event here.":`This event cannot be sent safely. ${d.error}`,initialPayload:"{}",payloadLabel:"Event data (JSON)",sendLabel:"Send event",onSend:async p=>{if(!f)throw new Error(d.error);const w=JSON.parse(p||"{}"),_={name:f.name,scope:f.scope,payload:w};f.scope==="session"?_.session_id=f.scopeId:f.scope==="workflow"?_.workflow_id=f.scopeId:f.scope==="run"&&(_.run_id=f.scopeId),await t.emitEvent(_)}}}return null}function Pw(e,t,n,a){const i=y.useRef(null);y.useEffect(()=>{var d,f;if(!t)return;if(e){i.current=document.activeElement||null;const m=a(),p=window.setTimeout(()=>m==null?void 0:m.focus(),0);return()=>window.clearTimeout(p)}const c=n(),u=document.activeElement;i.current&&(!u||u===document.body||c&&c.contains(u))&&((f=(d=i.current).focus)==null||f.call(d)),i.current=null},[e,t])}function Y0(e,t){return t?"drawers":e?"overlay":"docked"}function X0(e,t){return t==="drawers"?e:!1}function q0(e){return e.key!=="Escape"||e.defaultPrevented||e.overlayOpen?null:e.sidebarOpen?"sidebar":null}function Z0(e=typeof document<"u"?document:void 0){return!!(e!=null&&e.querySelector('[role="dialog"], [role="alertdialog"]'))}function e1(e){const t=Number.parseFloat(String(e??"").trim());return Number.isFinite(t)&&t>0}let wi=null;function t1(){var a;if(wi)return wi;if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};const e=document.documentElement,t=()=>{const i=e1(getComputedStyle(e).getPropertyValue("--keyboard-inset"));i&&e.dataset.keyboard!=="open"?e.dataset.keyboard="open":!i&&e.dataset.keyboard&&delete e.dataset.keyboard},n=new MutationObserver(t);return n.observe(e,{attributes:!0,attributeFilter:["style"]}),(a=window.visualViewport)==null||a.addEventListener("resize",t),t(),wi=()=>{var i;n.disconnect(),(i=window.visualViewport)==null||i.removeEventListener("resize",t),wi=null},wi}function n1(e){const t=e.querySelector(".code-topbar");if(!t)return null;const a=getComputedStyle(t).display==="contents"?e.querySelector(".code-toolbar"):t,i=a==null?void 0:a.getBoundingClientRect().bottom;return typeof i=="number"&&i>0?Math.round(i):null}function s1(e){const[t,n]=y.useState(e);return y.useEffect(()=>{if(typeof window>"u")return;const a=()=>n(n1(document)??e);a();const i=typeof ResizeObserver<"u"?new ResizeObserver(a):null,c=document.querySelector(".code-topbar"),u=document.querySelector(".code-toolbar");return i&&c&&i.observe(c),i&&u&&i.observe(u),window.addEventListener("resize",a),()=>{i==null||i.disconnect(),window.removeEventListener("resize",a)}},[e]),t}class r1{constructor(){dn(this,"_buffer","");dn(this,"_current",{data_lines:[]})}push(t,n){for(this._buffer+=t;;){const a=this._buffer.indexOf(`
|
|
84
|
-
`);if(a===-1)return;const i=this._buffer.slice(0,a);this._buffer=this._buffer.slice(a+1);const c=i.endsWith("\r")?i.slice(0,-1):i;if(c.startsWith(":"))continue;if(c===""){if(this._current.data_lines.length>0||this._current.event||this._current.id){const m={id:this._current.id,event:this._current.event,data:this._current.data_lines.join(`
|
|
85
|
-
`)};n(m)}this._current={data_lines:[]};continue}const u=c.indexOf(":"),d=u===-1?c:c.slice(0,u),f=u===-1?"":c.slice(u+1).trimStart();d==="id"?this._current.id=f:d==="event"?this._current.event=f:d==="data"&&this._current.data_lines.push(f)}}}function at(e){var a;const t=(e||"").trim(),n={};t&&(n.Authorization=`Bearer ${t}`);try{const i=(a=document.cookie.split(";").map(c=>c.trim()).find(c=>c.startsWith("abstractcode_gateway_csrf=")))==null?void 0:a.slice(26);i&&(n["X-AbstractCode-CSRF"]=decodeURIComponent(i))}catch{}return n}function a1(e){const t=e.headers.get("retry-after");if(!t)return;const n=Number(t);if(Number.isFinite(n)&&n>0)return n}async function o1(e){var t;try{if(String(e.headers.get("content-type")||"").toLowerCase().includes("application/json")){const i=await e.json().catch(()=>null);if(i&&typeof i=="object"){const c=i.detail;if(typeof c=="string"&&c.trim())return c.trim();const u=(t=i.error)==null?void 0:t.message;if(typeof u=="string"&&u.trim())return u.trim();try{const d=JSON.stringify(i);if(d&&d!=="{}")return d}catch{}}}const a=await e.text();return a!=null&&a.trim()?a.trim():`${e.status}`}catch{return`${e.status}`}}class Dw extends Error{constructor(n,a){super(n);dn(this,"status");dn(this,"retry_after_s");dn(this,"body_text");this.name="GatewayHttpError",this.status=Number.isFinite(Number(a.status))?Number(a.status):0,this.retry_after_s=a.retry_after_s,this.body_text=a.body_text}}async function ot(e,t){const n=await o1(e);throw new Dw(`${t}: ${n}`,{status:e.status,retry_after_s:a1(e),body_text:n})}class i1{constructor(t){dn(this,"_cfg");this._cfg={...t,base_url:(t.base_url||"").trim()}}async start_run(t,n,a){const i=String((a==null?void 0:a.bundle_id)||"").trim(),c=(a==null?void 0:a.session_id)===null||(a==null?void 0:a.session_id)===void 0?"":String(a.session_id||"").trim(),u=String(t||"").trim(),d={input_data:n||{}};i&&(d.bundle_id=i),u&&(d.flow_id=u),c&&(d.session_id=c);const f=await fetch(et(this._cfg.base_url.trim(),we("runs/start")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(d)});if(!f.ok)return await ot(f,"start_run failed");const m=await f.json(),p=m==null?void 0:m.run_id;if(typeof p!="string"||!p)throw new Error("start_run: missing run_id");return p}async get_run(t){const n=String(t||"").trim();if(!n)throw new Error("get_run: run_id is required");const a=await fetch(et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(n)}`)),{headers:{...at(this._cfg.auth_token)}});return a.ok?await a.json():await ot(a,"get_run failed")}async get_run_history_bundle(t,n){const a=String(t||"").trim();if(!a)throw new Error("get_run_history_bundle: run_id is required");const i=new URLSearchParams;(n==null?void 0:n.include_subruns)===!1&&i.set("include_subruns","false"),(n==null?void 0:n.include_session)===!0&&i.set("include_session","true"),typeof(n==null?void 0:n.session_turn_limit)=="number"&&Number.isFinite(n.session_turn_limit)&&i.set("session_turn_limit",String(Math.max(1,Math.trunc(n.session_turn_limit)))),n!=null&&n.ledger_mode&&i.set("ledger_mode",String(n.ledger_mode)),typeof(n==null?void 0:n.ledger_max_items)=="number"&&Number.isFinite(n.ledger_max_items)&&i.set("ledger_max_items",String(Math.max(0,Math.trunc(n.ledger_max_items))));const c=et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(a)}/history_bundle?${i.toString()}`)),u=await fetch(c,{headers:{...at(this._cfg.auth_token)}});return u.ok?await u.json():await ot(u,"get_run_history_bundle failed")}async list_runs(t){const n=new URLSearchParams,a=typeof(t==null?void 0:t.limit)=="number"?t.limit:50;n.set("limit",String(a));const i=String((t==null?void 0:t.status)||"").trim();i&&n.set("status",i);const c=String((t==null?void 0:t.workflow_id)||"").trim();c&&n.set("workflow_id",c);const u=String((t==null?void 0:t.session_id)||"").trim();u&&n.set("session_id",u),(t==null?void 0:t.root_only)===!0&&n.set("root_only","true"),(t==null?void 0:t.include_ledger_len)===!1&&n.set("include_ledger_len","false"),(t==null?void 0:t.include_metrics)===!0&&n.set("include_metrics","true");const d=et(this._cfg.base_url.trim(),we(`runs?${n.toString()}`)),f=await fetch(d,{headers:{...at(this._cfg.auth_token)}});return f.ok?await f.json():await ot(f,"list_runs failed")}async get_ledger(t,n){const a=String(t||"").trim();if(!a)throw new Error("get_ledger: run_id is required");const i=Number((n==null?void 0:n.after)||0),c=Number((n==null?void 0:n.limit)||0),u=et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(a)}/ledger?after=${encodeURIComponent(String(i))}&limit=${encodeURIComponent(String(c))}`)),d=await fetch(u,{headers:{...at(this._cfg.auth_token)}});if(!d.ok)return await ot(d,"get_ledger failed");const f=await d.json(),m=Array.isArray(f==null?void 0:f.items)?f.items:[],p=typeof(f==null?void 0:f.next_after)=="number"?f.next_after:i;return{items:m,next_after:p}}async stream_ledger(t,n){var A;const a=String(t||"").trim();if(!a)throw new Error("stream_ledger: run_id is required");if(n.on_delta&&!n.on_delta_error)throw new Error("stream_ledger: on_delta requires on_delta_error (malformed live frames must be reported)");const i=Number((n==null?void 0:n.after)||0),c=n.on_step,u=n.signal,d=et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(a)}/ledger/stream?after=${encodeURIComponent(String(i))}`)),f=await fetch(d,{headers:{Accept:"text/event-stream",...at(this._cfg.auth_token)},signal:u});if(!f.ok)return await ot(f,"stream_ledger failed");if(!f.body)throw new Error("stream_ledger: response body is missing");(A=n.on_open)==null||A.call(n);const m=f.body.getReader(),p=new TextDecoder("utf-8"),w=new r1,_=n.on_delta,b=n.on_delta_error;for(;;){const{value:x,done:j}=await m.read();if(j)return;const S=p.decode(x,{stream:!0});w.push(S,E=>{if(_&&b){const N=E.event||"message",C=E.data??"";let $;try{$=kw(N,C)}catch(R){b(R instanceof Error?R:new Error(String(R)),{event:N,data:C});return}if($){_($);return}}if(!(E.event!=="step"||!E.data))try{const N=JSON.parse(E.data);N&&typeof N.cursor=="number"&&N.record&&c(N)}catch{}})}}async list_bundles(){const t=await fetch(et(this._cfg.base_url.trim(),we("bundles")),{headers:{...at(this._cfg.auth_token)}});return t.ok?await t.json():await ot(t,"list_bundles failed")}async reload_bundles(){const t=await fetch(et(this._cfg.base_url.trim(),we("bundles/reload")),{method:"POST",headers:{...at(this._cfg.auth_token)}});return t.ok?await t.json():await ot(t,"reload_bundles failed")}async upload_bundle(t,n){const a=(n==null?void 0:n.overwrite)===!0,i=(n==null?void 0:n.reload)!==!1,c=new FormData;c.set("overwrite",a?"true":"false"),c.set("reload",i?"true":"false"),c.set("file",t,t.name||"upload.flow");const u=await fetch(et(this._cfg.base_url.trim(),we("bundles/upload")),{method:"POST",headers:{...at(this._cfg.auth_token)},body:c});return u.ok?await u.json():await ot(u,"upload_bundle failed")}async discovery_tools(){const t=await fetch(et(this._cfg.base_url.trim(),we("discovery/tools")),{headers:{...at(this._cfg.auth_token)}});return t.ok?await t.json():await ot(t,"discovery_tools failed")}async discovery_providers(t){const n=(t==null?void 0:t.include_models)===!0,a=et(this._cfg.base_url.trim(),we(`discovery/providers?include_models=${encodeURIComponent(String(n))}`)),i=await fetch(a,{headers:{...at(this._cfg.auth_token)}});return i.ok?await i.json():await ot(i,"discovery_providers failed")}async discovery_provider_models(t){const n=String(t||"").trim();if(!n)throw new Error("discovery_provider_models: provider_name is required");const a=await fetch(et(this._cfg.base_url.trim(),we(`discovery/providers/${encodeURIComponent(n)}/models`)),{headers:{...at(this._cfg.auth_token)}});return a.ok?await a.json():await ot(a,"discovery_provider_models failed")}async discovery_model_capabilities(t,n=""){const a=String(t||"").trim();if(!a)throw new Error("discovery_model_capabilities: model_name is required");const i=new URLSearchParams({model_name:a});n.trim()&&i.set("provider",n.trim());const c=et(this._cfg.base_url.trim(),we(`discovery/models/capabilities?${i}`)),u=await fetch(c,{headers:{...at(this._cfg.auth_token)}});return u.ok?await u.json():await ot(u,"discovery_model_capabilities failed")}async workspace_policy(){const t=await fetch(et(this._cfg.base_url.trim(),we("workspace/policy")),{headers:{...at(this._cfg.auth_token)}});return t.ok?await t.json():await ot(t,"workspace_policy failed")}async files_search(t,n){const a=String(t||"").trim(),i=typeof(n==null?void 0:n.limit)=="number"&&Number.isFinite(n.limit)?Math.max(1,Math.trunc(n.limit)):20,c=new URLSearchParams;c.set("query",a),c.set("limit",String(i));const u=n==null?void 0:n.scope;if(u&&typeof u=="object"){const m=String(u.workspace_root||"").trim();m&&c.set("workspace_root",m)}const d=et(this._cfg.base_url.trim(),we(`files/search?${c.toString()}`)),f=await fetch(d,{headers:{...at(this._cfg.auth_token)},signal:n==null?void 0:n.signal});return f.ok?await f.json():await ot(f,"files_search failed")}async list_run_artifacts(t,n){const a=String(t||"").trim();if(!a)throw new Error("list_run_artifacts: run_id is required");const i=typeof(n==null?void 0:n.limit)=="number"?n.limit:200,c=et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(a)}/artifacts?limit=${encodeURIComponent(String(i))}`)),u=await fetch(c,{headers:{...at(this._cfg.auth_token)}});return u.ok?await u.json():await ot(u,"list_run_artifacts failed")}async get_run_artifact_blob(t,n,a){const i=String(t||"").trim(),c=String(n||"").trim();if(!i)throw new Error("get_run_artifact_blob: run_id is required");if(!c)throw new Error("get_run_artifact_blob: artifact_id is required");const u=et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(i)}/artifacts/${encodeURIComponent(c)}/content`)),d=await fetch(u,{headers:{...at(this._cfg.auth_token)}});if(!d.ok)return await ot(d,"get_run_artifact_blob failed");const f=await d.blob(),m=typeof(a==null?void 0:a.max_bytes)=="number"&&Number.isFinite(a.max_bytes)?Math.max(0,Math.trunc(a.max_bytes)):0;if(m>0&&f.size>m)throw new Error(`Artifact too large (${f.size} bytes > ${m} bytes)`);const p=String(d.headers.get("content-type")||"").trim()||"application/octet-stream";return{blob:f,content_type:p}}async get_run_artifact_text(t,n,a){const{blob:i}=await this.get_run_artifact_blob(t,n,a);return await i.text()}async attachments_ingest(t,n,a){const i=String(t||"").trim(),c=String(n||"").trim();if(!i)throw new Error("attachments_ingest: session_id is required");if(!c)throw new Error("attachments_ingest: path is required");const u={session_id:i,path:c},d=a==null?void 0:a.scope;if(d&&typeof d=="object"){const _=String(d.workspace_root||"").trim();_&&(u.workspace_root=_)}const f=await fetch(et(this._cfg.base_url.trim(),we("attachments/ingest")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(u)});if(!f.ok)return await ot(f,"attachments_ingest failed");const m=await f.json(),p=m==null?void 0:m.attachment;if(!p||typeof p!="object")throw new Error("attachments_ingest: missing attachment");if(!String(p.$artifact||"").trim())throw new Error("attachments_ingest: missing attachment.$artifact");return p}async attachments_upload(t,n,a){const i=String(t||"").trim();if(!i)throw new Error("attachments_upload: session_id is required");if(!n)throw new Error("attachments_upload: file is required");const c=String((a==null?void 0:a.filename)||"").trim()||String((n==null?void 0:n.name)||"").trim()||"upload.bin",u=String((a==null?void 0:a.content_type)||"").trim()||String((n==null?void 0:n.type)||"").trim(),d=new FormData;d.append("session_id",i),d.append("file",n,c),d.append("filename",c),u&&d.append("content_type",u);const f=await fetch(et(this._cfg.base_url.trim(),we("attachments/upload")),{method:"POST",headers:{...at(this._cfg.auth_token)},body:d});if(!f.ok)return await ot(f,"attachments_upload failed");const m=await f.json(),p=m==null?void 0:m.attachment;if(!p||typeof p!="object")throw new Error("attachments_upload: missing attachment");if(!String(p.$artifact||"").trim())throw new Error("attachments_upload: missing attachment.$artifact");return p}async audio_transcribe(t,n){const a=String(t||"").trim();if(!a)throw new Error("audio_transcribe: run_id is required");const i={audio_artifact:n==null?void 0:n.audio_artifact,request_id:(n==null?void 0:n.request_id)||void 0},c=(n==null?void 0:n.language)===null||(n==null?void 0:n.language)===void 0?"":String(n.language||"").trim();c&&(i.language=c),n!=null&&n.provider&&(i.provider=String(n.provider)),n!=null&&n.provider&&(n!=null&&n.model)&&(i.model=String(n.model));const u=await fetch(et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(a)}/audio/transcribe`)),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(i)});return u.ok?await u.json():await ot(u,"audio_transcribe failed")}async voice_tts(t,n){const a=String(t||"").trim();if(!a)throw new Error("voice_tts: run_id is required");const i={text:String((n==null?void 0:n.text)||"")},c=(n==null?void 0:n.voice)===null||(n==null?void 0:n.voice)===void 0?"":String(n.voice||"").trim(),u=(n==null?void 0:n.format)===null||(n==null?void 0:n.format)===void 0?"":String(n.format||"").trim(),d=(n==null?void 0:n.request_id)===null||(n==null?void 0:n.request_id)===void 0?"":String(n.request_id||"").trim();c&&(i.voice=c),u&&(i.format=u),d&&(i.request_id=d);const f=await fetch(et(this._cfg.base_url.trim(),we(`runs/${encodeURIComponent(a)}/voice/tts`)),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(i)});return f.ok?await f.json():await ot(f,"voice_tts failed")}async submit_command(t){const n={command_id:String((t==null?void 0:t.command_id)||"").trim(),run_id:String((t==null?void 0:t.run_id)||"").trim(),type:String((t==null?void 0:t.type)||"").trim(),payload:t!=null&&t.payload&&typeof t.payload=="object"?t.payload:{}},a=String((t==null?void 0:t.ts)||"").trim();a&&(n.ts=a);const i=String((t==null?void 0:t.client_id)||"").trim();i&&(n.client_id=i);const c=await fetch(et(this._cfg.base_url.trim(),we("commands")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(n)});return c.ok?await c.json():await ot(c,"submit_command failed")}async bug_report_create(t){const n={session_id:String((t==null?void 0:t.session_id)||"").trim(),description:String((t==null?void 0:t.description)||"")},a=String((t==null?void 0:t.active_run_id)||"").trim();a&&(n.active_run_id=a);const i=String((t==null?void 0:t.workflow_id)||"").trim();i&&(n.workflow_id=i);const c=String((t==null?void 0:t.client)||"").trim();c&&(n.client=c);const u=String((t==null?void 0:t.client_version)||"").trim();u&&(n.client_version=u);const d=String((t==null?void 0:t.user_agent)||"").trim();d&&(n.user_agent=d);const f=String((t==null?void 0:t.url)||"").trim();f&&(n.url=f);const m=String((t==null?void 0:t.provider)||"").trim();m&&(n.provider=m);const p=String((t==null?void 0:t.model)||"").trim();p&&(n.model=p);const w=String((t==null?void 0:t.template)||"").trim();w&&(n.template=w);const _=t==null?void 0:t.context;_&&typeof _=="object"&&(n.context=_);const b=await fetch(et(this._cfg.base_url.trim(),we("bugs/report")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(n)});return b.ok?await b.json():await ot(b,"bug_report_create failed")}async feature_report_create(t){const n={session_id:String((t==null?void 0:t.session_id)||"").trim(),description:String((t==null?void 0:t.description)||"")},a=String((t==null?void 0:t.active_run_id)||"").trim();a&&(n.active_run_id=a);const i=String((t==null?void 0:t.workflow_id)||"").trim();i&&(n.workflow_id=i);const c=String((t==null?void 0:t.client)||"").trim();c&&(n.client=c);const u=String((t==null?void 0:t.client_version)||"").trim();u&&(n.client_version=u);const d=String((t==null?void 0:t.user_agent)||"").trim();d&&(n.user_agent=d);const f=String((t==null?void 0:t.url)||"").trim();f&&(n.url=f);const m=String((t==null?void 0:t.provider)||"").trim();m&&(n.provider=m);const p=String((t==null?void 0:t.model)||"").trim();p&&(n.model=p);const w=String((t==null?void 0:t.template)||"").trim();w&&(n.template=w);const _=t==null?void 0:t.context;_&&typeof _=="object"&&(n.context=_);const b=await fetch(et(this._cfg.base_url.trim(),we("features/report")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(n)});return b.ok?await b.json():await ot(b,"feature_report_create failed")}async prompt_cache_stats(t,n){const a=String(t||"").trim(),i=String(n||"").trim();if(!a||!i)throw new Error("prompt_cache_stats: provider and model are required");const c=et(this._cfg.base_url.trim(),we(`prompt_cache/stats?provider=${encodeURIComponent(a)}&model=${encodeURIComponent(i)}`)),u=await fetch(c,{headers:{...at(this._cfg.auth_token)}});return u.ok?await u.json():await ot(u,"prompt_cache_stats failed")}async prompt_cache_capabilities(t,n){const a=String(t||"").trim(),i=String(n||"").trim();if(!a||!i)throw new Error("prompt_cache_capabilities: provider and model are required");const c=et(this._cfg.base_url.trim(),we(`prompt_cache/capabilities?provider=${encodeURIComponent(a)}&model=${encodeURIComponent(i)}`)),u=await fetch(c,{headers:{...at(this._cfg.auth_token)}});return u.ok?await u.json():await ot(u,"prompt_cache_capabilities failed")}async prompt_cache_saved(t,n){const a=String(t||"").trim(),i=String(n||"").trim();if(!a||!i)throw new Error("prompt_cache_saved: provider and model are required");const c=et(this._cfg.base_url.trim(),we(`prompt_cache/saved?provider=${encodeURIComponent(a)}&model=${encodeURIComponent(i)}`)),u=await fetch(c,{headers:{...at(this._cfg.auth_token)}});return u.ok?await u.json():await ot(u,"prompt_cache_saved failed")}async prompt_cache_clear(t){const n={provider:String((t==null?void 0:t.provider)||"").trim(),model:String((t==null?void 0:t.model)||"").trim()},a=(t==null?void 0:t.key)===null||(t==null?void 0:t.key)===void 0?"":String(t.key||"").trim();a&&(n.key=a);const i=await fetch(et(this._cfg.base_url.trim(),we("prompt_cache/clear")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(n)});return i.ok?await i.json():await ot(i,"prompt_cache_clear failed")}async prompt_cache_save(t){const n={provider:String((t==null?void 0:t.provider)||"").trim(),model:String((t==null?void 0:t.model)||"").trim(),name:String((t==null?void 0:t.name)||"").trim(),key:String((t==null?void 0:t.key)||"").trim(),q8:!!(t!=null&&t.q8)},a=await fetch(et(this._cfg.base_url.trim(),we("prompt_cache/save")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(n)});return a.ok?await a.json():await ot(a,"prompt_cache_save failed")}async prompt_cache_load(t){const n={provider:String((t==null?void 0:t.provider)||"").trim(),model:String((t==null?void 0:t.model)||"").trim(),name:String((t==null?void 0:t.name)||"").trim(),key:String((t==null?void 0:t.key)||"").trim(),clear_existing:!!(t!=null&&t.clear_existing)},a=await fetch(et(this._cfg.base_url.trim(),we("prompt_cache/load")),{method:"POST",headers:{"Content-Type":"application/json",...at(this._cfg.auth_token)},body:JSON.stringify(n)});return a.ok?await a.json():await ot(a,"prompt_cache_load failed")}}function Xc(){const e=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith("abstractcode_gateway_csrf="));return e?{"X-AbstractCode-CSRF":decodeURIComponent(e.slice(26))}:{}}async function dt(e,t={}){var i;if(!e.startsWith(`${Lr}/`))throw new Error("Gateway requests must use the app's authenticated proxy (a relative api/gateway/… path).");const n=new Headers(t.headers);n.set("Accept","application/json"),t.body&&!(t.body instanceof FormData)&&n.set("Content-Type","application/json");for(const[c,u]of Object.entries(Xc()))n.set(c,u);const a=await fetch(e,{...t,headers:n,credentials:"same-origin"});if(!a.ok){const c=await a.text();let u=c;try{const d=JSON.parse(c);u=typeof d.detail=="string"?d.detail:typeof((i=d.detail)==null?void 0:i.message)=="string"?d.detail.message:JSON.stringify(d.detail||d)}catch{}throw new Dw(u||`Gateway request failed (${a.status})`,{status:a.status,body_text:c})}if(a.status!==204)return a.json()}const Dn=new i1({base_url:""});function bt(e){return e instanceof Error?e.message:String(e)}function Ir(){return la()}async function l1(e,t,n){const{blob:a}=await Dn.get_run_artifact_blob(e,t),i=URL.createObjectURL(a),c=document.createElement("a");c.href=i,c.download=n.replace(/[\\/]/g,"_")||"artifact",c.click(),window.setTimeout(()=>URL.revokeObjectURL(i),1e3)}const c1={app:"code",name:"AbstractCode"},u1=["How do I change the model?","Where are my files and generated outputs?","How do I schedule an automation?"],d1=(e,t={})=>{const n=new Headers(t.headers||{}),a=String(t.method||"GET").toUpperCase();if(a!=="GET"&&a!=="HEAD")for(const[i,c]of Object.entries(Xc()))n.set(i,c);return fetch(e,{...t,headers:n,credentials:"same-origin"})};function f1({open:e,onClose:t,connected:n,topOffset:a}){return Pw(e,!0,()=>document.querySelector(".code-app-assistant"),()=>document.querySelector(".code-app-assistant .pc-composer textarea")),r.jsx(N0,{open:e,onClose:t,source:c1,fetchGateway:d1,connected:n,topOffset:a,className:"code-app-assistant",placeholder:"Ask about AbstractCode…",suggestions:u1})}function vo({children:e}){return r.jsxs("p",{className:"code-history-empty code-loading-status",role:"status",children:[r.jsx("span",{className:"code-loading-spinner","aria-hidden":"true"}),e]})}function h1(e){const t=e.isDrawer&&!e.open;return r.jsx("aside",{className:"code-sidebar","aria-label":"Conversations",...t?{inert:""}:{},children:e.children})}const qc=(e,t)=>dt(e,{method:t.method,...t.body!==void 0?{body:JSON.stringify(t.body)}:{}}),Zc="Connect to your gateway to change workspaces.";function Fw(e,t,n,a){const[i,c]=y.useState(null),[u,d]=y.useState(null),f=t?t.level==="session"?`session:${t.session}`:"account":"";y.useEffect(()=>{if(c(null),d(null),!e||!t)return;let p=!0;return Hp(n,t).load().then(w=>p&&c(w)).catch(w=>p&&d(`Could not read the workspaces: ${bt(w)}`)),()=>{p=!1}},[e,f,n,a]);const m=y.useCallback(async p=>{if(!t)throw new Error(Zc);const w=await Hp(n,t).save(p);return c(w),w},[f,n]);return{state:i,error:u,save:m}}function zw(e){return e.automation?r.jsx(y1,{...e,automation:e.automation}):r.jsx(m1,{...e})}function m1({connected:e,sessionId:t,onOpenDefaults:n,refreshKey:a,request:i=qc}){const c=Fw(e,t?{level:"session",session:t}:null,i,a),u=e?t?null:"Open a conversation to choose its workspaces.":Zc;return r.jsxs(r.Fragment,{children:[r.jsx(Jf,{level:"session",idPrefix:"code-workspace-session",state:c.state,save:c.save,loadError:u??c.error,unavailableReason:u}),n?r.jsx("p",{className:"code-default-workspaces",children:r.jsx("button",{type:"button",className:"code-text-button","data-action":"open-default-workspaces",onClick:n,disabled:!e,children:"My default workspaces"})}):null]})}function p1({open:e,onClose:t,connected:n,onChanged:a,request:i=qc}){const c=Fw(n&&e,e?{level:"account"}:null,i),u=n?null:Zc,d=y.useCallback(async f=>{const m=await c.save(f);return a==null||a(),m},[c,a]);return r.jsx(Eb,{open:e,onClose:t,title:"My default workspaces",size:"narrow",children:r.jsx(Jf,{level:"account",idPrefix:"code-workspace-account",state:c.state,save:d,loadError:u??c.error,unavailableReason:u})})}function g1(e,t,n,a){const[i,c]=y.useState(null),[u,d]=y.useState(null),f=JSON.stringify(t);y.useEffect(()=>{if(d(null),!e){c(null);return}let p=!0;return jf(a)(t).then(w=>p&&c(w)).catch(w=>p&&d(`Could not read the workspaces: ${Kf(w)||bt(w)}`)),()=>{p=!1}},[e,f,a]);const m=y.useCallback(async p=>{const w=await jf(a)(p);c(w),n(p)},[a,n]);return{effective:i,error:u,onChange:m}}function y1({connected:e,automation:t,idPrefix:n="code-workspace-automation",request:a=qc}){const i=g1(e,t.value,t.onChange,a),c=e?null:Zc;return r.jsx(Jf,{level:"run",idPrefix:n,value:t.value,effective:i.effective,onChange:i.onChange,loadError:c??i.error,unavailableReason:c})}const Ww="abstractcode.sidebar.panels",vi={automations:!0,conversations:!0};function w1(e){try{const t=e==null?void 0:e.getItem(Ww);if(!t)return{...vi};const n=JSON.parse(t);if(!n||typeof n!="object")return{...vi};const a=n;return{automations:typeof a.automations=="boolean"?a.automations:vi.automations,conversations:typeof a.conversations=="boolean"?a.conversations:vi.conversations}}catch{return{...vi}}}function v1(e,t){try{t==null||t.setItem(Ww,JSON.stringify(e))}catch{}}function _1(e,t){return{...e,[t]:!e[t]}}function Mc(){try{return typeof window<"u"?window.localStorage:null}catch{return null}}function b1(){const[e,t]=y.useState(()=>w1(Mc())),n=y.useCallback(a=>{t(i=>{const c=_1(i,a);return v1(c,Mc()),c})},[]);return[e,n]}const Zf=e=>({toggle:`code-panel-${e}-toggle`,region:`code-panel-${e}`});function Bw(e){const t=Zf(e.panel);return r.jsxs("div",{className:"code-panel-header",children:[r.jsxs("button",{type:"button",className:"code-panel-toggle",id:t.toggle,"aria-expanded":e.open,"aria-controls":t.region,onClick:e.onToggle,children:[r.jsx(se,{name:"chevronDown",size:14}),r.jsx("span",{children:e.label})]}),e.actions?r.jsx("span",{className:"code-panel-actions",children:e.actions}):null]})}function x1(e){return r.jsx("div",{className:"code-sidebar-lists","data-automations":e.panels.automations?"open":"closed","data-conversations":e.panels.conversations?"open":"closed",children:e.children})}function k1(e){const t=Zf("conversations");return r.jsxs("section",{className:"code-panel code-conversations","data-open":e.open?"true":"false",children:[r.jsx(Bw,{panel:"conversations",label:"Conversations",open:e.open,onToggle:e.onToggle,actions:e.actions}),r.jsx("nav",{className:"code-sessions",id:t.region,"aria-labelledby":t.toggle,hidden:!e.open,children:e.children})]})}function j1(e){return e.split("/").filter(Boolean).pop()||"Gateway managed"}const Uw="abstractcode.sidebar.archived",ug={automations:!1,conversations:!1};function S1(e){try{const t=e==null?void 0:e.getItem(Uw),n=t?JSON.parse(t):null;return!n||typeof n!="object"?{...ug}:{automations:n.automations===!0,conversations:n.conversations===!0}}catch{return{...ug}}}function N1(){const[e,t]=y.useState(()=>S1(Mc())),n=y.useCallback(a=>{t(i=>{var u;const c={...i,[a]:!i[a]};try{(u=Mc())==null||u.setItem(Uw,JSON.stringify(c))}catch{}return c})},[]);return[e,n]}function Vw(e){const t=y.useRef(null),n=y.useRef(!1);if(y.useEffect(()=>{var i,c;!e.open||!n.current||(n.current=!1,(c=(i=t.current)==null?void 0:i.scrollIntoView)==null||c.call(i,{block:"nearest",behavior:"smooth"}))},[e.open]),!(e.count>0))return null;const a=`code-archived-${e.list}`;return r.jsxs("div",{className:"code-archived","data-list":e.list,"data-open":e.open?"true":"false",children:[r.jsxs("button",{type:"button",className:"code-archived-toggle","aria-expanded":e.open,"aria-controls":a,onClick:()=>{n.current=!0,e.onToggle()},children:[r.jsxs("span",{children:["Archived · ",e.count]}),r.jsx(se,{name:"chevronDown",size:12})]}),e.open?r.jsx("ul",{ref:t,className:"code-archived-list",id:a,"aria-label":`Archived ${e.list}`,children:e.children}):null]})}function Hw(e){return r.jsxs("li",{className:"code-archived-row","data-id":e.id,children:[r.jsxs("button",{type:"button",className:"code-archived-name",title:e.title,onClick:e.onOpen,children:[r.jsx("strong",{children:e.title}),e.meta?r.jsx("small",{children:e.meta}):null]}),r.jsxs("button",{type:"button",className:"code-subtle-button code-archived-unarchive","data-action":"unarchive",disabled:e.busy,"aria-busy":e.busy||void 0,onClick:e.onUnarchive,children:[e.busy?r.jsx(se,{name:"loader",size:12}):r.jsx(se,{name:"archive",size:12}),r.jsx("span",{children:"Unarchive"})]}),e.error?r.jsx("p",{className:"code-inline-error",role:"alert",children:e.error}):null]})}const C1="Archive this conversation? It stays searchable and auditable; it just leaves this list.";function E1(e){const t=y.useRef(null);return y.useEffect(()=>{var n;(n=t.current)==null||n.focus({preventScroll:!0})},[]),r.jsxs("div",{className:`code-archive-confirm${e.className?` ${e.className}`:""}`,role:"group","aria-label":"Archive conversation",onKeyDown:n=>{n.key==="Escape"&&!e.busy&&(n.preventDefault(),n.stopPropagation(),e.onCancel())},children:[r.jsx("p",{children:C1}),r.jsxs("span",{className:"code-archive-confirm-actions",children:[r.jsxs("button",{type:"button",ref:t,className:"code-archive-confirm-yes","data-action":"confirm-archive",disabled:e.busy,"aria-busy":e.busy||void 0,onClick:e.onConfirm,children:[e.busy?r.jsx(se,{name:"loader",size:12}):r.jsx(se,{name:"archive",size:12}),r.jsx("span",{children:"Archive"})]}),r.jsx("button",{type:"button",className:"code-subtle-button","data-action":"cancel-archive",disabled:e.busy,onClick:e.onCancel,children:"Cancel"})]}),e.error?r.jsx("p",{className:"code-inline-error",role:"alert",children:e.error}):null]})}const A1="abstractcode.agent.v1";function eh(e){return!!(e!=null&&e.interfaces.some(t=>[A1,"abstractassistant.agent.v1"].includes(t)))}function ct(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Af(e){return Array.isArray(e)?e:[]}function Re(e){return typeof e!="string"?void 0:e.trim()||void 0}function $1(e){return Af(e).flatMap(t=>{const n=Re(t);return n?[n]:[]})}function Ii(e,t=0){if(typeof e!="number"||!Number.isFinite(e))return;const n=Math.trunc(e);return n>=t?n:void 0}function th(e,t){if(Array.isArray(e))return e;const n=ct(e);if(!n)return[];for(const a of t)if(Array.isArray(n[a]))return n[a];return[]}function Gw(e){const t=ct(e);return t?{...t}:void 0}function dg(e){const t=Gw(e.input_schema??e.inputSchema??e.inputs_schema);if(t)return t;const n=ct(e.inputs);if(n&&("properties"in n||"type"in n||"$schema"in n))return{...n}}function T1(e){const t=Re(e.bundle_version??e.bundleVersion??e.version);if(t)return t;const n=Re(e.bundle_ref??e.bundleRef);if(!n)return;const a=n.lastIndexOf("@");return a>0&&a<n.length-1?n.slice(a+1):void 0}function R1(e,t,n){return e?`${e}${t?`@${t}`:""}:${n}`:n}function fg(e,t,n){var d;const a=ct(e),i=Re((a==null?void 0:a.default_bundle_id)??(a==null?void 0:a.defaultBundleId)),c=th(e,["items","bundles"]),u=[];for(const f of c){const m=ct(f);if(!m)continue;const p=ct(m.actions);if((p==null?void 0:p.can_run)===!1)continue;const w=(d=Re(m.status))==null?void 0:d.toLowerCase();if(m.is_draft===!0||m.is_published===!1||m.version_channel==="draft"||w&&!["published","deprecated"].includes(w)||!n.includeDeprecated&&(w==="deprecated"||w==="deleted"||w==="disabled"))continue;const _=Re(m.bundle_id??m.bundleId??m.id),b=T1(m);if(b&&/(?:^|[.\-])draft(?:[.\-]|$)/i.test(b))continue;const A=Re(m.default_entrypoint??m.defaultEntrypoint),x=t==="private"&&(m.is_default===!0||m.isDefault===!0||!!_&&_===i);for(const j of Af(m.entrypoints)){const S=ct(j);if(!S||!n.includeDeprecated&&(S.deprecated===!0||S.enabled===!1))continue;const E=Re(S.flow_id??S.flowId??S.id);if(!E)continue;const N=$1(S.interfaces??S.interface_ids??S.interfaceIds);if(n.interfaceId&&!N.includes(n.interfaceId))continue;const C=Re(S.workflow_id??S.workflowId)??R1(_,b,E),$=A?A===E:Af(m.entrypoints).length===1;u.push({id:`${t}:${C}`,workflowId:C,..._?{bundleId:_}:{},...b?{bundleVersion:b}:{},flowId:E,name:Re(S.name??S.title)??E,description:Re(S.description)??"",interfaces:N,...dg(S)?{inputSchema:dg(S)}:{},registryScope:t,isPreferredVersion:t==="tenant_catalog"?m.is_default===!0||m.default_version===b:m.latest_published_version===b,...x&&$?{isDefault:!0}:{}})}}return u}function I1(e,t,n={}){const a=[...fg(e,"private",n),...fg(t,"tenant_catalog",n)],i=new Map;for(const c of a)i.set(c.id,c);return[...i.values()].sort((c,u)=>+!!u.isDefault-+!!c.isDefault||c.name.localeCompare(u.name)||c.id.localeCompare(u.id))}function M1(e){const t=ct(e);if(!t)return;const n=ct(t.workflow_selection??t.workflowSelection);if(n)return n;const a=ct(t._runtime),i=ct((a==null?void 0:a.workflow_policy)??(a==null?void 0:a.workflowPolicy));if(i)return i;const c=ct(t.input_data??t.inputData),u=ct(c==null?void 0:c._runtime);return ct((u==null?void 0:u.workflow_policy)??(u==null?void 0:u.workflowPolicy))}function L1(e,t){const n=M1(t.inputData);if(n){const c=Re(n.registry_scope??n.registryScope),u=Re(n.bundle_id??n.bundleId),d=Re(n.bundle_version??n.bundleVersion),f=Re(n.flow_id??n.flowId);if((c==="private"||c==="tenant_catalog")&&u&&f){const m=e.filter(p=>(p.registryScope??"private")===c&&p.bundleId===u&&p.flowId===f&&(!d||p.bundleVersion===d));if(m.length===1)return m[0]}return}const a=Re(t.runWorkflowId);if(!a)return;const i=e.filter(c=>(c.registryScope??"private")==="private"&&c.workflowId===a);return i.length===1?i[0]:void 0}function O1(e){const t=ct(e)??{},n=ct(t.policy)??t,a=Ii(n.max_attachment_bytes??n.maxAttachmentBytes,1);return{raw:{...n},...a!==void 0?{maxAttachmentBytes:a}:{}}}function hg(e,t){const n=Re(e.sandbox);if(!n||typeof e.sandboxed!="boolean")return;const a=Re(t==null?void 0:t.sentence),i=e.sandboxed?"ok":Re(t==null?void 0:t.state)==="unsandboxed"?"danger":"warn";return{label:n,...a?{tooltip:a}:{},tone:i}}function P1(e){var c;const t=th(e,["items","tools"]),n=ct((c=ct(e))==null?void 0:c.command_sandbox),a=new Set,i=[];for(const u of t){const d=ct(u);if(!d)continue;const f=Re(d.name??d.tool_name??d.id);if(!f||a.has(f))continue;a.add(f);const m=d.enabled!==!1&&d.served_disabled!==!0&&d.servedDisabled!==!0,p=Ii(d.risk_rank??d.riskRank),w=Gw(d.input_schema??d.inputSchema??d.parameters);i.push({name:f,description:Re(d.description)??"",...Re(d.toolset)?{toolset:Re(d.toolset)}:{},...Re(d.tier)?{tier:Re(d.tier)}:{},...Re(d.approval_default??d.default_approval??d.approvalDefault??d.defaultApproval??d.approval)?{approval:Re(d.approval_default??d.default_approval??d.approvalDefault??d.defaultApproval??d.approval)}:{},...p!==void 0?{riskRank:p}:{},enabled:m,servedDisabled:!m,...Re(d.enable_gate??d.enableGate)?{enableGate:Re(d.enable_gate??d.enableGate)}:{},...Re(d.why_disabled??d.whyDisabled)?{whyDisabled:Re(d.why_disabled??d.whyDisabled)}:{},...w?{inputSchema:w}:{},...hg(d,n)?{sandboxState:hg(d,n)}:{},raw:{...d}})}return i.sort((u,d)=>u.name.localeCompare(d.name))}function D1(e){var a;const t=(a=Re(e.status??e.state))==null?void 0:a.toLowerCase();return Re(e.wait_reason??e.waitReason)||e.waiting===!0||t==="waiting"||t==="paused"?"waiting":t==="running"||t==="queued"||t==="pending"||t==="created"?"running":t==="failed"||t==="error"||t==="cancelled"||t==="canceled"?"failed":t==="completed"||t==="complete"||t==="done"?"done":"unknown"}const mg={waiting:4,running:3,failed:2,done:1,unknown:0};function oo(e){return Re(e.updated_at??e.updatedAt??e.finished_at??e.finishedAt??e.created_at??e.createdAt)}function io(e){if(!e)return Number.NEGATIVE_INFINITY;const t=Date.parse(e);return Number.isFinite(t)?t:Number.NEGATIVE_INFINITY}function pg(e){var u;const t=Re(e);if(t)return t;const n=ct(e);if(!n)return;const a=Re(n.prompt);if(a)return a;const i=ct(n.input_data??n.inputData),c=["prompt","request","task","message","query","input"].map(d=>Re(i==null?void 0:i[d])).find(Boolean);return c||Re((u=ct(i==null?void 0:i.context))==null?void 0:u.task)}function Lc(e,t={}){const n=ct(e),a=(n==null?void 0:n.has_more)===!0||(n==null?void 0:n.hasMore)===!0,i=th(e,["items","runs"]),c=new Map;i.forEach((d,f)=>{const m=ct(d);if(!m||Re(m.parent_run_id??m.parentRunId))return;const p=Re(m.session_id??m.sessionId),w=Re(m.run_id??m.runId??m.id);if(!p||!w)return;const _=c.get(p)??[];_.push({run:m,index:f}),c.set(p,_)});const u=[];for(const[d,f]of c){const m=[...f].sort((x,j)=>io(oo(j.run))-io(oo(x.run))||x.index-j.index),p=[...f].sort((x,j)=>{const S=Re(x.run.created_at??x.run.createdAt)??oo(x.run),E=Re(j.run.created_at??j.run.createdAt)??oo(j.run);return io(S)-io(E)||x.index-j.index}),w=m.flatMap(({run:x})=>{const j=Re(x.run_id??x.runId??x.id);return j?[j]:[]});if(!w.length)continue;let _="unknown";for(const{run:x}of f){const j=D1(x);mg[j]>mg[_]&&(_=j)}let b;for(const{run:x}of p){const j=Re(x.run_id??x.runId??x.id);if(b=(j?pg(t[j]):void 0)??pg(x),b)break}let A=0;for(const{run:x}of f){const j=x.tool_calls;A=typeof j=="number"&&Number.isFinite(j)&&A!==void 0?A+j:void 0}u.push({sessionId:d,state:_,...oo(m[0].run)?{updatedAt:oo(m[0].run)}:{},firstRunId:Re(p[0].run.run_id??p[0].run.runId??p[0].run.id),latestRunId:w[0],runIds:w,turnCount:f.length,...A!==void 0?{toolCalls:A}:{},...b?{prompt:b}:{},truncated:a})}return u.sort((d,f)=>io(f.updatedAt)-io(d.updatedAt)||d.sessionId.localeCompare(f.sessionId))}function Oc(e){return e?{...e}:{}}function _i(e){if(e!==void 0)return e.flatMap(t=>{const n=Re(t);return n?[n]:[]})}function F1(e,t,n){var x,j,S,E,N,C,$;const a=(R,D)=>{var M,J;!eh(t.workflow)&&!((J=ct((M=t.inputSchema)==null?void 0:M.properties))!=null&&J[R])||D!==void 0&&n&&(e[R]=D)},i=Re((x=t.model)==null?void 0:x.provider),c=Re((j=t.model)==null?void 0:j.model);if(!!i!=!!c)throw new Error("Choose both a provider and a model, or use the workflow / Gateway defaults.");a("provider",i),a("model",c),t.tools!==void 0&&a("tools",_i(t.tools)??[]);const u=_i(t.skills);u!=null&&u.length&&(e.skills=u);const d=Re((S=t.workspace)==null?void 0:S.root);d!==void 0&&(e.workspace_root=d),a("system",Re(t.system));const f=Oc(ct(e._runtime)),m=(R,D)=>{D!==void 0&&n&&(f[R]=D)};if(m("provider",i),m("model",c),m("thinking",Re(t.reasoning)),m("speculation",t.speculation),t.streamReplies!==void 0&&m("stream",zS(t.streamReplies).stream),m("system_prompt_extra",Re(t.systemPromptExtra)),t.tools!==void 0){const R=_i(t.tools)??[],D=Array.isArray(f.allowed_tools)?f.allowed_tools:null;f.allowed_tools=D?R.filter(M=>D.includes(M)):R}if(t.review!==void 0&&t.reviewCapable!==!1){m("review_mode",t.review.enabled);const R=t.review.enabled?Ii(t.review.maxRounds,1):void 0;m("review_max_rounds",R)}const p=_i((E=t.toolPolicy)==null?void 0:E.autoApproveTools),w=_i((N=t.toolPolicy)==null?void 0:N.requireApprovalTools);(((p==null?void 0:p.length)??0)>0||((w==null?void 0:w.length)??0)>0)&&m("tool_policy",{...p!=null&&p.length?{auto_approve_tools:p}:{},...w!=null&&w.length?{require_approval_tools:w}:{}}),t.promptCache!==void 0&&m("prompt_cache",t.promptCache),Object.keys(f).length&&(e._runtime=f);const _=Oc(ct(e._limits)),b=Ii((C=t.limits)==null?void 0:C.maxIterations,1),A=Ii(($=t.limits)==null?void 0:$.maxTokens,1);b!==void 0&&n&&(_.max_iterations=b),A!==void 0&&n&&(_.max_tokens=A),Object.keys(_).length&&(e._limits=_),a("max_iterations",b),t.gatingMode==="auto"&&a("gating_mode","auto")}function z1(e){var a;const t=Oc(e.schemaInputs),n=eh(e.workflow);if(e.promptProperty){const i=Re(e.promptProperty);i&&((a=e.prompt)!=null&&a.trim())&&(t[i]=e.prompt)}if(n){const i=e.prompt??"";t.prompt=i;const c=Oc(ct(t.context));c.task=i,delete c.messages,delete c.media;const u=(e.attachments??[]).map(d=>({...d}));u.length?c.attachments=u:delete c.attachments,t.use_context=!1,delete t.attachments,delete t.media,t.context=c,t.use_session_history=e.useSessionHistory??!0}return F1(t,e,!0),t}function W1(e){const t=e.last_notification;if(!t||typeof t!="object")return null;const n=t;return n.status!=="failed"||typeof n.text!="string"||!n.text?null:{text:n.text,at:typeof n.at=="string"&&n.at?n.at:null}}function B1(e,t){const n=e?Date.parse(e):NaN;return Number.isNaN(n)?"":`${Ac(Math.max(0,t-n))} ago`}function Kw(e){const t=W1(e.summary);if(!t)return null;const n=B1(t.at,e.nowMs);return r.jsxs("small",{className:`code-notif-line ${e.className??""}`.trim(),"data-field":"last-notification","data-status":"failed",children:[r.jsx(bb,{tone:"error",size:"sm",className:"code-notif-pill",title:t.at?`${t.text}
|
|
86
|
-
${Nc(t.at)}`:t.text,children:t.text}),n?r.jsx("span",{className:"code-notif-time",children:n}):null]})}const gg=(e,t,n)=>`${e} ${e===1?t:n}`;function Jw(e,t={}){const n=e.updatedAt?new Date(e.updatedAt):null,i=[n&&Number.isFinite(n.getTime())?n.toLocaleDateString(t.locale,{month:"short",day:"numeric",...t.timeZone?{timeZone:t.timeZone}:{}}):"Saved conversation",gg(e.turnCount,"turn","turns")];return typeof e.toolCalls=="number"&&e.toolCalls>0&&i.push(gg(e.toolCalls,"tool","tools")),i.join(" · ")}function Qw(e){return e.prompt||`Conversation ${e.sessionId.slice(0,8)}`}function U1(e){const{item:t}=e,n=Qw(t);return r.jsxs("div",{className:`code-session-item${e.confirm?" is-confirming":""}`,"data-item-id":t.sessionId,children:[r.jsxs("button",{type:"button",className:`code-session code-card${e.selected?" is-selected":""}`,"aria-current":e.selected?"page":void 0,"data-session-id":t.sessionId,onClick:e.onClick,title:n,children:[r.jsxs("span",{children:[r.jsx("strong",{className:"code-card-title",children:n}),r.jsx("small",{className:"code-card-meta","data-field":"meta",children:Jw(t)})]}),t.state==="running"||t.state==="waiting"?r.jsx("span",{className:`code-status-dot ${t.state==="running"?"is-working":"is-waiting"}`,title:t.state}):null]}),e.onAskArchive?r.jsx(Xg,{className:"code-card-menu",label:`More actions for ${n}`,title:"More actions",items:[{id:"archive",label:"Archive",danger:!0,onSelect:e.onAskArchive}]}):null,e.confirm]})}function Yw(e){return e.attention.pending_waits>0}function Xw(){return r.jsx("span",{className:"code-waiting-badge","data-field":"waiting",children:"waiting for you"})}function qw(e){const t=yo(e.summary,[],e.busy).active;return r.jsx(Or,{className:`${e.className??""}${e.iconOnly?" code-switch-icon-only":""}`.trim()||void 0,variant:e.variant??"sm",action:"active",label:e.iconOnly?r.jsx("span",{className:"code-visually-hidden",children:"Active"}):"Active",ariaLabel:"Active",checked:e.summary.status==="active",unavailableReason:t.enabled||e.busy?null:t.reason??"Not available now.",reasonVisible:!1,busy:e.busy,hint:e.iconOnly?`Active
|
|
87
|
-
${Pi("active",e.summary)}`:Pi("active",e.summary),onChange:()=>e.onToggle()})}function V1(e,t){const n=Gy(e,t);return{first:[n.cadence,n.last].filter(Boolean).join(" · "),second:n.next||"",scheduled:e.trigger.source_id==="schedule"}}function H1(e){const t=e.summary,n=V1(t,e.nowMs),a=Yw(t);return r.jsxs("div",{className:`code-card code-auto-card${e.selected?" is-selected":""}`,"data-automation-id":t.automation_id,"data-status":t.status,children:[r.jsxs("button",{type:"button",className:"code-card-main","aria-current":e.selected?"page":void 0,title:`${t.title}
|
|
88
|
-
${[n.first,n.second].filter(Boolean).join(" · ")}`,onClick:e.onSelect,children:[r.jsx("strong",{className:"code-card-title",children:t.title}),a?r.jsx(Xw,{}):null,r.jsxs("small",{className:"code-card-meta","data-field":"timing",children:[n.scheduled?r.jsx(se,{name:"refresh",size:12,className:"code-card-cadence-icon"}):null,r.jsx("span",{className:"code-card-part",children:n.first})]})]}),r.jsxs("div",{className:"code-card-line2",children:[r.jsx("small",{className:"code-card-meta","data-field":"next",children:n.second}),r.jsx(qw,{className:"code-card-switch",iconOnly:!0,summary:t,busy:e.busy,onToggle:e.onToggleActive})]}),r.jsx(Kw,{summary:t,nowMs:e.nowMs,className:"code-card-notif"})]})}const G1="runs?root_only=true&archived_only=true&include_ledger_len=false&include_metrics=true&limit=200",K1=e=>`sessions/${encodeURIComponent(e)}/archive`,J1=e=>`sessions/${encodeURIComponent(e)}/unarchive`;async function Q1(e,t=dt){return t(we(K1(e)),{method:"POST",body:"{}"})}function Y1(e,t){const n=e.findIndex(i=>i.sessionId===t),a=e.filter(i=>i.sessionId!==t);return a.length?n<0?a[0]:a[Math.min(n,a.length-1)]:null}function yg(e){const t=e==null?void 0:e.archived_sessions;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):0}function X1(e){const t=e.request??dt,[n,a]=y.useState(null),[i,c]=y.useState(""),[u,d]=y.useState(""),[f,m]=y.useState(null);return y.useEffect(()=>{if(!e.enabled)return;const p=new AbortController;return c(""),t(we(G1),{signal:p.signal}).then(async w=>{if(p.signal.aborted)return;const _=Lc(w);a(_);const b={};await Promise.all(_.filter(A=>!A.prompt).slice(0,50).map(async A=>{try{b[A.firstRunId]=await t(we(`runs/${encodeURIComponent(A.firstRunId)}/input_data`),{signal:p.signal})}catch{}})),!p.signal.aborted&&Object.keys(b).length&&a(Lc(w,b))}).catch(w=>!p.signal.aborted&&c(`Archived conversations unavailable: ${bt(w)}`)),()=>p.abort()},[e.enabled,e.revision]),i?r.jsx("li",{className:"code-inline-error",role:"alert",children:i}):n?r.jsx(r.Fragment,{children:n.map(p=>r.jsx(Hw,{id:p.sessionId,title:Qw(p),meta:Jw(p),busy:u===p.sessionId,error:(f==null?void 0:f.id)===p.sessionId?f.message:void 0,onOpen:()=>e.onOpen(p),onUnarchive:()=>{d(p.sessionId),m(null),t(we(J1(p.sessionId)),{method:"POST",body:"{}"}).then(()=>{a(w=>(w||[]).filter(_=>_.sessionId!==p.sessionId)),e.onUnarchived(p)}).catch(w=>m({id:p.sessionId,message:`Not unarchived: ${bt(w)}`})).finally(()=>d(""))}},p.sessionId))}):r.jsx("li",{children:r.jsx(vo,{children:"Loading archived conversations…"})})}const An=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},q1=["context","messages","attachments","media"];function Z1(e){return q1.includes(e)}function eN(e,t){const n=An(t);return Object.fromEntries(Object.keys(An(e.properties)).flatMap(a=>["_runtime","_limits"].includes(a)||Z1(a)||!Object.prototype.hasOwnProperty.call(n,a)?[]:[[a,structuredClone(n[a])]]))}function wg(e){if(!e)return;const t=An(e.input_data_schema||e.input_schema||e.schema||e),n=Object.fromEntries(Object.entries(An(t.properties)).map(([a,i])=>[a,{...An(i)}]));for(const a of Array.isArray(e.inputs)?e.inputs:[])a!=null&&a.id&&(n[a.id]={...An(a.schema),...n[a.id],...a.type?{"x-abstract-type":a.type}:{},...a.label?{title:a.label}:{},...Object.prototype.hasOwnProperty.call(a,"default")?{default:a.default}:{}});for(const[a,i]of Object.entries(An(e.defaults)))n[a]={...n[a],default:i};return{...t,properties:n}}function tN(e,t){var m;const n=An(t).nodes;if(!Array.isArray(n))throw new Error("The workflow input declarations could not be verified. Please retry.");const a=n.find(p=>{var w;return(((w=p==null?void 0:p.data)==null?void 0:w.nodeType)||(p==null?void 0:p.type))==="on_flow_start"});if(!a||!Array.isArray((m=a.data)==null?void 0:m.outputs))throw new Error("The workflow start inputs could not be verified. Please retry.");const i=a.data.outputs.filter(p=>typeof(p==null?void 0:p.id)=="string"&&p.id&&p.type!=="execution"&&!["exec","exec-out"].includes(p.id)),c=new Set(i.map(p=>p.id)),u=new Set((Array.isArray(e.required)?e.required:[]).filter(p=>!c.has(p))),d={...e.properties},f=An(a.data.pinDefaults);for(const p of i)p.required===!0&&u.add(p.id),d[p.id]={...An(d[p.id]),...An(p.schema),...p.type?{"x-abstract-type":p.type}:{},...p.label?{title:p.label}:{},...Object.prototype.hasOwnProperty.call(f,p.id)?{default:structuredClone(f[p.id])}:{}};return{...e,properties:d,required:[...u]}}function Js(e){return Object.fromEntries(Object.entries((e==null?void 0:e.properties)||{}).flatMap(([t,n])=>Object.prototype.hasOwnProperty.call(An(n),"default")?[[t,structuredClone(An(n).default)]]:[]))}function nN(e){const t=Array.isArray(e.type)?e.type.find(a=>a!=="null"):e.type;if(t)return t;const n=e["x-abstract-type"];return["tools","assertions"].includes(n)?"array":["json_schema","memory","assertion"].includes(n)?"object":"string"}function sN(e){const t=(e==null?void 0:e.properties)||{},n=i=>{const c=t[i];return c&&(c.type==="string"||Array.isArray(c.type)&&c.type.includes("string")||!c.type&&c["x-abstract-type"]==="string")},a=Object.keys(t).filter(i=>{var c;return((c=t[i])==null?void 0:c["x-abstract-role"])==="prompt"&&n(i)});return a.length?a.length===1?a[0]:void 0:["prompt","request","task","message","query","input"].find(n)}function Yd(e,t){var i,c,u;if(!e)return[];const n={...Js(e),...t},a=[];for(const d of Array.isArray(e.required)?e.required:[])n[d]===void 0&&a.push(`${((c=(i=e.properties)==null?void 0:i[d])==null?void 0:c.title)||d} is required.`);for(const[d,f]of Object.entries(n)){const m=(u=e.properties)==null?void 0:u[d];if(!m||f===void 0)continue;const p=m.title||d;Array.isArray(m.enum)&&!m.enum.some(A=>JSON.stringify(A)===JSON.stringify(f))&&a.push(`${p} must be one of the available choices.`);const w=Array.isArray(m.type)?m.type:m.type?[m.type]:[];if(f===null&&(w.includes("null")||!w.length))continue;const _=Array.isArray(f)?"array":f===null?"null":typeof f,b=w.includes(_)?_:_==="number"&&w.includes("integer")?"integer":w[0];(b==="number"||b==="integer")&&(typeof f!="number"||!Number.isFinite(f)||b==="integer"&&!Number.isInteger(f))&&a.push(`${p} must be ${b==="integer"?"a whole number":"a number"}.`),typeof f=="number"&&m.minimum!==void 0&&f<m.minimum&&a.push(`${p} must be at least ${m.minimum}.`),typeof f=="number"&&m.maximum!==void 0&&f>m.maximum&&a.push(`${p} must be at most ${m.maximum}.`),b==="string"&&typeof f!="string"&&a.push(`${p} must be text.`),typeof f=="string"&&m.minLength!==void 0&&f.length<m.minLength&&a.push(`${p} must contain at least ${m.minLength} characters.`),b==="boolean"&&typeof f!="boolean"&&a.push(`${p} must be true or false.`),b==="array"&&!Array.isArray(f)&&a.push(`${p} must be a JSON array.`),b==="object"&&(f===null||typeof f!="object"||Array.isArray(f))&&a.push(`${p} must be a JSON object.`)}return a}function Zw(e){const t=(e==null?void 0:e.properties)||{},n=[];for(const[a,i]of Object.entries(t)){const c=An(i);if(!(a==="provider"||a.endsWith("_provider")||String(c["x-abstract-type"]||"").startsWith("provider")))continue;const u=String(c["x-abstract-type"]||""),d=a.replace("provider","model"),f=Object.keys(t).filter(b=>{var A;return((A=t[b])==null?void 0:A["x-abstract-type"])===u.replace(/^provider/,"model")}),m=d!==a&&t[d]?d:f.length===1?f[0]:"";if(!m)continue;const p=a==="provider"?"":a.startsWith("provider_")?a.slice(9):a.endsWith("_provider")?a.slice(0,-9):u.replace(/^provider_?/,""),w=p&&p!=="text"?`${p}_`:"",_=[`${w}reasoning`,`${w}thinking`,`${w}reasoning_effort`,`reasoning_${p}`,`thinking_${p}`].find(b=>t[b]);n.push({provider:a,model:m,reasoning:_,title:w?w.replace(/_/g," ").trim():"Text model"})}return n}const nh={fetchProviders:async()=>{const e=await Dn.discovery_providers(),t=e.providers||e.items;return Array.isArray(t)?t.map(n=>typeof n=="string"?{name:n}:n):[]},fetchModels:async e=>{const t=await Dn.discovery_provider_models(e),n=t.models||t.items;return Array.isArray(n)?n.map(a=>typeof a=="string"?a:a.id||a.name).filter(Boolean):[]},fetchModelCapabilities:(e,t="")=>Dn.discovery_model_capabilities(e,t)};function rN(e){for(const t of["output.text","input.text"]){const n=(Array.isArray(e==null?void 0:e.routes)?e.routes:[]).find(a=>a.key===t&&a.source!=="not_configured"&&a.provider&&a.model);if(n)return{provider:n.provider,model:n.model}}}function aN(e,t){e.startsWith("provider_")?e=`${e.slice(9)}_provider`:t!=null&&t.startsWith("provider_")&&!e.endsWith("_provider")&&(e=`${t.slice(9)}_provider`);const n={image_provider:"text_to_image",image_edit_provider:"image_to_image",image_upscale_provider:"image_upscale",video_provider:"text_to_video",image_to_video_provider:"image_to_video"}[e];if(!n&&!["music_provider","voice_provider"].includes(e))return nh;const a=e==="voice_provider",i=we(n?`vision/provider_models?task=${n}`:a?"audio/speech/models?compact=true":"audio/music/models?task=text_to_music"),c=n?`${i}&providers_only=true`:we(a?"voice/voices?providers_only=true&compact=true":"audio/music/providers?task=text_to_music"),u=d=>Array.isArray(d)?d.map(f=>typeof f=="string"?f:f.id||f.name).filter(Boolean):[];return{fetchProviders:async()=>{const d=await dt(c);if(d.error)throw new Error(d.error);return u(d.providers||d.available_providers||d.items).map(f=>({name:f}))},fetchModels:async d=>{var m,p,w;const f=await dt(`${i}&provider=${encodeURIComponent(d)}`);if(f.error)throw new Error(f.error);return u(((m=f.models_by_provider)==null?void 0:m[d])||((p=f.tts_models_by_provider)==null?void 0:p[d])||((w=f.music_models_by_provider)==null?void 0:w[d])||f.models||f.items)}}}const oN=["gateway_default","on","off"],ev={status:"loading"};function iN(e,t){if(t)return{status:"unsupported",reason:`the gateway's capabilities could not be read (${t})`};const n=e==null?void 0:e.capabilities,a=n==null?void 0:n.streaming;return!a||typeof a!="object"||a.deltas!==!0?{status:"unsupported",reason:"not supported by this gateway (it does not advertise live replies)"}:{status:"supported",gatewayDefault:typeof a.default=="boolean"?a.default:null}}function lN(e){return oN.includes(e)?e:"gateway_default"}function cN(e,t){return e==="on"&&t.status!=="supported"?"gateway_default":e}function uN(e,t,n){if(e!=="on"||t.status!=="unsupported"||!n.length)return null;const a=n.find(i=>i.role==="user")||n[0];return{after:a.id?String(a.id):null,message:{id:"stream-replies:unsupported",role:"system",level:"info",title:"Stream replies",content:`Streaming is on in your settings but this gateway does not support live replies: ${t.reason}. Replies appear when they are complete.`}}}function dN(e){try{const t=JSON.parse(e);return typeof(t==null?void 0:t.call_id)=="string"&&t.call_id?t.call_id:""}catch{return""}}function fN(e,t){const n=dN(e.frame.data),a=n?`call:${n}`:`error:${e.error.message}`;return{after:t,message:{id:`stream-replies:malformed:${e.runId}:${a}`,role:"system",level:"warn",title:"Live reply",runId:e.runId,content:`The gateway sent a malformed live reply update (${e.frame.event}): ${e.error.message}. It was skipped; the complete reply still arrives.`}}}function hN(e,t){return e.some(n=>n.message.id===t.message.id)?[...e]:[...e,t]}function mN(e,t){const n=t.filter(d=>!!d);if(!n.length)return[...e];const a=[],i=new Set;for(const d of e){a.push(d);for(const f of n)!i.has(f)&&f.after!==null&&String(d.id)===f.after&&(a.push(f.message),i.add(f))}const c=n.filter(d=>!i.has(d)&&d.after===null),u=n.filter(d=>!i.has(d)&&d.after!==null);return[...c.map(d=>d.message),...a,...u.map(d=>d.message)]}function pN(e){return e.status==="supported"&&e.gatewayDefault!==null?`Gateway default (${e.gatewayDefault?"on":"off"})`:"Gateway default"}const Ft="@default",$n="abstractcode.agent.v1";function $s(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Cn(e){return typeof e=="string"&&e.trim()?e.trim():void 0}const gN="gateway does not report a default agent workflow";function yN(e,t=$n){var p,w;const n=$s(e);if(!n)return{status:"unavailable",reason:"the gateway's workflow list could not be loaded"};const a=$s(n.default_agent_workflows);if(!a)return{status:"unavailable",reason:gN};const i=$s(a[t]);if(!i){const _=Cn((w=$s((p=$s(n.default_agent_workflows_unavailable))==null?void 0:p[t]))==null?void 0:w.reason);return{status:"unavailable",reason:_?`no default workflow for ${t}: ${_}`:`gateway reports no default workflow for ${t}`}}const c=Cn(i.bundle_id),u=Cn(i.flow_id),d=Cn(i.registry_scope);if(!c||!u||!d)return{status:"unavailable",reason:`gateway's default workflow for ${t} is missing its bundle, flow or registry scope`};const f=Cn(i.bundle_version);return{status:"ok",workflow:{workflowId:Cn(i.workflow_id)??`${c}${f?`@${f}`:""}:${u}`,bundleId:c,...f?{bundleVersion:f}:{},flowId:u,registryScope:d,name:Cn(i.name)??u,...Cn(i.source)?{source:Cn(i.source)}:{}}}}function wN(e){if(e.status==="loading")return"Gateway default (loading…)";if(e.status==="unavailable")return`Gateway default — ${e.reason}`;const{name:t,bundleVersion:n}=e.workflow;return`Gateway default → ${t}${n?` @${n}`:""}`}function vN(e,t,n=$n){if(e.status!=="ok")return null;const a=e.workflow,i=t.find(c=>(c.registryScope??"private")===a.registryScope&&c.bundleId===a.bundleId&&c.flowId===a.flowId&&(!a.bundleVersion||c.bundleVersion===a.bundleVersion));return i||{id:`${a.registryScope}:${a.workflowId}`,workflowId:a.workflowId,bundleId:a.bundleId,...a.bundleVersion?{bundleVersion:a.bundleVersion}:{},flowId:a.flowId,name:a.name,description:"",interfaces:[n],registryScope:a.registryScope}}function Xd(e,t=$n){if(!e||e.interfaces.includes(t))return"";const n=e.interfaces.length?e.interfaces.join(", "):"no interface";return`The gateway default ${e.name} does not declare ${t} (it declares ${n}); it will not run as a coding agent here.`}function _N(e){return((e==null?void 0:e.entries)??[]).map(t=>({id:`${t.registryScope}:${t.value}`,workflowId:t.value,bundleId:t.bundleId,...t.bundleVersion?{bundleVersion:t.bundleVersion}:{},flowId:t.flowId,name:t.name,description:t.description,interfaces:t.interfaces,registryScope:t.registryScope}))}function bN(e,t){return e===Ft?Gc:(t==null?void 0:t.workflowId)??e}function xN(e,t){return e===Gc||!t?Ft:`${t.registryScope}:${t.value}`}function kN(e){const t=n=>n===Ft||e.visible.some(a=>a.id===n)||!!e.runId&&e.workflows.some(a=>a.id===n);return e.selection&&t(e.selection)?e.selection:e.preferred&&t(e.preferred)?e.preferred:Ft}function sh(e){var n,a;const t=$s((a=$s((n=$s(e))==null?void 0:n.input_data))==null?void 0:a.workflow_selection);return Cn(t==null?void 0:t.source)}function jN(e){var t;return sh(e.restoredInputs)==="gateway_default"?Ft:(t=e.restored)==null?void 0:t.id}function SN(e){return!$s(e)||sh(e)?"":"This gateway does not record whether this conversation used the gateway default workflow; its next turn uses the workflow its last run used."}function NN(e){return e.selection===Ft?{flow_id:Ft,interface:e.interfaceId??$n,session_id:e.sessionId,input_data:e.input}:{bundle_id:e.workflow.bundleId,bundle_version:e.workflow.bundleVersion,registry_scope:e.workflow.registryScope,flow_id:e.workflow.flowId,session_id:e.sessionId,input_data:e.input}}function CN(e){const t=$s(e);if(!t)return{text:"the gateway did not report which workflow it started",missing:!0};const n=Cn(t.name)??Cn(t.workflow_id)??Cn(t.flow_id)??"unnamed workflow",a=Cn(t.bundle_version);return{text:`running ${n}${a?` @${a}`:""}${t.source==="gateway_default"?" (gateway default)":""}`,missing:!1}}const qd=25,EN=4,AN=e=>`runs?root_only=true&include_ledger_len=false&include_metrics=true&limit=${e}`;function $N(e){const t=(e==null?void 0:e.items)??(e==null?void 0:e.runs);return Array.isArray(t)?t.length:0}async function TN(e,t){let n=Math.max(1,t)*EN;for(;;){const a=await e(n);if((a==null?void 0:a.has_more)!==!0||$N(a)<n||Lc(a).length>t)return a;n*=2}}function RN(e,t){return{sessions:e.slice(0,t),hasMore:e.length>t}}const Zd={gatewayDefault:{status:"loading"},executable:{status:"idle",data:null,error:""},workflows:[],policy:null,tools:[],sessions:[],capabilities:{},capabilitiesLoading:!0,streaming:ev,loading:!1,sessionsLoaded:!1,errors:[],hasMore:!1,archivedSessions:0};function IN(e){var n;const t=((n=e==null?void 0:e.capabilities)==null?void 0:n.contracts)??(e==null?void 0:e.contracts)??e;return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function MN(e,t){const[n,a]=y.useState(Zd),i=y.useRef(qd),c=y.useRef(0),u=y.useRef(),d=y.useRef(0),f=y.useRef(),m=y.useRef({identity:"",values:{}}),p=y.useCallback(S=>TN(E=>dt(we(AN(E)),{signal:S}),i.current),[]),w=S=>RN(Lc(S,m.current.values),i.current),_=y.useCallback(async(S,E,N)=>{const C=()=>d.current!==E||N.aborted,$=w(S).sessions.filter(R=>!R.prompt&&!(R.firstRunId in m.current.values));for(let R=0;R<$.length;R+=4){if(C()||(await Promise.all($.slice(R,R+4).map(async D=>{try{const M=await dt(we(`runs/${encodeURIComponent(D.firstRunId)}/input_data`),{signal:N});C()||(m.current.values[D.firstRunId]=M)}catch(M){!N.aborted&&(M==null?void 0:M.status)===401&&t()}})),C()))return;a(D=>({...D,sessions:w(S).sessions}))}},[t]),b=y.useCallback(async()=>{var N;if(!e)return;const S=++d.current;(N=f.current)==null||N.abort();const E=new AbortController;f.current=E,a(C=>({...C,loading:!0}));try{const C=await p(E.signal);if(d.current!==S)return;const $=w(C);a(R=>({...R,loading:!1,sessions:$.sessions,sessionsLoaded:!0,hasMore:$.hasMore,archivedSessions:yg(C),errors:R.errors.filter(D=>!D.startsWith("Conversations: "))})),await _(C,S,E.signal)}catch(C){if(E.signal.aborted||d.current!==S)return;(C==null?void 0:C.status)===401&&t(),a($=>({...$,loading:!1,errors:[...$.errors.filter(R=>!R.startsWith("Conversations: ")),`Conversations: ${bt(C)}`]}))}},[e,p,_,t]),A=y.useCallback(async()=>{var O,te;const S=++c.current,E=++d.current;(O=f.current)==null||O.abort(),(te=u.current)==null||te.abort();const N=new AbortController;if(u.current=N,m.current.identity!==e&&(m.current={identity:e,values:{}}),!e){a(Zd);return}a(P=>({...P,loading:!0,capabilitiesLoading:!0,errors:[],executable:{...P.executable,status:"loading",error:""}}));const C=P=>dt(we(P),{signal:N.signal}),$=await Promise.allSettled([C("bundles?all_versions=true&include_drafts=false"),C("workspace/policy"),C("discovery/tools"),p(N.signal),C("discovery/capabilities"),C("workflow-catalog?scope=tenant"),C("config/capability-defaults"),C(Dy($n))]);if(c.current!==S)return;const R=P=>$[P].status==="fulfilled"?$[P].value:void 0,D=[];$.forEach((P,Z)=>{var W,ne;P.status==="rejected"&&(((W=P.reason)==null?void 0:W.status)===401&&t(),!(Z===5&&[403,404,501].includes((ne=P.reason)==null?void 0:ne.status))&&Z!==7&&D.push(`${["Workflows","Workspace policy","Tools","Conversations","Capabilities","Shared workflows","Gateway defaults"][Z]}: ${bt(P.reason)}`))});const M=d.current===E,J=w(R(3));let V;if($[7].status==="rejected")V={status:"error",data:null,error:`Workflows for this app: ${bt($[7].reason)}`};else try{V={status:"ready",data:vk(R(7),$n),error:""}}catch(P){V={status:"error",data:null,error:String((P==null?void 0:P.message)||P)}}a(P=>({executable:V,workflows:I1(R(0),R(5)),policy:R(1)?O1(R(1)):null,tools:P1(R(2)),sessions:M&&R(3)?J.sessions:P.sessions,sessionsLoaded:P.sessionsLoaded||!!(M&&R(3)),capabilities:IN(R(4)),capabilitiesLoading:!1,streaming:iN(R(4),$[4].status==="rejected"?bt($[4].reason):void 0),defaultModel:rN(R(6)),gatewayDefault:yN(R(0)),loading:!1,errors:D,hasMore:M&&R(3)?J.hasMore:P.hasMore,archivedSessions:M&&R(3)?yg(R(3)):P.archivedSessions})),M&&R(3)&&await _(R(3),E,N.signal)},[e,t,p,_]);y.useEffect(()=>(i.current=qd,a(Zd),A(),()=>{var S,E;c.current+=1,d.current+=1,(S=u.current)==null||S.abort(),(E=f.current)==null||E.abort()}),[A]);const x=y.useCallback(()=>{i.current+=qd,b()},[b]),j=y.useCallback(S=>{a(E=>({...E,sessions:E.sessions.filter(N=>N.sessionId!==S),archivedSessions:E.archivedSessions+1})),b()},[b]);return{...n,refresh:A,loadMore:x,forgetSession:j}}async function ef(e){if(e.inputSchema)return wg(e.inputSchema);if(!e.bundleId)return;const t=encodeURIComponent(e.bundleId),n=encodeURIComponent(e.flowId),a=e.registryScope==="tenant_catalog"&&e.bundleVersion?we(`workflow-catalog/${t}/versions/${encodeURIComponent(e.bundleVersion)}/flows/${n}/input_schema?scope=tenant`):we(`bundles/${t}/flows/${n}/input_schema${e.bundleVersion?`?bundle_version=${encodeURIComponent(e.bundleVersion)}`:""}`),i=await dt(a),c=wg(i);if(!c||i!=null&&i.native_loop_factory||(i==null?void 0:i.version)!==1||!Array.isArray(i==null?void 0:i.inputs)||!(i!=null&&i.input_data_schema)||!Array.isArray(c.required)||!c.required.length)return c;const u=e.bundleVersion||i.bundle_version;if(!u)throw new Error("The Gateway did not identify the workflow version. Refresh workflows and retry.");const d={bundle_id:e.bundleId,bundle_version:u,flow_id:e.flowId},f=w=>{for(const[_,b]of Object.entries(d))if((w==null?void 0:w[_])!==b)throw new Error("The Gateway returned inputs for a different workflow version. Refresh workflows and retry.");if(e.registryScope==="tenant_catalog"&&(w==null?void 0:w.registry_scope)!=="tenant_catalog")throw new Error("The Gateway returned inputs from a different workflow registry. Refresh workflows and retry.")};f(i);const m=e.registryScope==="tenant_catalog"?we(`workflow-catalog/${t}/versions/${encodeURIComponent(u)}/flows/${n}?scope=tenant`):we(`bundles/${t}/flows/${n}?bundle_version=${encodeURIComponent(u)}`),p=await dt(m);return f(p),tN(c,p.flow)}const tf=e=>we(`runs/${encodeURIComponent(e)}`);function LN(e){return{getRun:(t,n)=>dt(tf(t),{signal:n}),getHistory:(t,n)=>dt(`${tf(t)}/history_bundle?include_subruns=true&include_session=true&ledger_mode=full`,{signal:n}),getLedger:(t,n,a)=>dt(`${tf(t)}/ledger?after=${n}&limit=200`,{signal:a}),streamLedger:(t,n,a,i,c,u)=>Dn.stream_ledger(t,{after:n,on_step:a,signal:i,on_open:c,on_delta:u,on_delta_error:(d,f)=>e.onDeltaError({runId:t,error:d,frame:f})}),submitCommand:(t,n)=>dt(we("commands"),{method:"POST",body:JSON.stringify(t),signal:n})}}function Es(e){return typeof e=="string"?e.trim():""}function ON(e){const t=e&&typeof e=="object"&&!Array.isArray(e)?e:{},a=(Array.isArray(t.skills)?t.skills:[]).flatMap(d=>{const f=d&&typeof d=="object"&&!Array.isArray(d)?d:null,m=Es(f==null?void 0:f.name);if(!f||!m)return[];const p=f.source&&typeof f.source=="object"&&!Array.isArray(f.source)?f.source:void 0;return[{name:m,description:Es(f.description),trustLevel:Es(f.trust_level)||"unverified",blocked:f.blocked===!0,requiresReview:f.requires_review===!0,reasons:Array.isArray(f.reasons)?f.reasons.map(Es).filter(Boolean):[],source:p?{source:Es(p.source),binding:Es(p.binding),ambiguous:p.ambiguous===!0}:void 0}]}),i=Array.isArray(t.warnings)?t.warnings.map(Es).filter(Boolean):[],c=Es(t.shelf),u=Es(t.shelf_source);return{skills:a.sort((d,f)=>d.name.localeCompare(f.name)),warnings:i,...c?{shelf:c}:{},...u?{shelfSource:u}:{}}}function PN({inventory:e}){return r.jsxs("div",{className:"code-skills-empty",role:"status",children:[r.jsx("p",{children:r.jsx("strong",{children:"This gateway offers no skills."})}),e.warnings.length?e.warnings.map((t,n)=>r.jsx("p",{children:e.shelf?t:`The gateway has no skill shelf: ${t}`},`${t}:${n}`)):r.jsx("p",{children:"The gateway gave no reason for the empty list."}),e.shelf?r.jsxs("p",{className:"code-field-help",children:["Skill shelf: ",r.jsx("code",{children:e.shelf}),e.shelfSource?` (source: ${e.shelfSource})`:""]}):r.jsx("p",{className:"code-field-help",children:"The gateway did not report a skill shelf location."})]})}function DN(e){var a;const t=e.trustLevel.replace(/[_-]+/g," "),n=(a=e.source)!=null&&a.source?`Adopted from ${e.source.source}`:"Source has no adoption record";return`Trust: ${t}. ${n}${e.requiresReview?". Review required":""}.`}function FN({skill:e,checked:t,disabled:n,onChange:a,lockedReasonId:i}){const c=e.reasons.join(" ")||"Blocked by gateway policy.",u=e.blocked?`Blocked by the gateway: ${c}`:n?"Available when a gateway is connected and no run is in progress.":null;return r.jsx("div",{className:"code-field code-skill-row",children:r.jsx(Or,{variant:"row",action:"skill",label:e.name,description:r.jsxs(r.Fragment,{children:[e.description?r.jsx("span",{className:"code-skill-row__desc",children:e.description}):null,r.jsx("span",{className:"code-skill-row__trust",children:DN(e)})]}),checked:t,unavailableReason:u,describedBy:!e.blocked&&n?i:void 0,onChange:a})})}function zN({value:e,onChange:t,disabled:n,lockedReasonId:a}){const[i,c]=y.useState({skills:[],warnings:[]}),[u,d]=y.useState(""),[f,m]=y.useState(!0),[p,w]=y.useState(""),[_,b]=y.useState(0);y.useEffect(()=>{const S=new AbortController;return m(!0),w(""),dt(we("skills"),{signal:S.signal}).then(E=>{S.signal.aborted||c(ON(E))}).catch(E=>{S.signal.aborted||w(bt(E))}).finally(()=>{S.signal.aborted||m(!1)}),()=>S.abort()},[_]);const A=y.useMemo(()=>new Set(e.map(Es).filter(Boolean)),[e]),x=y.useMemo(()=>{const S=u.trim().toLocaleLowerCase();return S?i.skills.filter(E=>`${E.name}
|
|
89
|
-
${E.description}
|
|
90
|
-
${E.trustLevel}`.toLocaleLowerCase().includes(S)):i.skills},[i.skills,u]),j=(S,E)=>{const N=E?[...A,S]:[...A].filter(C=>C!==S);t([...new Set(N)])};return r.jsxs("section",{className:"code-settings-section","aria-labelledby":"code-skills-heading",children:[r.jsx("h3",{id:"code-skills-heading",children:"Skills"}),r.jsx("p",{className:"code-muted",children:"Choose curated guidance for the next turn. The gateway evaluates trust and requirements when the run starts; this browser does not load or execute skill scripts."}),r.jsxs("label",{className:"code-field",children:["Find a skill",r.jsx("input",{type:"search",value:u,onChange:S=>d(S.target.value),disabled:n||f,placeholder:"Search names, descriptions, or trust"})]}),f?r.jsx("p",{className:"code-muted",role:"status",children:"Loading skills from the gateway…"}):null,p?r.jsxs("div",{className:"code-inline-error",role:"alert",children:["Skill selection is unavailable: ",p," ",r.jsx("button",{className:"code-text-button",type:"button",onClick:()=>b(S=>S+1),disabled:n,children:"Retry"})]}):null,i.warnings.length&&i.skills.length?r.jsxs("details",{className:"code-disabled-tools",children:[r.jsxs("summary",{children:["Gateway reported ",i.warnings.length," skills warning",i.warnings.length===1?"":"s"]}),i.warnings.map((S,E)=>r.jsx("p",{children:S},`${S}:${E}`))]}):null,!f&&!p&&!i.skills.length?r.jsx(PN,{inventory:i}):null,!f&&!p&&i.skills.length&&!x.length?r.jsx("p",{className:"code-muted",children:"No skills match your search."}):null,x.map(S=>r.jsx(FN,{skill:S,checked:A.has(S.name),disabled:n,lockedReasonId:a,onChange:E=>j(S.name,E)},S.name))]})}function tv(e,t,n="default"){const a=e.filter(c=>c.enabled&&!c.servedDisabled&&(t.mode==="all"||t.selected.includes(c.name))),i=c=>{const u=t.approval[c.name];if(u==="ask")return!1;if(u==="approve"||n==="all")return!0;const d=["auto","approve"].includes((c.approval||"").trim().toLowerCase());if(n==="default")return d;const f=d?1:["write_file","edit_file"].includes(c.name)?2:3,m=c.riskRank===void 0||c.riskRank===1?1:c.riskRank===2?2:3;return Math.max(f,m)<=(n==="write"?2:1)};return{enabledTools:a.map(c=>c.name),autoApproveTools:a.filter(i).map(c=>c.name),requireApprovalTools:a.filter(c=>!i(c)).map(c=>c.name)}}function WN(e,t){if(!Array.isArray(t))return e;const n=a=>t.includes(a);return{enabledTools:e.enabledTools.filter(n),autoApproveTools:e.autoApproveTools.filter(n),requireApprovalTools:e.requireApprovalTools.filter(n)}}const BN="code-settings-locked",us={provider:"",model:"",reasoning:"",maxIterations:"",maxTokens:"",system:"",workspace:null,tools:{mode:"all",selected:[],approval:{}},toolsCustomized:!1,permissions:"default",skills:[],workflow:"@default",streamReplies:"gateway_default"};function UN({tab:e,value:t,onChange:n,tools:a,disabled:i,defaultModel:c,workflowDefault:u,streaming:d=ev,lockedReasonId:f=BN,workspaceRootFixed:m,hideStreamReplies:p,lockedText:w,connected:_=!1,automationFolders:b=!1,workspaceRequest:A,sessionId:x,onOpenDefaultWorkspaces:j,workspaceRefreshKey:S}){const E=N=>n({...t,...N});return r.jsxs(r.Fragment,{children:[i?r.jsx("p",{className:"code-notice",id:f,children:w||"Settings are unavailable while disconnected or while a run is active. Reconnect, or finish or stop the run, then try again."}):null,e==="model"?r.jsxs(r.Fragment,{children:[r.jsx("section",{className:"code-settings-section","aria-label":"Model",children:r.jsx(Wc,{defaultModeLabel:u?"Workflow default":"Gateway default",value:t,onChange:E,disabled:i,effectiveDefault:c,fetchModelCapabilities:nh.fetchModelCapabilities,enableSpeculation:!0,inheritLabel:"Gateway default",defaultHint:c?`${u?"Workflow":"Gateway"} default: ${c.provider} · ${c.model}.`:void 0,fetchProviders:async()=>{const N=await Dn.discovery_providers();return Array.isArray(N.providers)?N.providers:Array.isArray(N.items)?N.items:[]},fetchModels:async N=>{const C=await Dn.discovery_provider_models(N);return(Array.isArray(C.models)?C.models:Array.isArray(C.items)?C.items:[]).map($=>typeof $=="string"?$:$.id||$.name)}})}),r.jsxs("section",{className:"code-settings-section",children:[r.jsx("h3",{children:"Behavior"}),r.jsxs("div",{className:"code-field-pair",children:[r.jsxs("label",{className:"code-field",children:["Iteration limit",r.jsx("input",{type:"number",min:1,step:1,placeholder:"Workflow default",value:t.maxIterations,disabled:i,onChange:N=>E({maxIterations:N.target.value})})]}),r.jsxs("label",{className:"code-field",children:["Context token limit",r.jsx("input",{type:"number",min:1,step:1,placeholder:"Gateway default",value:t.maxTokens,disabled:i,onChange:N=>E({maxTokens:N.target.value})})]})]}),r.jsxs("label",{className:"code-field",children:["Additional instructions",r.jsx("textarea",{rows:5,value:t.system,placeholder:"Project conventions or guidance for this conversation…",disabled:i,onChange:N=>E({system:N.target.value})})]}),r.jsx("p",{className:"code-field-help",children:"Reasoning and additional instructions depend on the selected workflow and model."}),p?null:r.jsx(VN,{value:t.streamReplies,onChange:N=>E({streamReplies:N}),disabled:i,streaming:d})]})]}):e==="workspace"?r.jsxs("section",{className:"code-settings-section",children:[m?r.jsxs("p",{className:"code-field-help","data-setting":"workspace-root-fixed",children:["Runs work in the automation workspace ",r.jsx("code",{title:m,children:m.split(/[\\/]/).filter(Boolean).pop()||m}),"."]}):null,r.jsx(zw,{connected:_,request:A,sessionId:x,onOpenDefaults:j,refreshKey:S,automation:b?{value:t.workspace,onChange:N=>E({workspace:N})}:void 0})]}):e==="tools"?r.jsxs("section",{className:"code-settings-section",children:[r.jsxs("label",{className:"code-field",children:["Permissions",r.jsxs("select",{"aria-label":"Permissions",value:t.permissions,disabled:i,onChange:N=>E({permissions:N.target.value}),children:[r.jsx("option",{value:"default",children:"Gateway default"}),r.jsx("option",{value:"read",children:"Read"}),r.jsx("option",{value:"write",children:"Write"}),r.jsx("option",{value:"all",children:"All enabled tools"})]})]}),r.jsx("p",{className:"code-field-help",children:"Saved for this Gateway account and future turns. Permissions never enable an unchecked tool. Explicit Ask overrides still ask, even with permissions: all."}),r.jsx(db,{tools:a.filter(N=>N.enabled).map(N=>({...N,...N.sandboxState?{state:N.sandboxState}:{},default_approval:tv(a,t.tools,t.permissions).autoApproveTools.includes(N.name)?"approve":"ask"})),value:t.tools,onChange:N=>E({tools:N,toolsCustomized:!0}),disabled:i,subtitle:"Choose available tools and when they should ask you. Gateway restrictions always apply.",note:"An empty custom selection disables every tool. Approvals follow the permissions level and each tool's override."}),a.some(N=>!N.enabled)?r.jsxs("details",{className:"code-disabled-tools",children:[r.jsxs("summary",{children:[a.filter(N=>!N.enabled).length," tools unavailable under gateway policy"]}),a.filter(N=>!N.enabled).map(N=>r.jsxs("p",{children:[r.jsx("strong",{children:N.name}),r.jsx("br",{}),N.whyDisabled||"Disabled by the gateway"]},N.name))]}):null,r.jsx("button",{className:"code-text-button",disabled:i,onClick:()=>E({toolsCustomized:!1,tools:us.tools,permissions:"default"}),children:"Use gateway default"})]}):r.jsx(zN,{value:t.skills,onChange:N=>E({skills:N}),disabled:i,lockedReasonId:f})]})}function VN({value:e,onChange:t,disabled:n,streaming:a}){const i=a.status!=="supported",c=a.status==="unsupported"?`Unavailable: ${a.reason}. Replies appear when they are complete.`:a.status==="loading"?"Checking whether this gateway supports live replies…":"Show the reply while the model writes it. The complete reply replaces the live text when the model call ends.";return r.jsxs(r.Fragment,{children:[r.jsxs("label",{className:"code-field",children:["Stream replies",r.jsxs("select",{"aria-label":"Stream replies","aria-describedby":"code-stream-replies-help",value:e,disabled:n||i,onChange:u=>t(u.target.value),children:[r.jsx("option",{value:"gateway_default",children:pN(a)}),r.jsx("option",{value:"on",children:"On"}),r.jsx("option",{value:"off",children:"Off"})]})]}),r.jsx("p",{id:"code-stream-replies-help",className:"code-field-help","data-streaming":a.status,children:c})]})}function nv(e){return`abstractcode.workspace.v2:${e}`}function HN(e){try{const{showAllWorkflows:t,...n}=JSON.parse(e||"{}"),a=typeof n.workflow=="string"&&n.workflow.trim()?n.workflow.trim():us.workflow;return{...us,...n,workflow:a,speculation:Gg(n.speculation),streamReplies:lN(n.streamReplies),tools:{...us.tools,...n.tools}}}catch{return us}}function sv(e){try{return HN(localStorage.getItem(nv(e)))}catch{return us}}function GN(e,t){const{workflow:n,...a}=t,i=n&&n!=="@default"?t:a;try{localStorage.setItem(nv(e),JSON.stringify(i))}catch{}}const $f=we("accounts/me/preferences");function Tf(e){var n;const t=oa((n=oa(e))==null?void 0:n.time_zone);if(!t||!Array.isArray(t.choices)||typeof t.gateway_default!="string"||typeof t.effective!="string")throw new Error("The gateway's account preferences answer has no time_zone block (choices, gateway_default, effective).");return{value:typeof t.value=="string"&&t.value?t.value:null,gateway_default:t.gateway_default,effective:t.effective,label:typeof t.label=="string"?t.label:"Time zone",help:typeof t.help=="string"?t.help:"",choices:t.choices.map(String)}}function oa(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Rf(e,t=$n){var i;const n=oa(e);if(!n||!Array.isArray(n.apps)||!oa((i=oa(n.preferences))==null?void 0:i.default_workflow))throw new Error("The gateway's account preferences answer has no apps or default_workflow.");const a=n.apps.map(oa).find(c=>(c==null?void 0:c.interface)===t);if(!a)throw new Error(`The gateway's account preferences have no row for ${t}.`);if(typeof a.gateway_default_label!="string"||!Array.isArray(a.choices))throw new Error(`The gateway's account preferences row for ${t} has no gateway_default_label or choices.`);return{interface:t,value:typeof a.value=="string"&&a.value.trim()?a.value:null,state:typeof a.state=="string"?a.state:"default",reason:typeof a.reason=="string"&&a.reason?a.reason:null,gatewayDefaultLabel:a.gateway_default_label,choices:a.choices.map(oa).filter(Boolean).map(c=>({value:String(c.value),label:String(c.label??c.name??c.value),workflowId:String(c.workflow_id??"")}))}}function KN(e){const t=String(e||"").trim();if(!t||t===Ft)return null;const n=t.startsWith("tenant_catalog:")?"catalog":t.startsWith("private:")?"private":"",a=n?t.slice(t.indexOf(":")+1):t,i=a.indexOf(":");if(i<=0)return null;const c=a.slice(0,i).split("@")[0],u=a.slice(i+1);return!c||!u?null:n==="catalog"?`catalog:${c}:${u}`:`${c}:${u}`}function JN(e,t){if(!e)return Ft;const n=e.startsWith("catalog:"),a=n?e.slice(8):e,i=a.indexOf(":");if(i<=0)return Ft;const c=a.slice(0,i),u=a.slice(i+1),d=t.find(f=>f.bundleId===c&&f.flowId===u&&(f.registryScope??"private")==="private"!==n);return d?d.id:Ft}function QN(e){return e instanceof Error?e.message:String(e)}function vg(e){const t=e;return typeof(t==null?void 0:t.status)=="number"?t.status:0}async function YN(e,t,n){let a,i;try{const c=await e($f);a=Rf(c),i=Tf(c)}catch(c){return vg(c)===404?{status:"unsupported"}:{status:"error",message:QN(c)}}if(t&&t!==Ft){let c=!0;if(a.value===null){const u=KN(t);if(u)try{const d=await e($f,{method:"PUT",body:JSON.stringify({default_workflow:{[$n]:u}})});a=Rf(d),i=Tf(d)}catch(d){c=vg(d)===400}}c&&n()}return{status:"ok",row:a,timeZone:i}}function XN(e,t){const[n,a]=y.useState({status:"loading"}),i=y.useRef(t);i.current=t,y.useEffect(()=>{let f=!0;if(a({status:"loading"}),!!e)return YN(dt,sv(e).workflow,()=>{f&&i.current()}).then(m=>{f&&a(m)}),()=>{f=!1}},[e]);const c=y.useCallback(async f=>{const m=await dt($f,{method:"PUT",body:JSON.stringify(f)}),p=Rf(m),w=Tf(m);return a({status:"ok",row:p,timeZone:w}),{row:p,timeZone:w}},[]),u=y.useCallback(async f=>(await c({default_workflow:{[$n]:f}})).row,[c]),d=y.useCallback(async f=>(await c({time_zone:f})).timeZone,[c]);return{state:n,save:u,saveTimeZone:d}}function qN(e){const{row:t}=e,[n,a]=y.useState(!1),[i,c]=y.useState(null),u=t.value??"",d=t.choices.some(f=>f.value===u);return r.jsxs("div",{className:"code-account-workflow","data-account-workflow":!0,children:[r.jsxs("label",{className:"code-field",children:["Default for new conversations",r.jsxs("select",{"aria-label":"Default for new conversations",value:u,disabled:e.disabled||n,"aria-busy":n||void 0,onChange:async f=>{const m=f.target.value||null;a(!0),c(null);try{await e.save(m),c({ok:!0,text:"Saved."})}catch(p){c({ok:!1,text:`Not saved. ${p instanceof Error?p.message:String(p)}`})}finally{a(!1)}},children:[r.jsx("option",{value:"",children:t.gatewayDefaultLabel}),u&&!d?r.jsx("option",{value:u,children:`${u} (no longer runs)`}):null,t.choices.map(f=>r.jsx("option",{value:f.value,title:f.workflowId||void 0,children:f.label},f.value))]})]}),t.state==="broken"&&t.reason?r.jsx("p",{className:"code-field-help code-workflow-resolved is-missing",role:"alert","data-account-workflow-reason":!0,children:t.reason}):r.jsx("p",{className:"code-field-help",children:"Kept by the gateway for your account: the Assistant and every browser use the same choice. This conversation's workflow is picked above."}),i?r.jsx("p",{className:`code-field-help${i.ok?"":" is-error"}`,role:"status","data-account-workflow-note":!0,children:i.text}):null]})}function _g(e){const[t,n]=y.useState(!1),[a,i]=y.useState(null);return r.jsx("div",{className:"code-account-time-zone","data-account-time-zone":!0,children:r.jsx(Zj,{id:"code-account-time-zone",block:e.block,disabled:e.disabled||t,note:a,onChange:async c=>{n(!0),i(null);try{await e.save(c),i({ok:!0,text:"Saved."})}catch(u){i({ok:!1,text:`Not saved. ${u instanceof Error?u.message:String(u)}`})}finally{n(!1)}}})})}const bg=Bc("voice and camera")??"Voice and camera are not supported in this browser (getUserMedia unavailable).";function ZN(){var t;const e=globalThis.navigator;return typeof((t=e==null?void 0:e.mediaDevices)==null?void 0:t.getUserMedia)=="function"}function eC(e){var i;const t=globalThis.document;if(!t||!t.body||typeof t.execCommand!="function")return!1;const n=t.createElement("textarea");n.value=e,n.setAttribute("readonly",""),n.style.position="fixed",n.style.top="0",n.style.left="-9999px",n.style.opacity="0";const a=t.activeElement;t.body.appendChild(n);try{return n.select(),n.setSelectionRange(0,e.length),t.execCommand("copy")===!0}catch{return!1}finally{t.body.removeChild(n);try{(i=a==null?void 0:a.focus)==null||i.call(a)}catch{}}}async function tC(e){var a;const t=String(e??""),n=globalThis.navigator;if(typeof((a=n==null?void 0:n.clipboard)==null?void 0:a.writeText)=="function")try{return await n.clipboard.writeText(t),!0}catch{}return eC(t)}async function rh(e){const t=String(e??"");return t?tC(t):!1}const nC=3,xg=["KB","MB","GB","TB"];function Mi(e){const t=Math.max(0,Number(e)||0);if(t<1024)return`${t} B`;let n=t/1024,a=0;for(;n>=1024&&a<xg.length-1;)n/=1024,a+=1;return`${n<10?Math.round(n*10)/10:Math.round(n)} ${xg[a]}`}function kg(e){return`${Math.round(e).toLocaleString("en-US")} bytes`}function rv(e,t){if(!t||!(t>0)||e.size<=t)return null;let n=Mi(e.size),a=Mi(t);return n===a&&(n=kg(e.size),a=kg(t)),`${e.name||"This file"} is ${n}; the gateway accepts files up to ${a}.`}function sC(e){return`Upload failed: ${String(e||"").replace(/^attachments_upload failed:?\s*/i,"").trim()||"the gateway did not say why"}`}function rC(e,t,n){return e.map(a=>{const i=rv(a,t);return{id:n(),file:a,name:a.name||"Untitled file",size:a.size,status:i?"refused":"queued",...i?{message:i}:{}}})}async function aC(e,t,n){let a=0;const i=Array.from({length:Math.max(1,Math.min(Math.floor(t)||1,e.length))},async()=>{for(;a<e.length;){const c=e[a];a+=1,await n(c)}});await Promise.all(i)}function Pc(e){return`${e} ${e===1?"file":"files"}`}function jg(e,t){const n=[];return e&&n.push(`${Pc(e)} attached`),t&&n.push(`${Pc(t)} could not be attached`),n.join(", ")}function oC(e){const t=e.filter(i=>i.status==="queued"||i.status==="uploading").length;if(t)return`Wait for ${Pc(t)} to finish uploading.`;const n=e.filter(i=>i.status==="failed"||i.status==="refused");if(!n.length)return null;const a=n.some(i=>i.status==="failed");return n.length===1?`"${n[0].name}" was not attached. ${a?"Retry or remove":"Remove"} it before sending.`:`${Pc(n.length)} were not attached. ${a?"Retry or remove":"Remove"} them before sending.`}const iC=e=>we(`runs/${encodeURIComponent(e)}/workspace`),Dc=(e,t)=>fetch(e,{...t,credentials:"same-origin"});async function av(e){await dt(`${iC(e)}/open`,{method:"POST"})}function Sg(e,t){return typeof e.size_bytes!="number"?null:rv({name:e.name,size:e.size_bytes},t)}function lC(e,t){return t?t.status==="refused"?`Not attached: ${t.message||"refused by the gateway's attachment policy"}`:`${e} is uploading; its chip in the message box shows when it is attached.`:`${e} was not queued for upload.`}async function cC(e,t,n,a){const i=Sg(t,n);if(i)return`Not attached: ${i}`;const c=new AbortController,u=await fetch(Ew(e,t.path),{credentials:"same-origin",signal:c.signal});if(!u.ok)throw new Error(`Could not read ${t.name} (${u.status}): ${await u.text()}`);const d=Sg({...t,size_bytes:Sw(u)},n);if(d)return c.abort(),`Not attached: ${d}`;const f=await u.blob(),[m]=a([new File([f],t.name,{type:f.type})]);return lC(t.name,m)}function uC({runId:e,enabled:t,refreshKey:n,maxAttachmentBytes:a,onAttachFiles:i,heading:c="Conversation files"}){const[u,d]=y.useState(""),[f,m]=y.useState("");return e?r.jsxs(r.Fragment,{children:[u?r.jsx("p",{className:"code-field-help",role:"status",children:u}):null,t?r.jsx(qf,{fetchGateway:Dc,runId:e,title:c,refreshKey:n,className:"code-workspace-browser",copyText:rh,onOpenFolder:()=>av(e),fileActions:p=>r.jsx("button",{type:"button",className:"af-file-viewer__icon-btn","data-action":"attach-file",title:"Attach to the next message","aria-label":`Attach ${p.name} to the next message`,disabled:f===p.path,onClick:()=>{m(p.path),d(""),cC(e,p,a,i).then(d).catch(w=>d(bt(w))).finally(()=>m(""))},children:r.jsx(se,{name:f===p.path?"loader":"paperclip",size:15})})},e):null]}):r.jsxs("div",{className:"code-pane-empty",children:[r.jsx(se,{name:"folder",size:28}),r.jsx("p",{children:"This conversation's files appear here."}),r.jsx("small",{children:"Start a conversation; the files its workflow creates and edits are listed and previewed here."})]})}const dC=new Set(["abstract.progress","abstractcode.progress"]);function lo(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function ia(e){const t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function fC(e){if(!lo(e))return null;const t=lo(e.effect)?e.effect:null;if(!t||String(t.type||"")!=="emit_event")return null;const n=lo(t.payload)?t.payload:null,a=String((n==null?void 0:n.name)??(n==null?void 0:n.event_name)??"").trim();if(!dC.has(a))return null;const i=lo(e.result)?e.result:null,c=lo(i==null?void 0:i.payload)?i==null?void 0:i.payload:null,u=lo(n==null?void 0:n.payload)?n==null?void 0:n.payload:null,d=c||u;if(!d||String(d.kind||"")!=="llm")return null;const f=String(d.phase||"").trim();return f!=="prefill"&&f!=="generate"&&f!=="complete"?null:d}function hC(e){let t=null;for(const n of e||[]){const a=fC(n);a&&(t=a)}return!t||t.phase==="complete"||t.final===!0?null:t}function po(e){return Math.round(e).toLocaleString()}function ov(e){if(!e||e.phase!=="prefill")return null;const t=ia(e.prompt_tokens),n=ia(e.prefill_processed_tokens);if(t===null||t<=0||n===null||n<0)return null;const a=Math.min(n,t),i=Math.min(99,Math.round(a/t*100));return{processed:a,total:t,percent:i}}function iv(e){return`${po(e.processed)} / ${po(e.total)} tokens (${e.percent}%)`}function mC(e){if(!e)return"";if(e.phase==="prefill"){const t=ov(e);if(t)return`Prefill · ${iv(t)}`;const n=ia(e.prompt_tokens);if(n===null||n<=0)return"Prefill";const a=ia(e.cached_tokens),i=ia(e.fed_tokens),c=[];a!==null&&a>0&&c.push(`${po(a)} cached`),i!==null&&i>0&&c.push(`${po(i)} new`);const u=c.length?` (${c.join(", ")})`:"";return`Prefill · ${po(n)} tokens${u}`}if(e.phase==="generate"){const t=ia(e.generated_tokens)??0,n=Math.round(t)===1?"token":"tokens",a=ia(e.tokens_per_second),i=a!==null&&a>0?` · ${Math.round(a)} tok/s`:"";return`Generating · ${po(t)} ${n}${i}`}return""}function pC(e){return mC(hC(e))}const lv=new Set(["abstract.progress","abstractcode.progress"]),gC=new Set(["abstract.status","abstractcode.status"]);function ze(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function ah(e){const t=ze(e);return!!(t&&t.$slim)}function Et(e){const t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function En(e){return Math.round(e).toLocaleString("en-US")}function Jt(e,t=120){const n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function $i(e,t=120){var i,c;if(e==null)return"";if(typeof e=="string")return Jt(e,t);if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e))return Jt(e.length===0?"[]":`${e.length} ${e.length===1?"item":"items"}`,t);const n=ze(e);if(!n)return"";if(ah(n)){const u=String(((i=n.$slim)==null?void 0:i.field)||""),d=Et((c=n.$slim)==null?void 0:c.bytes);return`${u||"payload"} stored${d?` · ${En(d)} bytes`:""}`}const a=[];for(const[u,d]of Object.entries(n)){const f=typeof d=="string"?Jt(d,60):typeof d=="number"||typeof d=="boolean"?String(d):Array.isArray(d)?`${d.length} items`:d==null?"":"{…}";if(f&&(a.push(`${u.replace(/_/g," ")} ${f}`),a.join(" · ").length>=t))break}return Jt(a.join(" · "),t)}function eu(e){return`${e>=100?String(Math.round(e)):e.toFixed(e<1?2:1).replace(/\.0+$/,"")} s`}function cv(e,t){const n=Date.parse(String(e||"")),a=Date.parse(String(t||""));if(!Number.isFinite(n)||!Number.isFinite(a))return null;const i=(a-n)/1e3;return i>=0?i:null}function yC(e){const t=String(e||""),n=/T(\d{2}:\d{2}:\d{2})/.exec(t);return n?n[1]:""}function uv(e){const t=String(e||"").trim();if(!t)return"";const n=t.split("/").pop()||t;return n.length>48?`${n.slice(0,47)}…`:n}function Qt(e,t=" · "){return e.filter(n=>!!n).join(t)}const Ng="visual_react_agent_";function wC(e){if(!/^[A-Za-z0-9_-]{8,}$/.test(e))return null;try{const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=atob(t+"=".repeat((4-t.length%4)%4));return!/^[ -~]{3,}$/.test(n)||!/[a-z]/i.test(n)?null:n}catch{return null}}function vC(e){const t=String(e||"").trim();if(!t)return{name:"",node:""};const n=/^([^@]+)@([^:]+)(?::(.+))?$/.exec(t);if(n)return{name:n[1],node:n[3]||""};if(t.startsWith(Ng)){const a=t.slice(Ng.length),i=/^(.*)_(\d+)_(\d+)_(\d+)_([0-9a-f]{6,12})_(.+)$/.exec(a);if(i){let c=i[1];if(c.includes("__")){const u=c.split("__").filter(Boolean);for(let d=u.length-1;d>=0;d-=1){const f=wC(u[d]);if(f&&f.length>3){c=f;break}}}return{name:c,node:i[6]}}return{name:a,node:""}}return{name:t,node:""}}function _C(e){var n;if(!Array.isArray(e)||!e.length)return"";const t=new Map;for(const a of e){const i=String(((n=ze(a))==null?void 0:n.name)||"").trim()||"tool";t.set(i,(t.get(i)||0)+1)}return[...t.entries()].map(([a,i])=>i>1?`${a} ×${i}`:a).join(", ")}function bC(e){var d;const t=ze(e);if(!t)return null;const n=ze(t.effect);if(!n||String(n.type||"")!=="emit_event")return null;const a=ze(n.payload),i=String((a==null?void 0:a.name)??(a==null?void 0:a.event_name)??"").trim();if(!lv.has(i))return null;const c=ze((d=ze(t.result))==null?void 0:d.payload),u=ze(a==null?void 0:a.payload);return c||u}function xC(e){if(!e.length)return"";const t=e[e.length-1];let n=null,a=null,i=null,c=null,u=null;for(const p of e)n=Et(p.prompt_tokens)??n,a=Et(p.cached_tokens)??a,i=Et(p.generated_tokens)??i,c=Et(p.tokens_per_second)??c,u=Et(p.elapsed_s)??u;if(t.final===!0||String(t.phase||"")==="complete")return Qt([n!==null?`${En(n)} tokens in`:null,a!==null&&a>0?`${En(a)} cached`:null,i!==null?`${En(i)} out`:null,u!==null?eu(u):null,c!==null&&c>0?`${Math.round(c)} tok/s`:null]);const f=n!==null?`prefill ${En(n)} tokens${a!==null&&a>0?` (${En(a)} cached)`:""}`:"prefill";if(String(t.phase||"")==="prefill"){const p=ov(t);return p?`prefill ${iv(p)}`:f}const m=Qt([`generating ${En(i??0)} ${Math.round(i??0)===1?"token":"tokens"}`,c!==null&&c>0?`${Math.round(c)} tok/s`:null]);return`${f} → ${m}`}function kC(e){if(!e.length)return"";const t=e[e.length-1],n=Et(t.step)??Et(t.index),a=Et(t.total)??Et(t.steps),i=Et(t.percent)??Et(t.progress),c=Et(t.frame),u=Et(t.elapsed_s);return Qt([typeof t.label=="string"?Jt(t.label,60):null,typeof t.phase=="string"&&!t.label?Jt(t.phase,40):null,n!==null?`step ${En(n)}${a!==null?`/${En(a)}`:""}`:null,c!==null?`frame ${En(c)}`:null,i!==null?`${Math.round(i<=1?i*100:i)}%`:null,u!==null?eu(u):null])}function Cg(e){return e.length?String(e[e.length-1].kind||"")==="llm"?xC(e):kC(e):""}function jC(e,t,n){var S;const a=String(e.provider||"").trim(),i=uv(e.model||(t==null?void 0:t.model)),c=Qt(["llm",a,i])||"llm call";if(!t){const E=ze(e.params)||{};return{title:c,detail:Qt([Et(E.temperature)!==null?`temperature ${E.temperature}`:null,E.thinking?`thinking ${E.thinking}`:null,(S=ze(E.speculation))!=null&&S.mode?`speculation ${ze(E.speculation).mode}`:null])}}const u=ze(t.usage)||{},d=ze(t.metadata)||{},f=ze(d.prompt_cache)||{},m=ze(d.performance)||{},p=Et(u.prompt_tokens)??Et(u.input_tokens),w=Et(u.completion_tokens)??Et(u.output_tokens),_=Et(f.cached_tokens),b=String(f.outcome||"").trim(),A=cv(n.started_at,n.ended_at),x=Et(m.generation_tokens_per_second),j=Array.isArray(t.tool_calls)?t.tool_calls.length:0;return{title:c,detail:Qt([p!==null?`${En(p)} tokens in`:null,_!==null&&_>0?`${En(_)} cached`:b?`${b} cache`:null,w!==null?`${En(w)} out`:null,A!==null?eu(A):null,x!==null&&x>0?`${Math.round(x)} tok/s`:null,j?`${j} tool ${j===1?"call":"calls"}`:null])}}function SC(e,t){if(t.length<=60)return Jt(t,60);if(e==="url")try{const n=new URL(t),a=n.pathname.split("/").filter(Boolean).pop()||"";return Jt(`${n.host}${a?` · …/${a}`:""}`,72)}catch{}if(e==="file path"||e==="path"){const n=t.split(/[\\/]/).pop()||t;return Jt(`${n} · ${t.slice(0,24)}…`,60)}return Jt(t,60)}function NC(e,t){const n=Array.isArray(e.tool_calls)?e.tool_calls:[],a=_C(n),i=ze(n[0]),c=i?fw(i.arguments):{label:"",value:""},u=Array.isArray(t==null?void 0:t.results)?t.results:[],d=u.filter(m=>{var p;return((p=ze(m))==null?void 0:p.success)===!0}).length,f=u.length-d;return{title:Qt(["tools",a||"tool call"]),detail:Qt([c.value?`${c.label} ${SC(c.label,c.value)}`:null,u.length?`${d} ok`:null,f>0?`${f} failed`:null])}}function CC(e,t){var m,p;const{name:n,node:a}=vC(e.workflow_id),i=ze(e.vars),c=i&&!ah(i)?i:null,u=ze(c==null?void 0:c.context),d=typeof(u==null?void 0:u.task)=="string"?u.task:typeof(c==null?void 0:c.request)=="string"?c.request:"",f=String(((p=ze((m=ze(t==null?void 0:t.wait))==null?void 0:m.details))==null?void 0:p.sub_run_id)||"").slice(0,8);return c&&typeof c.state=="string"&&!u?{title:"subflow · status",detail:Qt([Jt(c.state,80),f&&`run ${f}`])}:d?{title:"subflow · agent loop",detail:Qt([n,Jt(d,90),f&&`run ${f}`])}:{title:Qt(["subflow",n||"workflow"]),detail:Qt([a,c?$i(c,80):null,f&&`run ${f}`])}}function EC(e,t){const n=e.until,a=cv(t.started_at,n),i=yC(n);return{title:a!==null?`wait · delay ${eu(a)}`:`wait · until ${i}`,detail:Qt([a!==null&&i?`until ${i}`:null,e.resume_to_node?`resumes at ${e.resume_to_node}`:null])}}function Eg(e){var d;const t=ze(e)||{},n=ze(t.effect),a=String((n==null?void 0:n.type)||"").trim(),i=ze(n==null?void 0:n.payload)||{},c=ze(t.result);if(a==="emit_event"){const f=String(i.name??i.event_name??"").trim();if(lv.has(f))return{kind:"progress",title:"progress",detail:"",isProgress:!0,isStatus:!1,isResume:!1,hidden:!0};if(gC.has(f))return{kind:"event",title:"status",detail:$i(i.payload,80),isProgress:!1,isStatus:!0,isResume:!1,hidden:!0};const m=String(i.scope||"").trim();return{kind:"event",title:`event · ${f||"unnamed"}${m?` (${m})`:""}`,detail:$i(i.payload??(c==null?void 0:c.payload),110),isProgress:!1,isStatus:!1,isResume:!1,hidden:!1}}if(a==="resume")return{kind:"step",title:"resume",detail:String(i.wait_reason||""),isProgress:!1,isStatus:!1,isResume:!0,hidden:!0};const u={isProgress:!1,isStatus:!1,isResume:!1,hidden:!1};if(a==="llm_call")return{kind:"llm",...jC(i,c,t),...u};if(a==="tool_calls")return{kind:"tools",...NC(i,c),...u};if(a==="start_subworkflow")return{kind:"subflow",...CC(i,c),...u};if(a==="wait_until")return{kind:"wait",...EC(i,t),...u};if(a==="wait_event")return{kind:"wait",title:"wait · event",detail:Qt([typeof i.prompt=="string"?Jt(i.prompt,90):null,!i.prompt&&i.wait_key?Jt(String(i.wait_key),70):null]),...u};if(a==="ask_user")return{kind:"ask",title:"ask · your input",detail:Jt(String(i.prompt||((d=ze(c==null?void 0:c.wait))==null?void 0:d.prompt)||"").split(`
|
|
91
|
-
`)[0],110),...u};if(a==="answer_user")return{kind:"message",title:"message",detail:Jt(String(i.message||""),110),...u};if(!a){if((c==null?void 0:c.completed)===!0){const f=ze(c.output)||{},m=ze(f.stop_reason)||{},p=Et(f.iterations),w=Qt([String(m.code||f.outcome||"").replace(/_/g," ")||null,p!==null?`${En(p)} ${p===1?"iteration":"iterations"}`:null]),_=[f.answer,f.response,f.result].find(b=>typeof b=="string"&&b.trim());return{kind:"run",title:"run finished",detail:w||(typeof _=="string"?Jt(_,110):$i(f,110)),...u}}return{kind:"step",title:String(t.node_id||"workflow step"),detail:"",...u}}return{kind:"step",title:a.replace(/_/g," "),detail:$i(i,110),...u}}function AC(e,t,n){var c,u;const a=ze(e)||{},i=String(a.status||"").trim();if(a.error)return{status:"failed",statusLabel:"failed"};if(i==="failed")return{status:"failed",statusLabel:"failed"};if(i==="completed")return{status:"completed",statusLabel:"completed"};if(i==="waiting"){if(n)return{status:"completed",statusLabel:"completed"};const d=ze((c=ze(a.result))==null?void 0:c.wait);return String(((u=ze(d==null?void 0:d.details))==null?void 0:u.mode)||"")==="approval_required"?{status:"waiting",statusLabel:"approval needed"}:t==="subflow"?{status:"waiting",statusLabel:"waiting for subflow"}:t==="ask"?{status:"waiting",statusLabel:"waiting for you"}:t==="wait"?{status:"waiting",statusLabel:String((d==null?void 0:d.reason)||"")==="until"?"waiting":"waiting for event"}:{status:"waiting",statusLabel:"waiting"}}return i==="started"?{status:"started",statusLabel:"running"}:{status:i||"started",statusLabel:i||"running"}}function $C(e){var i;const t=ze(e.record)||{},n=String(((i=ze(t.effect))==null?void 0:i.type)||"(none)"),a=String(t.idempotency_key||t.step_id||e.cursor);return`${e.runId}|${n}|${a}|${t.attempt??1}`}function TC(e){var f;const t=e.map(m=>ze(m.record)||{}),n=t[t.length-1]||{},a={};for(const m of t){const p=ze((f=ze(m.effect))==null?void 0:f.payload);if(p)for(const[w,_]of Object.entries(p))ah(_)&&w in a||(a[w]=_)}let i=null,c=null,u=null,d=null;for(const m of t)m.result!==null&&m.result!==void 0&&(i=m.result),m.error!==null&&m.error!==void 0&&(c=m.error),!u&&m.started_at&&(u=m.started_at),m.ended_at&&(d=m.ended_at);return{...n,effect:n.effect?{...n.effect,payload:a}:n.effect,result:i,error:c,started_at:u,ended_at:d}}function RC(e){var n,a;const t=[];for(const i of e){const c=ze((a=ze((n=ze(i.record))==null?void 0:n.result))==null?void 0:a.wait),u=String((c==null?void 0:c.wait_key)||"").trim();u&&t.push(u)}return t}function IC(e,t){return`${e}|${String(t.step_id||t.node_id||"")}`}function MC(e,t){const n=new Map;for(const c of t){const u=bC(c.record);if(!u)continue;const d=IC(c.runId,u),f=n.get(d)||{entries:[],payloads:[]};f.entries.push(c),f.payloads.push(u),n.set(d,f)}if(!n.size)return e.map(c=>({...c}));const a=new Set,i=e.map(c=>{const u=c.stepIds.map(b=>`${c.runId}|${b}`).filter(b=>n.has(b));if(!u.length)return{...c};const d=[],f=[];for(const b of u)a.add(b),d.push(...n.get(b).payloads),f.push(...n.get(b).entries);const m=Cg(d),p=d[d.length-1],w=p.final===!0||String(p.phase||"")==="complete",_=!(w&&c.status==="completed"&&c.detail);return{...c,progress:_?m:"",progressFinal:w,progressEvents:f.map(b=>ze(b.record)||{})}});for(const[c,u]of n.entries()){if(a.has(c))continue;const d=u.payloads,f=d[d.length-1],m=String(f.kind||""),p=u.entries[0];i.push({key:`progress:${c}`,runId:p.runId,cursor:u.entries[u.entries.length-1].cursor,kind:"progress",title:Qt(m==="llm"?["llm",String(f.provider||""),uv(f.model)]:["progress",m]),detail:"",status:f.final===!0||String(f.phase||"")==="complete"?"completed":"started",statusLabel:f.final===!0||String(f.phase||"")==="complete"?"completed":"running",nodeId:String(f.node_id||""),stepIds:[String(f.step_id||"")],progress:Cg(d),progressFinal:f.final===!0||String(f.phase||"")==="complete",entries:u.entries,progressEvents:u.entries.map(w=>ze(w.record)||{}),merged:ze(u.entries[u.entries.length-1].record)||{}})}return i}function oh(e,t){var w,_,b,A;const n=String(t||((w=e==null?void 0:e[0])==null?void 0:w.runId)||""),a=new Map,i=[],c=[],u=new Map,d=new Map,f=[];for(const x of e||[]){const j=Eg(x.record);if(j.isProgress){f.push(x);continue}if(j.isStatus)continue;if(j.isResume){const E=String(((A=(b=ze((_=ze(x.record))==null?void 0:_.effect))==null?void 0:b.payload)==null?void 0:A.wait_key)||"").trim();E&&c.push(E);continue}const S=$C(x);d.set(x,d.size),u.set(x.runId,d.size-1),a.has(S)||(a.set(S,[]),i.push(S)),a.get(S).push(x)}const m=new Set(c),p=i.map(x=>{const j=a.get(x),S=TC(j),E=Eg(S),N=j[j.length-1],$=(u.get(N.runId)??-1)>(d.get(N)??1/0)||RC(j).some(D=>m.has(D)),R=AC(S,E.kind,$);return{key:x,runId:j[0].runId,cursor:j[j.length-1].cursor,kind:E.kind,title:E.kind==="run"&&n&&j[0].runId!==n?"subflow finished":E.title,detail:E.detail,status:R.status,statusLabel:R.statusLabel,nodeId:String(S.node_id||""),stepIds:[...new Set(j.map(D=>{var M;return String(((M=ze(D.record))==null?void 0:M.step_id)||"")}).filter(Boolean))],progress:"",progressFinal:!1,entries:j,progressEvents:[],merged:S}});return MC(p,f)}const LC=["running","waiting","failed","completed"],OC={running:"Running",failed:"Failed",completed:"Done"},PC=new Set(["waiting for you","approval needed"]);function DC(e,t){var i;if(e!=="waiting")return OC[e]||e;const n=t.filter(c=>c.status==="waiting");if(n.some(c=>PC.has(c.statusLabel)))return"Waiting for you";const a=((i=n[n.length-1])==null?void 0:i.statusLabel)||"waiting";return a.charAt(0).toUpperCase()+a.slice(1)}function FC(e){for(const t of LC)if(e.some(n=>n.status===t))return t;return e.length?e[e.length-1].status:"completed"}function zC(e){const t=[];let n=null,a=0;for(const i of e){if(i.kind==="llm"||!n){const c=i.kind==="llm";c&&(a+=1),n={key:`${c?"step":"start"}:${i.key}`,title:c?`Step ${a}`:"Start",detail:c?i.title:"",status:"completed",statusLabel:"Done",rows:[],toolRows:0},t.push(n)}n.rows.push(i),i.kind==="tools"&&(n.toolRows+=1)}for(const i of t)i.status=FC(i.rows),i.statusLabel=DC(i.status,i.rows);return t}function WC(e){return e.length?e[e.length-1].key:""}function BC({policy:e,runId:t,enabled:n,isAdmin:a,refreshKey:i,onAttach:c,onAttachFiles:u,includeArtifacts:d=!0}){const[f,m]=y.useState("session");return r.jsxs(r.Fragment,{children:[a?r.jsxs("div",{className:"code-files-mode",role:"group","aria-label":"Files source",children:[r.jsx("button",{"aria-pressed":f==="session",onClick:()=>m("session"),children:"This conversation"}),r.jsx("button",{"aria-pressed":f==="shared",onClick:()=>m("shared"),children:"Gateway files (admin)"})]}):null,a?r.jsx("div",{hidden:f!=="shared",children:r.jsx(XC,{policy:e,enabled:n&&f==="shared",runId:t,onAttach:c})}):null,r.jsx("div",{hidden:a&&f!=="session",children:r.jsx(uC,{runId:t,enabled:n&&(!a||f==="session"),refreshKey:i,maxAttachmentBytes:e==null?void 0:e.maxAttachmentBytes,onAttachFiles:u})}),d?r.jsxs("section",{className:"code-rail-section","aria-labelledby":"code-artifacts-title",children:[r.jsx("h3",{id:"code-artifacts-title",className:"code-rail-section-title",children:"Generated outputs & attachments"}),r.jsx(tE,{runId:t,enabled:n,refreshKey:i})]}):null]})}function UC({records:e,runId:t}){const n=y.useMemo(()=>oh(e,t),[e,t]);return n.length?r.jsx(dv,{rows:n}):r.jsxs("div",{className:"code-pane-empty",children:[r.jsx(se,{name:"activity",size:28}),r.jsx("p",{children:"Follow the work as it happens."}),r.jsx("small",{children:"Model steps, tool calls and approvals appear here, one group per step."})]})}function VC(e,t){const n=oh(e,t),a=n.filter(u=>u.status==="waiting").length,i=n.filter(u=>u.status==="running").length,c=[a?`${a} waiting`:"",i?`${i} running`:""].filter(Boolean);return{count:a+i,hint:c.join(" · ")}}function dv({rows:e}){const t=y.useMemo(()=>zC(e),[e]),n=WC(t),[a,i]=y.useState({});return r.jsx("div",{className:"code-activity-groups",children:t.map(c=>{const u=a[c.key]??c.key===n;return r.jsxs("details",{className:`code-activity-group is-${c.status}`,"data-group":c.title,open:u,onToggle:d=>{const f=d.currentTarget.open;f!==u&&i(m=>({...m,[c.key]:f}))},children:[r.jsxs("summary",{children:[r.jsx(se,{name:"chevronRight",size:14,className:"code-activity-group-chevron"}),r.jsx("strong",{children:c.title}),c.detail?r.jsx("span",{className:"code-activity-group-detail",title:c.detail,children:c.detail}):r.jsx("span",{className:"code-activity-group-detail"}),r.jsx("span",{className:`code-step-dot is-${c.status}`,"aria-hidden":"true"}),r.jsx("small",{children:c.statusLabel})]}),u?r.jsx(HC,{group:c}):null]},c.key)})})}function HC({group:e}){const t=y.useMemo(()=>e.rows.flatMap(i=>i.entries.map(c=>({cursor:c.cursor,record:c.record,runId:c.runId}))),[e]),n=y.useMemo(()=>Ri(t).tools,[t]),a=e.rows.filter(i=>i.kind!=="tools");return r.jsxs("div",{className:"code-activity-group-body",children:[a.map(i=>r.jsx(KC,{row:i},i.key)),n.length?r.jsx(Qf,{tools:n}):null]})}const GC={llm:"sparkle",tools:"terminal",subflow:"agent",event:"info",wait:"history",ask:"chat",message:"send",run:"playCircle",progress:"loader",step:"list"};function KC({row:e}){const t=e.merged,n=t.effect||{};return r.jsxs("details",{className:`code-activity-row code-activity-row--${e.kind}`,children:[r.jsxs("summary",{children:[r.jsx("span",{className:"code-activity-icon","aria-hidden":"true",children:r.jsx(se,{name:GC[e.kind],size:14})}),r.jsxs("span",{className:"code-activity-text",children:[r.jsx("span",{className:"code-activity-title",children:e.title}),e.detail?r.jsx("span",{className:"code-activity-sub",children:e.detail}):null,e.progress?r.jsx("span",{className:"code-activity-progress",children:e.progress}):null]}),r.jsx("span",{className:`code-step-dot is-${e.status}`}),r.jsx("small",{children:e.statusLabel})]}),r.jsxs("div",{className:"code-activity-detail",children:[r.jsxs("div",{className:"code-field-help",children:[e.nodeId?`${e.nodeId} · `:"","run ",e.runId.slice(0,8)," · ",e.entries.length," ",e.entries.length===1?"record":"records",e.progressEvents.length?` · ${e.progressEvents.length} progress`:""]}),r.jsx(go,{value:{input:n.payload,result:t.result,error:t.error,records:e.entries.map(a=>a.record),...e.progressEvents.length?{progress:e.progressEvents}:{}},collapseAfterDepth:2})]})]})}async function JC(e,t,n=2e3){var c;const a=[];let i=0;for(;a.length<n;){if(t!=null&&t.aborted)throw new DOMException("aborted","AbortError");const u=await Dn.get_ledger(e,{after:i,limit:500}),d=Array.isArray(u.items)?u.items:[];for(const f of d){const m=Number(f==null?void 0:f.cursor)||i+a.length+1;a.push({cursor:m,record:(f==null?void 0:f.record)??f,runId:String(((c=f==null?void 0:f.record)==null?void 0:c.run_id)||e)})}if(!d.length||!u.next_after||u.next_after<=i)break;i=u.next_after}return a}function QC({occurrences:e,nowMs:t,loadRecords:n=JC,onOpenRun:a}){var f;const i=y.useMemo(()=>[...e].sort((m,p)=>p.index-m.index),[e]),c=((f=i[0])==null?void 0:f.run_id)||"",[u,d]=y.useState({});return i.length?r.jsx("div",{className:"code-activity-groups","data-scope":"automation",children:i.map(m=>{const p=u[m.run_id]??m.run_id===c,w=m.finished_at||m.fired_at;return r.jsxs("details",{className:`code-activity-group is-${m.status}`,"data-group":`Run #${m.index}`,open:p,onToggle:_=>{const b=_.currentTarget.open;b!==p&&d(A=>({...A,[m.run_id]:b}))},children:[r.jsxs("summary",{children:[r.jsx(se,{name:"chevronRight",size:14,className:"code-activity-group-chevron"}),r.jsxs("strong",{children:["Run #",m.index]}),r.jsx("span",{className:"code-activity-group-detail",children:w?r.jsx("time",{title:Jc(w),children:wo(w,t)}):null}),r.jsx("span",{className:`code-step-dot is-${m.status}`,"aria-hidden":"true"}),r.jsx("small",{children:m.status})]}),p?r.jsx(YC,{occurrence:m,loadRecords:n,onOpenRun:a}):null]},m.run_id)})}):r.jsxs("div",{className:"code-pane-empty",children:[r.jsx(se,{name:"activity",size:28}),r.jsx("p",{children:"No runs yet."}),r.jsx("small",{children:"Each run of this automation appears here as one group."})]})}function YC({occurrence:e,loadRecords:t,onOpenRun:n}){var u;const[a,i]=y.useState({status:"loading"});y.useEffect(()=>{const d=new AbortController;return i({status:"loading"}),t(e.run_id,d.signal).then(f=>!d.signal.aborted&&i({status:"ready",records:f})).catch(f=>!d.signal.aborted&&i({status:"error",message:`Run activity unavailable: ${bt(f)}`})),()=>d.abort()},[e.run_id,e.status,t]);const c=y.useMemo(()=>a.status==="ready"?oh(a.records,e.run_id):[],[a,e.run_id]);return r.jsxs("div",{className:"code-activity-group-body",children:[(u=e.failure)!=null&&u.message?r.jsx("p",{className:"code-error-text",role:"alert",children:e.failure.message}):null,a.status==="loading"?r.jsx("p",{className:"code-muted",role:"status",children:"Loading run activity…"}):null,a.status==="error"?r.jsx("p",{className:"code-error-text",role:"alert",children:a.message}):null,a.status==="ready"?c.length?r.jsx(dv,{rows:c}):r.jsx("p",{className:"code-muted",children:"This run recorded no steps."}):null,n?r.jsxs("button",{type:"button",className:"code-subtle-button",onClick:()=>n(e.run_id),children:[r.jsx(se,{name:"chat",size:13})," ",r.jsx("span",{children:"Open as conversation"})]}):null]})}function XC({policy:e,enabled:t,runId:n,onAttach:a}){const[i,c]=y.useState(""),[u,d]=y.useState(""),[f,m]=y.useState([]),[p,w]=y.useState(!1),[_,b]=y.useState(""),[A,x]=y.useState(""),[j,S]=y.useState(0),[E,N]=y.useState("");return y.useEffect(()=>{const C=new AbortController;if(m([]),b(""),x(""),!t||!e)return;w(!0);const $=window.setTimeout(()=>{const R=new URLSearchParams({limit:"100"});i.trim()?R.set("query",i.trim()):u&&R.set("path",u),dt(we(`files/${i.trim()?"search":"list"}?${R}`),{signal:C.signal}).then(D=>{if(D.error)throw new Error(String(D.error));m(Array.isArray(D.items)?D.items:[]),(D.truncated||D.has_more)&&x("Showing the first 100 results. Search to narrow the list.")}).catch(D=>{C.signal.aborted||b(bt(D))}).finally(()=>{C.signal.aborted||w(!1)})},i?220:0);return()=>{window.clearTimeout($),C.abort()}},[t,e,i,u,j,n]),r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"code-pane-intro",children:[r.jsx(se,{name:"terminal",size:17}),r.jsxs("div",{children:[r.jsx("strong",{children:"Gateway files (admin)"}),r.jsx("span",{children:u||"The gateway's files"})]}),r.jsx("button",{className:"code-icon-button","aria-label":"Refresh files",onClick:()=>S(C=>C+1),disabled:!t,children:r.jsx(se,{name:"refresh",size:14})})]}),r.jsx("input",{className:"code-search","aria-label":"Search workspace files",placeholder:"Search files…",value:i,onChange:C=>c(C.target.value),disabled:!t}),u?r.jsx("button",{className:"code-back",onClick:()=>{d(u.split("/").slice(0,-1).join("/")),c("")},children:"← Parent folder"}):null,t?null:r.jsx("p",{className:"code-pane-empty",children:"Connect to browse your workspace."}),p?r.jsx("p",{className:"code-muted",role:"status",children:"Loading files…"}):null,_?r.jsxs("div",{className:"code-inline-error",role:"alert",children:[_,r.jsx("button",{onClick:()=>S(C=>C+1),children:"Retry"})]}):null,A?r.jsx("p",{className:"code-field-help",role:"status",children:A}):null,r.jsx("ul",{className:"code-file-list",children:f.map(C=>{const $=C.kind==="folder"||C.is_dir||C.type==="directory"||C.type==="dir";return r.jsx("li",{children:r.jsxs("button",{title:$?`Show ${C.path}`:`Attach ${C.path} to the conversation`,disabled:!!E,onClick:async()=>{if($){d(C.path),c("");return}N(C.path),b("");try{await a(C.path),x(`${C.name||C.path} attached.`)}catch(R){b(bt(R))}finally{N("")}},children:[r.jsx(se,{name:$?"folder":"paperclip",size:14}),r.jsx("span",{children:C.name||C.path}),E===C.path?r.jsx(se,{name:"loader",size:13}):r.jsx(se,{name:$?"chevronRight":"plus",size:13,className:"code-file-action"})]})},C.path)})}),!p&&!_&&t&&!f.length?r.jsxs("div",{className:"code-pane-empty",children:[r.jsx(se,{name:"terminal",size:28}),r.jsx("p",{children:i?"No matching files.":"No shared files yet."}),r.jsx("small",{children:i?"Try a shorter name or another folder.":"Browse files exposed by your gateway or attach files from your device."})]}):null]})}function qC(e){const t=String(e||"").split(";",1)[0].trim().toLowerCase(),n=(t.split("/")[1]||"").replace(/^x-/,"").split("+")[0];return t==="application/pdf"?"PDF document":t==="application/json"||t.endsWith("+json")?"JSON file":t.startsWith("image/")?`${n.toUpperCase()} image`:t.startsWith("audio/")?`${n.toUpperCase()} audio`:t.startsWith("video/")?`${n.toUpperCase()} video`:t==="text/markdown"?"Markdown file":t.startsWith("text/")?"Text file":"File"}function ZC(e){var a;const t=String(e.artifact_id||e.id||""),n=String(e.content_type||e.mime_type||"");return{id:t,name:String(e.filename||((a=e.metadata)==null?void 0:a.filename)||e.name||qC(n)),contentType:n,...typeof e.size_bytes=="number"?{size:e.size_bytes}:typeof e.size=="number"?{size:e.size}:{},...e.created_at||e.timestamp?{created:String(e.created_at||e.timestamp)}:{}}}function eE(e){return xf(e)?"text":e==="image"||e==="pdf"||e==="audio"?"url":"none"}function tE({runId:e,enabled:t,refreshKey:n}){const[a,i]=y.useState([]),[c,u]=y.useState(""),[d,f]=y.useState(0),[m,p]=y.useState(null),[w,_]=y.useState({status:"loading"}),b=Date.now();y.useEffect(()=>{if(i([]),u(""),p(null),!e||!t)return;const x=new AbortController;return dt(we(`runs/${encodeURIComponent(e)}/artifacts?limit=200`),{signal:x.signal}).then(j=>i((Array.isArray(j.items)?j.items:Array.isArray(j.artifacts)?j.artifacts:[]).map(ZC))).catch(j=>{x.signal.aborted||u(bt(j))}),()=>x.abort()},[e,t,d,n]),y.useEffect(()=>{if(!m)return;let x=!0,j="";return _({status:"loading"}),Dn.get_run_artifact_blob(e,m.id).then(async({blob:S,content_type:E})=>{const N=eE($c(m.name,E));if(N==="text"){const C=await S.slice(0,Ic).text();x&&_({status:"ready",text:C,partial:S.size>Ic,total:S.size,contentType:E})}else N==="url"?(j=URL.createObjectURL(S.type?S:new Blob([S],{type:E})),x&&_({status:"ready",url:j,partial:!1,contentType:E})):x&&_({status:"ready",partial:!1,contentType:E})}).catch(S=>x&&_({status:"error",message:`Preview failed: ${bt(S)}`})),()=>{x=!1,j&&URL.revokeObjectURL(j)}},[e,m]);const A=x=>void l1(e,x.id,x.name).catch(j=>u(bt(j)));return r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"code-rail-toolbar",children:r.jsx("button",{className:"code-icon-button","aria-label":"Refresh outputs",title:"Refresh",onClick:()=>f(x=>x+1),children:r.jsx(se,{name:"refresh",size:14})})}),c?r.jsx("p",{role:"alert",className:"code-error-text",children:c}):null,m?r.jsx(Cw,{name:m.name,sizeBytes:m.size,modified:m.created,nowMs:b,contentType:w.status==="ready"?w.contentType:m.contentType,status:w.status,...w.status==="error"?{error:w.message}:{},...w.status==="ready"?{text:w.text,url:w.url,...w.partial?{partialNote:Nw(w.total)}:{}}:{},onDownload:()=>A(m),onClose:()=>p(null)}):a.length?r.jsx("ul",{className:"code-file-rows",children:a.map(x=>r.jsxs("li",{className:"code-file-row",children:[r.jsxs("button",{className:"code-file-row-name",title:`Preview ${x.name} · ${x.id}`,onClick:()=>p(x),children:[r.jsx(se,{name:"file",size:14}),r.jsx("span",{children:x.name})]}),r.jsxs("span",{className:"code-file-row-meta",children:[x.size!==void 0?r.jsx("span",{children:Qc(x.size)}):null,x.created?r.jsx("time",{title:Jc(x.created),children:wo(x.created,b)}):null]}),r.jsx("button",{className:"code-icon-button","aria-label":`Download ${x.name}`,title:"Download",onClick:()=>A(x),children:r.jsx(se,{name:"download",size:14})})]},x.id))}):c?null:r.jsx("p",{className:"code-muted",children:"Generated files and attachments appear here."})]})}const fv=[{id:"activity",label:"Activity",icon:"activity"},{id:"files",label:"Files",icon:"file"},{id:"model",label:"Model",icon:"sparkle"},{id:"workflow",label:"Workflow",icon:"agent"},{id:"workspace",label:"Workspace",icon:"folder"},{id:"tools",label:"Tools",icon:"terminal"},{id:"skills",label:"Skills",icon:"list"},{id:"voice",label:"Voice",icon:"mic"}],Ag=fv.map(e=>e.id),hv="abstractcode.rail.panel.v2",nE="abstractcode.rail.panel.v1",sE="abstractcode.rail.width.v1";function rE(e){try{const t=e==null?void 0:e.getItem(hv);if(t!=null)return Ag.includes(t)?t:null;const n=e==null?void 0:e.getItem(nE);return n==="settings"?"model":Ag.includes(n)?n:null}catch{return null}}function aE(){try{return typeof window<"u"?window.localStorage:null}catch{return null}}function oE(){const e=kc(Li.md),[t,n]=y.useState(()=>{var i;return typeof window<"u"&&!((i=window.matchMedia)!=null&&i.call(window,Li.md).matches)?rE(aE()):null});y.useEffect(()=>{e&&n(null)},[e]);const a=y.useCallback(i=>{if(n(i),!e)try{window.localStorage.setItem(hv,i??"")}catch{}},[e]);return[t,a,e]}function iE(e){return r.jsx(ij,{className:"code-rail",ariaLabel:"Workspace panels",idBase:"code-rail",storageKey:sE,defaultWidth:420,minWidth:320,maxWidth:900,active:e.panel,onActiveChange:t=>e.onPanel(t),items:fv.map(t=>({id:t.id,label:t.label,icon:t.icon,content:e.content[t.id],...t.id==="activity"?{badge:e.activityBadge,hint:e.activityHint}:{}}))})}const Mr=e=>e&&typeof e=="object"&&!Array.isArray(e)?{...e}:{},Ar=e=>typeof e=="string"?e:typeof e=="number"?String(e):"",nf=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim()!==""):[];function gc(e){const t=Mr(e),n=Mr(t._runtime),a=Mr(t._limits),i=Ar(t.provider)||Ar(n.provider),c=Ar(t.model)||Ar(n.model),u=Fi(t),d=Mr(n.tool_policy),f={};for(const p of nf(d.auto_approve_tools))f[p]="approve";for(const p of nf(d.require_approval_tools))f[p]="ask";const m=u!==null||Object.keys(f).length>0;return{...us,provider:i&&c?i:"",model:i&&c?c:"",reasoning:Ar(n.thinking),...n.speculation!==void 0?{speculation:n.speculation}:{},maxIterations:Ar(a.max_iterations),maxTokens:Ar(a.max_tokens),system:Ar(n.system_prompt_extra),workspace:t.workspace&&typeof t.workspace=="object"&&Array.isArray(t.workspace.folders)?t.workspace:null,tools:u===null?{mode:"all",selected:[],approval:f}:{mode:"custom",selected:u,approval:f},toolsCustomized:m,permissions:"default",skills:nf(t.skills),workflow:us.workflow,streamReplies:"gateway_default"}}function ls(e,t,n){n==null||n===""||Array.isArray(n)&&!n.length?delete e[t]:e[t]=n}function $g(e){const t=Number(e);return Number.isSafeInteger(t)&&t>0?t:void 0}function lE(e,t){let n=Mr(e);const a=Mr(n._runtime),i=Mr(n._limits),c=!!(t.provider&&t.model);ls(n,"provider",c?t.provider:""),ls(n,"model",c?t.model:""),ls(a,"provider",c?t.provider:""),ls(a,"model",c?t.model:""),ls(a,"thinking",t.reasoning),ls(a,"speculation",t.speculation),ls(a,"system_prompt_extra",t.system.trim()),ls(i,"max_iterations",$g(t.maxIterations)),ls(i,"max_tokens",$g(t.maxTokens));const u=Object.entries(t.tools.approval||{}).filter(([,m])=>m==="approve").map(([m])=>m),d=Object.entries(t.tools.approval||{}).filter(([,m])=>m==="ask").map(([m])=>m),f=t.toolsCustomized&&(u.length||d.length)?{...u.length?{auto_approve_tools:u}:{},...d.length?{require_approval_tools:d}:{}}:void 0;return ls(a,"tool_policy",f),Object.keys(a).length?n._runtime=a:delete n._runtime,Object.keys(i).length?n._limits=i:delete n._limits,delete n.workspace_access_mode,t.workspace===null?(n.workspace&&typeof n.workspace=="object"&&delete n.workspace_allowed_paths,delete n.workspace):(n.workspace={posture:t.workspace.posture,default_mode:t.workspace.default_mode,folders:t.workspace.folders.map(m=>({path:m.path,mode:m.mode}))},delete n.workspace_allowed_paths),ls(n,"skills",t.skills),n=Hc(n,t.toolsCustomized&&t.tools.mode==="custom"?t.tools.selected:null),n}function cE(e,t){const n=Mr(e.target.input_data),a=lE(n,t);return Fc(n)===Fc(a)?null:{target:{bundle_ref:e.target.bundle_ref,flow_id:e.target.flow_id,input_data:a}}}function Fc(e){if(Array.isArray(e))return`[${e.map(Fc).join(",")}]`;if(e&&typeof e=="object"){const t=e;return`{${Object.keys(t).sort().map(n=>`${JSON.stringify(n)}:${Fc(t[n])}`).join(",")}}`}return JSON.stringify(e)}const uE=700;function dE(e){return e.status==="saving"?"Saving…":e.status==="saved"?`Saved as revision ${e.revision}; applies from the next run.`:e.status==="error"?e.message:""}function mv(e){if(Bi(e)){if(e.code==="revision_conflict")return"Not saved: the automation changed elsewhere. The latest revision is shown; make the change again.";const t=bo(e);return`Not saved: ${t.title}${t.detail?` ${t.detail}`:""}`}return`Not saved: ${String((e==null?void 0:e.message)||e)}`}function fE(e,t){const n=(e==null?void 0:e.definition)??null,a=(e==null?void 0:e.summary.automation_id)??"",i=(n==null?void 0:n.revision)??0,[c,u]=y.useState(()=>gc(n==null?void 0:n.target.input_data)),[d,f]=y.useState({status:"idle"}),m=y.useRef(null),p=y.useRef(null),w=y.useRef(n);w.current=n;const _=y.useRef(a);_.current=a;const b=y.useRef(t);b.current=t;const A=y.useRef({id:a,def:n}),x=async()=>{var C;p.current&&window.clearTimeout(p.current),p.current=null;const j=m.current;if(m.current=null,!j)return;const S=j.automationId===_.current?w.current:A.current.id===j.automationId?A.current.def:null;if(!S)return;const E=cE(S,j.prefs);if(!E)return;const N=()=>j.automationId===_.current;N()&&f({status:"saving"});try{await b.current(j.automationId,E,S.revision),N()&&f({status:"saved",revision:S.revision+1})}catch($){if(!N())return;f({status:"error",message:mv($)}),u(gc((C=w.current)==null?void 0:C.target.input_data))}};return y.useEffect(()=>{m.current&&m.current.automationId!==a&&x(),A.current={id:a,def:n},f({status:"idle"}),u(gc(n==null?void 0:n.target.input_data))},[a]),y.useEffect(()=>{A.current={id:a,def:n},m.current||u(gc(n==null?void 0:n.target.input_data))},[i]),y.useEffect(()=>()=>{p.current&&window.clearTimeout(p.current)},[]),!e||!n?null:{automationId:a,revision:i,draft:c,save:d,setSave:f,onChange:j=>{u(j),m.current={prefs:j,automationId:a},p.current&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>void x(),uE)}}}function hE(e){return r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"code-settings-binding",children:[r.jsx("span",{children:"Automation"})," ",r.jsx("strong",{title:e.summary.title,children:e.summary.title}),r.jsxs("span",{className:"code-settings-revision","data-testid":"automation-revision",children:["Revision ",e.settings.revision]})]}),r.jsx("p",{className:`code-settings-save is-${e.settings.save.status}`,role:"status","aria-live":"polite",children:dE(e.settings.save)||"Changes are saved as a new revision and apply from the next run."})]})}function mE(e){const t=e.definition.revision,[n,a]=y.useState([]),i=e.settings.setSave;return r.jsx("div",{className:"code-automation-definition","data-revision":t,children:r.jsx(Hy,{summary:e.summary,definition:e.definition,busy:e.busy||e.disabled,errors:n,heading:null,submitLabel:"Save",emailStatus:e.emailStatus,onOpenMyEmail:e.onOpenMyEmail,workflowPickerOptions:e.workflowPickerOptions,previewSchedule:e.previewSchedule,onSubmit:c=>{const u=gy(e.summary,c,e.definition);if(u===null){a(["Nothing changed."]);return}if("errors"in u){a(u.errors);return}a([]),i({status:"saving"}),(async()=>{const f=u;return c.target&&f.target&&e.prepareTarget?{...f,target:await e.prepareTarget(f.target)}:f})().then(f=>e.onRevise(f,t)).then(()=>i({status:"saved",revision:t+1})).catch(f=>{Bi(f)?i({status:"error",message:mv(f)}):(i({status:"idle"}),a([String((f==null?void 0:f.message)||f)]))})}},`${e.summary.automation_id}:${t}`)})}const pE={framework:null,frameworkNote:"checking…",gateway:null,gatewayNote:"checking…"};function gE(e){return e?e.ok?xp(e.value):xp(null,e.status?`HTTP ${e.status}`:e.message):pE}const Tg="—";function co(e){return typeof e=="string"&&e?e:void 0}function yE(e){return e.endsWith("+00:00")||e.endsWith("Z")}function sf(e){if(!e||typeof e!="object")return e;const t=e,n={...e},a=co(t.next_run_at)??co(t.next_fire_at);let i=co(t.next_run_local),c=co(t.time_zone)??"";return!i&&!c&&a&&yE(a)&&(i=a,c="UTC"),a?n.next_run_at=a:delete n.next_run_at,i?n.next_run_local=i:delete n.next_run_local,n.time_zone=c,n.schedule_rule_text=co(t.schedule_rule_text)??Tg,n.schedule_text=co(t.schedule_text)??Tg,n}function wE(e){return{...e,listAutomations:async t=>{const n=await e.listAutomations(t);return{...n,items:(n.items??[]).map(sf)}},getAutomation:async t=>{const n=await e.getAutomation(t);return n!=null&&n.summary?{...n,summary:sf(n.summary)}:n},createAutomation:async t=>{const n=await e.createAutomation(t);return n!=null&&n.summary?{...n,summary:sf(n.summary)}:n}}}const vE=3e4,yc=50;function _E(){return yx({fetch:(e,t)=>fetch(e,{...t,credentials:"same-origin"}),baseUrl:"",headers:Xc})}function bE(e){const t=String(e||"").trim();if(!t)return null;try{const n=new URL(t);return n.protocol!=="http:"&&n.protocol!=="https:"?null:`${n.origin}${n.pathname.replace(/\/+$/,"")}/console#users`}catch{return null}}function xE(e){var n;const t=(n=e==null?void 0:e.common)==null?void 0:n.automations;return t&&typeof t=="object"&&t.available===!0?{available:!0,reason:""}:t&&typeof t=="object"&&t.available===!1?{available:!1,reason:"This gateway has the Automations API turned off."}:{available:!1,reason:"This gateway does not advertise the Automations API (capabilities.contracts.common.automations). Update AbstractGateway (0.6.0 or later) to use automations."}}function kE(e,t){return e===Ft?{flow_id:"@default",interface:$n}:!(t!=null&&t.bundleId)||!t.flowId?null:{bundle_ref:t.bundleVersion?`${t.bundleId}@${t.bundleVersion}`:t.bundleId,flow_id:t.flowId}}function jE(e){return e.filter(t=>t.status!=="archived")}function SE(e){const t=e==null?void 0:e.archived_automations;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):0}function NE(e,t){if(e==="ask_user"){if(typeof t.response!="string")throw new Error("An ask_user wait is answered with {response: string}.");return{response:t.response}}if(e==="tool_approval"){if(typeof t.approved!="boolean")throw new Error("A tool_approval wait is answered with {approved: true|false}.");return{approved:t.approved}}if(e==="event"){if(!("payload"in t))throw new Error("An event wait is answered with {payload}.");return{payload:t.payload}}throw new Error(`This wait has no known kind (${JSON.stringify(e)}); open its run to answer it.`)}function CE(e,t,n,a){return{command_id:e,run_id:t,type:"resume",payload:{wait_key:n,payload:a},client_id:"abstractcode-web"}}function pv(e,t){return`Discussion forked from run #${e}. It works in its own workspace ${t.workspace_root}; the automation's files are mounted read-only at ${t.mounted_workspace} for the file tools (shell commands are not sandboxed), and nothing is written back into the automation's session.`}function Qn(e){return Bi(e)?e:{status:0,code:"client_error",message:e&&typeof e=="object"&&"message"in e?String(e.message):String(e)}}function rf(e,t){const n=new Map;for(const a of e)n.set(a.run_id,a);for(const a of t)n.set(a.run_id,a);return Array.from(n.values()).sort((a,i)=>i.index-a.index)}const EE={items:[],loaded:!1,loading:!1,listError:null,error:null,archivedCount:0,archived:null,selectedId:"",detail:null,triggerSources:[],busy:!1,notice:"",emailStatus:null,rowError:null};function AE(e){return async(t,n,a)=>{await dt(we("commands"),{method:"POST",body:JSON.stringify(CE(e(),t,n,a))})}}class $E{constructor(t,n,a=[1500,4e3]){dn(this,"state",{...EE});dn(this,"listeners",new Set);dn(this,"listSeq",0);dn(this,"detailSeq",0);dn(this,"sourcesLoaded",!1);dn(this,"client");dn(this,"previewSchedule",t=>this.client.previewSchedule(t));this.answerWaitVia=n,this.followupsMs=a,this.client=wE(t)}subscribe(t){return this.listeners.add(t),()=>{this.listeners.delete(t)}}set(t){this.state={...this.state,...t};for(const n of this.listeners)n()}async listAll(t){return(await this.listPages(t)).items}async listPages(t){const n=[];let a,i=0;for(let c=0;c<200;c+=1){const u=await this.client.listAutomations({...t?{status:t}:{},...a?{cursor:a}:{},limit:yc});if(a||(i=SE(u)),n.push(...u.items),!u.next_cursor)return{items:n,archivedCount:i};a=u.next_cursor}throw new Error("GET /api/gateway/automations kept returning next_cursor after 200 pages.")}async loadArchived(){try{const{items:t}=await this.listPages("archived");this.set({archived:t})}catch(t){this.set({archived:this.state.archived??[],listError:Qn(t)})}}async loadEmailStatus(){try{const t=await this.client.getMyEmail();this.set({emailStatus:t&&typeof t=="object"?t:null})}catch{this.set({emailStatus:null})}}async refresh(){const t=++this.listSeq;this.set({loading:!0});try{const{items:n,archivedCount:a}=await this.listPages();if(this.loadEmailStatus(),t!==this.listSeq)return;const i=this.state.detail,c=i?n.find(u=>u.automation_id===i.automationId):void 0;this.set({items:n,archivedCount:a,loaded:!0,loading:!1,listError:null,...i&&c?{detail:{...i,summary:c}}:{}}),this.state.archived!==null&&this.loadArchived(),i&&await this.reloadDetail(i.automationId)}catch(n){if(t!==this.listSeq)return;this.set({loading:!1,loaded:!0,listError:Qn(n)})}}async select(t){var i;const n=t.trim(),a=++this.detailSeq;if(!n){this.set({selectedId:"",detail:null});return}this.set({selectedId:n,notice:"",error:null,...((i=this.state.detail)==null?void 0:i.automationId)!==n?{detail:null}:{}});try{const[c,u]=await Promise.all([this.client.getAutomation(n),this.client.listOccurrences(n,{limit:yc})]);if(a!==this.detailSeq)return;const d=this.state.items.find(f=>f.automation_id===n);if(this.set({detail:{automationId:n,summary:d??c.summary,definition:c.definition,occurrences:rf([],u.items),nextCursor:u.next_cursor}}),!this.sourcesLoaded){const f=await this.client.listTriggerSources();this.sourcesLoaded=!0,this.set({triggerSources:f.items})}}catch(c){if(a!==this.detailSeq)return;this.set({error:Qn(c)})}}async reloadDetail(t){const[n,a]=await Promise.all([this.client.getAutomation(t),this.client.listOccurrences(t,{limit:yc})]),i=this.state.detail;if(!i||i.automationId!==t)return;const c=this.state.items.find(u=>u.automation_id===t);this.set({detail:{...i,summary:c??n.summary,definition:n.definition,occurrences:rf(i.occurrences,a.items),nextCursor:i.occurrences.length>a.items.length?i.nextCursor:a.next_cursor}})}async loadMore(){const t=this.state.detail;if(!(!t||!t.nextCursor))try{const n=await this.client.listOccurrences(t.automationId,{cursor:t.nextCursor,limit:yc}),a=this.state.detail;if(!a||a.automationId!==t.automationId)return;this.set({detail:{...a,occurrences:rf(a.occurrences,n.items),nextCursor:n.next_cursor}})}catch(n){this.set({error:Qn(n)})}}async afterChange(){await this.refresh();for(const t of this.followupsMs)setTimeout(()=>void this.refresh(),t)}async busyCall(t){this.set({busy:!0});try{const n=await t();return await this.afterChange(),n}catch(n){throw Qn(n)}finally{this.set({busy:!1})}}command(t,n,a){return this.busyCall(()=>this.client.sendAutomationCommand(t,{type:n,...a?{command_id:a}:{}}))}async toggleActive(t,n){this.set({rowError:null});try{return await this.command(t.automation_id,my(t),n)}catch(a){const i=Qn(a);throw this.set({rowError:{automationId:t.automation_id,error:i}}),i}}async unarchive(t,n){this.set({rowError:null});try{return await this.command(t,St.unarchive,n)}catch(a){const i=Qn(a);throw this.set({rowError:{automationId:t,error:i}}),i}}revise(t,n,a,i){return this.busyCall(()=>this.client.reviseAutomation(t,{changes:n,...a!==null?{expected_revision:a}:{},...i?{command_id:i}:{}}))}async create(t){this.set({busy:!0,error:null});try{const n=await this.client.createAutomation(t);this.set({notice:`Automation created: ${n.summary.title}.`}),await this.refresh(),await this.select(n.automation_id);for(const a of this.followupsMs)setTimeout(()=>void this.refresh(),a);return n}catch(n){throw Qn(n)}finally{this.set({busy:!1})}}async discuss(t,n,a,i){this.set({busy:!0});try{const c=await this.client.discuss(t,{occurrence_index:n,prompt:a,...i?{request_id:i}:{}});return this.set({notice:pv(n,c)}),c}catch(c){throw Qn(c)}finally{this.set({busy:!1})}}async seen(t,n){try{await this.client.markSeen(t,n)}catch(a){throw Qn(a)}}answerWait(t,n,a){return this.busyCall(async()=>{var c;const i=(((c=this.state.detail)==null?void 0:c.occurrences)||[]).flatMap(u=>u.waits).find(u=>u.run_id===t&&u.wait_key===n);if(!i)throw new Error(`No loaded wait ${n} on run ${t}; reload the automation.`);await this.answerWaitVia(t,n,NE(i.kind,a))})}rowControls(t){return yo(t,[],this.state.busy)}reportError(t){this.set({error:Qn(t)})}clearNotice(){this.set({notice:"",error:null})}}const Rg={[St.pause]:"Automation paused.",[St.resume]:"Automation active.",[St.run_now]:"Run requested.",[St.stop_current]:"Stop requested.",[St.archive]:"Automation archived."},TE=[{id:"run_now",label:"Run now",icon:"playCircle",action:"run_now"},{id:"stop_current",label:"Stop",icon:"stop",action:"stop_current"},{id:"revise",label:"Edit",icon:"edit",action:"edit"},{id:"archive",label:"Archive",icon:"archive",action:"archive"}];function Ig(e){const t=e&&typeof e=="object"&&"code"in e?e:null;if(t){const n=bo(t);return{tone:"error",text:n.title,detail:n.detail}}return{tone:"error",text:e instanceof Error?e.message:String(e)}}function RE(e){const t=e.summary,n=yo(t,e.occurrences,e.busy),a=e.nowMs??Date.now(),i=Gy(t,a),[c,u]=y.useState(!1),[d,f]=y.useState(null),m=y.useRef(null);y.useEffect(()=>{u(!1),f(null)},[t.automation_id]),y.useEffect(()=>{var x;c&&((x=m.current)==null||x.focus())},[c]);const p=(x,j,S)=>{f({tone:"busy",text:x}),j().then(()=>f({tone:"ok",text:S}),E=>f(Ig(E)))},w=(x,j)=>p(j,()=>e.onCommand(x),Rg[x]??"Done."),_=x=>{x==="run_now"?w(St.run_now,"Starting a run…"):x==="stop_current"?w(St.stop_current,"Stopping…"):x==="revise"?e.onEdit():x==="archive"&&u(!0)},b=t.workspace_root||"",A=e.triggerSources.length?Uy(t,e.triggerSources):null;return r.jsxs("header",{className:"code-auto-header","data-automation-id":t.automation_id,"aria-busy":e.busy||(d==null?void 0:d.tone)==="busy",children:[r.jsx("h2",{className:"code-auto-header__title",tabIndex:-1,children:t.title}),r.jsxs("div",{className:"code-auto-header__state",children:[r.jsx(qw,{variant:"inline",summary:t,busy:e.busy,onToggle:()=>p(t.status==="active"?"Pausing…":"Activating…",e.onToggleActive,Rg[t.status==="active"?St.pause:St.resume])}),Yw(t)?r.jsx(Xw,{}):null,r.jsx("span",{className:"code-auto-header__timing","data-field":"timing",children:i.line})]}),r.jsx(Kw,{summary:t,nowMs:a,className:"code-auto-header__notif"}),A?r.jsxs("p",{className:"code-auto-header__warn",role:"note","data-field":"trigger-problem",children:[r.jsx(se,{name:"warning",size:13})," ",r.jsx("span",{children:A})]}):null,b?r.jsxs("div",{className:"code-auto-header__workspace","data-field":"workspace",children:[r.jsx("span",{className:"code-auto-header__label",children:"Workspace"}),r.jsx("span",{className:"code-auto-header__folder",title:b,children:j1(b)}),r.jsx("button",{type:"button",className:"code-icon-button","data-action":"open-folder","aria-label":"Open folder",title:"Open folder",onClick:e.onOpenFolder,children:r.jsx(se,{name:"folder",size:15})}),r.jsx("button",{type:"button",className:"code-icon-button","data-action":"copy-path","aria-label":"Copy path",title:"Copy path",onClick:()=>void e.onCopyPath(b).then(x=>f(x?{tone:"ok",text:"Path copied."}:{tone:"error",text:"The browser refused the clipboard."}),x=>f(Ig(x))),children:r.jsx(se,{name:"copy",size:15})})]}):null,e.workspaces?r.jsxs("div",{className:"code-auto-header__workspaces-row","data-section":"workspaces",children:[e.workspaces,e.onEditWorkspaces?r.jsx("button",{type:"button",className:"code-icon-button","data-action":"edit-workspaces","aria-label":"Change workspaces",title:"Change workspaces",onClick:e.onEditWorkspaces,children:r.jsx(se,{name:"edit",size:15})}):null]}):null,c?r.jsxs("div",{className:"code-auto-header__confirm",role:"group","aria-label":"Confirm archive",children:[r.jsxs("p",{children:["Archive “",t.title,"”? It will not run again; its history stays readable."]}),r.jsxs("div",{className:"code-auto-header__actions",children:[r.jsxs("button",{ref:m,type:"button",className:"code-subtle-button code-danger-button","data-action":"archive-confirm",disabled:!n.archive.enabled,onClick:()=>{u(!1),w(St.archive,"Archiving…")},children:[r.jsx(se,{name:"archive",size:14})," ",r.jsx("span",{children:"Archive"})]}),r.jsx("button",{type:"button",className:"code-subtle-button","data-action":"archive-cancel",onClick:()=>u(!1),children:r.jsx("span",{children:"Keep it"})})]})]}):r.jsx("div",{className:"code-auto-header__actions",role:"toolbar","aria-label":"Automation controls",children:TE.map(x=>{const j=n[x.id],S=Pi(x.id,t);return r.jsxs("button",{type:"button",className:`code-subtle-button${x.id==="archive"?" code-danger-button":""}`,"data-action":x.action,disabled:!j.enabled,title:j.enabled?S:`${j.reason??"Not available now."}
|
|
92
|
-
${S}`,onClick:()=>_(x.id),children:[r.jsx(se,{name:x.icon,size:14})," ",r.jsx("span",{children:x.label})]},x.id)})}),d?r.jsxs("p",{className:`code-auto-header__result is-${d.tone}`,role:d.tone==="error"?"alert":"status","data-field":"result",children:[r.jsx(se,{name:d.tone==="busy"?"loader":d.tone==="ok"?"check":"error",size:13}),r.jsxs("span",{children:[d.text,d.detail?` ${d.detail}`:""]})]}):null]})}const gv="abstractcode.automation.panels",bi={occurrences:!0,folder:!0};function IE(e){try{const t=e==null?void 0:e.getItem(gv);if(!t)return{...bi};const n=JSON.parse(t);if(!n||typeof n!="object")return{...bi};const a=n;return{occurrences:typeof a.occurrences=="boolean"?a.occurrences:bi.occurrences,folder:typeof a.folder=="boolean"?a.folder:bi.folder}}catch{return{...bi}}}function ME(e,t){try{t==null||t.setItem(gv,JSON.stringify(e))}catch{}}function LE(e,t){return{...e,[t]:!e[t]}}function Mg(){try{return typeof window<"u"?window.localStorage:null}catch{return null}}function OE(){const[e,t]=y.useState(()=>IE(Mg())),n=y.useCallback(a=>{t(i=>{const c=LE(i,a);return ME(c,Mg()),c})},[]);return[e,n]}const ih=e=>({toggle:`code-detail-${e}-toggle`,region:`code-detail-${e}`});function yv(e){const t=ih(e.panel);return r.jsxs("button",{type:"button",className:"code-detail-toggle",id:t.toggle,"data-panel":e.panel,"aria-expanded":e.open,"aria-controls":t.region,onClick:e.onToggle,children:[r.jsx(se,{name:"chevronDown",size:13}),r.jsx("span",{className:"code-detail-toggle__label",children:e.label}),typeof e.count=="number"?r.jsx("span",{className:"code-detail-toggle__count",children:e.count}):null]})}const PE=".af-auto__timeline",DE=".af-auto__more";function FE(e,t,n){const a=(e==null?void 0:e.querySelector(PE))??null;if(!a||!a.parentNode)return t.parentNode&&t.remove(),!1;a.id!==n&&(a.id=n);const i=(e==null?void 0:e.querySelector(DE))??null,c=i&&i.parentNode===a.parentNode?i:a;return(t.parentNode!==c.parentNode||t.nextSibling!==c)&&c.parentNode.insertBefore(t,c),!0}function zE(e,t){const n=y.useMemo(()=>{if(typeof document>"u")return null;const c=document.createElement("div");return c.className="code-detail-head code-detail-head--occurrences",c},[]),[a,i]=y.useState(!1);return y.useLayoutEffect(()=>{const c=e.current;if(!n||!c||!t){n==null||n.remove(),i(!1);return}const u=ih("occurrences").region,d=()=>i(FE(c,n,u));d();const f=new MutationObserver(d);return f.observe(c,{childList:!0,subtree:!0}),()=>{f.disconnect(),n.remove()}},[e,n,t]),a?n:null}function WE(e){let t=5381;for(let a=0;a<e.length;a++)t=t*33^e.charCodeAt(a);return(t>>>0).toString(16).padStart(8,"0").repeat(8).slice(0,32)}async function BE(e){var t;try{const n=globalThis,a=(t=n==null?void 0:n.crypto)==null?void 0:t.subtle;if(!a||typeof a.digest!="function")throw new Error("subtle crypto unavailable");const i=new TextEncoder().encode(e),c=await a.digest("SHA-256",i),u=new Uint8Array(c);let d="";for(const f of u)d+=f.toString(16).padStart(2,"0");return d}catch{return WE(e)}}const Lg=/^[a-zA-Z0-9_-]+$/;async function UE(e){const t=String(e||"").trim();if(!t)throw new Error("session_memory_owner_run_id: session_id is required");if(Lg.test(t)){const a=`session_memory_${t}`;if(Lg.test(a))return a}return`session_memory_sha_${(await BE(t)).slice(0,32)}`}function wv(){return dt(we("voice/defaults"))}function VE(e,t){const n=new URLSearchParams({compact:"true"});return e&&n.set("provider",e),t&&n.set("model",t),dt(we(`voice/voices?${n.toString()}`))}function HE(e){const[t,n]=y.useState({value:null,failed:!1});return y.useEffect(()=>{if(!e)return;let a=!0;return wv().then(i=>a&&n({value:i||{},failed:!1})).catch(()=>a&&n({value:null,failed:!0})),()=>{a=!1}},[e]),t}function GE({value:e,onChange:t,defaults:n,connected:a}){return r.jsx(Xj,{value:e,onChange:t,fetchCatalog:VE,fetchDefaults:wv,defaults:n.value??void 0,overrideOwner:"this app",nested:!0,unavailableReason:a?null:"Connect to a gateway to configure voice."})}async function KE(e,t){return e||UE(t)}const Og=18e4;function vv({runId:e,sessionId:t,capability:n,scope:a,preferences:i,onTranscript:c,onError:u}){var w,_;const d=y.useRef(!0),f=y.useRef(a);f.current=a,y.useEffect(()=>(d.current=!0,()=>{d.current=!1}),[]);const m=()=>{if(!d.current||f.current!==a)throw new Error("Voice session changed.")},p=ux({output_device_id:i.output_device||"",input_device_id:i.input_device||"",input_gain:i.input_gain,volume:i.reply_volume,stop_on_pointerup:!1,tts_stream:((w=n.tts)==null?void 0:w.available)===!0&&e?async function*(b,A){m(),yield*tx({path:we(`runs/${encodeURIComponent(e)}/voice/tts/stream`),headers:Xc(),signal:A,body:{text:b,request_id:Ir(),...Hj(i)}})}:void 0,transcribe:((_=n.stt)==null?void 0:_.available)===!0&&(e||t)?async(b,A)=>{var R;m();const x=Number(((R=n.stt)==null?void 0:R.max_upload_bytes)||0);if(x>0&&b.size>x)throw new Error("Recording exceeds the gateway's upload limit. Try a shorter recording.");const j=A.includes("mp4")?"m4a":A.includes("ogg")?"ogg":A.includes("wav")?"wav":"webm",S=new File([b],`recording.${j}`,{type:A||"audio/webm"}),E=await Dn.attachments_upload(t,S);m();let N;const C=await KE(e,t);m();const $=await Promise.race([Dn.audio_transcribe(C,{audio_artifact:E,request_id:Ir(),...Gj(i)}),new Promise((D,M)=>{N=setTimeout(()=>M(new Error(`the gateway did not answer within ${Og/1e3} s`)),Og)})]).finally(()=>clearTimeout(N));return m(),{text:String($.text||""),provider:$.provider??null,model:$.model??null}}:void 0,on_transcript:b=>{d.current&&f.current===a&&c(b)},on_error:b=>{d.current&&f.current===a&&u(b)}});return y.useEffect(()=>{var b;return p.stop_tts(),(b=p.cancel_voice_ptt_recording)==null||b.call(p),()=>{var A;p.stop_tts(),(A=p.cancel_voice_ptt_recording)==null||A.call(p)}},[a,p.stop_tts,p.cancel_voice_ptt_recording]),p}const JE=350;function QE(e){return e<JE?"discard":"send"}function YE(e,t){const n=e.trimEnd();return n?`${n}
|
|
93
|
-
${t}`:t}const XE="Hold the microphone while you speak — release to send.";function qE(e){const[t,n]=y.useState(()=>Date.now());return y.useEffect(()=>{if(!e)return;n(Date.now());const a=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(a)},[e]),t}function ZE({voice:e,capability:t,route:n="",onSettings:a}){var j,S,E,N,C;const i=y.useRef(!1),c=y.useRef(0),u=y.useRef(!0),[d,f]=y.useState(!1);y.useEffect(()=>(u.current=!0,()=>{u.current=!1,i.current=!1}),[]),y.useEffect(()=>{if(!d)return;const $=setTimeout(()=>f(!1),4e3);return()=>clearTimeout($)},[d]);const m=()=>{!e.voice_ptt_supported||e.voice_ptt_busy||i.current||(i.current=!0,c.current=Date.now(),f(!1),e.start_voice_ptt_recording().then(()=>{var $,R;i.current||($=e.cancel_voice_ptt_recording)==null||$.call(e),u.current||(R=e.cancel_voice_ptt_recording)==null||R.call(e)}))},p=()=>{var $;if(i.current){if(i.current=!1,QE(Date.now()-c.current)==="discard"){($=e.cancel_voice_ptt_recording)==null||$.call(e),f(!0);return}e.stop_voice_ptt_recording()}},w=()=>{var $;i.current&&(i.current=!1,($=e.cancel_voice_ptt_recording)==null||$.call(e))};y.useEffect(()=>(window.addEventListener("pointerup",p),window.addEventListener("pointercancel",p),window.addEventListener("blur",w),()=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",p),window.removeEventListener("blur",w)}),[e.stop_voice_ptt_recording,e.cancel_voice_ptt_recording]);const _=e.voice_ptt_since||0,b=qE(!!_);if(!((j=t.tts)!=null&&j.available)&&!((S=t.stt)!=null&&S.available))return null;const A=!ZN(),x=e.voice_ptt_recording?`Recording… ${_?ey(_,b):""}`.trim():e.voice_ptt_busy?Kb(_||b,b,n):d?XE:"";return r.jsxs(r.Fragment,{children:[(E=t.stt)!=null&&E.available&&A?r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"code-icon-button","aria-label":"Dictation unavailable","aria-describedby":"code-voice-https-note",title:bg,disabled:!0,children:r.jsx(se,{name:"mic",size:15})}),r.jsx("span",{id:"code-voice-https-note",className:"code-voice-note",role:"note",children:bg})]}):null,(N=t.stt)!=null&&N.available&&!A?r.jsx("button",{className:"code-icon-button","aria-label":e.voice_ptt_recording?"Recording — release to send":"Hold to talk",title:"Hold to talk, release to send (or hold Space or Enter on the focused button)",disabled:!e.voice_ptt_supported||e.voice_ptt_busy,"aria-pressed":e.voice_ptt_recording,onPointerDown:$=>{$.button===0&&m()},onPointerUp:p,onPointerCancel:p,onKeyDown:$=>{[" ","Enter"].includes($.key)&&!$.repeat&&($.preventDefault(),m())},onKeyUp:$=>{[" ","Enter"].includes($.key)&&($.preventDefault(),p())},onBlur:p,children:r.jsx(se,{name:e.voice_ptt_busy?"loader":"mic",size:15,className:e.voice_ptt_busy?"code-loading-spinner":void 0})}):null,e.tts_playback.status!=="idle"?r.jsx("button",{className:"code-icon-button","aria-label":"Stop spoken reply",onClick:e.stop_tts,children:r.jsx(se,{name:"x",size:14})}):null,a&&((C=t.tts)!=null&&C.available)?r.jsx("button",{className:"code-icon-button","aria-label":"Voice settings",title:"Voice settings",onClick:a,children:r.jsx(se,{name:"cog",size:14})}):null,x?r.jsx("span",{role:"status",className:"code-voice-status","data-voice-status":!0,children:x}):null]})}const eA=tt.title;function Pg(e){return`${eA}: ${e}`}function tA(e){return!!(e&&typeof e=="object"&&!Array.isArray(e)&&Array.isArray(e.folders))}function nA(e){var n,a;const t=(a=(n=e==null?void 0:e.target)==null?void 0:n.input_data)==null?void 0:a.workspace;return tA(t)?t:null}function sA(e,t){const n={...e||{}};return t===null?(delete n.workspace,n):(delete n.workspace_allowed_paths,delete n.workspace_access_mode,n.workspace={posture:t.posture,default_mode:t.default_mode,folders:t.folders.map(a=>({path:a.path,mode:a.mode}))},n)}const rA=3e4,Dg=new WeakMap;function aA(e,t,n=Date.now()){let a=Dg.get(e);a||Dg.set(e,a=new Map);const i=JSON.stringify(t),c=a.get(i);if(c&&n-c.at<rA)return c.answer;const u=jf(e)(t).then(d=>d.summary);return u.catch(()=>a==null?void 0:a.delete(i)),a.set(i,{at:n,answer:u}),u}function oA(e){const[t,n]=y.useState(null),a=JSON.stringify(e.value);return y.useEffect(()=>{if(!e.connected){n(null);return}let i=!0;return aA(e.request,e.value).then(c=>i&&n(Pg(c))).catch(c=>i&&n(Pg(Kf(c)))),()=>{i=!1}},[e.request,e.connected,a,e.refreshKey]),t?r.jsx("span",{className:"code-auto-header__workspaces","data-field":"workspaces",title:t,children:t}):null}function iA(e,t){const n=y.useMemo(()=>new $E(_E(),AE(Ir)),[e]),a=y.useSyncExternalStore(u=>n.subscribe(u),()=>n.state),[i,c]=y.useState(()=>typeof document>"u"||document.visibilityState!=="hidden");return y.useEffect(()=>{const u=()=>c(document.visibilityState!=="hidden");return document.addEventListener("visibilitychange",u),()=>document.removeEventListener("visibilitychange",u)},[]),y.useEffect(()=>{if(!e||!t||!i)return;n.refresh();const u=window.setInterval(()=>void n.refresh(),vE);return()=>window.clearInterval(u)},[n,e,t,i]),{ctl:n,state:a}}function If({error:e}){if(!e)return null;const t=bo(e);return r.jsxs("p",{className:"code-inline-error",role:"alert","data-code":e.code,children:[r.jsx("strong",{children:t.title})," ",t.detail]})}function lA(e){const t=e.open??!0,n=Zf("automations"),a=e.state,i=jE(a.items),c=a.archived??[],u=a.items.reduce((d,f)=>d+f.attention.pending_waits+f.attention.unseen_count,0);return r.jsxs("section",{className:"code-panel code-automations","aria-label":"Automations","data-open":t?"true":"false",children:[r.jsx(Bw,{panel:"automations",open:t,onToggle:()=>{var d;return(d=e.onToggle)==null?void 0:d.call(e)},label:r.jsxs(r.Fragment,{children:["Automations",u?r.jsx("span",{className:"code-auto-badge","data-field":"attention-total",children:u}):null]}),actions:r.jsxs("span",{className:"code-auto-actions",children:[r.jsx("button",{className:"code-icon-button","aria-label":"New automation",title:"New automation (choose a workflow and schedule)",disabled:!e.available.available||e.createDisabled,onClick:e.onNew,children:r.jsx(se,{name:"plus",size:13})}),r.jsx("button",{className:"code-icon-button","aria-label":"Refresh automations",disabled:!e.available.available||a.loading,onClick:e.onRefresh,children:r.jsx(se,{name:"refresh",size:13})})]})}),r.jsxs("div",{className:"code-auto-rows",id:n.region,role:"region","aria-labelledby":n.toggle,hidden:!t,children:[!e.discovering&&!e.available.available?r.jsx("p",{className:"code-history-empty",role:"note","data-unavailable":"true",children:e.available.reason}):null,r.jsx(If,{error:a.listError}),!a.loaded&&(e.discovering||e.available.available&&a.loading)?r.jsx(vo,{children:"Loading automations…"}):null,e.available.available&&a.loaded&&!a.listError&&!a.items.length?r.jsx("p",{className:"code-history-empty",children:"No automations yet. + lets you choose a workflow and schedule."}):null,i.map(d=>{var f;return r.jsxs(ut.Fragment,{children:[r.jsx(H1,{summary:d,selected:e.selectedId===d.automation_id,busy:a.busy,nowMs:e.nowMs??Date.now(),onSelect:()=>e.onSelect(d.automation_id),onToggleActive:()=>{var m;return(m=e.onToggleActive)==null?void 0:m.call(e,d)}}),((f=a.rowError)==null?void 0:f.automationId)===d.automation_id?r.jsx(If,{error:a.rowError.error}):null]},d.automation_id)}),r.jsxs(Vw,{list:"automations",count:a.archivedCount,open:e.archivedOpen===!0,onToggle:()=>{var d;return(d=e.onToggleArchived)==null?void 0:d.call(e)},children:[a.archived===null?r.jsx("li",{children:r.jsx(vo,{children:"Loading archived automations…"})}):null,c.map(d=>{var f;return r.jsx(Hw,{id:d.automation_id,title:d.title,busy:a.busy,error:((f=a.rowError)==null?void 0:f.automationId)===d.automation_id?bo(a.rowError.error).title:void 0,onOpen:()=>e.onSelect(d.automation_id),onUnarchive:()=>{var m;return(m=e.onUnarchive)==null?void 0:m.call(e,d)}},d.automation_id)})]})]})]})}function cA(e,t){const n=e.state.detail;if(!n)return null;const a=n.automationId;return{summary:n.summary,...n.definition?{definition:n.definition}:{},occurrences:n.occurrences,triggerSources:e.state.triggerSources,busy:e.state.busy,previewSchedule:e.previewSchedule,...e.state.error?{error:e.state.error}:{},onRevise:(i,c,u)=>e.revise(a,i,c,u==null?void 0:u.command_id),onCommand:(i,c,u)=>e.command(a,i,u==null?void 0:u.command_id),onDiscuss:async(i,c,u)=>{const d=await e.discuss(a,i,c,u==null?void 0:u.request_id);return t.openConversation(d.session_id,d.run_id,pv(i,d)),d},onSeen:i=>e.seen(a,i),onLoadMore:()=>void e.loadMore(),onOpenRun:i=>t.openRun(i),onOpenWorkspace:i=>t.openWorkspace(i),onAnswerWait:(i,c,u)=>e.answerWait(i,c,u),emailStatus:e.state.emailStatus,...t.openMyEmail?{onOpenMyEmail:()=>{var i;return(i=t.openMyEmail)==null?void 0:i.call(t)}}:{}}}function uA(e){const t=e.last_occurrence,n=e.current_occurrence;return[e.occurrence_count,t?`${t.index}:${t.status}:${t.finished_at??""}`:"",n?`${n.index}:${n.status}`:""].join("|")}function Fg(e,t,n){if(t===e)return"Automation folder";const a=n.find(i=>i.run_id===t);return a?`Run #${a.index} folder`:"Run folder"}function dA(e){const t=e.panels.folder,n=ih("folder");return r.jsxs("div",{className:"code-auto-folder-section","data-open":t?"true":"false","data-folder":e.own?"automation":"run",children:[r.jsx("div",{className:"code-detail-head",children:r.jsx(yv,{panel:"folder",label:e.title,open:t,onToggle:e.onToggle})}),r.jsx("div",{className:"code-detail-region",id:n.region,hidden:!t,children:e.children})]})}function fA(e){const t=e.ctl.state,n=t.detail,[a,i]=y.useState({automationId:"",runId:""}),c=(n==null?void 0:n.automationId)??"",[u,d]=y.useState(""),f=vv({scope:c,runId:e.enabled?c:"",sessionId:c,capability:e.voiceCapability||{},preferences:e.voicePreferences||{},onTranscript:()=>{},onError:d});y.useEffect(()=>d(""),[c]);const m=a.automationId===c&&a.runId?a.runId:c,p=cA(e.ctl,{...e.host,openWorkspace:x=>i({automationId:c,runId:x})}),[w,_]=OE(),b=y.useRef(null),A=zE(b,!!(n&&n.occurrences.length));return r.jsxs("main",{className:"code-conversation code-automation-main",id:"code-conversation",tabIndex:-1,"aria-label":"Automation",children:[r.jsxs("div",{className:"code-auto-main-head",children:[r.jsxs("button",{className:"code-subtle-button",onClick:e.onClose,children:[r.jsx(se,{name:"chat",size:14})," ",r.jsx("span",{children:"Back to the conversation"})]}),f.tts_playback.status!=="idle"?r.jsx("button",{type:"button",className:"code-subtle-button",onClick:f.stop_tts,children:"Stop audio"}):null,t.notice?r.jsx("p",{className:"code-field-help",role:"status",children:t.notice}):null]}),n?r.jsxs("div",{className:"code-auto-main-body",ref:b,"data-occurrences":w.occurrences?"open":"closed",children:[u?r.jsx("p",{className:"code-inline-error",role:"alert",children:u}):null,r.jsx(RE,{summary:n.summary,occurrences:n.occurrences,triggerSources:t.triggerSources,busy:t.busy,nowMs:e.nowMs,onCommand:x=>e.ctl.command(n.automationId,x),onToggleActive:()=>e.ctl.toggleActive(n.summary),onEdit:()=>e.onEdit(n.automationId),workspaces:n.definition?r.jsx(oA,{request:qc,connected:e.enabled,value:nA(n.definition),refreshKey:n.summary.revision??""}):null,onEditWorkspaces:e.onEditWorkspaces?()=>{var x;return(x=e.onEditWorkspaces)==null?void 0:x.call(e,n.automationId)}:void 0,onOpenFolder:()=>{i({automationId:c,runId:""}),w.folder||_("folder"),window.requestAnimationFrame(()=>{var x,j;return(j=(x=b.current)==null?void 0:x.querySelector(".code-auto-folder-section"))==null?void 0:j.scrollIntoView({block:"nearest"})})},onCopyPath:rh}),p?r.jsx(J0,{...p,hideHeader:!0,prepareTarget:e.prepareTarget,workflowPickerOptions:e.workflowPickerOptions,availableTools:e.availableTools,fetchGateway:Dc,messageProps:{...f.tts_supported?{onSpeakToggle:x=>{f.toggle_tts(String(x.id||x.content),x.content)}}:{},getSpeakState:x=>f.tts_playback.key===String(x.id||x.content)?f.tts_playback.status:"idle"}}):null,A?zc.createPortal(r.jsx(yv,{panel:"occurrences",label:"Occurrences",count:n.summary.occurrence_count,open:w.occurrences,onToggle:()=>_("occurrences")}),A):null,e.enabled?r.jsx(dA,{panels:w,onToggle:()=>_("folder"),title:Fg(n.automationId,m,n.occurrences),own:m===n.automationId,children:r.jsx(qf,{className:"code-auto-folder",fetchGateway:Dc,runId:m,title:Fg(n.automationId,m,n.occurrences),refreshKey:uA(n.summary),onClose:m!==n.automationId?()=>i({automationId:c,runId:""}):void 0})}):null]}):t.error?r.jsx(If,{error:t.error}):r.jsx(vo,{children:"Loading automation…"})]})}function hA(e){const[t,n]=y.useState(),[a,i]=y.useState(null);y.useEffect(()=>{e.open||i(null)},[e.open]);const[c,u]=y.useState(!1),d=y.useRef(!1),[f,m]=y.useState();return y.useEffect(()=>{e.open||m(void 0)},[e.open]),y.useEffect(()=>{e.open&&(n(void 0),e.ctl.loadEmailStatus())},[e.open]),r.jsx(Zk,{open:e.open,onClose:e.onClose,target:f||e.target,availableTools:e.availableTools,initialTools:f?null:e.initialTools,workflowPicker:e.workflowPickerOptions&&(f||e.target)?r.jsx(By,{target:f||e.target,options:e.workflowPickerOptions,onChange:m}):r.jsx("p",{className:"code-field-help","data-field":"target",children:e.target?`Initially uses ${e.workflowLabel}. Choose the workflow in this form.`:"Choose a workflow in the Workflow panel first."}),initialPrompt:e.initialPrompt,workspaces:r.jsx(zw,{connected:e.connected!==!1,automation:{value:a,onChange:i},idPrefix:"code-new-automation-workspace"}),emailStatus:e.ctl.state.emailStatus,onOpenMyEmail:e.onOpenMyEmail,previewSchedule:e.ctl.previewSchedule,onOpenPreferences:e.onOpenPreferences,busy:e.ctl.state.busy||c,error:t,onSubmit:async p=>{var w,_;if(!d.current){d.current=!0,u(!0);try{const b=await((_=e.buildInput)==null?void 0:_.call(e,String(((w=p.target.input_data)==null?void 0:w.prompt)||""),f)),A=b&&e.availableTools!==void 0?Hc(b,Fi(p.target.input_data)):b,x=sA(A||p.target.input_data,a),j=await e.ctl.create({...p,target:{...p.target,input_data:x}});return e.onCreated(j.automation_id),e.onClose(),j}catch(b){throw n(Qn(b)),b}finally{d.current=!1,u(!1)}}}})}function mA(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;const t=[...e.currentTarget.querySelectorAll('button[role="tab"]')].filter(i=>!i.disabled),n=t.indexOf(e.target);if(n<0||!t.length)return;e.preventDefault();const a=e.key==="Home"?0:e.key==="End"?t.length-1:(n+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;t[a].focus(),t[a].click()}function pA(e){var f,m;const t=Object.keys(((f=e.schema)==null?void 0:f.properties)||{}),n=((m=e.schema)==null?void 0:m.required)||[],a=[e.promptProperty||"prompt","context","messages","attachments"],i=["provider","model","tools","skills","max_iterations","use_context","use_session_history"],c=Zw(e.schema).map(p=>[p.provider,p.model,p.reasoning].filter(w=>!!w)),u=new Set(t.filter(p=>n.includes(p)&&!a.includes(p)));for(const p of c)p.some(w=>u.has(w))&&p.forEach(w=>u.add(w));const d=new Set(t.filter(p=>!u.has(p)&&!a.includes(p)&&!i.includes(p)));for(const p of c)p.some(w=>d.has(w))&&p.forEach(w=>d.add(w));return r.jsxs(r.Fragment,{children:[r.jsxs("section",{className:"code-settings-section","aria-label":"Automatic agent configuration",children:[r.jsx("h3",{children:u.size?"Workflow inputs":"Ready to chat"}),r.jsxs("p",{className:"code-field-help",children:[u.size?"This workflow asks for the inputs below before it can run.":"No setup required. Write a message and press Send."," ","Optional values use workflow and Gateway defaults. Use Settings for model, workspace and tool permission overrides."]})]}),u.size?r.jsx(Mf,{...e,omit:t.filter(p=>!u.has(p)),rawObject:!1}):null,d.size?r.jsxs("details",{className:"code-advanced-inputs",children:[r.jsxs("summary",{children:["Advanced workflow inputs"," ",r.jsx("span",{className:"code-muted",children:"Optional"})]}),r.jsx("p",{className:"code-field-help",children:"Leave these unset to use the workflow and Gateway defaults. Only change them when you need a specific override."}),r.jsx(Mf,{...e,omit:t.filter(p=>!d.has(p)),rawObject:!1})]}):null]})}function gA(e,t,n){var i;if(!n.length)return t;const a=(i=e==null?void 0:e.properties)==null?void 0:i.attachments;if(!a||a.type&&a.type!=="array")throw new Error("This workflow does not declare an attachments input. Remove the attached files, or choose an agent or workflow that accepts them.");return{...t,attachments:[...Array.isArray(t.attachments)?t.attachments:[],...n]}}function yA(e){if(!e.trim())return{ok:!0,value:{}};let t;try{t=JSON.parse(e)}catch{return{ok:!1,error:"Enter valid JSON."}}return t===null||typeof t!="object"||Array.isArray(t)?{ok:!1,error:"The workflow input payload must be a JSON object."}:{ok:!0,value:t}}function Mf({schema:e,values:t,onChange:n,disabled:a=!1,omit:i=[],rawObject:c=!1,onEditorError:u,defaultModel:d}){const[f,m]=ut.useState("fields"),p=Object.entries((e==null?void 0:e.properties)||{}).filter(([x])=>!i.includes(x)),w=Zw(e),_=new Set(w.flatMap(x=>[x.provider,x.model,x.reasoning].filter(Boolean))),b=x=>{m(x),u==null||u("")},A=p.length?r.jsx("div",{className:"code-input-fields",children:p.map(([x,j])=>{const S={...j,type:nN(j)},E=w.find(D=>D.provider===x);if(E)return r.jsxs("section",{className:"code-settings-section",children:[r.jsx("h3",{children:E.title}),r.jsx(Wc,{value:{provider:String(t[E.provider]||""),model:String(t[E.model]||""),...E.reasoning?{reasoning:String(t[E.reasoning]||"")}:{}},onChange:D=>n({...t,[E.provider]:D.provider,[E.model]:D.model,...E.reasoning?{[E.reasoning]:D.reasoning||""}:{}}),...aN(E.provider,S["x-abstract-type"]),fetchModelCapabilities:E.reasoning?nh.fetchModelCapabilities:void 0,effectiveDefault:E.provider==="provider"?d:void 0,defaultHint:E.provider==="provider"&&(d!=null&&d.model)?`Gateway default: ${d.provider} · ${d.model}. Workflow defaults take precedence.`:"Empty routing pins inherit the Gateway defaults. Registered workflow defaults are loaded above any Gateway default.",disabled:a})]},x);if(_.has(x))return null;const N=`workflow-input-${x}`,C=String(S.title||x).replace(/_/g," "),$=Array.isArray(e==null?void 0:e.required)&&e.required.includes(x),R=D=>{const M={...t};D===void 0?delete M[x]:M[x]=D,n(M)};return r.jsxs("div",{className:"code-field",children:[r.jsxs("label",{htmlFor:N,children:[C,$?r.jsx("span",{"aria-label":"required",children:" *"}):null]}),S.enum?r.jsxs("select",{id:N,value:t[x]===void 0?"":JSON.stringify(t[x]),disabled:a,onChange:D=>R(D.target.value?JSON.parse(D.target.value):void 0),children:[r.jsxs("option",{value:"",children:["Choose ",C]}),S.enum.map(D=>r.jsx("option",{value:JSON.stringify(D),children:String(D)},JSON.stringify(D)))]}):S.type==="boolean"?r.jsxs("select",{id:N,value:t[x]===void 0?"":String(t[x]),disabled:a,onChange:D=>R(D.target.value?D.target.value==="true":void 0),children:[r.jsx("option",{value:"",children:"Workflow default"}),r.jsx("option",{value:"true",children:"Yes"}),r.jsx("option",{value:"false",children:"No"})]}):S.type==="number"||S.type==="integer"?r.jsx("input",{id:N,type:"number",value:typeof t[x]=="number"?String(t[x]):"",min:S.minimum,max:S.maximum,step:S.type==="integer"?1:"any",disabled:a,onChange:D=>R(D.target.value===""?void 0:Number(D.target.value))}):S.type==="object"||S.type==="array"?r.jsx(vA,{id:N,value:t[x],disabled:a,onChange:R},x):r.jsx("textarea",{id:N,rows:2,value:String(t[x]??""),disabled:a,onChange:D=>R(D.target.value)}),S.description?r.jsx("p",{className:"code-field-help",id:`${N}-help`,children:S.description}):null]},x)})}):r.jsx("p",{className:"code-muted",children:"This workflow declares no named top-level fields. Use JSON payload mode to provide registered or additional inputs."});return c?r.jsxs("div",{children:[r.jsxs("div",{className:"code-settings-tabs",role:"tablist","aria-label":"Workflow input editor",onKeyDown:mA,children:[r.jsx("button",{type:"button",role:"tab",tabIndex:f==="fields"?0:-1,"aria-selected":f==="fields",onClick:()=>b("fields"),children:"Fields"}),r.jsx("button",{type:"button",role:"tab",tabIndex:f==="json"?0:-1,"aria-selected":f==="json",onClick:()=>b("json"),children:"JSON payload"})]}),f==="json"?r.jsxs(r.Fragment,{children:[r.jsx(wA,{value:t,disabled:a,onChange:n,onError:x=>u==null?void 0:u(x)}),r.jsx("p",{className:"code-field-help",children:"The complete object is sent unchanged. Nested and additional properties are allowed here; the gateway validates it against the registered workflow schema."})]}):A]}):A}function wA({value:e,onChange:t,onError:n,disabled:a}){const[i,c]=ut.useState(JSON.stringify(e,null,2)),[u,d]=ut.useState(""),f=ut.useRef(e);return ut.useEffect(()=>{e!==f.current&&(f.current=e,c(JSON.stringify(e,null,2)),d(""),n(""))},[e,n]),r.jsxs("div",{className:"code-field",children:[r.jsx("label",{htmlFor:"workflow-input-payload",children:"Complete input object"}),r.jsx("textarea",{id:"workflow-input-payload",className:"code-mono",rows:12,value:i,disabled:a,"aria-invalid":!!u,onChange:m=>{c(m.target.value);const p=yA(m.target.value);if(!p.ok){d(p.error),n(p.error);return}f.current=p.value,d(""),n(""),t(p.value)}}),u?r.jsx("span",{role:"alert",className:"code-error-text",children:u}):null]})}function vA({id:e,value:t,onChange:n,disabled:a}){const[i,c]=ut.useState(t===void 0?"":JSON.stringify(t,null,2)),[u,d]=ut.useState(""),f=ut.useRef(t);return ut.useEffect(()=>{t!==f.current&&(f.current=t,c(t===void 0?"":JSON.stringify(t,null,2)),d(""))},[t]),r.jsxs(r.Fragment,{children:[r.jsx("textarea",{id:e,className:"code-mono",rows:4,value:i,disabled:a,"aria-invalid":!!u,onChange:m=>{c(m.target.value);try{const p=m.target.value.trim()?JSON.parse(m.target.value):void 0;f.current=p,n(p),d("")}catch{f.current=m.target.value,n(m.target.value),d("Enter valid JSON.")}}}),u?r.jsx("span",{role:"alert",className:"code-error-text",children:u}):null]})}function _A({attachments:e,uploads:t,sizes:n,onRemoveAttachment:a,onRemoveUpload:i,onRetryUpload:c}){return r.jsxs("div",{className:"code-attachments",role:"list","aria-label":"Attached files",children:[e.map((u,d)=>{const f=u.filename||u.path||"Attachment",m=typeof u.size_bytes=="number"?u.size_bytes:n==null?void 0:n.get(u.$artifact),p=typeof m=="number"?Mi(m):"";return r.jsxs("div",{role:"listitem",tabIndex:0,className:"code-attachment is-attached","aria-label":`${f}${p?`, ${p}`:""}, attached`,children:[r.jsx("span",{className:"code-attachment__icon","aria-hidden":"true",children:r.jsx(se,{name:"paperclip",size:13})}),r.jsxs("span",{className:"code-attachment__body",children:[r.jsx("span",{className:"code-attachment__name",title:f,children:f}),p?r.jsx("span",{className:"code-attachment__meta",children:p}):null]}),r.jsx("button",{type:"button",className:"code-attachment__action","aria-label":`Remove ${f}`,title:`Remove ${f}`,onClick:()=>a(d),children:r.jsx(se,{name:"x",size:12})})]},`${u.$artifact}:${d}`)}),t.map(u=>{const d=u.status==="queued"||u.status==="uploading",f=u.status==="queued"?`Waiting · ${Mi(u.size)}`:u.status==="uploading"?`Uploading · ${Mi(u.size)}`:u.message||"Not attached",m=u.status==="queued"?"waiting to upload":u.status==="uploading"?"uploading":`not attached: ${f}`;return r.jsxs("div",{role:"listitem",tabIndex:0,className:`code-attachment is-${u.status}`,"aria-label":`${u.name}, ${m}`,"aria-busy":d||void 0,children:[r.jsx("span",{className:"code-attachment__icon","aria-hidden":"true",children:d?r.jsx("span",{className:"code-attachment__spinner"}):r.jsx(se,{name:"warning",size:13})}),r.jsxs("span",{className:"code-attachment__body",children:[r.jsx("span",{className:"code-attachment__name",title:u.name,children:u.name}),r.jsx("span",{className:"code-attachment__meta",children:f})]}),u.status==="failed"?r.jsxs("button",{type:"button",className:"code-attachment__action code-attachment__retry","aria-label":`Retry ${u.name}`,title:"Retry upload",onClick:()=>c(u.id),children:[r.jsx(se,{name:"refresh",size:12}),r.jsx("span",{children:"Retry"})]}):null,r.jsx("button",{type:"button",className:"code-attachment__action","aria-label":`Remove ${u.name}`,title:`Remove ${u.name}`,onClick:()=>i(u.id),children:r.jsx(se,{name:"x",size:12})})]},u.id)})]})}function bA({active:e,paused:t,snapshot:n,onRevokeApproval:a,onCommand:i,onActivity:c,onInteraction:u,permissionsAll:d}){const f=y.useMemo(()=>T0(n),[n]),m=y.useMemo(()=>f.tone==="working"?pC(n.records.map(j=>j.record)):"",[f.tone,n.records]),p=m||f.detail,[w,_]=y.useState(Date.now);y.useEffect(()=>{if(!e)return;const j=window.setInterval(()=>_(Date.now()),1e3);return()=>window.clearInterval(j)},[e]);const b=Date.parse(f.startedAt||""),A=Number.isFinite(b)?Math.max(0,Math.floor((w-b)/1e3)):null,x=A===null?"":A<60?`${A}s`:`${Math.floor(A/60)}m ${A%60}s`;return r.jsxs("div",{className:`code-run-strip code-run-strip--${f.tone}`,children:[r.jsxs("div",{className:"code-run-strip__activity",role:"status","aria-live":"polite",children:[r.jsx("span",{className:"code-run-strip__icon","aria-hidden":"true",children:r.jsx(se,{name:f.tone==="working"?"loader":f.tone==="success"?"check":f.tone==="error"?"error":f.tone==="waiting"?"history":"info",size:15})}),u&&f.tone==="waiting"?r.jsxs("button",{className:"code-run-strip__attention",onClick:u,title:"Go to the pending request",children:[r.jsx("strong",{children:f.label}),r.jsx(se,{name:"chevronRight",size:12})]}):r.jsx("strong",{children:f.label}),r.jsx("span",{className:`code-run-strip__detail${m?" code-run-strip__detail--live":""}`,title:p,children:p})]}),r.jsxs("span",{className:"code-run-strip__metrics","aria-label":"Run activity metrics",children:[e&&x?r.jsx("span",{children:x}):null,f.toolCalls?r.jsxs("span",{children:[f.toolCalls," ",f.toolCalls===1?"tool":"tools"]}):null,f.totalTokens!==void 0?r.jsxs("span",{children:[f.totalTokens.toLocaleString()," tokens"]}):null]}),e?r.jsxs(r.Fragment,{children:[r.jsxs("button",{onClick:()=>i(t?"resume":"pause"),children:[t?"Resume":"Pause"," "]}),r.jsx("button",{onClick:()=>i("conclude"),children:"Conclude"})]}):null,r.jsxs("button",{onClick:c,children:["View activity ",r.jsx(se,{name:"chevronRight",size:12})]}),d?r.jsxs("div",{className:"code-run-strip__consent",children:[r.jsx(se,{name:"check",size:13}),r.jsx("span",{children:"Permissions: all · enabled tools only"}),r.jsx("button",{onClick:a,children:"Revoke"})]}):null]})}function af(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function wc(e){return typeof e=="string"?e.trim():""}function xA(e){const t=af(e),n=af(t==null?void 0:t.gateway),a=af(n==null?void 0:n.principal);return JSON.stringify([wc((t==null?void 0:t.gateway_url)??(t==null?void 0:t.gatewayUrl)),wc((a==null?void 0:a.tenant_id)??(a==null?void 0:a.tenantId)),wc((a==null?void 0:a.runtime_id)??(a==null?void 0:a.runtimeId)),wc((a==null?void 0:a.user_id)??(a==null?void 0:a.userId))||"session"])}function zg(e,t){return!!e.sourceRunId&&e.sessionId===t.sessionId&&e.sessionId===t.snapshotSessionId&&e.sourceRunId===t.runId&&e.sourceRunId===t.snapshotRunId&&e.authEpoch===t.authEpoch}function kA(e){const t=typeof e=="string"?e.trim().toLowerCase():"";return["completed","complete","done"].includes(t)?"advance":["failed","error","cancelled","canceled"].includes(t)?"pause":"wait"}function jA(e,t,n){return e.flatMap(a=>a.id===t.id?[]:a.sessionId!==t.sessionId||a.authEpoch!==t.authEpoch||a.sourceRunId!==t.sourceRunId?[a]:[{...a,sourceRunId:n}])}function Wg(){return new DOMException("The conversation changed before the run was attached.","AbortError")}const SA=Lb("abstractcode","0.11.2"),of=e=>["completed","failed","cancelled","canceled"].includes(e);function Bg(){const e=new URLSearchParams(window.location.hash.replace(/^#/,""));return{sessionId:e.get("session")||Ir(),runId:e.get("run")||""}}function xi(e,t=""){const n=new URLSearchParams({session:e});t&&n.set("run",t),window.history.replaceState(null,"",`#${n}`)}function NA(){var nl,Po,sl,rl,al,ol,il,ll,cl,Pa,dr,ul,Do,Fo,zo,Wo,Bo,Ds,dl,fl;const e=gb({appName:"AbstractCode",variant:"blocking"}),t=e.connected?xA(e.status):"",n=y.useCallback(()=>{e.refresh()},[e.refresh]),a=MN(t,n),[i,c]=Vb("abstractcode",{defaults:{theme:"observer-night"}}),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,w]=y.useState(!1),[_,b]=y.useState(0),A=y.useCallback(()=>b(T=>T+1),[]),[x,j]=y.useState(),S=y.useCallback(()=>{j(void 0),dt(we("about")).then(T=>j({ok:!0,value:T})).catch(T=>j({ok:!1,status:T==null?void 0:T.status,message:bt(T)}))},[]),[E,N]=y.useState({});y.useEffect(()=>{try{N(JSON.parse(localStorage.getItem(`abstractcode.voice:${t}`)||"{}"))}catch{N({})}Pr(),d(!1)},[t]);const C=T=>{if(N(T),t)try{localStorage.setItem(`abstractcode.voice:${t}`,JSON.stringify(T))}catch{}},[$,R]=y.useState(us),D=y.useRef($);D.current=$;const M=cN($.streamReplies,a.streaming),[J,V]=y.useState(us.workflow),O=y.useMemo(()=>_N(a.executable.data),[a.executable.data]),te=y.useCallback(()=>R(T=>({...T,workflow:Ft})),[]),P=XN(t,te),Z=P.state.status==="ok",W=P.state.status==="ok"?JN(P.state.row.value,O):$.workflow,ne=y.useRef(W);ne.current=W;const ae=y.useMemo(()=>vN(a.gatewayDefault,a.workflows),[a.gatewayDefault,a.workflows]),H=J===Ft?ae:a.workflows.find(T=>T.id===J)||O.find(T=>T.id===J)||null,[de,re]=y.useState(null),F=eh(H),[I,U]=y.useState(Bg),[fe,q]=y.useState(""),[le,me]=y.useState(""),[oe,ve]=y.useState(""),[We,nt]=y.useState(!1),qe=y.useRef(!1),[$e,Ue]=y.useState([]),[lt,Pe]=y.useState([]),ie=y.useRef(new Set),ee=y.useRef(new Map),[Ne,X]=y.useState(""),pe=y.useRef(null),[_e,ye]=y.useState(),Oe=y.useRef(_e);Oe.current=_e;const[Be,Ke]=y.useState(!1),[xe,Ye]=y.useState(""),[Yt,on]=y.useState(0),[xt,Yn]=y.useState({}),[Xs,ha]=y.useState(""),[gt,ma]=y.useState(null),[Fn,pa]=y.useState(""),[mn,ds,qs]=oE(),Ts=mn!==null,Pr=T=>{qs&&ds(null)},ga=T=>{d(!1),At(!1),ds(T)},Rs=T=>{T?ga("workflow"):mn==="workflow"&&ds(null)},ya=kc(Li.md),Gi=kc(Li.lg),Is=Y0(Gi,ya),ko=y.useRef(Is),Dr=s1(60),[fs,At]=y.useState(!1),[jo,Zs]=b1(),[hs,Fr]=N1(),wa=xE(a.capabilities),{ctl:ln,state:Rt}=iA(t,e.connected&&wa.available);y.useEffect(()=>{hs.automations&&Rt.loaded&&Rt.archivedCount>0&&Rt.archived===null&&ln.loadArchived()},[hs.automations,Rt.loaded,Rt.archivedCount,Rt.archived,ln]);const[Xt,pn]=y.useState(!1),[va,_a]=y.useState(!1),So=y.useRef(""),[ba,Ki]=y.useState(""),No=y.useRef(null),[er,tu]=y.useState("steer"),[Ms,rt]=y.useState([]),[Co,Tn]=y.useState(!1),[Eo,tr]=y.useState([]),zr=y.useMemo(()=>tv(a.tools,$.tools,$.permissions),[a.tools,$.tools,$.permissions]),xa=y.useRef(null),ka=y.useMemo(()=>{var je,Te;const T=((je=xa.current)==null?void 0:je.runId)===I.runId?xa.current.input:null;if(I.runId&&!gt&&!T)return{enabledTools:[],autoApproveTools:[]};const Y=gt?gt.input_data:T,be=WN(zr,(Te=Y==null?void 0:Y._runtime)==null?void 0:Te.allowed_tools);return{...be,autoApproveTools:$.toolsCustomized||$.permissions!=="default"?be.autoApproveTools:[]}},[zr,gt,I.runId,$.toolsCustomized,$.permissions]),gn=`${t}:${I.sessionId}:${I.runId}`,Ji=y.useRef(gn);Ji.current=gn;const yn=y.useRef(null),[Qi,nu]=y.useState({scope:"",notes:[]}),su=y.useMemo(()=>LN({onDeltaError:T=>{const Y=Ji.current,be=fN(T,yn.current);nu(je=>({scope:Y,notes:hN(je.scope===Y?je.notes:[],be)}))}}),[]),{controller:zn,snapshot:Ve}=W0({transport:su,runId:I.runId,enabled:e.connected,onAuthError:n,clientId:"abstractcode-web",authScopeKey:t,toolApprovalPolicy:ka}),Vt=!!I.runId&&!of(Ve.status)&&Ve.status!=="idle",nr=((nl=Ve.run)==null?void 0:nl.paused)===!0||Ve.status==="paused",ms=Vt||We,ja=Ve.loading&&Eo.length?Eo:Ve.messages,sr=ja[ja.length-1];yn.current=sr!=null&&sr.id?String(sr.id):null;const Xn=mN(ja,[uN($.streamReplies,a.streaming,ja),...Qi.scope===gn?Qi.notes:[]]),Wr=((sl=(Po=a.capabilities)==null?void 0:Po.assistant)==null?void 0:sl.voice)||{},rr=HE(e.connected),qn=vv({scope:`${t}:${I.sessionId}:${I.runId}:${Xt}`,runId:t?I.runId:"",sessionId:I.sessionId,capability:Wr,preferences:E,onTranscript:T=>void Ca(T),onError:me}),Zn=[...Xn].reverse().find(T=>T.role==="assistant"),Je=Zn?String(Zn.id||Zn.content):"",Sa=y.useRef({scope:"",id:""});y.useEffect(()=>{const T=`${t}:${I.sessionId}`,Y=Sa.current;if(Y.scope!==T){Sa.current={scope:T,id:Je};return}!Je||Je===Y.id||ms||(Sa.current={scope:T,id:Je},E.read_aloud===!0&&qn.tts_supported&&(Zn!=null&&Zn.content)&&qn.toggle_tts(Je,Zn.content))},[t,I.sessionId,Je,ms,E.read_aloud,qn.tts_supported]);const Ao=P0(Ve),wn=y.useMemo(()=>Q0(Ao,zn,{records:Ve.records,currentRun:Ve.run,onPermissionsAll:async()=>{R(T=>({...T,permissions:"all"}))}}),[Ao,Ve.records,Ve.run,zn]),$o=!!wn&&er==="steer",Wn=F?"prompt":sN(_e),To=F||!!(Wn&&!((rl=_e==null?void 0:_e.required)!=null&&rl.some(T=>T!==Wn))),ps=String(((al=gt==null?void 0:gt.workspace)==null?void 0:al.workspace_root)||((il=(ol=Ve.run)==null?void 0:ol.vars)==null?void 0:il.workspace_root)||""),gs=y.useMemo(()=>{var T;return L1(a.workflows,{inputData:gt,runWorkflowId:(T=Ve.run)==null?void 0:T.workflow_id})},[a.workflows,gt,(ll=Ve.run)==null?void 0:ll.workflow_id]),Rn=I.runId&>&&!a.loading&&Ve.run&&!gs&&sh(gt)!=="gateway_default"?"This conversation's exact workflow version is unavailable. Restore it in the gateway, or start a new conversation with an available workflow.":"",Nt=a.sessions.find(T=>T.sessionId===I.sessionId),In=(Nt==null?void 0:Nt.prompt)||((cl=Xn.find(T=>T.role==="user"))==null?void 0:cl.content)||"New conversation",ar=bE((Pa=e.status)==null?void 0:Pa.gateway_url),Ls=ar?()=>{window.open(ar,"_blank","noopener,noreferrer")}:void 0,Bn={...Ls?{openMyEmail:Ls}:{},openConversation:(T,Y,be)=>{So.current=be||"",Br(T,Y)},openRun:T=>{dt(we(`runs/${encodeURIComponent(T)}`)).then(Y=>{if(!(Y!=null&&Y.session_id))throw new Error(`The gateway reported no session for run ${T}.`);Br(Y.session_id,T)}).catch(Y=>ln.reportError(Y))}},Yi=T=>{(!Xt||Rt.selectedId!==T)&&(pn(!0),ln.select(T)),At(!1),d(!1),ds("workflow")},Xi=T=>{Yi(T),ds("workspace")},or=async T=>{const Y=T.flow_id==="@default"?ae:a.workflows.find(ht=>`${ht.bundleId}@${ht.bundleVersion}`===("bundle_ref"in T?T.bundle_ref:"")&&ht.flowId===T.flow_id);if(!Y)throw new Error("The selected workflow is no longer available. Refresh the workflow list.");const be=await ef(Y);if(!be)throw new Error("Workflow inputs could not be checked. Refresh the workflow list and try again.");const je={...Js(be),...T.input_data},Te=Yd(be,je);if(Te.length)throw new Error(`${Te.join(" ")} Configure a new automation from that workflow's input form, or choose a compatible workflow.`);return{...T,input_data:je}},qi=((dr=Rt.detail)==null?void 0:dr.summary.title)||"Automation",Na=y.useRef(""),ys=y.useRef(t),It=y.useRef(0);ys.current!==t&&(It.current+=1,ys.current=t);const Ro=y.useRef(!1),$t=y.useRef(I);$t.current=I,y.useEffect(()=>{if(qe.current=!1,nt(!1),Pe([]),me(""),ve(""),!t){Ue([]),q(""),rt([]),Tn(!1),tr([]),R(us);return}if(Na.current&&Na.current!==t){const Y={sessionId:Ir(),runId:""};U(Y),xi(Y.sessionId)}Na.current=t,Ro.current=!0;const T=sv(t);R(T),V(T.workflow)},[t]),y.useEffect(()=>{if(t){if(Ro.current){Ro.current=!1;return}GN(t,$)}},[$,t]),y.useEffect(()=>{if(a.loading||!a.workflows.length)return;const T=kN({selection:J,preferred:W,visible:O,workflows:a.workflows,runId:I.runId});T!==J&&V(T)},[a.loading,a.workflows,O,J,W,I.runId]);const ir=P.state.status==="ok"?`${t}|${P.state.row.value??""}|${O.length}`:"";y.useEffect(()=>{!ir||I.runId||!O.length||V(ne.current)},[ir]),y.useEffect(()=>{let T=!0;if(Yn({}),ha(""),ye(void 0),Ye(""),!H){Ke(!1);return}return Ke(!0),ef(H).then(Y=>{T&&(ye(Y),Yn(Js(Y)))}).catch(Y=>{T&&Ye(bt(Y))}).finally(()=>{T&&Ke(!1)}),()=>{T=!1}},[H==null?void 0:H.id,Yt]),y.useEffect(()=>{if(ma(null),pa(""),!t||!I.runId)return;const T=new AbortController;return dt(we(`runs/${encodeURIComponent(I.runId)}/input_data`),{signal:T.signal}).then(Y=>{ma(Y)}).catch(Y=>{T.signal.aborted||pa(bt(Y))}),()=>T.abort()},[I.runId,t]),y.useEffect(()=>{gt&>.flow_id===(H==null?void 0:H.flowId)&&_e&&Yn({...Js(_e),...eN(_e,gt.input_data)})},[gt,_e,H==null?void 0:H.flowId]),y.useEffect(()=>{!I.runId&&e.connected&&(Nt!=null&&Nt.latestRunId)&&U(T=>({...T,runId:Nt.latestRunId}))},[I.runId,e.connected,Nt==null?void 0:Nt.latestRunId]),y.useEffect(()=>{xi(I.sessionId,I.runId),qe.current=!1,nt(!1),Pe([]),Ue([]),Yn(Js(Oe.current)),tr([]),ve(So.current),So.current="",me(""),rt([]),Tn(!1)},[I.sessionId]),y.useEffect(()=>{const T=()=>{const Y=Bg();qe.current=!1,nt(!1),Pe([]),rt([]),Tn(!1),q(""),U(Y)};return window.addEventListener("hashchange",T),()=>window.removeEventListener("hashchange",T)},[]),y.useEffect(()=>{!I.runId||!of(Ve.status)||a.refresh()},[I.runId,Ve.status]),y.useEffect(()=>{if(!I.runId||!gt)return;const T=jN({restoredInputs:gt,restored:gs});T&&V(T)},[I.runId,gt,gs==null?void 0:gs.id]);const ws=I.runId?SN(gt):"",vs=y.useCallback(()=>{const T={sessionId:Ir(),runId:""};U(T),V(ne.current),xi(T.sessionId),q(""),rt([]),Tn(!1),At(!1),pn(!1)},[]),Br=y.useCallback((T,Y)=>{qe.current=!1,nt(!1),Pe([]),U({sessionId:T,runId:Y}),xi(T,Y),At(!1),rt([]),Tn(!1),q(""),pn(!1)},[]);y.useEffect(()=>{const T=ko.current;ko.current=Is,T!==Is&&At(Y=>X0(Y,Is))},[Is]),Pw(fs,ya,()=>document.querySelector(".code-sidebar"),()=>document.querySelector(".code-mobile-close")),y.useEffect(()=>{const T=Y=>{var je;if(q0({key:Y.key,defaultPrevented:Y.defaultPrevented,overlayOpen:Ts||u||va||f||Z0(),sidebarOpen:fs})==="sidebar"){At(!1),(je=document.querySelector(".code-mobile-nav"))==null||je.focus();return}(Y.metaKey||Y.ctrlKey)&&(Y.key.toLowerCase()==="k"&&(Y.preventDefault(),Pr(),d(!1),At(!0),window.setTimeout(()=>{var Te;return(Te=No.current)==null?void 0:Te.focus()},0)),Y.key.toLowerCase()==="n"&&Y.shiftKey&&(Y.preventDefault(),vs()))};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[vs,fs,va,Ts,u,f]);function Io(T,Y,be=[],je=!1,Te=H,ht=_e){const vt=z1({workflow:Te||void 0,inputSchema:ht,schemaInputs:Y,prompt:T,promptProperty:Wn,model:$,reasoning:$.reasoning||void 0,speculation:$.speculation,streamReplies:M,systemPromptExtra:$.system||void 0,attachments:be,limits:{maxIterations:$.maxIterations?Number($.maxIterations):void 0,maxTokens:$.maxTokens?Number($.maxTokens):void 0},workspace:ps?{root:ps}:void 0,tools:$.toolsCustomized?zr.enabledTools:void 0,toolPolicy:$.toolsCustomized||$.permissions!=="default"?{autoApproveTools:[],requireApprovalTools:zr.enabledTools}:void 0,skills:$.skills.length?$.skills:void 0});return je&&(delete vt.workspace_root,delete vt.workspace_access_mode,delete vt.workspace_allowed_paths,delete vt.workspace,vt._runtime&&typeof vt._runtime=="object"&&delete vt._runtime.tool_policy),vt}async function lr(T){if(qe.current)throw new Error("A turn is already being submitted.");if(!e.connected)throw new Error("Connect to your gateway first.");if(J===Ft&&a.gatewayDefault.status==="unavailable")throw new Error(`Gateway default: ${a.gatewayDefault.reason}. Choose a workflow from the list.`);if(!H)throw new Error("Choose a workflow first.");if(!a.policy)throw new Error("Workspace policy is unavailable. Reconnect or refresh before starting.");if(I.runId&&(!gt||Fn))throw new Error(Fn||"Wait for the gateway to restore this conversation's workspace.");if(Rn)throw new Error(Rn);if(Be||xe)throw new Error(xe||"Wait for workflow inputs to load.");if(Xs)throw Rs(!0),new Error(Xs);const Y=oC(lt);if(Y)throw new Error(Y);if(Vt)throw new Error("The current run is still active.");if(!F&&T.trim()&&!Wn)throw Rs(!0),new Error("This workflow uses structured inputs. Configure its inputs, then select Run workflow.");const be={...Js(_e),...xt,...Wn&&T.trim()?{[Wn]:T.trim()}:{}},je=F?be:gA(_e,be,$e);for(const[qt,Zt]of[["Iteration limit",$.maxIterations],["Context token limit",$.maxTokens]])if(Zt&&(!Number.isInteger(Number(Zt))||Number(Zt)<=0))throw new Error(`${qt} must be a positive whole number.`);qe.current=!0,nt(!0),me(""),ve("");const Te=I.sessionId,ht=I.runId,vt=t,fr=It.current;let Lt="";try{const qt=Io(T,je,$e),Zt=Yd(_e,qt);if(Zt.length)throw Rs(!0),new Error(Zt.join(" "));const ks=NN({selection:J,workflow:H,sessionId:Te,input:qt}),ts=await dt(we("runs/start"),{method:"POST",body:JSON.stringify(ks)});if(!ts.run_id)throw new Error("The gateway did not return a run identifier.");if($t.current.sessionId!==Te||$t.current.runId!==ht||ys.current!==vt||It.current!==fr)throw Wg();return Lt=String(ts.run_id),xa.current={runId:Lt,input:qt},re({runId:Lt,...CN(ts.resolved_workflow)}),tr([...Xn,...T.trim()?[{id:`pending:${ts.run_id}`,role:"user",content:T.trim()}]:[]]),U({sessionId:Te,runId:ts.run_id}),xi(Te,ts.run_id),q(""),Ue([]),Rs(!1),ts.runner_warning&&ve(String(ts.runner_warning)),a.refresh(),Lt}finally{$t.current.sessionId===Te&&($t.current.runId===ht||$t.current.runId===Lt)&&ys.current===vt&&It.current===fr&&(qe.current=!1,nt(!1))}}async function Ca(T){const Y=YE(fe,T);if(We){q(Y);return}try{await Ea(Y)}catch(be){q(Y),me(bt(be))}}async function Ea(T){if(!Vt)return lr(T);if(er==="queue")rt(Y=>[...Y,{id:Ir(),text:T,sessionId:I.sessionId,sourceRunId:I.runId,authEpoch:It.current}]),Tn(!0),q(""),ve("Queued for the next turn.");else{if(wn)throw new Error("Answer the pending workflow request above, or choose Queue next turn.");const Y=I.sessionId,be=I.runId,je=It.current;if(await zn.sendCommand("inject_guidance",{guidance:T}),$t.current.sessionId!==Y||$t.current.runId!==be||It.current!==je)return;q(""),ve("Guidance queued. The workflow will read it at its next supported boundary.")}}async function Mo(T){var je,Te;const Y=String(((je=Ve.run)==null?void 0:je.run_id)||"");if(!zg(T,{sessionId:I.sessionId,runId:I.runId,snapshotRunId:Y,snapshotSessionId:String(((Te=Ve.run)==null?void 0:Te.session_id)||""),authEpoch:It.current}))throw Wg();const be=await lr(T.text);rt(ht=>jA(ht,T,be))}y.useEffect(()=>{var be,je;if(!Co||!Ms.length||!e.connected||!gt||Fn||qe.current)return;const T=kA(Ve.status);if(T==="wait")return;if(T==="pause"){Tn(!1);const Te=["failed","error"].includes(Ve.status.toLowerCase());ve(`Queue paused because the run ${Te?"failed":"was cancelled"}. Review the result, then use Run next to continue explicitly.`);return}const Y=Ms[0];zg(Y,{sessionId:I.sessionId,runId:I.runId,snapshotRunId:String(((be=Ve.run)==null?void 0:be.run_id)||""),snapshotSessionId:String(((je=Ve.run)==null?void 0:je.session_id)||""),authEpoch:It.current})&&Mo(Y).catch(Te=>{Te instanceof DOMException&&Te.name==="AbortError"||(Tn(!1),me(bt(Te)))})},[Co,Ms,Ve.status,(ul=Ve.run)==null?void 0:ul.run_id,(Do=Ve.run)==null?void 0:Do.session_id,e.connected,gt,Fn,I.sessionId,I.runId]);async function es(T){const Y=I.sessionId,be=t,je=It.current,Te=()=>$t.current.sessionId!==Y||ys.current!==be||It.current!==je,ht=(Lt,qt)=>Pe(Zt=>Zt.map(ks=>ks.id===Lt?{...ks,...qt}:ks));let vt=0,fr=0;await aC(T,nC,async Lt=>{if(!(Te()||ie.current.has(Lt.id))){ht(Lt.id,{status:"uploading",message:void 0});try{const qt=await Dn.attachments_upload(Y,Lt.file);if(Te()||ie.current.has(Lt.id))return;ee.current.set(qt.$artifact,Lt.size),Pe(Zt=>Zt.filter(ks=>ks.id!==Lt.id)),Ue(Zt=>[...Zt,qt]),vt+=1}catch(qt){if(Te()||ie.current.has(Lt.id))return;ht(Lt.id,{status:"failed",message:sC(bt(qt))}),fr+=1}}}),!Te()&&(vt||fr)&&X(jg(vt,fr))}function Ur(T){var je;if(!T.length)return[];const Y=rC(T,(je=a.policy)==null?void 0:je.maxAttachmentBytes,Ir);Pe(Te=>[...Te,...Y]);const be=Y.filter(Te=>Te.status==="refused").length;return be&&X(jg(0,be)),es(Y.filter(Te=>Te.status==="queued")),Y}function Aa(T){const Y=lt.find(je=>je.id===T);if(!Y||Y.status!=="failed")return;const be={...Y,status:"queued",message:void 0};Pe(je=>je.map(Te=>Te.id===T?be:Te)),es([be])}function Zi(T){ie.current.add(T),Pe(Y=>Y.filter(be=>be.id!==T))}async function $a(){const T=I.sessionId,Y=I.runId,be=It.current;await zn.cancel(),$t.current.sessionId===T&&$t.current.runId===Y&&It.current===be&&ve("")}const _s=T=>{const Y=It.current,be=I.sessionId,je=I.runId;me(""),T().catch(Te=>{Te instanceof DOMException&&Te.name==="AbortError"||It.current===Y&&$t.current.sessionId===be&&$t.current.runId===je&&me(bt(Te))})},Ta=a.sessions.filter(T=>`${T.prompt||""} ${T.sessionId}`.toLowerCase().includes(ba.toLowerCase())),[yt,bs]=y.useState(null),[Ra,Os]=y.useState(!1),[ru,cr]=y.useState(""),Ia=(T,Y)=>{cr(""),bs({sessionId:T,where:Y})},Vr=()=>{bs(null),cr("")},Ma=async()=>{if(!yt||Ra)return;const{sessionId:T}=yt;Os(!0),cr("");try{await Q1(T)}catch(Y){cr(`Not archived: ${bt(Y)}`),Os(!1);return}if(Os(!1),bs(null),T===I.sessionId){const Y=Y1(Ta,T);Y?Br(Y.sessionId,Y.latestRunId):vs()}a.forgetSession(T)},Lo=r.jsx(E1,{busy:Ra,error:ru,onConfirm:()=>void Ma(),onCancel:Vr}),au=(()=>{var T;try{return new URL(((T=e.status)==null?void 0:T.gateway_url)||"").host}catch{return"Your gateway"}})(),ou=T=>{const Y=[];($.provider||$.model)&&!T.provider&&!T.model&&Y.push("provider","model"),$.toolsCustomized&&!T.toolsCustomized&&Y.push("tools"),$.maxIterations&&!T.maxIterations&&Y.push("max_iterations"),Y.length&&Yn(be=>{const je={...be},Te=Js(_e);for(const ht of Y)delete je[ht],Object.prototype.hasOwnProperty.call(Te,ht)&&(je[ht]=Te[ht]);return je}),R(T)},xs=(T,Y=$,be=ou,je)=>r.jsx(UN,{tab:T,lockedReasonId:`code-${T}-locked`,value:Y,onChange:be,tools:a.tools,connected:e.connected,automationFolders:!!je,defaultModel:!je&&xt.provider&&xt.model?{provider:String(xt.provider),model:String(xt.model)}:a.defaultModel,workflowDefault:!je&&!!(xt.provider&&xt.model),streaming:a.streaming,disabled:je?!e.connected:ms||!e.connected,workspaceRootFixed:je==null?void 0:je.root,sessionId:je?void 0:I.sessionId,onOpenDefaultWorkspaces:()=>w(!0),workspaceRefreshKey:_,hideStreamReplies:!!je,lockedText:je?"Connect to a gateway to edit this automation.":void 0}),La=r.jsx(GE,{value:E,onChange:T=>{qn.stop_tts(),C(T)},defaults:rr,connected:e.connected}),wt=Rt.detail,Ps=fE(Xt&&(wt!=null&&wt.definition)?{summary:wt.summary,definition:wt.definition}:null,(T,Y,be)=>ln.revise(T,Y,be)),ur=(T,Y,be)=>{if(Xt){if(!(wt!=null&&wt.definition)||!Ps)return Rt.selectedId?r.jsx(vo,{children:"Loading automation…"}):r.jsx("p",{className:"code-muted",children:"Select an automation in the sidebar."});const je={root:wt.definition.workspace_root||""};return r.jsxs("div",{className:"code-automation-settings",id:`code-settings-${T}`,"data-revision":Ps.revision,children:[r.jsx(hE,{summary:wt.summary,settings:Ps}),be(Ps.draft,Ps.onChange,je)]})}return r.jsxs("div",{className:"code-conversation-settings",id:`code-settings-${T}`,children:[r.jsxs("p",{className:"code-settings-binding",children:[r.jsx("span",{children:"Conversation"})," ",r.jsx("strong",{title:In,children:In})]}),Y()]})},iu=ur("model",()=>xs("model"),(T,Y,be)=>xs("model",T,Y,be)),lu=ur("workflow",()=>r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"code-workflow-select","aria-busy":Be||void 0,children:[r.jsx(se,{name:"agent",size:17}),r.jsx(Wy,{id:"code-workflow-picker",className:"code-workflow-picker",interfaceId:$n,ariaLabel:"Workflow",workflows:{...a.executable,reload:()=>void a.refresh()},value:bN(J,H),currentLabel:H&&J!==Ft&&!O.some(T=>T.id===H.id)?{name:H.name,detail:I.runId&&H.bundleVersion?`conversation version ${H.bundleVersion}`:H.bundleVersion?`@${H.bundleVersion}`:""}:null,unavailableReason:e.connected?ms?"A run is in progress.":null:"Connect to a gateway first.",onChange:(T,Y)=>{const be=xN(T,Y);V(be),Z||R(je=>({...je,workflow:be}))}}),J===Ft&&Xd(ae)?r.jsx("span",{className:"code-workflow-resolved is-missing",role:"alert",title:Xd(ae),children:Xd(ae)}):null,ws?r.jsx("span",{className:"code-workflow-resolved is-missing",role:"status",title:ws,children:ws}):null,de&&de.runId===I.runId&&de.missing?r.jsx("span",{className:"code-workflow-resolved is-missing",role:"status",children:de.text}):null]}),P.state.status==="ok"?r.jsxs(r.Fragment,{children:[r.jsx(qN,{row:P.state.row,save:P.save,disabled:!e.connected}),r.jsx(_g,{block:P.state.timeZone,save:P.saveTimeZone,disabled:!e.connected})]}):null,r.jsxs("div",{className:"code-settings code-workflow-inputs",children:[r.jsx("h3",{className:"code-settings-heading",children:"Inputs"}),r.jsx("p",{className:"code-muted",children:(H==null?void 0:H.description)||"Configure the values this workflow needs to run."}),Be?r.jsx("p",{role:"status",children:"Loading input schema…"}):xe?null:F||Wn?r.jsx(pA,{schema:_e,promptProperty:Wn,defaultModel:a.defaultModel,values:xt,onChange:Yn,disabled:ms,onEditorError:ha},H==null?void 0:H.id):r.jsx(Mf,{schema:_e,defaultModel:a.defaultModel,values:xt,onChange:Yn,disabled:ms,rawObject:!0,onEditorError:ha},H==null?void 0:H.id),xe?r.jsx("p",{role:"alert",className:"code-error-text",children:xe}):null,To?r.jsxs("button",{className:"code-primary-button",onClick:()=>Rs(!1),children:["Back to chat ",r.jsx(se,{name:"chat",size:16})]}):r.jsxs("button",{className:"code-primary-button",disabled:ms||Be||!!xe||!!Xs||!e.connected,onClick:()=>_s(()=>lr(fe||String(xt[Wn||"prompt"]||""))),children:["Run workflow ",r.jsx(se,{name:"playCircle",size:16})]})]})]}),()=>wt!=null&&wt.definition&&Ps?r.jsxs(r.Fragment,{children:[r.jsx(mE,{summary:wt.summary,definition:wt.definition,settings:Ps,busy:Rt.busy,disabled:!e.connected,emailStatus:Rt.emailStatus,onOpenMyEmail:Bn.openMyEmail,onRevise:(T,Y)=>ln.revise(wt.automationId,T,Y),previewSchedule:ln.previewSchedule,prepareTarget:or,workflowPickerOptions:{interfaceId:$n,workflows:{...a.executable,reload:()=>void a.refresh()}}}),P.state.status==="ok"?r.jsx(_g,{block:P.state.timeZone,save:P.saveTimeZone,disabled:!e.connected}):null]}):null),el=ur("workspace",()=>r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"code-current-workspace",children:["Current workspace ",r.jsx("code",{title:ps||"Gateway workspace",children:ps.split("/").filter(Boolean).pop()||"Gateway workspace"})]}),xs("workspace")]}),(T,Y,be)=>xs("workspace",T,Y,be)),cu=ur("tools",()=>xs("tools"),(T,Y,be)=>xs("tools",T,Y,be)),uu=ur("skills",()=>xs("skills"),(T,Y,be)=>xs("skills",T,Y,be)),du=ur("voice",()=>La,()=>La),Oo=Xt?`automation:${Rt.selectedId}`:`conversation:${I.sessionId}`,Oa=y.useRef({});y.useEffect(()=>{!mn||mn==="activity"||mn==="files"||Oa.current[mn]===Oo||(Oa.current[mn]=Oo,window.requestAnimationFrame(()=>{const T=document.querySelector(`#code-rail-panel-${mn} .af-rail__body`);T&&(T.scrollTop=0)}))},[Oo,mn]);const tl=Xt?{count:0,hint:""}:VC(Ve.records,I.runId),fu=r.jsx(iE,{panel:mn,onPanel:T=>{ds(T),T&&d(!1)},activityBadge:tl.count,activityHint:tl.hint,content:{activity:Xt?r.jsx(QC,{occurrences:(wt==null?void 0:wt.occurrences)||[],nowMs:Date.now(),onOpenRun:Bn.openRun}):r.jsx(UC,{records:Ve.records,runId:I.runId}),files:Xt?e.connected&&Rt.selectedId?r.jsx(qf,{fetchGateway:Dc,runId:Rt.selectedId,title:"Automation files",refreshKey:wt==null?void 0:wt.summary.updated_at,copyText:rh,onOpenFolder:()=>av(Rt.selectedId)}):r.jsx("p",{className:"code-muted",children:"Connect to a gateway and select an automation to browse its files."}):r.jsxs(r.Fragment,{children:[r.jsx(BC,{policy:a.policy,runId:I.runId,enabled:e.connected,isAdmin:((Wo=(zo=(Fo=e.status)==null?void 0:Fo.gateway)==null?void 0:zo.principal)==null?void 0:Wo.admin)===!0,refreshKey:Ve.status,onAttachFiles:Ur,onAttach:async T=>{const Y=I.sessionId,be=I.runId,je=It.current,Te=await Dn.attachments_ingest(Y,T);$t.current.sessionId===Y&&$t.current.runId===be&&It.current===je&&Ue(ht=>[...ht,Te])}}),Xn.length?r.jsx("button",{className:"code-subtle-button",onClick:()=>aS({filename:"conversation.md",text:rS(Xn)}),children:"Export conversation"}):null]}),model:iu,workflow:lu,workspace:el,tools:cu,skills:uu,voice:du}},`rail:${t}`);return r.jsxs("div",{className:`code-app${fs?" code-app--nav-open":""}`,children:[r.jsx("a",{className:"code-skip-link",href:"#code-conversation",children:"Skip to conversation"}),r.jsxs(h1,{isDrawer:ya,open:fs,children:[r.jsxs("div",{className:"code-brand",children:[r.jsxs("span",{className:"code-brand-mark","aria-hidden":"true",children:["a",r.jsx("span",{children:"c"})]}),r.jsxs("div",{children:[r.jsx("strong",{children:"AbstractCode"}),r.jsx("span",{children:"YOUR WORK, IN CONTEXT"})]}),r.jsx("button",{className:"code-mobile-close code-icon-button","aria-label":"Close navigation",onClick:()=>At(!1),children:r.jsx(se,{name:"x",size:18})})]}),r.jsxs("div",{className:"code-session-search",children:[r.jsx(se,{name:"history",size:14}),r.jsx("input",{ref:No,"aria-label":"Search conversations",placeholder:"Search conversations",value:ba,onChange:T=>Ki(T.target.value)}),r.jsx("kbd",{children:"⌘K"})]}),r.jsxs(x1,{panels:jo,children:[r.jsx(lA,{state:Rt,available:wa,discovering:a.capabilitiesLoading,createDisabled:Be||!!xe||!H,selectedId:Xt?Rt.selectedId:"",onSelect:T=>{pn(!0),At(!1),ln.select(T)},onNew:()=>_a(!0),onRefresh:()=>void ln.refresh(),archivedOpen:hs.automations,onToggleArchived:()=>Fr("automations"),onUnarchive:T=>void ln.unarchive(T.automation_id).catch(()=>{}),onToggleActive:T=>void ln.toggleActive(T).catch(()=>{}),open:jo.automations,onToggle:()=>Zs("automations")}),r.jsxs(k1,{open:jo.conversations,onToggle:()=>Zs("conversations"),actions:r.jsxs("span",{className:"code-auto-actions",children:[r.jsx("button",{className:"code-icon-button code-new-chat","aria-label":"New conversation",title:"New conversation (⇧⌘N)","aria-keyshortcuts":"Shift+Meta+N",onClick:vs,children:r.jsx(se,{name:"plus",size:13})}),r.jsx("button",{className:"code-icon-button","aria-label":"Refresh conversations",disabled:!e.connected||a.loading,onClick:()=>void a.refresh(),children:r.jsx(se,{name:"refresh",size:13})})]}),children:[Nt?null:r.jsx("button",{type:"button",className:"code-session code-card is-selected",onClick:()=>At(!1),children:r.jsxs("span",{children:[r.jsx("strong",{className:"code-card-title",children:"New conversation"}),r.jsx("small",{className:"code-card-meta",children:"Ready when you are"})]})}),Ta.map(T=>r.jsx(U1,{item:T,selected:T.sessionId===I.sessionId,onClick:()=>Br(T.sessionId,T.latestRunId),onAskArchive:e.connected?()=>Ia(T.sessionId,"card"):void 0,confirm:(yt==null?void 0:yt.where)==="card"&&yt.sessionId===T.sessionId?Lo:void 0},T.sessionId)),a.sessionsLoaded&&!Ta.length?r.jsx("p",{className:"code-history-empty",children:ba?"No conversations match your search.":"Your conversations will live here. Pick up where you left off, on any device."}):null,a.loading&&!a.sessionsLoaded?r.jsx(vo,{children:"Loading conversations…"}):null,a.hasMore?r.jsx("button",{className:"code-load-more",onClick:a.loadMore,children:"Load more conversations"}):null,r.jsx(Vw,{list:"conversations",count:a.archivedSessions,open:hs.conversations,onToggle:()=>Fr("conversations"),children:r.jsx(X1,{enabled:e.connected&&hs.conversations,revision:a.archivedSessions,onOpen:T=>{At(!1),Br(T.sessionId,T.latestRunId)},onUnarchived:()=>void a.refresh()})})]})]}),r.jsx("div",{className:"code-sidebar-bottom",children:r.jsxs("div",{className:"code-gateway-foot",children:[r.jsx("span",{className:`code-status-dot ${e.connected?"is-online":""}`}),r.jsx("span",{children:au}),r.jsx("small",{children:((dl=(Ds=(Bo=e.status)==null?void 0:Bo.gateway)==null?void 0:Ds.principal)==null?void 0:dl.user_id)||"Signed out"})]})})]}),fs?r.jsx("button",{className:"code-nav-scrim","aria-label":"Close conversation navigation",onClick:()=>At(!1)}):null,r.jsxs("div",{className:"code-main-shell",children:[r.jsxs("header",{className:"code-topbar",children:[r.jsx("button",{className:"code-mobile-nav code-icon-button","aria-label":"Open conversation navigation",onClick:()=>{Pr(),d(!1),At(!0)},children:r.jsx(se,{name:"list",size:19})}),r.jsxs("div",{className:"code-breadcrumb",children:[r.jsx("span",{children:Xt?"Automations":"Conversations"}),r.jsx("span",{"aria-hidden":"true",children:"/"}),r.jsx("strong",{title:Xt?qi:In,children:Xt?qi:In})]}),!Xt&&Nt&&e.connected?r.jsx(Xg,{className:"code-conversation-menu",label:"Conversation actions",title:"More actions",items:[{id:"archive",label:"Archive",danger:!0,onSelect:()=>Ia(Nt.sessionId,"header")}]}):null,r.jsx(Wb,{docs:{open:u,onToggle:()=>{d(T=>!T),Pr(),At(!1)},label:"Docs assistant"},appearance:{onOpen:()=>m(!0)},about:{identity:SA,versions:gE(x),onOpen:S},connection:{phase:e.phase,signingOut:e.signingOut,onConnect:e.openModal,onDisconnect:()=>void e.signOut()}})]}),r.jsxs("div",{className:"code-content",children:[Xt?r.jsx(fA,{prepareTarget:or,workflowPickerOptions:{interfaceId:$n,workflows:{...a.executable,reload:()=>void a.refresh()}},ctl:ln,availableTools:a.tools.filter(T=>T.enabled).map(T=>T.name),host:Bn,voiceCapability:Wr,voicePreferences:E,enabled:e.connected,onClose:()=>pn(!1),onEdit:Yi,onEditWorkspaces:Xi}):r.jsxs("main",{className:"code-conversation",id:"code-conversation",tabIndex:-1,children:[le||Ve.error||e.signOutError||Fn?r.jsxs("div",{className:"code-alert",role:"alert",children:[r.jsx(se,{name:"warning",size:16}),r.jsx("span",{children:le||Ve.error||e.signOutError||Fn}),Ve.error||Fn?r.jsx("button",{onClick:()=>{Fn?window.location.reload():_s(()=>zn.load(I.runId))},children:"Reconnect"}):r.jsx("button",{"aria-label":"Dismiss error",onClick:()=>me(""),children:r.jsx(se,{name:"x",size:14})})]}):null,(yt==null?void 0:yt.where)==="header"&&yt.sessionId===I.sessionId?r.jsx("div",{className:"code-archive-confirm-bar",children:Lo}):null,a.errors.length?r.jsx("div",{className:"code-discovery-errors",role:"status",children:r.jsxs("details",{children:[r.jsx("summary",{children:"Some gateway information could not be loaded"}),a.errors.map(T=>r.jsx("p",{children:T},T)),r.jsx("button",{onClick:()=>void a.refresh(),children:"Retry discovery"})]})}):null,Rn?r.jsxs("div",{className:"code-alert",role:"alert",children:[r.jsx("span",{children:Rn}),r.jsx("button",{onClick:vs,children:"New conversation"})]}):null,xe?r.jsxs("div",{className:"code-alert",role:"alert",children:[r.jsxs("span",{children:["Workflow inputs: ",xe]}),r.jsx("button",{onClick:()=>on(T=>T+1),children:"Retry"})]}):null,oe?r.jsxs("div",{className:"code-notice",role:"status",children:[oe,r.jsx("button",{"aria-label":"Dismiss notice",onClick:()=>ve(""),children:r.jsx(se,{name:"x",size:13})})]}):null,Vt||of(Ve.status)?r.jsx(bA,{active:Vt,paused:nr,snapshot:Ve,permissionsAll:$.permissions==="all",onInteraction:wn&&!nr?()=>{var be;const T=document.querySelector(".code-conversation .pc-chat-thread"),Y=T==null?void 0:T.querySelector(".pc-workflow-interaction");!T||!Y||(T.scrollTop+=Y.getBoundingClientRect().top-T.getBoundingClientRect().top,(be=Y.querySelector("h3"))==null||be.focus({preventScroll:!0}))}:void 0,onRevokeApproval:()=>{zn.revokeToolApproval(),R(T=>({...T,permissions:"default"}))},onCommand:T=>_s(()=>zn.sendCommand(T,{})),onActivity:()=>{ga("activity")}}):null,r.jsx(O0,{streamReplies:M,messages:(wn==null?void 0:wn.kind)==="tool-approval"?Xn.filter(T=>{var Y,be;return!(((Y=T.toolActivity)==null?void 0:Y.status)==="waiting"&&T.toolActivity.runId===((be=Ve.interaction)==null?void 0:be.runId))}):Xn,messageProps:{...qn.tts_supported?{onSpeakToggle:T=>{qn.toggle_tts(T.id||T.content,T.content)}}:{},getSpeakState:T=>qn.tts_playback.key===(T.id||T.content)?qn.tts_playback.status:"idle"},draft:fe,onDraftChange:q,onSend:Ea,busy:ms,busyLabel:$o?"Waiting for you":We?"Starting…":nr?"Paused":"Working…",sendWhileBusy:Vt&&!We&&!$o,sendLabel:Vt?er==="queue"?"Queue":"Steer":"Send",onCancel:$a,stopState:Ve.stop??null,disabled:!e.connected,interaction:wn,onAttach:()=>{var T;return(T=pe.current)==null?void 0:T.click()},onFiles:T=>{Ur(T)},attachments:$e.length||lt.length?r.jsx(_A,{attachments:$e,uploads:lt,sizes:ee.current,onRemoveAttachment:T=>Ue(Y=>Y.filter((be,je)=>je!==T)),onRemoveUpload:Zi,onRetryUpload:Aa}):null,placeholder:Vt?er==="queue"?"Queue the next task after this run…":wn?"Answer the request above, or choose Queue next turn…":"Guide the current workflow…":"Describe what you want to build, fix, or explore…",emptyState:Vt?null:r.jsx(CA,{workflow:H,loading:a.loading||Be,onSuggestion:q,onInputs:()=>Rs(!0),isAgent:To,onRun:()=>_s(()=>lr(fe)),connected:e.connected}),composerExtras:r.jsxs(r.Fragment,{children:[r.jsxs("span",{className:"code-composer-workspace",title:ps||"Workspace is managed by the gateway",children:[r.jsx(se,{name:"terminal",size:14}),r.jsx("span",{children:ps.split("/").filter(Boolean).pop()||"Gateway workspace"})]}),e.connected?r.jsx(ZE,{voice:qn,capability:Wr,route:Gb(E,rr.value)},`${t}:${I.sessionId}:${I.runId}`):null,Vt?r.jsxs("select",{"aria-label":"Message destination",value:er,onChange:T=>tu(T.target.value),children:[r.jsxs("option",{value:"steer",disabled:!!wn,children:["Guide this run",wn?" (answer above)":""]}),r.jsx("option",{value:"queue",children:"Queue next turn"})]}):null]}),footer:r.jsxs(r.Fragment,{children:[r.jsxs("span",{children:["Enter to send ",r.jsx("span",{"aria-hidden":"true",children:"·"})," Shift + Enter for a new line"]}),r.jsxs("span",{children:["Managed workspace",r.jsx("span",{className:"code-small-dot"})]})]})}),Ms.length?r.jsxs("div",{className:"code-queue",children:[r.jsxs("div",{children:[r.jsxs("strong",{children:[Ms.length," queued"," ",Ms.length===1?"turn":"turns"]}),r.jsx(Or,{className:"code-queue__switch",variant:"sm",action:"queue-running",label:"Run queued turns",hint:"On: each queued turn starts when the current run ends. Off: they wait here.",checked:Co,onChange:Tn})]}),Ms.map(T=>r.jsxs("div",{children:[r.jsx("span",{children:T.text}),Vt?null:r.jsx("button",{onClick:()=>_s(()=>Mo(T)),children:"Run next"}),r.jsx("button",{"aria-label":"Remove queued turn",onClick:()=>rt(Y=>Y.filter(be=>be.id!==T.id)),children:r.jsx(se,{name:"x",size:13})})]},T.id))]}):null]}),fu]}),r.jsxs("footer",{className:"code-statusbar",children:[r.jsxs("span",{children:[r.jsx("span",{className:`code-status-dot ${e.connected?"is-online":""}`}),e.connected?"Connected":e.phase==="loading"?"Connecting":"Disconnected"]}),r.jsx("span",{children:(H==null?void 0:H.name)||"No workflow selected"}),r.jsx("div",{}),r.jsx("span",{children:I.runId?`Run ${I.runId.slice(0,8)}`:"Ready to start"}),r.jsx("span",{children:i.theme.replace(/-/g," ")})]})]}),r.jsx("div",{className:"pc-sr-only",role:"status","aria-live":"polite",children:Ne}),r.jsx("input",{ref:pe,hidden:!0,type:"file",multiple:!0,onChange:T=>{Ur(Array.from(T.target.files||[])),T.target.value=""}}),r.jsx(hA,{connected:e.connected,workflowPickerOptions:{interfaceId:$n,workflows:{...a.executable,reload:()=>void a.refresh()}},open:va,onClose:()=>_a(!1),onOpenPreferences:()=>{_a(!1),ga("workflow")},target:kE(J,H),availableTools:a.tools.filter(T=>T.enabled).map(T=>T.name),initialTools:Fi($.toolsCustomized?{...xt,tools:zr.enabledTools}:xt),buildInput:async(T,Y)=>{if(!Y)return Io(T,{...Js(_e),...xt},[],!0);const be=Y.flow_id==="@default"?ae:a.workflows.find(vt=>`${vt.bundleId}@${vt.bundleVersion}`===("bundle_ref"in Y?Y.bundle_ref:"")&&vt.flowId===Y.flow_id);if(!be)throw new Error("The selected workflow is no longer available. Refresh the workflow list.");const je=await ef(be);if(!je)throw new Error("Workflow inputs could not be checked. Refresh the workflow list and try again.");const Te=Io(T,Js(je),[],!0,be,je),ht=Yd(je,Te);if(ht.length)throw new Error(ht.join(" "));return Te},workflowLabel:J===Ft?wN(a.gatewayDefault):(H==null?void 0:H.name)||"the selected workflow",initialPrompt:fe||((fl=[...Xn].reverse().find(T=>T.role==="user"))==null?void 0:fl.content)||"",ctl:ln,onOpenMyEmail:Ls,onCreated:()=>{pn(!0),At(!1)}}),r.jsx(mb,{...e.modalProps}),r.jsx(f1,{open:u,onClose:()=>d(!1),connected:e.connected,topOffset:Dr},`assistant:${t}`),r.jsx(Hb,{open:f,onClose:()=>m(!1),value:i,onChange:c}),r.jsx(p1,{open:p,onClose:()=>w(!1),connected:e.connected,onChanged:A})]})}function CA({workflow:e,loading:t,onSuggestion:n,onInputs:a,isAgent:i,onRun:c,connected:u}){return r.jsxs("div",{className:"code-welcome",children:[r.jsxs("div",{className:"code-welcome-symbol","aria-hidden":"true",children:[r.jsx("span",{children:"›"}),r.jsx("span",{children:"_"})]}),r.jsx("p",{className:"code-eyebrow",children:"A LITTLE CONTEXT. A LOT OF POSSIBILITY."}),r.jsx("h1",{children:"What are we building?"}),r.jsxs("p",{className:"code-welcome-description",children:["A focused space to think, code, and get things done.",r.jsx("br",{}),"Your workflows. Your tools. One conversation."]}),e&&!i?r.jsxs("div",{className:"code-workflow-welcome",children:[r.jsx(se,{name:"playCircle",size:21}),r.jsxs("div",{children:[r.jsx("strong",{children:e.name}),r.jsx("p",{children:e.description||"Run this workflow with its registered inputs."})]}),r.jsx("button",{onClick:a,children:"Configure inputs"}),r.jsx("button",{onClick:c,disabled:t||!u,children:"Run workflow"})]}):r.jsx("div",{className:"code-suggestions",children:[{icon:"terminal",title:"Explore this project",detail:"Find your bearings in the codebase",prompt:"Explore this project and explain its architecture, key entry points, and how to run its tests."},{icon:"edit",title:"Build something new",detail:"Turn an idea into working code",prompt:"I'd like to build a new feature. Help me clarify the requirements and plan the implementation."},{icon:"warning",title:"Track down a bug",detail:"Understand what went wrong",prompt:"Help me investigate a bug. Start by asking what happened and what I expected."},{icon:"check",title:"Review my changes",detail:"Get a second pair of eyes",prompt:"Review the current changes for correctness, edge cases, and maintainability. Explain any findings before making edits."}].map(d=>r.jsxs("button",{onClick:()=>n(d.prompt),disabled:t,children:[r.jsx(se,{name:d.icon,size:18}),r.jsxs("span",{children:[r.jsx("strong",{children:d.title}),r.jsx("small",{children:d.detail})]}),r.jsx(se,{name:"chevronRight",size:13})]},d.title))}),r.jsx("p",{className:"code-welcome-hint",children:t?"Discovering your workflows…":e?r.jsxs(r.Fragment,{children:["Using ",r.jsx("strong",{children:e.name})," · Choose another in the Workflow panel"]}):u?"Register a workflow with AbstractGateway to get started.":"Connect your gateway to get started."})]})}class EA extends ut.Component{constructor(){super(...arguments);dn(this,"state",{error:""})}static getDerivedStateFromError(n){return{error:n.message}}render(){return this.state.error?r.jsxs("div",{className:"code-crash",role:"alert",children:[r.jsx("h1",{children:"Something interrupted this view."}),r.jsx("p",{children:this.state.error}),r.jsx("p",{children:"Your runs are stored by the gateway."}),r.jsx("button",{onClick:()=>window.location.reload(),children:"Reload AbstractCode"})]}):this.props.children}}M_();t1();"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("sw.js").catch(()=>{})});E_.createRoot(document.getElementById("root")).render(r.jsx(ut.StrictMode,{children:r.jsx(EA,{children:r.jsx(NA,{})})}));
|